Contents
Documentation
This stack contains a bunch of ROS packages that provide the first control layers of an Autonomous Underwater Vehicle (AUV). It has been designed with an ease of parametrization and expansion in mind. This setup can be used in any configuration of a vehicle, regardless of the number of thrusters nor the position of them in the vehicle.
It has been split in three main packages:
and their corresponding messages:
AUV Control
This package provides five ROS nodes to control an AUV. First, the correspondence between the robot desired motion and the motors used is set in thruster_allocator node, then auv_safety_manager node keeps track on the various issues an AUV could face (water inside the robot, bad topic refresh rate, an internal alarm, etc) and handles different emergency behaviours depending on the trigger launched. Finally, three different controllers are provided, altitude control, depth control and twist control.
Nodes
truster_allocator
Node for calculating the thruster speed needed to apply a given wrench to an AUV. The underlying theory is an affine thruster model as described in 'Guidance and Control of Ocean Vehicles' by T. Fossen, section 4.1, pp. 96-97. The calculation is done using a thruster allocation matrix (TAM) which defines how requested forces in each degree of freedom have to be translated to motor speeds.Subscribed Topics
wrench (geometry_msgs/WrenchStamped)- Subscription to AUV wrench request topic.
Published Topics
motor_levels (auv_control_msgs/MotorLevels)- Subscribes to motor speeds request topic.
auv_safety_manager
Node that subscribes to wrench and motor levels inputs while monitoring topic frequencies and values. If everything is OK, the inputs are forwarded, but if an error is detected, i.e. an error flag of a topic monitor is set, no more inputs are forwarded and the vehicle is brought to the surface.Subscribed Topics
wrench_request (geometry_msgs/WrenchStamped)- Subscription to AUV wrench topic.
- Publishes motor speeds.
Published Topics
wrench (geometry_msgs/WrenchStamped)- Publishes AUV wrench topic.
- Publishes motor speeds.
Control parameters
AUV Navigation
TODO: mission_control
AUV Teleoperation
Teleoperation parameters
Report a Bug
Please use the issue tracker at Github to report bugs or request features: https://github.com/srv/auv_framework/issues