<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://c4d.lias-lab.fr/index.php?action=history&amp;feed=atom&amp;title=WP4-32</id>
	<title>WP4-32 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://c4d.lias-lab.fr/index.php?action=history&amp;feed=atom&amp;title=WP4-32"/>
	<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-32&amp;action=history"/>
	<updated>2026-04-07T01:05:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-32&amp;diff=896&amp;oldid=prev</id>
		<title>Grolleaue: /* Dynamic control development for navigation and precision landing */</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-32&amp;diff=896&amp;oldid=prev"/>
		<updated>2023-03-10T08:43:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Dynamic control development for navigation and precision landing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:43, 10 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|   TRL		|| 5&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|   TRL		|| 5&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Contact || p.fiani at sherpa-eng.com&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mediawiki-:diff::1.12:old-312:rev-896 --&gt;
&lt;/table&gt;</summary>
		<author><name>Grolleaue</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP4-32&amp;diff=312&amp;oldid=prev</id>
		<title>Sherpa: Created page with &quot;= Dynamic control development for navigation and precision landing =  {|class=&quot;wikitable&quot; |  ID|| WP4-32 |- |   Contributor	|| SHERPA |- |   Levels	|| Function |- |   Require	|| 	Navigation data (Position, attitude, velocity) &amp; 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...&quot;</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP4-32&amp;diff=312&amp;oldid=prev"/>
		<updated>2022-04-14T12:36:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Dynamic control development for navigation and precision landing =  {|class=&amp;quot;wikitable&amp;quot; |  ID|| WP4-32 |- |   Contributor	|| SHERPA |- |   Levels	|| Function |- |   Require	|| 	Navigation data (Position, attitude, velocity) &amp;amp; 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...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Dynamic control development for navigation and precision landing =&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP4-32&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| SHERPA&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Function&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| 	Navigation data (Position, attitude, velocity) &amp;amp; Camera images&lt;br /&gt;
|-&lt;br /&gt;
|   Provide		|| Perception/control module based for PX4 autopilot&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| 	Camera sensor data + other typical sensor data (GPS, compass)&lt;br /&gt;
|-&lt;br /&gt;
|   Output		|| Desired velocity if used standalone, or rotors’ speed if used jointly with PX4 controller&lt;br /&gt;
|-&lt;br /&gt;
|   C4D building block		||&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
==== Architecture ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:WP4_32_img1.png|frame|center|400px|General modular architecture]]&lt;br /&gt;
&lt;br /&gt;
The precision landing component is developed using ROS, with the Mavros package ensuring communication with PX4 via MAVlink messages.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Component description ====&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
This component is divided in two distinct modules : a '''perception module''' and a '''high-level control / decision-making''' module.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[File:WP4_32_img2.png|frame|center|Detection of two Aruco markers on the same frame]]&lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* 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:&lt;br /&gt;
# Drone take-off up to a predetermined altitude &lt;br /&gt;
# Coarse approach of the landing target by using the GPS coordinates of the target&lt;br /&gt;
# Aruco marker search by flying the drone in a spiral pattern&lt;br /&gt;
# Once the marker has been detected, fine approach of the landing target&lt;br /&gt;
# Landing of the drone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Applications and improvements ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:WP4_32_gif1.gif|frame|center|Simulation results]]&lt;/div&gt;</summary>
		<author><name>Sherpa</name></author>
	</entry>
</feed>