I’m getting so close to having my entire system completed and getting really exited about doing the full testing of the system and getting into the field. My physical build is complete and the software is really close. Here’s where I am and I’m hoping someone can offer some guidance on the best way to move forward.
I want my BlueROV2 to navigate to a specific waypoint while following the terrain and keeping a height above the bottom at 2m. I will be providing the waypoints via a python script that generates my grid search pattern. I’ve got an Airmar DT800 installed in a tube that should hopefully work even at depth though I’m working very shallow at the moment. The DT800 is plugged into the companion computer via a USB/Serial adapter and a python script is processing that data and sending it out over MavLink every 0.5 seconds using code based off of the example in the Ardusub Gitbook. Additionally, I have the WaterLinked GPS setup so the ROV should know its depth, height, and position. What I want to be able to do is to tell the ROV to perform a transect to a specific GPS point while keeping a height hold over the terrain. Clearly this is two different flight modes, Depth Hold and Guided which I’m assuming is a no go.
Assuming that I can’t just tell the ROV to go to a point holding a specific height/depth, then I have to get creative. My understanding is that when I give the ROV an GPS point to navigate to that includes a Lat, Lon, and Alt (depth). My first problem is that the depth at that location is unknown. In fact, I don’t care about the depth, just the height from the bottom. Fortunately, in these transects, I’m not dealing with huge changes in depth, probably a meter, maybe 2 at the most. So, my thought is that when I send the waypoint data, I will just use the current depth of the ROV as a starting point.
My problem is then how do I make the ROV follow the terrain at 2m during the transect. One thought is to monitor the height during the transect and then update the destination waypoint with the appropriate depth as it changes to maintain height. However I think that will only result in a gradual change of height assuming it changes over the course of the entire distance of the transect. If I have a coral head or big head of seaweed show up then I don’t want such a gradual change.
The next step I can think of is to go one of two routes using Guided Mode for navigation and then either send RC Input simulating the joystick or manual control to move the ROV up or down in small steps until the appropriate depth is reached. I’m not sure if this is doable while in Guided mode.
Does anyone have any thoughts or suggestions on what might be the best approach?