Roboat's working space - simplifying 3D space into a 2D plane
The controllable space is defined by a 2D x - y plane on the water. This is to simplify the problem from 3D space to a 2D plane, since we don’t take into account the heave vector as this is compensated by the funnel. And in our assumption all elements are floating on the water.
The distances and angles between two roboats are given by three variables:
In our approach, one robotic platform waits in a position, similar to a ”balancing” robot, becoming a pseudo-docking staion, while the other roboat performs the movements for latching.
Robotic boats 2D working environment.
Camera - Tag
In order to read the actual angle between the camera and the apriltag, the tag detection requires that the camera and the tag are with the same orientation. At the same time, to estimate the actual orientation between them, the tag detection requires that the camera is directly facing the tag. Therefore, the latching controller integrates a hybrid control strategy which tries to position the camera to face the tag with the same orientation.
AprilTags framework in normal light conditions varying the distance and angle.
Also, the figure shows the error in position and orientation when varying the distance between the camera - tag and rotation of the tag. The relation of error to distance is linear, the error increases the further away the marker is from the camera. However, the relation is non-linear for the angle of rotation. The orientation registered an increase in error when the marker is rotated 15° to 30°. The work from  and  summarizes and quatifies the accuracy of marker based 3D visual localization
The latching controller integrates three PD controllers:
The hybrid controller initially tries to set the roboats to have the same orientation by minimizing dy and the angle between them. If the error is greater than the tolerances, then the latching roboat R2 is set to maintain a distance of 1000mm from the target to keep minimizing these errors until the error from Control I and Control III are inside the funnel tolerances, then R2 (roboat with the socket) moves forward minimizing dx, while combining the lateral distance and angle strategies to latch the balancing roboat R3.
How it works:
The simulation starts with a roboat trying to latch to a balancing roboat. The first control strategy is the angle and go. In this strategy the priority is to minimize the angle (Control III) with the longitudinal distance (Control I). The animation also shows the cartesian control strategy in which the priority is to minimize is the lateral distance (Control II) together with the longitudinal (Control I).