We are developing an underwater autonomous robot and, since it is not already built, we have done some tests with a provisional catamaran. The problems we came with are:
First of all, we sent the waypoint just by publishing on the topic /mavros/mission/waypoints. So, we were wondering if this is the right way you do it or you use the rosservice? rostopic pub /mavros/mission/waypoints mavros_msgs/WaypointList ‘[{frame:0, command:16, is_current:1},{frame:0, command:22, is_current:0, autocontinue:1,param2:1,param3:0, param4:0, x_lat:10, y_long: 10, z_alt: 0}]’
When you designed the Ardusub, with what sensors is it supposed to work correctly? We do not know if it is enough with just barometer, gps and IMUs.
3)Do you have any problem with the localization? Our z component has an error of 3 meters.
How can we change to guided mode when gps is disconnected?
I am not sure about this. It looks like you are on the right track, you should ask the guys in the mavros gitter for clarification. (You should mention that you are using ArduSub)
2, 3, 4) You need external positioning information (like GPS, or GPS data synthesized by other means) to use the auto modes.
How are you determining your z error? A catamaran can’t change it’s altitude, so I would expect whatever error you start with to remain relatively constant. If you are using an external depth sensor like the Bar30, you will have very accurate (sub centimeter) z axis position information. The on-board air pressure sensor on a Pixhawk has much lower resolution (and won’t be usefule for positioning in a sealed pressure vessel).
Note Guided mode is not yet implemented in ArduSub. Position hold and auto modes are implemented, but have had very limited testing. Only a small subset of the auto mode functionality and mav cmds are supported/implemented. You should refer to the source code and test with caution. If you need more details, or would like to help contribute by implementing more of the auto functionality, please let us know on the ArduSub gitter.
I need to know how you are determining what the z error is. What is your source of information for this value? Most, if not all, flight controllers that run APM are equipped with a barometer which is used for the z axis position estimate.