Hey guys,
We have been able to integrate the DVL with ArduSub (4.5) and able to get its local position pretty reliably, as well as switching to POSHOLD. I do have a few questions though.
At first, we could not really get it to work. My primary suspect is that we are polling for telemetry data at 1000hz with recv_match(blocking=False) which causes the autopilot to be too busy sending data to the mavlink node, and not able to receive the vision_position_delta fast enough. When I change the data pollling rate to 200hz, it works pretty well again. However, I run into issue with the attitude data not updating fast enough.
May I ask how this is implemented in BlueOS? What’s the rate used for polling telem data? And do you request message interval for certain types of message? Or just let it set by default? We are currently using 200hz polling rate, and set 10hz for attitude and position data, and around 1-2hz for the rest of the message types (and even -1 for some messages which are not important to us).
PS: I also notice that your existing DVL code does not take into account when the DVL attitude changes near the extreme angles. For example, if the current angle is -179 deg, and the last one is 179 deg, the angle change is actually +2deg (not -358deg). Should this be fine?