Have found time to work on this issue again. Wanted to document my progress to see if anyone else is struggling. Using Companion software 0.0.20 and ArduSub version 4.1.0. Currently have a Wayfinder DVL interfaced with the BlueROV Raspberry Pi. BlueROV2 is sitting on a bench out of the water. Have been following the integration guide found here: Integration – Teledyne RDI
I have downloaded and installed the DVL python drivers found here: TM software Portal.
Have found that the guide cannot be followed verbatim. First difference was step 21. Found that ‘~/mavproxy.params’ is actually ‘~/mavproxy.param’ (no ‘s’). Next, in step 21, need to add ‘–out tcpin:127.0.0.1.14777’. Adding the line without adding the --out prior to the address will break your connection to Qgroundcontrol.
Step 22 has you “add” the integration script. Not sure what it wants me to add the script too… startup script? mavproxy.param?
It turns out that there are several integration scripts. The one I have been running can be found buried in the /integration/blueROV folder called ‘blueROVIntegration.py’. When running this script, I was able to get it to the main_loop() function. However, an if statement is expecting a message type of ‘ATTITUDE’ and it’s receiving a message type of ‘GLOBAL_POSITION_INT’ instead (gives status of ‘unknown’). Example of output (I added some print statements to the source code so I could see what was happening):
message.get_type(): GLOBAL_POSITION_INT/n
GLOBAL_POSITION_INT {time_boot_ms : 3626408, lat : 0, lon : 0, alt : 0, relative_alt : -23, vx : 1, vy : 1, vz : -3, hdg : 20217}
message.get_type(): GLOBAL_POSITION_INT/n
GLOBAL_POSITION_INT {time_boot_ms : 3626508, lat : 0, lon : 0, alt : 0, relative_alt : -22, vx : 1, vy : 1, vz : -3, hdg : 20217}
message.get_type(): GLOBAL_POSITION_INT/n
GLOBAL_POSITION_INT {time_boot_ms : 3626608, lat : 0, lon : 0, alt : 0, relative_alt : -21, vx : 1, vy : 0, vz : -4, hdg : 20217}
Interesting that it’s a GLOBAL_POSITION_INT message. I would have though that it would have been a VISION_POSITION_DELTA message as described in this post: ROV Position Hold and Non-GPS Navigation! - Blog - ArduPilot Discourse
No idea if it’s properly configured in accordance with step 22…
Maybe the DVL needs to be wet in order to transmit the correct messages?
Step 24 is also different (parameter configuration). Some of the parameters do not align with what’s found in Qgroundcontrol. I’ve set them as best as I can.
Anyone know of a way that I can verify that the sensor is being read in Qgroundcontrol? I’m getting to the point where I feel like I just need to throw it into a pool and see what happens.