Home        Store        Learn        Blog

Way point following issues for surface vehicle

I built a surface vehicle that has an identical control system to the BlueROV: it uses the pixhawk with ardusub firmware as an autopilot, has 4 t200 motors in the BlueROV vectored configuration for movement, and is driven from QgroundControll. It has an on board quadcopter GPS, which I am trying to use for waypoint following. However, I can’t get it to work. I have tried programming way points in from qgroundcontroll, but nothing works. Does anyone know how to have the ardusub firmware go to waypoints?

1 Like

Hi Nathan, I’m doing something similar, but using a different frame type (Simple-3). What error are you seeing?

If I set up a mission in qgroundcontroll, and try to run the mission, it says guided mode not supported. If I tell the robot to enter guided or auto mode, it does, and then only holds its position.

That’s about what I have seen too. I know the auto and guided modes are very developmental at this stage and Jacob is working on them.

Were you able to get any kind of waypoint control to work?

Not yet, I was originally having mission sync issues. Those seem to have been fixed when I used the 3.6-Dev firmware. If you have the ArduSub Companion Computer, you can install that firmware type (Development) and see where it gets you.

I have already got the 3.6 dev version installed

Nathan, if you are going to use ArduSub (I’m not sure it’s right for the job), then you should use 3.5 instead of the dev version. I haven’t heard from anyone who has actually used ArduSub to navigate waypoints with a surface vehicle. It should work. The waypoints are 3D, so the altitude set for the waypoint needs to be the same as whatever the altitude is reading on the boat (this can drift and poses a potential problem). Otherwise, the boat will reach the x,y coordinates and wait there forever while it also tries to attain the z (altitude) goal.

Hi Nathan, we are attempting a similar approach using the BlueROV control system to control a ROV with a quadcopter thruster configuration using the Blue Robotics thrusters such that each thruster has independent forward and reverse. I assume we must modify the framework config file. Can you tell me what are the additional details I should be aware of in order to get up and running using the BlueROV control system for a quadcopter motor configuration? Cheers! Tim

I am running 3.52 and I get the error “Guided mode not supported by Vehicle” in QGroundControl. Is there a parameter in a config file I need to set?

What version of QGC are you using? Guided mode is in development and so is not technically supported yet, but QGC should let you do it. This is an issue on QGC end, not ArduSub.

I am runnng QGroundControl v3.18.3. Interestingly it says on start up “qml: _activeVehicle(0) _vehicleArmed(0) guidedModeSupported(0) _vehicleFlying(0) _vehicleInRTLMode(0) pauseVehicleSupported(0) _vehiclePaused(0) _flightMode()”. I attempted to change the line in APM_Config.h from //#define NAV_GUIDED DISABLED to #define NAV_GUIDED ENABLED and reupload the new firmware, but that didnt help either.

Im recompiling QGroundControl now, version 3.3. Can I run waypoints or guided mode somehow without GPS enabled?

No, GPS is required for the autonomous modes.

You do not need to make any modification to ArduSub firmware to enable guided mode

You should use our default branch (3.2.4) in the bluerobotics fork for QGC to be used with ArduSub.

OK, thanks!

This branch will work with guided mode: https://github.com/bluerobotics/qgroundcontrol/tree/sub-guided-mode

What is different code wise, or do you know just via testing?

This is the code that was changed: https://github.com/bluerobotics/qgroundcontrol/commit/622be638792961043a0f5b82daa2bf189c6ba9f1

Thank you very much; I assume that it still requires a GPS lock to run this mode. I was looking at MAVLink to see if I could at least get a set depth command to work without GPS for now, but apparently MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED still requires the vehicle to be in Guided as seen in GCS_MavLink.cpp Line 1344.

You are correct: