Skip to Content

Visual Autonomous Landing of a VTOL UAV on a ship deck platform

The autonomous landing of a Vertical Take Off and Landing (VTOL) Unmanned Aerial Vehicle (UAV)  on a ship deck is a challenge nowadays, that we want to achieve.

We have a Rotomotion Inc, SR200 helicopter, equipped with an autopilot, an inertial measure unit (IMU), a GPS sensor, and a small computer that simplifies the control task and is ideal for the development of autonomous capabilities for UAVs.

Fig. 1: Rotomotion SR 200 Gas powered Helicopter. Length: 2790 mm; Width: 760 mm; Height: 860 mm; Main Rotor Diameter: 3000 mm; Endurance: Up to 5 hours; and Maximum Payload: 22.7 kg

 To simulate the movement of the ship on the Sea we have a Servos and Simulation Inc, Generic Motion System (model 710-6-500-220) with a 2.44 x 2.44 m2 gray surface as heliport.

Fig. 2: Servos and Simulation Inc, 710-6-500-220 Generic Motion System. Number of axis: 6; Height: 48.6 cm; Floor Platform: 66 x 68.6 cm2; Power: 220 VAC @ 20 A; Payload: 226.8 kg; Max. Roll (x): +-13º; Max. Pitch (y): +-15º; Max. Yaw (z): +-16º; Max. Surge (x): +-10.2 cm; Max. Sway (y): +-10.2 cm; and Max. Heave (z): +-6.4 cm


To measure the pose of the heliport respect to the helicopter, we use a computer vision system.

 As the pose of the helicopter respect to the world is known (because the helicopter is equiped with an IMU and a GPS), and as we can measure the pose of the heliport respect to the helicopter, we can easily calculate the pose of the heliport respect to the world.

A state estimator is used to correct and filter the measures of the pose of the heliport in the world, obtained thanks to the computer vision system:

Fig. 3: Example of State Estimation of the pose of the motion platform. It is shown the z movement. In the upper plot, in blue, the real state, and in red, the estimated state. In the bottom plot, in cyan, the measurements of the computer vision system, with its typical noise, after the transformation to refer them to the World frame.


The last step is to close the loop with a controller, but we are still working on it.