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.
motor_levels_request (auv_control_msgs/MotorLevels)
  • Publishes motor speeds.

Published Topics

wrench (geometry_msgs/WrenchStamped)
  • Publishes AUV wrench topic.
motor_levels (auv_control_msgs/MotorLevels)
  • 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

Wiki: auv_framework (last edited 2013-03-04 13:04:03 by miquelmassot)