ArduSub or DIY control system without computer

Hi all,

I am designing a DIY ROV based off the BlueROV2 design and could use some input on the control system. For some background, I want to make an ROV setup capable of being taken on short hikes to bodies of water and taken on small boats. In the water (salt and fresh < 20 m), I want to be able to dive to the bottom to explore and search and retrieve small items.

My original intentions for control were to use analog joysticks and an arduino on the surface to send commands through rs-485 to an onboard arduino which would mix and send pwm values to each thruster. Analog video would be sent through a twisted pair of wires to eventually my phone. Ideally with this setup, the surface components could be packaged in something small and portable, maybe similar to the DJI mavic controller, with my phone as the video monitor. The control code would be done by me.

However, recently I have discovered ArduSub and am drawn by the control capabilities. I come with experience from the multirotor world and know how well ArduCopter performs. I also have experience with Pixhawk and Mission Planner (similar to QGroundControl). Unfortunately, after doing much research, I do not think I can make my surface setup of analog joysticks and arduino work with ArduAub. Correct me if wrong, but it appears there is currently no plug n play way to avoid using a computer on the surface, as the pixhawk can only receive input via MavLink. This is undesirable for me, as I would like to keep the whole setup as portable as possible, and am thinking of using the ROV is situations that would be risky for a laptop (from a kayak, light rain, etc).

I am confident I can make both options work, but I know if I write my own code the control will not be nearly as good (no stabilization, only simple movements). But then again I do not know if I need more than simple motor control for general flying around and exploring. If I go with ArduSub, I will have to plan for more items to pack and setup on the surface. So I would like your opinions on each option, and any advice you may have from your experiences.

Thank you!

Sam

Hello Sam,

You should be able to send MANUAL_CONTROL messages using the arduino. We only have a Python sample code, but Arduino should work fine too.

You could also try to run QGC using a tablet, but that will also take some work (mostly on joystick support and networking setup)

If you are willing to troubleshoot QGC and maybe do some coding for it, I would follow the tablet route, as that gives you FHD video

If you want to keep things simpler, I suggest you follow the Arduino route. I am not sure of how simpler that will be, though. You may need to handle additional messages to make sure everything is ok, such as HEARTBEAT and STATUS_TEXT.

Hi Sam,
I just discovered your post. Three years ago I built an ROV using Arduino boards and simple analog joystick control. I can no longer find the many posts on the build that I made on this forum. The ROV performed well using Blue Robotics components. Sort through the videos on my YouTube channel (Richard Fast) and you can see the results.
Richard

Sam, I have also done a similar control system in the past with Arduinos, serial connection, and PS2 controller. My experience was that while it worked, adding the Pixhawk made a huge improvement in stability and controllability. The vectored thrust made it very twitchy in yaw and very difficult to drive in a straight line until the Pixhawk was looped in.

Info and some code snippets can be found in my build thread at Lucas' SeaFox (now on version 2.2.2) - Homebuilt Rov Forum

1 Like

Hi,

I just wanted to make sure. Is it possible to run ardusub without QGroundControl or a tether?

If so what changes in settings need to be made?

I would like to run a custom AUV/ROV Iā€™m building autonomously by sending commands to ardusub directly from a companion computer already inside the enclosure.

Are there HEARTBEAT messages or others that will need to be handled?

Thanks,

Josh