WP4-32

From COMP4DRONES
Revision as of 12:36, 14 April 2022 by Sherpa (talk | contribs) (Created page with "= Dynamic control development for navigation and precision landing = {|class="wikitable" | ID|| WP4-32 |- | Contributor || SHERPA |- | Levels || Function |- | Require || Navigation data (Position, attitude, velocity) & Camera images |- | Provide || Perception/control module based for PX4 autopilot |- | Input || Camera sensor data + other typical sensor data (GPS, compass) |- | Output || Desired velocity if used standalone, or rotors’ speed if used joi...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Dynamic control development for navigation and precision landing

ID WP4-32
Contributor SHERPA
Levels Function
Require Navigation data (Position, attitude, velocity) & Camera images
Provide Perception/control module based for PX4 autopilot
Input Camera sensor data + other typical sensor data (GPS, compass)
Output Desired velocity if used standalone, or rotors’ speed if used jointly with PX4 controller
C4D building block
TRL 5

Detailed Description

Architecture

Sherpa’s autonomous precision landing component is developed based on a modular architecture, that facilitate integration of new functions for the drone. It allows simple integration of new sensors and new algorithms that help achieving a more precise landing and/or a safer behaviour.

General modular architecture

The precision landing component is developed using ROS, with the Mavros package ensuring communication with PX4 via MAVlink messages. The drone component, as well as the environment and the sensors part of this diagram can easily be replaced by a simulator to ease the testing and the developing process of new modules.

Component description

Relying purely on a GPS sensor to achieve a precise landing on a target is unrealistic. GPS sensors have low accuracy, especially in urban environment, where the signal is usually bad. A drone trying to land on a target defined by GPS coordinates could land anywhere within 5 meters near the target, which could be dangerous. That is why Sherpa’s precision landing component uses multiple sensors, to detect and localize precisely the landing target with respect to the drone, and achieve a precise landing. This component is divided in two distinct modules : a perception module and a high-level control / decision-making module.

  • The perception algorithm is based on a marker detection algorithm. Aruco type markers are used to allow precise pose estimation of the marker with respect to the camera. It also offers the possibility to identify the marker (number 1 and 2 on the picture). With this, the drone is able to choose a specific target among multiples ones in a complex logistic environment.
Detection of two Aruco markers on the same frame
The pose of the marker is then fed into a unscented Kalman filter that uses ego velocity information to ensure high pose estimation precision even if the marker can’t be detected anymore.
  • The High level control of an unmanned aerial vehicle (UAV) in an accurate and reliable way is a complex task. A high-level control algorithm is required to partially or entirely achieve the flight manoeuvres (take off, landing, hover flight, etc..), the high level control algorithm (using an onboard computer) mainly takes some target pose as input and provides some moving instructions (speed, attitude, etc..) as output using ROS publisher/subscriber mechanism. Then, these outputs instructions are translated to be interpreted by the flight controller through the MAVLink communication protocol. The tasks performed by the high level control algorithm are:
  1. Drone take-off up to a predetermined altitude
  2. Coarse approach of the landing target by using the GPS coordinates of the target
  3. Aruco marker search by flying the drone in a spiral pattern
  4. Once the marker has been detected, fine approach of the landing target
  5. Landing of the drone.


In a parallel task, Sherpa Engineering also works on low level control. When we use the default PX4 control in a new drone, the drone stability is not compatible with requirements. We adapted in the 1st project year a new control used by Sherpa in automotive world, that’s acts like an “virtual spring/damper” system for position control. Finally, we found a PX4 parameters set to control our drone with better stability and precision.


Applications and improvements

The precision landing component has been developed with the UC3 in mind, where an UAV needs to land on a rover to pick up or drop off a package. However, the component of Sherpa could be used for many applications, ranging from logistics such as package delivery to utility such as precision agriculture.

Simulations have shown great results. The next step is to deploy these modules on a real drone to thoroughly test the applicability and the consistency of these methods.

Simulation results