These guidelines are aimed to help people get access to RAS systems and encourage alignment of interfaces between projects/modules.
Quick links:
Vessels
- 10x Delfia (0.38x0.18m) duo azimuth
- 7x Tito Neri (0.98x0.33m) dua aft azimuth + bow thruster
- 1x Grey seabax (1.37x0.29m) 2 aft azimuth + 2 propeller coupled stern azimuth
Common experimental locations:
- Flume tank (~ 3.0x5.0m - needs to be verified). Current settable up to ~0.4m/s. Covered with Optitrack motion tracking system
- Small towing tank (~2.8x80.0m) of which 40m is covererd with Optitrack cameras
- Tabletop lab tank (1.28x0.79m), Covered with optitrack cameras.
- <in development> 4.0x3.5x1.5high lab tank in RAS basement. Will have transparent windows, optitrack coverage and likely underwater localisation system.
- Pond in front of faculty. Tito-Neris can be conveniently launched through windowside with dedicated crane.
There is a wide range of other equipment available that is not listed here or standard mounted on a vessel, such as particular sensors and computers. Ask technicians if you are looking for something in particular, as we might have what you need.
we offer a variety of repositories that cater to researchers and projects. Our design philosophy centers around creating reusable software components for future projects. To ensure ease of use for upcoming projects, we organize these software components into different topics. Our repositories consist of two main types: basic building blocks and those designed for specific use cases. The distinction between the two ensures clarity and easy identification of the functionalities.
These are common software modules doing basic operations fundamental for reliable vessel operation. While they may not be of direct interest to regular researchers, they play a crucial role in the smooth functioning of the system. Examples of such modules include:
- Bridges between sensors and ROS (Robot Operating System)
- Low level actuator controls
- VPN services for secure communication
- Remote control abilities
- Ship diagnostics for monitoring and maintenance purposes
Some software components are tailored for specific subjects or applications. These components are bundled together in dedicated packages for easy access and usage. Examples of such packages include:
- Waypoint following demonstration for path planning and navigation
- Formation control system 1, which includes heading and distance keeping approaches (ref), ideal for formations of vessels
- MT44000 Mechatronics course software, catering to the specific needs of the Mechatronics course.
An overview of available modules can be found here
The table below shows identifiers are used for our vessels. These names are commonly used when something needs to refer to a specific ship, such as ROS topics.
Model | Description | Identifier |
---|---|---|
TitoNeri | Light-blue Tito Neri | RAS_TN_LB |
TitoNeri | Dark-blue Tito Neri | RAS_TN_DB |
TitoNeri | Red Tito Neri | RAS_TN_RE |
TitoNeri | Yellow Tito Neri | RAS_TN_YE |
TitoNeri | Purple Tito Neri | RAS_TN_PU |
TitoNeri | Green Tito Neri | RAS_TN_GR |
TitoNeri | Orange Tito Neri | RAS_TN_OR |
GreySeabax | The Grey-seabax | RAS_GS |
Delfia-1* | Delfia 1 | RAS_DF_1 |
Delfia-1* | Delfia 2 | RAS_DF_2 |
Delfia-1* | Delfia 3 | RAS_DF_3 |
Delfia-1* | Delfia 4 | RAS_DF_4 |
Delfia-1* | Delfia 5 | RAS_DF_5 |
To have modules easily swappable and connectable, the following default messagetypes and namespacing are suggested. 'vesselID' refers to the Identifier of a particular vessel as described in the previous section.
Old namespace convention: (pre 2023)
Topicname | Description | Messagetype | Default unit(s) |
---|---|---|---|
/vesselID/u_ref | Reference/desired Actuator state | std_msgs/Float32MultiArray* | (see below ) |
/vesselID/u_est | Measured actuator state | std_msgs/Float32MultiArray | identical to /vesselID/u_ref |
OptiRAS/vesselID | Estimated pose | std_msgs/pose | meters,quaternions |
/vesselID/geopos_est | Estimated/measured global position | sensor_msgs/NavSatFix | degrees (latitude, longitude), meters (altitude) |
/vesselID/heading_est | Estimated/measured yaw | std_msgs/Float32 | radians (clockwise from above w.r.t. north) |
/vesselID/heading_ref | Reference/desired yaw | std_msgs/Float32 | radians (clockwise from above w.r.t. north) |
/vesselID/telemetry | microcontroller state / telemetry | std_msgs/Float32MultiArray* | various (see below ) |
Updated namespaces (we will migrate tho this throughout 2023)
Topicname | Description | Messagetype | Default unit(s) |
---|---|---|---|
/vesselID/state/actuation | Measured actuator state | std_msgs/Float32MultiArray | (see below |
/vesselID/reference/actuation | Reference/desired Actuator state | std_msgs/Float32MultiArray* | (see below ) |
/vesselID/reference/actuation_prio | Override actuation reference, commonly for emergency | std_msgs/Float32MultiArray* | (see below ) |
/vesselID/state/pose_local | Estimated/measured pose w.r.t. local coordinate system | geometry_msgs/Pose | meters,quaternions |
/vesselID/reference/pose_local | Reference/desired pose w.r.t. local coordinate system | geometry_msgs/Pose | meters,quaternions |
/vesselID/state/geopos | Estimated/measured global position | sensor_msgs/NavSatFix | degrees (latitude, longitude), meters (altitude) |
/vesselID/reference/geopos | Reference/desired global position | sensor_msgs/NavSatFix | degrees (latitude, longitude), meters (altitude) |
/vesselID/state/yaw | Estimated/measured yaw | std_msgs/Float32 | radians (clockwise from above w.r.t. north) |
/vesselID/reference/yaw | Reference/desired yaw | std_msgs/Float32 | radians (clockwise from above w.r.t. north) |
/vesselID/state/actuator_forces | current forces/torques applied to ship in CO | geometry_msgs/Wrench | Newton (linear), Newton*meter (angular) |
/vesselID/reference/actuator_forces | desired forces/torques applied to ship in CO | geometry_msgs/Wrench | Newton (linear), Newton*meter (angular) |
/vesselID/state/velocity | measured/estimated velocities of CO in body fixed coordinate system | geometry_msgs/Twist | m/s (linear), rad/s (angular) |
/vesselID/reference/velocity | desired velocities of CO in body fixed coordinate system | geometry_msgs/Twist | m/s (linear), rad/s (angular) |
Delfia-1* actuation array is as follows:
Index | Content | Unit |
---|---|---|
0 | Rear propeller velocity | RPS |
1 | Front propeller velocity | RPS |
2 | Angle rear azimuth | Radians |
3 | Angle front azimuth | Radians |
For the Tito Neri the actuation array is defined as
Index | Content | Unit |
---|---|---|
0 | Aft portside propeller velocity | RPM |
1 | Aft starboardside propeller velocity | RPM |
2 | Bow thruster velocity | Normalized between -1.0 and +1.0 |
3 | Aft portside azimuth angle | Radians |
4 | Aft portside azimuth angle | Radians |
For the Tito Neri the telemetry array is defined as:
Index | Content | Unit |
---|---|---|
0 | dcmotor_P_reference | RPM |
1 | dcmotor_SB_reference | RPM |
2 | output_BOW | float, normalized on range -1.0:1.0) |
3 | reference_Angle_P | deg |
4 | reference_Angle_SB | deg |
5 | dcmotor_P_estimated | RPM |
6 | dcmotor_SB_estimated | RPM |
7 | dcmotorPID_P_Output | normalized on 8 bit reslution 0-255 |
8 | dcmotorPID_SB_Output | normalized on 8 bit reslution 0-255 |
9 | arduinoInternalClock | ms |
10 | IMU_accell_x | m/s/s |
11 | IMU_accell_y | m/s/s |
12 | IMU_accell_z | m/s/s |
13 | IMU_gyro_x | rad/s |
14 | IMU_gyro_y | rad/s |
15 | IMU_gyro_z | rad/s |
16 | IMU_magneto_x | uT |
17 | IMU_magneto_y | uT |
18 | IMU_magneto_z | uT |
19 | motor_ESC_SignalOut_P | 1200-1800Hz |
20 | motor_ESC_SignalOut_SB | 1200-1800Hz |
Various basins are equipped with systems that can find and stream state of rigid bodies, such as the Optitrack systems. This section explains in what coordinate system you can expect data to be streamed on ROS with our default system.
The coordinate system of the optitrack system on the tiny lab tank is defined as follows:
Note that Z does not point down (as in line with the marine standard NED definition). If this is desired, coordinate system transformation can be done by the user.
Arrows the the figure above denote positive values. Note that Z does not point down (as in line with the marine standard NED definition). If this is desired, coordinate system transformation can be done by the user.