Luis A. Mateos

The tubular garage is commonly shaped as a cone or funnel, which helps minimizing the level of precision required to dock the AUV by increasing the target size. In this way, the vehicle approaches the funnel entrance, while misalignments are mechanically corrected [15] [16] [14].

Infrared guiding 3D model (left). Exploded view (right).


The latching system considers two cases: when a roboat is latching to a docking station and when a roboat is connecting to another roboat. It is important to define these cases, because when latching to a dock, we don’t want that the components on the dock require power. We expect passive elements that do not require maintenance, nor conections for power in any means. On the other hand, when putting together two roboats, both components can be powered for integrating sensors and actuators in order to help with the latching of the two floating robotics platforms.

In this framework, there are three connecting components:
1) Passive Ball (male): The passive male part is used only on docks, it consists of a central axis covered with a 3D printed protective rubber as a damping element and a ball on the frontedge. The pins also integrate a floating device to maintain their position with respect to the water level, to be in the same level as the floating robotic boats.
2) Active Ball (male): The active male part is integrated on the roboats and can be extended or contracted with a linear actuator when reaching for the connection on other roboats. This actuation is required for adding roboats into an already formed floating platform.
3) Socket (female): The female part consists of a funnel to guide the male ball into an actuated receptor that traps the ball, creating the spherical joint between the parts. The receptor consists of three arms that are guided by a disk, enabling the actuation of the arms with only one servomotor. The ball’s socket is created when the arms are closed and when opened the arms release the trapped bearing stud. This receptor integrates an electric system, similar to the security systems in which a laser beam activates an alarm. In our case, the laser beam is crossing the open socket to detect if the ball is inside the socket space. So when the laser is blocked by the ball it reacts by rotating the disk, closing the socket and trapping the ball, creating the spherical joint.
4) Passive markers: The roboats are required to dock in the Amsterdam canals, which are a historical heritage site. Thus, our methodology should be minimally invasive to the canal walls and should not integrate any active tags that require a power supply (i.e. lamp, infrared.). For this reason, we propose the apriltags method for guiding the roboats to docking stations. These tags offer a good framework for detection and identification, plus can be customized [19]. Moreover, the apriltags on the dock side can be made of tiles or stone to be less invasive.

Latching process. a) The male pin finds the female socket. b) The position misaligments are compensated mechanically by the funnel. c) The pin is inside the funnel and the ball drives the ”push - lock” mechanism. d) The pin is trapped while moving into the socket. e) Spherical joint between the parts.


The funnel for the docking stage can be scaled up (resized on one or both axis) to fit the guiding system tolerances and working environment disturbances affecting the positioning of the roboat. The current version requires high precision positioning (≤40mm), was prototyped to proof the concept of connectivity in indoors and outdoors.

Funnel actuation.

The Funnel compensates in the X axis the guiding controller misalignment and in the Y axis the difference in waves height between the male part and the female part.

The maximun angle the roboats can overcome from water disturbances is determined by the size of the funnel and the 3D printed pin protection (soft plastic surrounding the male pin), used for shock absorption and vibration dampening [16]. In the current prototype, the funnel is able to compress the sof-material 20% to 30%, creating a ±9.1° the pin can freely move inside the funnel.

a) Funnel offset. b) Funnel tolerance to waves. Funnel and pin acting as a damper (right).

Adaptive funnel. The adaptive latching mechanism mimicks squid’s tentacles which can adjust the force applied to a holding object. This dynamic mechanism acts as an adaptive damping system for adjusting the stiffness of the latched entity, in order to achieve different functional modes, when towing and when creating floating structure.

Oral view of the bobtail squid Semirossia tenera (left). Adaptive latching mechanism funnel (right).

Adaptive funnel.

Adaptive latching.


The funnel for the garaging stage (locking position) can include different sensor to detect that the pin is inside the socket for trapping it. We tested with IR sensors and laser to detect the crossing of the pin in the socket. However, this solution was noisy when tested outdoors from sunlight.

etractable funnel

If the funnel and pin are moved inside the roboat, then the latching system allows the roboat to move next to each other without hitting any outside elements, since all are inside the deck. This method is similat to the genderless latching, how ever each connection is either a male or female, but not both, not genderless. Nevertheless, this method enables semi-full multirobot configurations.

Genderless latching system for roboats.

oftware - ROS framework
LATCHING SYSTEM in ROS - roboat_core
by: Luis A. Mateos

The latching system can be configure to work from the microcontroller or from ROS (roboat_core)

The latching creates the following topics:
/latching_open_close_int             latching states 0 open / 1 close
/latching_open_close_toggle          toggles between the latching states [open /  close]
/latching_override_int               controller selection  0 microcontroller / 1 ROS (roboat_core) 
/latching_override_toggle            toggles between the controller selection [micro / ROS (roboat_core)] 
/latching_sensor                     laser intensity detected by the photoresistor
/latching_status                     latching status:
                                     0 micro OPEN
                                     1 micro CLOSE
                                     2 micro IDLE
                                     3 ROS OPEN
                                     4 ROS CLOSE
                                     5 ROS IDLE
rosrun rosserial_python /dev/arduino
How to set the states from terminal (where VALUE can be 0 or 1):
rostopic pub latching_open_close_toggle std_msgs/Empty --once
rostopic pub latching_open_close_int std_msgs/UInt16 VALUE --once

rostopic pub latching_override_toggle std_msgs/Empty --once
rostopic pub latching_override_int std_msgs/UInt16 VALUE --once

rostopic echo /latching_sensor

rostopic echo /latching status

rostopic pub latching_override_int std_msgs/UInt16 1 --once
rostopic pub latching_open_close_int std_msgs/UInt16 0 --once

2019 Luis A. Mateos