Open clydemcqueen opened 3 months ago
Using MAVExplorer.py on the tlog file:
MAVExplorer.py '2024-08-21 14-10-00.tlog'
condition DISTANCE_SENSOR._header.srcSystem==255
graph diff(DISTANCE_SENSOR._timestamp,0)
(Graph is zoomed into the same region as above.)
This clearly shows periodic delays in DISTANCE_SENSOR messages from the driver recorded in QGC. These periodic delays are present at all depths, but the delay is significant when the ROV is > 2.5m above the seafloor. I suspect that a similar delays are also experienced by the autopilot, which is why I am seeing periodic timeouts.
This also affects VISION_POSITION_DELTA messages, which makes sense.
I am seeing this in logs on both DVL-equipped ROVs in the Seattle Aquarium fleet. So, I suspect that this is a bug in the extension or BlueOS somewhere. I'm curious if others are seeing this?
Not critical, but a puzzle....
Hi @clydemcqueen, I suspect this issue is caused by mavlink-router, and that it is related to the "MyGCS 255: Heartbeat lost". Unfortunately mavp2p support is problematic right now, but we are also working on our own router which should fix this issue.
@Williangalvani LMK if you need help testing
I have noticed that RFND.Dist values jump between something reasonable and 0 around when the ROV is > ~2.5m away from the seafloor.
When the ROV is close to the seafloor, the driver is sending DISTANCE_SENSOR messages at ~9Hz. Above ~2.5m the rate drops to ~4.5 Hz, so the gap between messages increases to ~220ms. This is easy to spot in the logs.
What is surprising is that the RNFD.Dist values show periodic 0 values when this happens, which AFAICT only happens if the 500ms timeout is hit.
https://github.com/ArduPilot/ardupilot/blob/ecd9694e47678384b083823c09899d4232c4cfa1/libraries/AP_RangeFinder/AP_RangeFinder_MAVLink.cpp#L79
Example RFND graph:
If the DISTANCE_SENSOR messages are arriving every ~250ms, this should never happen. I suspect that some DISTANCE_SENSOR messages are delayed by up to ~250ms, so a 500ms gap appears every ~7.5s. I do not have enough data to pinpoint the source of this delay.
Am I off-track here? Have others seen this behavior?