We are building an AUV where depth holding is very important.
I can perfectly go into DEPTH HOLD mode with PYMAVLINK -> Python 3.6.
But the rover comes around 1 meter above and then again goes down. As Jacob said they are still working on it.
So, I thought to go into STABILIZE mode, read the depth every 1-second and throttle downward with python code. It’s like depth holding from the python code.
import time from pymavlink import mavutil import arduSub_pymavlink_methods as pixhawk # Create the connection # Need to provide the serial port and baudrate master = mavutil.mavlink_connection( 'COM5', baud=115200) # Wait a heartbeat before sending commands master.wait_heartbeat() time.sleep(2) # ARM the Ardusub master.arducopter_arm() # These are functions I wrote in another file and imported it to keep the code clean pixhawk.change_mode(master, 'STABILIZE') # Request SURFACE_DEPTH parameter while True: master.mav.param_request_read_send( master.target_system, master.target_component, b'SURFACE_DEPTH', -1 ) time.sleep(1) try: message = master.recv_match(type='PARAM_VALUE', blocking=True).to_dict() print(message['param_id'].decode("utf-8"), message['param_value']) except Exception as e: print(e) exit(0)
How can I continuously get the depth of my AUV with 0.2m Precision?
The code above only returns -10 then I set on QGC.
Or suggest me a way to keep the AUV at a certain DEPTH. I don’t have any underwater GPS.
Pixhawk - PX4
Ardusub - 3.5.X (latest stable release)
Depth Sensor - Bar30
Platform - Windows10(For testing Purpose)
Python - 3.6
Library - Pymavlink
Frame Config - BLUE ROV2 (6 Motor)