Software architecture of SPARUS II AUV - CIRS

Software Manual
Underwater Robotics Research Centre (CIRS)
Computer Vision and Robotics Institute
Universitat de Girona, 17003, Girona, Spain.
web: http://cirs.udg.edu
Contact person: Marc Carreras
email: [email protected]
January 2, 2014
Software Manual
Version 0.1, Nov. 2013
Contents
1 Installation
1.1 Install Ubuntu . . . . . . . .
1.2 Install ROS Groovy . . . . .
1.3 Install UWSim . . . . . . .
1.4 Install COLA2 architecture
.
.
.
.
5
5
5
5
6
2 Getting started
2.1 Learn ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Learn UWSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Learn Sparus II COLA2 architecture . . . . . . . . . . . . . . . . . . .
6
6
6
6
3 Nodes
3.1 Node
3.2 Node
3.3 Node
3.4 Node
3.5 Node
3.6 Node
3.7 Node
3.8 Node
3.9 Node
3.10 Node
3.11 Node
3.12 Node
3.13 Node
3.14 Node
3.15 Node
3.16 Node
3.17 Node
3.18 Node
3.19 Node
3.20 Node
.
.
.
.
.
.
.
.
.
.
.
.
/captain . . . . . . . . . . .
/dynamics . . . . . . . . . .
/ekf slam . . . . . . . . . .
/keyboard . . . . . . . . . .
/map ack . . . . . . . . . .
/merge body force req . . .
/merge body velocity req .
/merge world waypoint req
/navigator s2 . . . . . . . .
/pilot . . . . . . . . . . . .
/pose controller s2 . . . . .
/safe depth altitude . . . .
/safety s2 . . . . . . . . . .
/set zero pose . . . . . . . .
/set zero velocity . . . . . .
/sim actuators s2 . . . . . .
/sim nav sensors s2 . . . .
/teleoperation . . . . . . . .
/thruster allocator . . . . .
/velocity controller s2 . . .
4 Messages
4.1 Message
4.2 Message
4.3 Message
4.4 Message
4.5 Message
4.6 Message
4.7 Message
file
file
file
file
file
file
file
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
actionlib msgs/GoalID . . . . .
actionlib msgs/GoalStatusArray
auv msgs/BodyForceReq . . . .
auv msgs/BodyVelocityReq . .
auv msgs/NavSts . . . . . . . .
auv msgs/WorldWaypointReq .
cola2 control/Setpoints . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
10
12
12
13
13
14
15
17
18
19
19
20
20
21
22
23
24
25
.
.
.
.
.
.
.
26
26
26
27
27
28
29
30
Software Manual
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
Message
5 Services
5.1 Service
5.2 Service
5.3 Service
5.4 Service
5.5 Service
5.6 Service
5.7 Service
5.8 Service
5.9 Service
Version 0.1, Nov. 2013
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
file
6 Config files
6.1 Config file
6.2 Config file
6.3 Config file
6.4 Config file
6.5 Config file
6.6 Config file
6.7 Config file
6.8 Config file
cola2 control/WorldWaypointReqActionFeedback
cola2 control/WorldWaypointReqActionGoal . . .
cola2 control/WorldWaypointReqActionResult . .
cola2 navigation/FastraxIt500Gps . . . . . . . . .
cola2 navigation/LinkquestDvl . . . . . . . . . . .
cola2 navigation/PressureSensor . . . . . . . . . .
cola2 safety/MissionStatus . . . . . . . . . . . . .
cola2 safety/NavSensorsStatus . . . . . . . . . . .
cola2 safety/TotalTime . . . . . . . . . . . . . . .
diagnostic msgs/DiagnosticArray . . . . . . . . .
geometry msgs/PoseWithCovarianceStamped . .
geometry msgs/TwistWithCovarianceStamped . .
nav msgs/Odometry . . . . . . . . . . . . . . . .
nav msgs/Path . . . . . . . . . . . . . . . . . . .
pose ekf slam/Map . . . . . . . . . . . . . . . . .
sensor msgs/Imu . . . . . . . . . . . . . . . . . .
sensor msgs/Joy . . . . . . . . . . . . . . . . . . .
sensor msgs/Range . . . . . . . . . . . . . . . . .
std msgs/String . . . . . . . . . . . . . . . . . . .
tf/tfMessage . . . . . . . . . . . . . . . . . . . . .
visualization msgs/MarkerArray . . . . . . . . . .
visualization msgs/Marker . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
31
31
32
32
33
33
33
34
34
35
35
36
36
37
37
38
38
39
39
40
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
42
42
43
43
43
44
44
45
control/config/map ack s2.yaml . . . . .
control/config/merge s2.yaml . . . . . .
control/config/pilot.yaml . . . . . . . . .
control/config/pose controller s2.yaml . .
control/config/teleoperation s2.yaml . . .
control/config/thruster allocator s2.yaml
control/config/velocity controller s2.yaml
navigation/config/navigator s2.yaml . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
46
48
48
49
49
50
50
50
cola2 control/Goto . . . . . . .
cola2 control/String . . . . . .
cola2 navigation/SetGPS . . .
cola2 navigation/SetNedOrigin
cola2 safety/Submerge . . . . .
pose ekf slam/SetLandmark . .
pose ekf slam/SetPosition . . .
std srvs/Empty . . . . . . . . .
tf/FrameGraph . . . . . . . . .
/cola2
/cola2
/cola2
/cola2
/cola2
/cola2
/cola2
/cola2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Software Manual
Version 0.1, Nov. 2013
6.9 Config file /cola2 safety/config/safety s2.yaml . . . . . . . . . . . . . .
6.10 Config file /cola2 sim/config/dynamics s2.yaml . . . . . . . . . . . . .
6.11 Config file /cola2 sim/config/sim nav sensors s2.yaml . . . . . . . . . .
4
51
52
52
Software Manual
1
Version 0.1, Nov. 2013
Installation
Sparus II AUV computer works under Ubuntu Server 12.04.3 LTS and ROS Groovy. In
order to work with Sparus II robots it is highly recommended to set up another machine
with Ubuntu Desktop, ROS, COLA21 and UWSim2 for teleoperation, programming and
simulation purposes. This section reports the required steps to set up a machine with
Ubuntu, ROS, UWSim and Sparus II architecture COLA2.
1.1
Install Ubuntu
The first step to set up a machine is to instal Ubuntu Desktop 12.04.3 LTS. It is important the you leave some free space (e.g. at least 10 Gb) on the root to install the other required software later. You can download the image at http://www.ubuntu.com/download/desktop.
1.2
Install ROS Groovy
Once Ubuntu is running, the next step is to install ROS Groovy. Use the guide in the
ROS webpage http://wiki.ros.org/groovy/Installation/Ubuntu. Install the DesktopFull version to make sure that most of the required packages are installed.
Once the installation is done, open a terminal and install the following packages:
sudo apt-get install python-rosinstall python-rosdep
sudo apt-get install ros-groovy-joystick-drivers
Install Synaptic Package Manager. Search for libdc1394 and install libdc1394-22 and
libdc1394-22-dev packages. Install ros-groovy-python-orocos-kdl too.
Once all packages have been installed, set up the ROS environment following:
http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
Create also a ROS Workspace.
1.3
Install UWSim
Search for ros-groovy-uwsim in Synaptic Package Manager and install all listed packages. Further information and other installation methods can be found in
http://www.irs.uji.es/uwsim/
1
COLA2: Component Oriented Layered-based Architecture for Autonomy. Is the control architecture used in Sparus II.
2
UWSim: UnderWater Simulator. Is an open-source ROS-based simulator for underwater vehicles.
5
Software Manual
1.4
Version 0.1, Nov. 2013
Install COLA2 architecture
Download COLA2 architecture source code and copy the cola2 parent folder to your
workspace/src. Recently updated (i.e. not always tested) source code can also be found
in https://bitbucket.org/udg cirs/cola2 for experimental purposes.
Install GIT source code manager. Download auv msgs ROS package in your workspace/src
using GIT doing:
git clone https://bitbucket.org/udg cirs/auv msgs.git
Switch to groovy branch doing:
cd auv msgs/
git checkout –track origin/groovy
2
Getting started
If you are new to Linux, the following tutorial may be a good starting point to learn
the basics http://www.ee.surrey.ac.uk/Teaching/Unix/. The main goal of this section
is to learn the basics of ROS, UWSim and COLA2 architecture.
2.1
Learn ROS
First of all, you must learn ROS, e.g. by doing the tutorials on
http://wiki.ros.org/ROS/Tutorials
By doing the tutorials two goals are accomplished: to learn ROS and to test the installation.
2.2
Learn UWSim
UWSim will be used mainly as a visualization tool. There is no need to fully understand
how UWSim works to do basic simulations. Just for reference, there is a UWSim wiki
at http://www.irs.uji.es/uwsim/wiki/index.php?title=Main Page
Launch a roscore and try to launch UWSim by doing:
rosrun uwsim uwsim
The first time you launch uwsim you will be asked to download some files from internet.
2.3
Learn Sparus II COLA2 architecture
To learn how to use Sparus II COLA2 architecture you can start by reading the main
launch file, located in the package cola2 launch/launch/sparus2.launch. Configuring
6
Software Manual
Version 0.1, Nov. 2013
its parameters you can choose which nodes you decide to launch3 . You can learn what
each node does by reading the Nodes section. In the following chapters you will learn
how each package in COLA2 interacts with each other. Furthermore, you can use our
interactive wiki to navigate through COLA2 architecture.
You can also learn a lot by using rqt Graph plugin from ROS and by simply launching
the architecture and listening to all messages using standard ROS commands.
Once the architecture is running, you can drive the AUV by using the following keys:
• Use W and S to control surge velocity
• Use F and H to turn left and right using velocity controller
• Use T and G to go up and down using velocity controller
• Use A and D to turn left and right using position controller
• Use arrow Up and arrow Down to go up and down using position controller
• Use . to enable heave and yaw position controller
• Use , to enable heave and yaw velocity controller
• Use Space key to stop the AUV
In further versions of this documentation new chapters will be added, with further
information about how to use COLA2 architecture.
3
Avoid launching too many nodes on virtual machines, specially those which use intensive graphics.
7
Software Manual
3
Version 0.1, Nov. 2013
Nodes
In this section there is a reference about the relationship between nodes and other
architecture elements.
3.1
Node /captain
This node is used to load and execute missions or tasks. Using services, user is able to
tell the captain to do different things. This node mainly interacts with the pilot.
Config file:
Publishers:
• /absolute movement/goal
Nodes subscribed to this topic:
/pilot
• /cola2 control/trajectory path
• /cola2 control/mission status
• /absolute movement/cancel
Nodes subscribed to this topic:
/pilot
Subscribers:
• /absolute movement/result
Nodes publishing this topic:
/pilot
• /absolute movement/feedback
Nodes publishing this topic:
/pilot
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
8
Software Manual
Version 0.1, Nov. 2013
• /absolute movement/status
Nodes publishing this topic:
/pilot
Services:
• cola2 control/Goto
• std srvs/Empty
• std srvs/Empty
• cola2 control/String
• std srvs/Empty
• std srvs/Empty
• cola2 control/Goto
• std srvs/Empty
• cola2 control/Goto
• cola2 safety/Submerge
• cola2 control/Goto
• cola2 control/Goto
3.2
Node /dynamics
This node uses simulated data of the actuators to compute the AUV dynamic behavior. This node can be used to simulate real AUV behavior and its interaction with the
environtment. User can add currents and a preliminary version of collision detection
has been implemented.
Config file:
/cola2 sim/config/dynamics s2.yaml
Publishers:
9
Software Manual
Version 0.1, Nov. 2013
• /tf
Nodes subscribed to this topic:
/ekf slam
/navigator s2
• /sparus/ros odom to pat
Nodes subscribed to this topic:
/sim nav sensors s2
Subscribers:
• /cola2 control/sim fins data
Nodes publishing this topic:
/sim actuators s2
• /cola2 control/sim thrusters data
Nodes publishing this topic:
/sim actuators s2
3.3
Node /ekf slam
EKF slam node is used to compute the AUV position and velocity. Navigator updates
the filter using position or velocity updates and the filter returns the AUV position and
velocity back to the navigator.
Config file:
Publishers:
• /pose ekf slam/odometry
Nodes subscribed to this topic:
/navigator s2
• /pose ekf slam/covariance marker
• /tf
Nodes subscribed to this topic:
10
Software Manual
Version 0.1, Nov. 2013
/ekf slam
/navigator s2
• /pose ekf slam/map
• /pose ekf slam/landmarks
Subscribers:
• /tf
Nodes publishing this topic:
/dynamics
/ekf slam
/navigator s2
/sim nav sensors s2
• /pose ekf slam/pose update
Nodes publishing this topic:
/navigator s2
• /pose ekf slam/imu input
Nodes publishing this topic:
/navigator s2
• /pose ekf slam/velocity update
Nodes publishing this topic:
/navigator s2
Services:
• pose ekf slam/SetPosition
• tf/FrameGraph
• pose ekf slam/SetLandmark
11
Software Manual
3.4
Version 0.1, Nov. 2013
Node /keyboard
This node is used to drive the AUV in real time, just from the linux terminal.
Config file:
Publishers:
• /cola2 control/keyboard data
Nodes subscribed to this topic:
/map ack
3.5
Node /map ack
This node is used to join all input devices, such as keyboards and joystics. Once joined,
the map ack node publishes a message. This node mainly interacts with the teleoperation node. When teleoperating the without cable, map ack should be run outside the
robot computer.
Config file:
/cola2 control/config/map ack s2.yaml
Publishers:
• /cola2 control/map ack data
Nodes subscribed to this topic:
/teleoperation
• /cola2 control/map ack ack
Nodes subscribed to this topic:
/set zero pose
/teleoperation
Subscribers:
• /cola2 control/map ack ok
Nodes publishing this topic:
/teleoperation
12
Software Manual
Version 0.1, Nov. 2013
• /cola2 control/keyboard data
Nodes publishing this topic:
/keyboard
• /joy
3.6
Node /merge body force req
This node is used to merge messages, taking into account message priorities, from
/cola2 control/body force req topic to /cola2 control/merged body force req topic.
Config file:
/cola2 control/config/merge s2.yaml
Publishers:
• /cola2 control/merged body force req
Nodes subscribed to this topic:
/thruster allocator
Subscribers:
• /cola2 control/body force req
Nodes publishing this topic:
/velocity controller s2
3.7
Node /merge body velocity req
This node is used to merge messages, taking into account message priorities, from
/cola2 control/body velocity req topic to /cola2 control/merged velocity force req topic.
Config file:
/cola2 control/config/merge s2.yaml
Publishers:
13
Software Manual
Version 0.1, Nov. 2013
• /cola2 control/merged body velocity req
Nodes subscribed to this topic:
/velocity controller s2
Subscribers:
• /cola2 control/body velocity req
Nodes publishing this topic:
/pilot
/pose controller s2
/safe depth altitude
/set zero velocity
/teleoperation
3.8
Node /merge world waypoint req
This node is used to merge messages, taking into account message priorities, from
/cola2 control/world waypoint req topic to /cola2 control/merged world waypoint req
topic.
Config file:
/cola2 control/config/merge s2.yaml
Publishers:
• /cola2 control/merged world waypoint req
Nodes subscribed to this topic:
/pose controller s2
Subscribers:
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
14
Software Manual
Version 0.1, Nov. 2013
• /cola2 control/world waypoint req
Nodes publishing this topic:
/pilot
/set zero pose
/teleoperation
3.9
Node /navigator s2
The navigator subscribes to sensor drivers, interacts with ekf slam node, and publishes
navigation status: position, velocities and more.
Config file:
/cola2 navigation/config/navigator s2.yaml
Publishers:
• /tf
Nodes subscribed to this topic:
/ekf slam
/navigator s2
• /pose ekf slam/pose update
Nodes subscribed to this topic:
/ekf slam
• /pose ekf slam/imu input
Nodes subscribed to this topic:
/ekf slam
• /pose ekf slam/velocity update
Nodes subscribed to this topic:
/ekf slam
• /cola2 navigation/nav sts
Nodes subscribed to this topic:
/captain
/merge world waypoint req
15
Software Manual
Version 0.1, Nov. 2013
/pilot
/pose controller s2
/safe depth altitude
/set zero velocity
/teleoperation
/thruster allocator
/velocity controller s2
• /cola2 safety/nav sensors status
Subscribers:
• /pose ekf slam/odometry
Nodes publishing this topic:
/ekf slam
• /tf
Nodes publishing this topic:
/dynamics
/ekf slam
/navigator s2
/sim nav sensors s2
• /cola2 navigation/imu
Nodes publishing this topic:
/sim nav sensors s2
• /cola2 navigation/linkquest navquest600 dvl
Nodes publishing this topic:
/sim nav sensors s2
• /cola2 navigation/fastrax it 500 gps
Nodes publishing this topic:
/sim nav sensors s2
• /cola2 navigation/pressure sensor
Nodes publishing this topic:
16
Software Manual
Version 0.1, Nov. 2013
/sim nav sensors s2
Services:
• tf/FrameGraph
• cola2 navigation/SetNedOrigin
• cola2 navigation/SetGPS
• std srvs/Empty
3.10
Node /pilot
The pilot node, directed by the captain, publishes position and velocity setpoints to
the position and velocity controllers. Pilot uses move mode.py to compute requests.
Config file:
/cola2 control/config/pilot.yaml
Publishers:
• /absolute movement/result
Nodes subscribed to this topic:
/captain
• /cola2 control/waypoint marker
• /absolute movement/feedback
Nodes subscribed to this topic:
/captain
• /absolute movement/status
Nodes subscribed to this topic:
/captain
• /cola2 control/world waypoint req
Nodes subscribed to this topic:
/merge world waypoint req
17
Software Manual
Version 0.1, Nov. 2013
• /cola2 control/body velocity req
Nodes subscribed to this topic:
/merge body velocity req
Subscribers:
• /absolute movement/goal
Nodes publishing this topic:
/captain
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
• /absolute movement/cancel
Nodes publishing this topic:
/captain
Actionlibs:
• cola2 control/WorldWaypointReqActionResult
3.11
Node /pose controller s2
Position controller of Sparus II AUV.
Config file:
/cola2 control/config/pose controller s2.yaml
Publishers:
• /cola2 control/body velocity req
Nodes subscribed to this topic:
/merge body velocity req
18
Software Manual
Version 0.1, Nov. 2013
Subscribers:
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
• /cola2 control/merged world waypoint req
Nodes publishing this topic:
/merge world waypoint req
3.12
Node /safe depth altitude
This node check AUV depth and altitude, and is mainly used to avoid collisions.
Config file:
/cola2 safety/config/safety s2.yaml
Publishers:
• /cola2 control/body velocity req
Nodes subscribed to this topic:
/merge body velocity req
Subscribers:
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
3.13
Node /safety s2
Safety node is used to check an absolute timeout. More functionalities will be added
in the near future.
19
Software Manual
Version 0.1, Nov. 2013
Config file:
/cola2 safety/config/safety s2.yaml
Publishers:
• /cola2 control/thrusters data
Nodes subscribed to this topic:
/sim actuators s2
• /cola2 safety/total time
3.14
Node /set zero pose
If teleoperation is lost for more than 5 seconds, this node tells the robot to surface.
Config file:
Publishers:
• /cola2 control/world waypoint req
Nodes subscribed to this topic:
/merge world waypoint req
Subscribers:
• /cola2 control/map ack ack
Nodes publishing this topic:
/map ack
3.15
Node /set zero velocity
If the robot is deep enough and teleoperation is giving only disabled setpoints, this
node tells the robot to keep velocities to zero.
20
Software Manual
Version 0.1, Nov. 2013
Config file:
/cola2 safety/config/safety s2.yaml
Publishers:
• /cola2 control/body velocity req
Nodes subscribed to this topic:
/merge body velocity req
Subscribers:
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
3.16
Node /sim actuators s2
This node is used to simulate Sparus II actuators. It is only used in simulation.
Config file:
Publishers:
• /cola2 control/sim fins data
Nodes subscribed to this topic:
/dynamics
• /cola2 control/sim thrusters data
Nodes subscribed to this topic:
/dynamics
Subscribers:
• /cola2 control/thrusters data
Nodes publishing this topic:
/safety s2
21
Software Manual
Version 0.1, Nov. 2013
/thruster allocator
• /cola2 control/fins data
3.17
Node /sim nav sensors s2
This node is used to simulate Sparus II navigation sensors. It is only used in simulation.
Config file:
/cola2 sim/config/sim nav sensors s2.yaml
Publishers:
• /tf
Nodes subscribed to this topic:
/ekf slam
/navigator s2
• /cola2 navigation/imu
Nodes subscribed to this topic:
/navigator s2
• /cola2 navigation/linkquest navquest600 dvl
Nodes subscribed to this topic:
/navigator s2
• /cola2 navigation/fastrax it 500 gps
Nodes subscribed to this topic:
/navigator s2
• /cola2 navigation/pressure sensor
Nodes subscribed to this topic:
/navigator s2
Subscribers:
• /sparus/range
22
Software Manual
Version 0.1, Nov. 2013
• /sparus/ros odom to pat
Nodes publishing this topic:
/dynamics
3.18
Node /teleoperation
This node is subscribed to the map ack output message. It is used to compute position
and velocity setpoints out of the input joy message.
Config file:
/cola2 control/config/teleoperation s2.yaml
Publishers:
• /cola2 control/map ack ok
Nodes subscribed to this topic:
/map ack
• /cola2 control/world waypoint req
Nodes subscribed to this topic:
/merge world waypoint req
• /cola2 control/body velocity req
Nodes subscribed to this topic:
/merge body velocity req
Subscribers:
• /cola2 control/map ack data
Nodes publishing this topic:
/map ack
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
23
Software Manual
Version 0.1, Nov. 2013
• /cola2 control/map ack ack
Nodes publishing this topic:
/map ack
3.19
Node /thruster allocator
This node is used to convert from forces to thruster setpoints.
Config file:
/cola2 control/config/thruster allocator s2.yaml
Publishers:
• /cola2 control/thrusters data
Nodes subscribed to this topic:
/sim actuators s2
• /diagnostics
Subscribers:
• /cola2 control/merged body force req
Nodes publishing this topic:
/merge body force req
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
Services:
• std srvs/Empty
• std srvs/Empty
24
Software Manual
3.20
Version 0.1, Nov. 2013
Node /velocity controller s2
Velocity controller of Sparus II AUV.
Config file:
/cola2 control/config/velocity controller s2.yaml
Publishers:
• /cola2 control/body force req
Nodes subscribed to this topic:
/merge body force req
Subscribers:
• /cola2 control/merged body velocity req
Nodes publishing this topic:
/merge body velocity req
• /cola2 navigation/nav sts
Nodes publishing this topic:
/navigator s2
25
Software Manual
4
Version 0.1, Nov. 2013
Messages
In this section there is a reference about the relationship between messages and other
architecture elements.
4.1
Message file actionlib msgs/GoalID
Nodes using this message file:
• /captain
• /pilot
Message file description:
1
2
time stamp
string id
4.2
Message file actionlib msgs/GoalStatusArray
Nodes using this message file:
• /captain
• /pilot
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
std_msgs / Header header
uint32 seq
time stamp
string frame_id
actionlib_msgs / GoalStatus [] status_list
uint8 PENDING =0
uint8 ACTIVE =1
uint8 PREEMPTED =2
uint8 SUCCEEDED =3
uint8 ABORTED =4
uint8 REJECTED =5
uint8 PREEMPTING =6
uint8 RECALLING =7
uint8 RECALLED =8
uint8 LOST =9
actionlib_msgs / GoalID goal_id
time stamp
string id
uint8 status
string text
26
Software Manual
4.3
Version 0.1, Nov. 2013
Message file auv msgs/BodyForceReq
Nodes using this message file:
• /merge body force req
• /thruster allocator
• /velocity controller s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
std_msgs / Header header
uint32 seq
time stamp
string frame_id
auv_msgs / GoalDescriptor goal
uint32 PRIORITY_LOW =0
uint32 PRIORITY_NORMAL =10
uint32 P R I O R I T Y _ A V O I D _ O B S T A C L E =20
uint32 P RI O R IT Y _E M ER G E NC Y =30
uint32 P R I O R I T Y _ M A N U A L _ O V E R R I D E =40
string requester
uint32 id
uint32 priority
geometry_msgs / Wrench wrench
geometry_msgs / Vector3 force
float64 x
float64 y
float64 z
geometry_msgs / Vector3 torque
float64 x
float64 y
float64 z
auv_msgs / Bool6Axis disable_axis
bool x
bool y
bool z
bool roll
bool pitch
bool yaw
4.4
Message file auv msgs/BodyVelocityReq
Nodes using this message file:
• /merge body velocity req
• /pilot
• /pose controller s2
• /safe depth altitude
• /set zero velocity
• /teleoperation
27
Software Manual
Version 0.1, Nov. 2013
• /velocity controller s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
std_msgs / Header header
uint32 seq
time stamp
string frame_id
auv_msgs / GoalDescriptor goal
uint32 PRIORITY_LOW =0
uint32 PRIORITY_NORMAL =10
uint32 P R I O R I T Y _ A V O I D _ O B S T A C L E =20
uint32 P RI O R IT Y _E M ER G E NC Y =30
uint32 P R I O R I T Y _ M A N U A L _ O V E R R I D E =40
string requester
uint32 id
uint32 priority
geometry_msgs / Twist twist
geometry_msgs / Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs / Vector3 angular
float64 x
float64 y
float64 z
auv_msgs / Bool6Axis disable_axis
bool x
bool y
bool z
bool roll
bool pitch
bool yaw
4.5
Message file auv msgs/NavSts
Nodes using this message file:
• /captain
• /merge world waypoint req
• /navigator s2
• /pilot
• /pose controller s2
• /safe depth altitude
• /set zero velocity
• /teleoperation
• /thruster allocator
• /velocity controller s2
28
Software Manual
Version 0.1, Nov. 2013
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
uint8 STATUS_FAULT =0
uint8 S T A T U S _ L O C A L _ F R A M E _ O K =1
uint8 S T A T U S _ G L O B A L _ F R A M E _ O K =2
uint8 S TA T U S_ P OS I T IO N _O K =3
uint8 S TA T U S_ V EL O C IT Y _O K =4
uint8 S T A T U S _ E S T I M A T I O N _ E R R O R _ O K =8
uint8 STATUS_ALL_OK =15
std_msgs / Header header
uint32 seq
time stamp
string frame_id
auv_msgs / DecimalLatLon global_position
float64 latitude
float64 longitude
auv_msgs / DecimalLatLon origin
float64 latitude
float64 longitude
auv_msgs / NED position
float64 north
float64 east
float64 depth
float32 altitude
geometry_msgs / Point body_velocity
float64 x
float64 y
float64 z
auv_msgs / RPY orientation
float32 roll
float32 pitch
float32 yaw
auv_msgs / RPY orientation_rate
float32 roll
float32 pitch
float32 yaw
auv_msgs / NED po si tio n_ var ia nce
float64 north
float64 east
float64 depth
auv_msgs / RPY o r i e n t a t i o n _ v a r i a n c e
float32 roll
float32 pitch
float32 yaw
uint8 status
4.6
Message file auv msgs/WorldWaypointReq
Nodes using this message file:
• /merge world waypoint req
• /pilot
• /pose controller s2
• /set zero pose
• /teleoperation
Message file description:
1
2
3
4
std_msgs / Header header
uint32 seq
time stamp
string frame_id
29
Software Manual
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Version 0.1, Nov. 2013
auv_msgs / GoalDescriptor goal
uint32 PRIORITY_LOW =0
uint32 PRIORITY_NORMAL =10
uint32 P R I O R I T Y _ A V O I D _ O B S T A C L E =20
uint32 P RI O R IT Y _E M ER G E NC Y =30
uint32 P R I O R I T Y _ M A N U A L _ O V E R R I D E =40
string requester
uint32 id
uint32 priority
bool altitude_mode
auv_msgs / NED position
float64 north
float64 east
float64 depth
float32 altitude
auv_msgs / RPY orientation
float32 roll
float32 pitch
float32 yaw
auv_msgs / Bool6Axis disable_axis
bool x
bool y
bool z
bool roll
bool pitch
bool yaw
geometry_msgs / Vector3 p os i ti o n _t o le r a nc e
float64 x
float64 y
float64 z
auv_msgs / RPY o r i e n t a t i o n _ t o l e r a n c e
float32 roll
float32 pitch
float32 yaw
4.7
Message file cola2 control/Setpoints
Nodes using this message file:
• /dynamics
• /safety s2
• /sim actuators s2
• /thruster allocator
Message file description:
1
2
3
4
5
std_msgs / Header header
uint32 seq
time stamp
string frame_id
float64 [] setpoints
4.8
Message file cola2 control/WorldWaypointReqActionFeedback
Nodes using this message file:
30
Software Manual
Version 0.1, Nov. 2013
• /captain
• /pilot
Message file description:
1
Unknown type message
4.9
Message file cola2 control/WorldWaypointReqActionGoal
Nodes using this message file:
• /captain
• /pilot
Message file description:
1
Unknown type message
4.10
Message file cola2 control/WorldWaypointReqActionResult
Nodes using this message file:
• /captain
• /pilot
Message file description:
1
Unknown type message
31
Software Manual
4.11
Version 0.1, Nov. 2013
Message file cola2 navigation/FastraxIt500Gps
Nodes using this message file:
• /navigator s2
• /sim nav sensors s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
std_msgs / Header header
uint32 seq
time stamp
string frame_id
float64 latitude
int32 l a t i t u d e _ h e m i s p h e r e
float64 longitude
int32 l o n g i t u d e _ h e m i s p h e r e
string time_utc
int32 data_quality
float64 north
float64 east
string utm_zone
float32 h_dop
float32 v_dop
string [] raw_data
4.12
Message file cola2 navigation/LinkquestDvl
Nodes using this message file:
• /navigator s2
• /sim nav sensors s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
std_msgs / Header header
uint32 seq
time stamp
string frame_id
string errCode
int32 [4] dataGood
float64 [4] altitudeBeam
float64 [4] b o t to m Ve l o ci t yB e a m
float64 [4] w ate rV elo ci tyB ea m
float64 [4] w a t e r V e l o c i t y C r e d i t
float64 [3] velocityInst
int32 ve locityInstFlag
float64 [3] velocityEarth
int32 ve loc it yEa rt hFl ag
float64 [3] w ate rV elo ci tyI ns t
int32 w a t e r V e l o c i t y I n s t F l a g
float64 [3] w a t er V el o c it y Ea r t h
int32 w a t e r V e l o c i t y E a r t h F l a g
float64 roll
float64 pitch
float64 heading
float64 altitude
float64 temperature
float64 pressure
float64 salinity
float64 soundSpeed
string rawData
32
Software Manual
4.13
Version 0.1, Nov. 2013
Message file cola2 navigation/PressureSensor
Nodes using this message file:
• /navigator s2
• /sim nav sensors s2
Message file description:
1
2
3
4
5
6
std_msgs / Header header
uint32 seq
time stamp
string frame_id
float64 pressure
float64 temperature
4.14
Message file cola2 safety/MissionStatus
Nodes using this message file:
• /captain
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
std_msgs / Header header
uint32 seq
time stamp
string frame_id
int32 current_wp
int32 total_wp
bool altitude_mode
float64 current_north
float64 current_east
float32 current_depth
float32 current_altitude
float64 wp_north
float64 wp_east
float32 wp _d ept h_ alt it ude
int32 wp _re ma ini ng _ti me
4.15
Message file cola2 safety/NavSensorsStatus
Nodes using this message file:
• /navigator s2
Message file description:
33
Software Manual
1
2
3
4
5
6
7
Version 0.1, Nov. 2013
std_msgs / Header header
uint32 seq
time stamp
string frame_id
bool dvl_status
bool imu_status
bool svs_status
4.16
Message file cola2 safety/TotalTime
Nodes using this message file:
• /safety s2
Message file description:
1
uint32 total_time
4.17
Message file diagnostic msgs/DiagnosticArray
Nodes using this message file:
• /thruster allocator
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
std_msgs / Header header
uint32 seq
time stamp
string frame_id
diagnostic_msgs / Diagno sticStatus [] status
byte OK =0
byte WARN =1
byte ERROR =2
byte level
string name
string message
string hardware_id
diagnostic_msgs / KeyValue [] values
string key
string value
34
Software Manual
4.18
Version 0.1, Nov. 2013
Message file geometry msgs/PoseWithCovarianceStamped
Nodes using this message file:
• /ekf slam
• /navigator s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
std_msgs / Header header
uint32 seq
time stamp
string frame_id
geometry_msgs / P o se W i th C ov a r ia n ce pose
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
float64 [36] covariance
4.19
Message file geometry msgs/TwistWithCovarianceStamped
Nodes using this message file:
• /ekf slam
• /navigator s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
std_msgs / Header header
uint32 seq
time stamp
string frame_id
geometry_msgs / T w i s tW i t h C o v a r i a n c e twist
geometry_msgs / Twist twist
geometry_msgs / Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs / Vector3 angular
float64 x
float64 y
float64 z
float64 [36] covariance
35
Software Manual
4.20
Version 0.1, Nov. 2013
Message file nav msgs/Odometry
Nodes using this message file:
• /dynamics
• /ekf slam
• /navigator s2
• /sim nav sensors s2
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
std_msgs / Header header
uint32 seq
time stamp
string frame_id
string child_frame_id
geometry_msgs / P o se W i th C ov a r ia n ce pose
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
float64 [36] covariance
geometry_msgs / T w i s tW i t h C o v a r i a n c e twist
geometry_msgs / Twist twist
geometry_msgs / Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs / Vector3 angular
float64 x
float64 y
float64 z
float64 [36] covariance
4.21
Message file nav msgs/Path
Nodes using this message file:
• /captain
Message file description:
1
2
3
4
5
6
7
8
std_msgs / Header header
uint32 seq
time stamp
string frame_id
geometry_msgs / PoseStamped [] poses
std_msgs / Header header
uint32 seq
time stamp
36
Software Manual
9
10
11
12
13
14
15
16
17
18
19
Version 0.1, Nov. 2013
string frame_id
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
4.22
Message file pose ekf slam/Map
Nodes using this message file:
• /ekf slam
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std_msgs / Header header
uint32 seq
time stamp
string frame_id
pose_ekf_slam / Landmark [] landmark
time last_update
string landmark_id
geometry_msgs / P o se W it h C ov a ri a n ce pose
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
float64 [36] covariance
4.23
Message file sensor msgs/Imu
Nodes using this message file:
• /ekf slam
• /navigator s2
• /sim nav sensors s2
Message file description:
37
Software Manual
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Version 0.1, Nov. 2013
std_msgs / Header header
uint32 seq
time stamp
string frame_id
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
float64 [9] o r i e n t a t i o n _ c o v a r i a n c e
geometry_msgs / Vector3 angula r_velocity
float64 x
float64 y
float64 z
float64 [9] a n g u l a r _ v e l o c i t y _ c o v a r i a n c e
geometry_msgs / Vector3 l i n e a r _ a c c e l e r a t i o n
float64 x
float64 y
float64 z
float64 [9] l i n e a r _ a c c e l e r a t i o n _ c o v a r i a n c e
4.24
Message file sensor msgs/Joy
Nodes using this message file:
• /keyboard
• /map ack
• /teleoperation
Message file description:
1
2
3
4
5
6
std_msgs / Header header
uint32 seq
time stamp
string frame_id
float32 [] axes
int32 [] buttons
4.25
Message file sensor msgs/Range
Nodes using this message file:
• /sim nav sensors s2
Message file description:
38
Software Manual
1
2
3
4
5
6
7
8
9
10
11
Version 0.1, Nov. 2013
uint8 ULTRASOUND =0
uint8 INFRARED =1
std_msgs / Header header
uint32 seq
time stamp
string frame_id
uint8 radiation_type
float32 field_of_view
float32 min_range
float32 max_range
float32 range
4.26
Message file std msgs/String
Nodes using this message file:
• /map ack
• /set zero pose
• /teleoperation
Message file description:
1
string data
4.27
Message file tf/tfMessage
Nodes using this message file:
• /dynamics
• /ekf slam
• /navigator s2
• /sim nav sensors s2
Message file description:
1
2
3
4
5
6
7
8
geometry_msgs / TransformStamped [] transforms
std_msgs / Header header
uint32 seq
time stamp
string frame_id
string child_frame_id
geometry_msgs / Transform transform
geometry_msgs / Vector3 translation
39
Software Manual
9
10
11
12
13
14
15
16
Version 0.1, Nov. 2013
float64 x
float64 y
float64 z
geometry_msgs / Quaternion rotation
float64 x
float64 y
float64 z
float64 w
4.28
Message file visualization msgs/MarkerArray
Nodes using this message file:
• /ekf slam
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
v is u a li z at i o n_ m sg s / Marker [] markers
uint8 ARROW =0
uint8 CUBE =1
uint8 SPHERE =2
uint8 CYLINDER =3
uint8 LINE_STRIP =4
uint8 LINE_LIST =5
uint8 CUBE_LIST =6
uint8 SPHERE_LIST =7
uint8 POINTS =8
uint8 T EXT_VIEW_FACING =9
uint8 MESH_RESOURCE =10
uint8 TRIANGLE_LIST =11
uint8 ADD =0
uint8 MODIFY =0
uint8 DELETE =2
std_msgs / Header header
uint32 seq
time stamp
string frame_id
string ns
int32 id
int32 type
int32 action
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
geometry_msgs / Vector3 scale
float64 x
float64 y
float64 z
std_msgs / ColorRGBA color
float32 r
float32 g
float32 b
float32 a
duration lifetime
bool frame_locked
geometry_msgs / Point [] points
float64 x
float64 y
float64 z
std_msgs / ColorRGBA [] colors
float32 r
float32 g
float32 b
float32 a
string text
40
Software Manual
56
57
Version 0.1, Nov. 2013
string mesh_resource
bool m e s h _ u s e _ e m b e d d e d _ m a t e r i a l s
4.29
Message file visualization msgs/Marker
Nodes using this message file:
• /ekf slam
• /pilot
Message file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
uint8 ARROW =0
uint8 CUBE =1
uint8 SPHERE =2
uint8 CYLINDER =3
uint8 LINE_STRIP =4
uint8 LINE_LIST =5
uint8 CUBE_LIST =6
uint8 SPHERE_LIST =7
uint8 POINTS =8
uint8 TE XT_VIEW_FACING =9
uint8 MESH_RESOURCE =10
uint8 TRIANGLE_LIST =11
uint8 ADD =0
uint8 MODIFY =0
uint8 DELETE =2
std_msgs / Header header
uint32 seq
time stamp
string frame_id
string ns
int32 id
int32 type
int32 action
geometry_msgs / Pose pose
geometry_msgs / Point position
float64 x
float64 y
float64 z
geometry_msgs / Quaternion orientation
float64 x
float64 y
float64 z
float64 w
geometry_msgs / Vector3 scale
float64 x
float64 y
float64 z
std_msgs / ColorRGBA color
float32 r
float32 g
float32 b
float32 a
duration lifetime
bool frame_locked
geometry_msgs / Point [] points
float64 x
float64 y
float64 z
std_msgs / ColorRGBA [] colors
float32 r
float32 g
float32 b
float32 a
string text
string mesh_resource
bool m e s h _ u s e _ e m b e d d e d _ m a t e r i a l s
41
Software Manual
5
Version 0.1, Nov. 2013
Services
In this section there is a reference about the relationship between services and other
architecture elements.
5.1
Service file cola2 control/Goto
Nodes using this service file:
• /captain
Service input params:
float64 north lat float64 east lon float32 z bool altitude mode float32 tolerance
Service output params:
bool attempted
5.2
Service file cola2 control/String
Nodes using this service file:
• /captain
Service input params:
string mystring
Service output params:
5.3
Service file cola2 navigation/SetGPS
Nodes using this service file:
• /navigator s2
Service input params:
42
Software Manual
Version 0.1, Nov. 2013
Service output params:
string success
5.4
Service file cola2 navigation/SetNedOrigin
Nodes using this service file:
• /navigator s2
Service input params:
float64 latitude float64 longitude
Service output params:
bool success
5.5
Service file cola2 safety/Submerge
Nodes using this service file:
• /captain
Service input params:
float32 z bool altitude mode
Service output params:
bool attempted
5.6
Service file pose ekf slam/SetLandmark
Nodes using this service file:
• /ekf slam
43
Software Manual
Version 0.1, Nov. 2013
Service input params:
geometry msgs/PoseWithCovariance landmark geometry msgs/Pose pose geometry msgs/Point
position float64 x float64 y float64 z geometry msgs/Quaternion orientation float64 x
float64 y float64 z float64 w float64[36] covariance string topic name
Service output params:
5.7
Service file pose ekf slam/SetPosition
Nodes using this service file:
• /ekf slam
Service input params:
geometry msgs/Point position float64 x float64 y float64 z
Service output params:
5.8
Service file std srvs/Empty
Nodes using this service file:
• /captain
• /navigator s2
• /thruster allocator
Service input params:
Service output params:
44
Software Manual
5.9
Version 0.1, Nov. 2013
Service file tf/FrameGraph
Nodes using this service file:
• /ekf slam
• /navigator s2
Service input params:
Service output params:
string dot graph
45
Software Manual
6
Version 0.1, Nov. 2013
Config files
In this section there is a reference about the configuration files used in COLA2 architecture to define how Sparus II AUV behaves.
6.1
Config file /cola2 control/config/map ack s2.yaml
Nodes using this configuration file:
• /map ack
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# map_akt . py config file
map_ack / rate : 10.0
map_ack / n_output_axes : 12
map_ack / n _output_buttons : 15
map_ack / n _shadow_buttons : 26
# Up to 5 devices
map_ack / slotA : [ ’ joystick ’ , ’/ joy ’]
map_ack / slotB : [ ’ keyboard ’ , ’/ cola2_control / keyboard_data ’]
map_ack / slotC : [ ’ ’ , ’ ’]
map_ack / slotD : [ ’ ’ , ’ ’]
map_ack / slotE : [ ’ ’ , ’ ’]
map_ack / s h a d o w _ b u t t o n s _ t o _ o u t p u t _ b u t t o n s :
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
# Joystick device
map_ack / joystick / n_axes : 8
map_ack / joystick / n_buttons : 11
map_ack / joystick / a x e s _ t o _ o u t p u t _ a x e s :
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , -0.5 , 0 , 0 , 0.5 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 1.0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0,
0 , -1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
-1 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
map_ack / joystick / a x e s _ t o _ s h a d o w _ b u t t o n s :
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , -1 , 0 ,
0, 0, 0, 0, 0, 0, 1, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , -1 ,
0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
46
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1]
Software Manual
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
Version 0.1, Nov. 2013
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0]
map_ack / joystick / b u t t o n s _ t o _ s h a d o w _ b u t t o n s :
[1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
map_ack / joystick / s h a d o w _ b u t t o n s _ t o _ o u t p u t _ a x e s :
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0.05 , -0.05 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0.125 , -0.125 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
# Keyboard device
map_ack / keyboard / n_axes : 0
map_ack / keyboard / n_buttons : 17
map_ack / keyboard / a x e s _ t o _ o u t p u t _ a x e s : []
map_ack / keyboard / a x e s _ t o _ s h a d o w _ b u t t o n s : []
map_ack / keyboard / b u t t o n s _ t o _ s h a d o w _ b u t t o n s :
[1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
47
Software Manual
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
Version 0.1, Nov. 2013
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
map_ack / keyboard / s h a d o w _ b u t t o n s _ t o _ o u t p u t _ a x e s :
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , -0.05 , 0.05 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , -0.125 , 0.125 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0.1 , -0.1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , -0.1 , 0.1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , -0.1 , 0.1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
6.2
Config file /cola2 control/config/merge s2.yaml
Nodes using this configuration file:
• /merge body force req
• /merge body velocity req
• /merge world waypoint req
Config file description:
1
2
3
# SPARUS2 CONFIG FILE FOR ALL MERGE NODES
merge / rate : 10
merge / frame_id : " sparus2 "
6.3
Config file /cola2 control/config/pilot.yaml
Nodes using this configuration file:
• /pilot
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
# Pose PID per DoF
pilot / p i d _ x _ z _ y a w _ f e e d _ f o r w a r d _ f o r c e :
pilot / pid_x_z_yaw_kp : [0.2 , 0.0 , 0.3 ,
pilot / pid_x_z_yaw_ti : [0.0 , 0.0 , 0.0 ,
pilot / pid_x_z_yaw_td : [0.2 , 0.0 , 0.0 ,
[0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
0.0 , 0.0 , 0.8]
0.0 , 0.0 , 0.0]
0.0 , 0.0 , 0.3]
pilot / p i d _ x _ y _ z _ y a w _ f e e d _ f o r w a r d _ f o r c e :
pilot / pid_x_ y_z_yaw_kp : [1.0 , 1.0 , 0.5 ,
pilot / pid_x_ y_z_yaw_ti : [0.0 , 0.0 , 0.0 ,
pilot / pid_x_ y_z_yaw_td : [0.2 , 0.2 , 0.1 ,
[0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
0.0 , 0.0 , 0.8]
0.0 , 0.0 , 0.0]
0.0 , 0.0 , 0.3]
pilot / r e l a t i v e _ p i d _ x _ y _ z _ y a w _ f e e d _ f o r w a r d _ f o r c e : [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
48
Software Manual
13
14
15
16
17
18
19
Version 0.1, Nov. 2013
pilot / r e l a t i v e _ p i d _ x _ y _ z _ y a w _ k p : [0.2 , 0.2 , 0.2 , 0.0 , 0.0 , 0.4]
pilot / r e l a t i v e _ p i d _ x _ y _ z _ y a w _ t i : [8.0 , 8.0 , 8.0 , 0.0 , 0.0 , 8.0]
pilot / r e l a t i v e _ p i d _ x _ y _ z _ y a w _ t d : [0.1 , 0.1 , 0.1 , 0.0 , 0.0 , 0.1]
# pilot / max_velocity : [0.5 , 0.2 , 0.5 , 0.0 , 0.0 , 0.3] # --> check b a s i c _ m i s s i o n _ p a r a m e t e r s . yaml
pilot / min_ve locity_los : [0.2 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
pilot / max_angle_error : 0.3
6.4
Config file /cola2 control/config/pose controller s2.yaml
Nodes using this configuration file:
• /pose controller s2
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# SPARUS 2 POSE controller config file
# Per DoF [X , Y , Z , Roll , Pitch , Yaw ]
pose_controller / velocity_max : [0.0 , 0.0 , 0.5 , 0.0 , 1.0 , 0.3]
pose_controller / s t a r t _ d e p t h _ w i t h _ f i n s _ v e l o c i t y : 2.0
pose_controller / max_pitch : 0.5
pose_controller / surface_zone : 0.5
# Velocity PID per DoF
pose_controller / p i d _ p o s e _ f e e d _ f o r w a r d _ v e l o c i t y : [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
pose_controller / pid_pose_kp : [0.0 , 0.0 , 1.0 , 0.0 , 1.0 , 1.5]
pose_controller / pid_pose_ti : [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
pose_controller / pid_pose_td : [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
pose_controller / pid_po se_i_limit : [1.0 , 1.0 , 0.75 , 1.0 , 1.0 , 0.1]
pose_controller / p i d _ d e p t h _ w i t h _ f i n s _ k p : -0.5
pose_controller / p i d _ d e p t h _ w i t h _ f i n s _ t i : -0.07
pose_controller / p i d _ d e p t h _ w i t h _ f i n s _ t d : -0.2
6.5
Config file /cola2 control/config/teleoperation s2.yaml
Nodes using this configuration file:
• /teleoperation
Config file description:
1
2
3
4
5
6
7
8
# teleoperation . py config file
teleoperation / max_pos : [0.0 , 0.0 , 5.0 , 3.14159265359 , 1.0 , 3.14159265359]
teleoperation / min_pos : [0.0 , 0.0 , 0.0 , -3.14159265359 , -1.0 , -3.14159265359]
teleoperation / max_vel : [1.0 , 0.0 , 0.4 , 0.0 , 1.0 , 0.4]
teleoperation / min_vel : [ -1.0 , 0.0 , -0.4 , 0.0 , -1.0 , -0.4]
teleoperation / p o s e _ c o n t r o l l e d _ a x i s : [ False , False , False , False , False , False ]
teleoperation / base_pose : [0 , 0 , 0 , 0 , 0 , 0]
teleoperation / a c t u al i z e _ b a s e _ p o s e : False
49
Software Manual
6.6
Version 0.1, Nov. 2013
Config file /cola2 control/config/thruster allocator s2.yaml
Nodes using this configuration file:
• /thruster allocator
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
# SPARUS 2 thruster allocator config file
t hr u s te r _a l l oc a to r / frame_id : " sparus2 "
t hr u s te r _a l l oc a to r / n_thrusters : 3
t hr u s te r _a l l oc a to r / m a x _ f o r c e _ s u r g e _ p l u s _ y a w : 60.0
t hr u s te r _a l l oc a to r / f o r c e _ t o _ t h r u s t e r s _ r a t i o : 30.0
t hr u s te r _a l l oc a to r / max_setpoint : 1.0
# To linearize the actuators output a polynomial is applied 3 0 * 0 . 1 8 2 5 7 4 1 8 5 9 8 = 5 . 4 7 7 2 2 5 5 7 9 4 with 0.5 ( sqrt )
t hr u s te r _a l l oc a to r / t h r u s t e r s _ p o l y n o m i a l _ l i n e a r i z a t i o n : [0.0 , 1.0]
t hr u s te r _a l l oc a to r / t h r u s t e r s _ p o l y n o m i a l _ l i n e a r i z a t i o n _ e x p : [0.0 , 1.0]
# Dof x actuators
t hr u s te r _a l l oc a to r / t h r u s t e r _ c o n t r o l _ m a t r i x : [[0.0 , 1.0 , 1.0] ,[0.0 , 0.0 , 0.0] ,[1.0 , 0.0 , 0.0] ,[0.0 , 0.0 , 0.0] ,[0.0 ,
0.0 , 0.0] ,[0.0 , -0.16 , 0.16]]
6.7
Config file /cola2 control/config/velocity controller s2.yaml
Nodes using this configuration file:
• /velocity controller s2
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# SPARUS 2 velocity controller config file
# Per DoF [X , Y , Z , Roll , Pitch , Yaw ]
v e l o c i t y _ c o n t r o l l e r / force_max : [30.0 , 0.0 , 30.0 , 0.0 , 30.0 , 60.0]
# Velocity PID per DoF
velocity_controller / pid_velocity_feed_forward_force :
v e l o c i t y _ c o n t r o l l e r / pid_velocity_kp : [0.5 , 0.0 , 2.0 ,
v e l o c i t y _ c o n t r o l l e r / pid_velocity_ti : [4.0 , 0.0 , 7.0 ,
v e l o c i t y _ c o n t r o l l e r / pid_velocity_td : [0.0 , 0.0 , 0.5 ,
v e l o c i t y _ c o n t r o l l e r / p i d _ v e l o c i t y _ i _ l i m i t : [1.0 , 1.0 ,
[0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
0.0 , 1.0 , 0.2]
0.0 , 0.0 , 10.0]
0.0 , 0.0 , 0.0]
1.0 , 1.0 , 1.0 , 1.0]
# Open loop controller . It adjust the desired velocity for each Dof using a polynomi . Ex . [0.1 , -1.2 , 2.0] = > y =
0.1* x ˆ2 -1.2* x + 2.0
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ x : [0.0 , 0.0]
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ y : [0.0 , 0.0]
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ z : [0.0 , 0.0]
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ r o l l : [0.0 , 0.0]
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ p i t c h : [0.0 , 0.0]
v e l o c i t y _ c o n t r o l l e r / o p e n _ l o o p _ a d j u s t _ p o l y _ y a w : [0.0 , 0.0]
6.8
Config file /cola2 navigation/config/navigator s2.yaml
Nodes using this configuration file:
50
Software Manual
Version 0.1, Nov. 2013
• /navigator s2
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# SPARUS2 NAVIGATOR CONFIG
# Frames
navigator / ro bot_frame_name : " sparus2 "
navigator / wo rld_frame_name : " world "
# DVL parameter used for filtering purposes
navigator / dvl_max_v : 3.0
# Depth sensor correction . This value is added to the depth
navigator / de pth_correction : 0.0
navigator / water_density : 1030
# GPS parameters
navigator / gps_update : false
navigator / gp s_init_samples : 8
# Check sensors parameters
navigator / c h e c k _ s e n s o r s _ p e r i o d : 2.0
navigator / d v l _ m a x _ p e r i o d _ e r r o r : 1.0
navigator / i m u _ m a x _ p e r i o d _ e r r o r : 1.0
navigator / max_init_time : 25.0
# NED parameters
navigator / fixed_ned : true
navigator / ned_latitude : 43.105805
navigator / ned_longitude : 5.884812
6.9
Config file /cola2 safety/config/safety s2.yaml
Nodes using this configuration file:
• /safe depth altitude
• /safety s2
• /set zero velocity
Config file description:
1
2
3
4
5
6
safety_s2 / ab solute_timeout : 3600
safety_s2 / emerge : False
s a f e t y _ s a f e _ d e p t h _ a l t i t u d e / max_depth : 10.0
s a f e t y _ s a f e _ d e p t h _ a l t i t u d e / min_altitude : 2.5
s a f e t y _ s e t _ z e r o _ v e l o c i t y / s e t _ z e r o _ v e l o c i t y _ d e p t h : 1.5
s a f e t y _ s e t _ z e r o _ v e l o c i t y / s e t _ z e r o _ v e l o c i t y _ a x i s : [[ False , True , True , True , True , True ] ,[ True , False , True , True ,
True , True ] , [ True , True , False , True , True , True ] , [ True , True , True , False , True , True ] , [ True , True , True ,
True , False , True ] , [ True , True , True , True , True , False ]]
51
Software Manual
6.10
Version 0.1, Nov. 2013
Config file /cola2 sim/config/dynamics s2.yaml
Nodes using this configuration file:
• /dynamics
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# sparus2 dynamics model
# WARNING !!!
# The thrusters allocation matrix " b " is defined in the code . It can not be changed using parameters .
vehicle_name : " sparus2 "
dynamics / sparus2 / n u m b e r _ o f _ t h r u st e r s : 3
dynamics / sparus2 / thrusters_topic : "/ cola2_control / si m _t h r us t er s _d a t a "
dynamics / sparus2 / number_of_fins : 1
dynamics / sparus2 / fins_topic : "/ cola2_control / sim_fins_data "
dynamics / sparus2 / a_fins : 0.035
dynamics / sparus2 / k_fins : 1.0
dynamics / sparus2 / max_fins_angle : 1.0
dynamics / sparus2 / period : 0.05
dynamics / sparus2 / mass : 34.5
dynamics / sparus2 / gravity_center : [0.0 , 0.0 , 0.01]
dynamics / sparus2 / g : 9.81
dynamics / sparus2 / radius : 0.2009312118
dynamics / sparus2 / surface_radius : 0.4
# Forward and backward thrusters coef 0.000020833333
dynamics / sparus2 / ctf : 0.000020833333
dynamics / sparus2 / ctb : 0.000020833333
dynamics / sparus2 / ma x_ thr us ter s_ rpm : 1200
dynamics / sparus2 / dzv : 0.05
dynamics / sparus2 / dv : 0.05
dynamics / sparus2 / dh : 0.40
dynamics / sparus2 / density : 1030.0
dynamics / sparus2 / thrusters_matrix : [[0.0 , 1.0 , 1.0] ,[0.0 , 0.0 , 0.0] ,[1.0 , 0.0 , 0.0] ,[0.0 , 0.0 , 0.0] ,[0.0 , 0.0 ,
0.0] ,[0.0 , -0.16 , 0.16]]
# [0.1337 , 0.0 , 0.0 , 0.0 , 1.6643 , 0.0 , 0.0 , 0.0 , 1.6643]
dynamics / sparus2 / tensor : [0.7 , 0.0 , 0.0 , 0.0 , 8.0 , 0.0 , 0.0 , 0.0 , 8.0]
dynamics / sparus2 / damping : [ -20.0 , -60.0 , -60.0 , -1.0 , -8.0 , -8.0]
dynamics / sparus2 / qu ad rat ic _da mp ing : [ -30.0 , -60.0 , -60.0 , 0.0 , -10.0 , -10.0]
# Meters and Rads [X , Y , Z , Roll , Pitch , Yaw ]
dynamics / sparus2 / initial_pose : [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0]
dynamics / sparus2 / initial_velocity : [0 , 0 , 0 , 0 , 0 , 0]
dynamics / sparus2 / odom_topic_name : "/ sparus / ros_odom_to_pat "
dynamics / sparus2 / frame_id : " sparus 2_dynamics "
dynamics / sparus2 / world_frame_id : " world "
# Collisions from UWSim . Let it empty if not available
dynamics / sparus2 / u w s i m _ c o n t a c t _ s e n s o r : ""
# WATER CURRENTs SIMULATION
dynamics / current_mean : [0.00 , 0.1 , 0]
dynamics / current_sigma : [0.01 , 0.01 , 0.01]
dynamics / current_min : [ -0.0 , -0.0 , -0.0]
dynamics / current_max : [0.0 , 0.0 , 0.0]
6.11
Config file /cola2 sim/config/sim nav sensors s2.yaml
Nodes using this configuration file:
• /sim nav sensors s2
52
Software Manual
Version 0.1, Nov. 2013
Config file description:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Sensors information
dynamics / sparus2 / n e d _ o r i g i n _ l a t it u d e : 41.967283
dynamics / sparus2 / n e d _ o r i g i n _ l o n g i t u d e : 2.836075
# Sant Feliu (41.78077 , 3.04748)
# Piscina (41.967283 , 2.836075)
# Transformation wrt vehicle
adis_imu / tf : [0.0 , 0.0 , 0.0 ,
linkquest_dvl / tf : [0.0 , 0.0 ,
gps / tf : [0.0 , 0.0 , 0.0 , 0.0 ,
frame : [x , y , z , roll , pitch , yaw ] ( in meters and degrees !!!)
0.0 , 0.0 , 0.0]
0.0 , 0.0 , 0.0 , 0.0]
0.0 , 0.0]
# Sensors publication periods
adis_imu / period : 0.05
linkquest_dvl / period : 0.2
gps / period : 1.0
# Sensors covariances
adis_imu / o r i e n t a t i o n _ c o v a r i a n c e : [0.0001 , 0.0001 , 0.0001]
linkquest_dvl / v e l o ci t y _ c o v a r i a n c e : [0.0015 , 0.0015 , 0.0015]
gps / p o s i t i o n _ c o v a r i a n c e : [0.5 , 0.5] # Not computed !!!
dynamics / sparus2 / a l t i t u d e _ r a n g e _ t o p i c _ n a m e : "/ sparus / range "
53
# Not computed !!!