Skip to content

Commit 001fe9a

Browse files
authored
Merge pull request #30 from Andrea-Ricciardi-99/master
Website Update: General Localization Readme Update
2 parents 6f377ea + 6811a48 commit 001fe9a

File tree

17 files changed

+191
-52
lines changed

17 files changed

+191
-52
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: GNSS + Magnetometer
3+
pagination_label: GNSS + Magnetometer Localization Algorithm
4+
description: GNSS + Magnetometer Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO State estimator is part of the MRS core.
12+
* TODO Direct integration with PX4 over the HW API.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: RTK GNSS
3+
pagination_label: RTK GNSS Localization Algorithm
4+
description: RTK GNSS Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO State estimator is part of the MRS core.
12+
* TODO Direct integration with Emlid Reach.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Hector SLAM
3+
pagination_label: Hector SLAM Localization Algorithm
4+
description: Hector SLAM Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO Is prebuilt and part of the MRS
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: ALOAM SLAM
3+
pagination_label: ALOAM SLAM Localization Algorithm
4+
description: ALOAM SLAM Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO Is prebuilt and part of the MRS
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Open Vins
3+
pagination_label: Open Vins VIO Localization Algorithm
4+
description: Open Vins Visual Inertial Odometry (VIO) Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO Is prebuilt and part of the MRS
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: PointLIO SLAM
3+
pagination_label: PointLIO SLAM LIO Localization Algorithm
4+
description: PointLIO SLAM Lidar Inertial Odometry (LIO) Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO the estimator plugin is prebuilt
12+
* TODO the SLAM is not part of the MRS
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: LIOSAM SLAM
3+
pagination_label: LIOSAM SLAM Localization Algorithm
4+
description: LIOSAM SLAM Localization Algorithm
5+
---
6+
7+
:::warning
8+
This page is describing the upcoming ROS2 version of the MRS UAV System (however, it may be still outdated). If you are looking for ROS1 version of the docs, follow to https://ctu-mrs.github.io/docs/1.5.0/introduction/.
9+
:::
10+
11+
* TODO The SLAM and the estimator plugins are prebuilt in the MRS but not test in the realworld
160 KB
Loading

docs/50-features/26-localization/index.md

Lines changed: 53 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,37 +10,70 @@ This page is describing the upcoming ROS2 version of the MRS UAV System (however
1010

1111
# Localization sources within the MRS
1212

13-
* TODO explain the reason for the need of localization
14-
* TODO explain that the sources of localizaton are fused by the estimation manager
15-
* TODO point to the metapackages responsible for defining the estimator plugin and the other dependencies
13+
## The Need for Localization
1614

17-
## GNSS + Magnetometer
15+
Accurate and reliable localization is the cornerstone of autonomous UAV operation. For a drone to navigate its environment, execute complex missions, and avoid obstacles, it must have a precise understanding of its own position and orientation (collectively known as *pose*). This awareness is fundamental for everything from simple waypoint following to advanced tasks like autonomous landing and interaction with the environment. Without a robust localization system, a UAV is essentially flying blind, posing a significant risk to itself and its surroundings.
1816

19-
* TODO State estimator is part of the MRS core.
20-
* TODO Direct integration with PX4 over the HW API.
17+
### Localization Sources
2118

22-
## RTK GNSS
19+
The MRS UAV System is designed to be versatile and can utilize a variety of localization sources. These sources are fused by an estimation manager, which combines the data to produce a single, highly accurate state estimate. The primary sources can be broadly categorized into two groups: GNSS-aided and GNSS-denied.
2320

24-
* TODO State estimator is part of the MRS core.
25-
* TODO Direct integration with Emlid Reach.
21+
#### GNSS-Aided Localization
2622

27-
## Hector SLAM
23+
When operating in open, outdoor environments, Global Navigation Satellite Systems (GNSS) are the most common source for localization. These systems provide a global position estimate with reasonable accuracy.
2824

29-
* TODO Is prebuilt and part of the MRS
25+
* **GNSS:** Basic GNSS receivers provide position information that can be fused with data from an Inertial Measurement Unit (IMU) and a magnetometer to get a full pose estimate.
26+
* **RTK GNSS:** For applications requiring higher precision, Real-Time Kinematic (RTK) GNSS can provide centimeter-level accuracy by using a secondary base station to correct for satellite signal errors.
3027

31-
## ALOAM SLAM
3228

33-
* TODO Is prebuilt and part of the MRS
29+
#### GNSS-Denied Localization
3430

35-
## OpenVINS Visual Inertial Odometry (VIO)
31+
In many critical scenarios, relying on GNSS is not an option. This can be due to signal obstruction, such as in underground tunnels or dense urban canyons, or due to intentional interference like GPS jamming in security-sensitive missions. In these cases, the UAV must rely on its onboard sensors to estimate its motion. This is where GNSS-denied localization algorithms become essential.
3632

37-
* TODO Is prebuilt and part of the MRS
33+
The most common approaches are:
3834

39-
## PointLIO SLAM
35+
* **Visual-Inertial Odometry (VIO):** This technique uses one or more cameras combined with an IMU to track the drone's motion. VIO is a popular choice as cameras are lightweight, low-power, and relatively inexpensive. By tracking visual features in the environment from frame to frame, VIO algorithms can estimate the drone's ego-motion. However, they can be susceptible to drift over long distances and may struggle in visually-degraded environments (e.g., low light or textureless surfaces).
36+
* **Lidar-Inertial Odometry (LIO):** LIO replaces cameras with a LiDAR sensor to build a point cloud of the environment. By matching consecutive point clouds, LIO systems can very accurately track the drone's movement. LIO is generally more robust than VIO in challenging lighting conditions and can provide higher accuracy. The tradeoff is that LiDAR sensors are typically more expensive, heavier, and consume more power, which can impact the drone's flight time and budget.
37+
* **Simultaneous Localization and Mapping (SLAM):** Both VIO and LIO are often integral parts of a larger SLAM system. SLAM algorithms not only track the drone's pose but also build a persistent map of the environment. This map can then be used to correct for drift when the drone revisits a previously mapped area (an event known as a *loop closure*), leading to globally consistent trajectories.
4038

41-
* TODO the estimator plugin is prebuilt
42-
* TODO the SLAM is not part of the MRS
39+
The choice of a particular localization algorithm is a trade-off that depends on the specific application, the operational environment, and, significantly, the available budget. While a high-end LiDAR-based system might offer the best performance, a well-tuned VIO system can provide excellent results for many applications at a fraction of the cost.
4340

44-
## LIOSAM SLAM
41+
## Estimation Manager and Source Fusion
42+
43+
The MRS estimation manager fuses multiple localization sources, including GNSS, VIO, and LIO, into a single, robust state estimate for the UAV. It manages switching between estimator plugins based on their health and publishes essential topics such as the UAV state, odometry, and height above terrain. Estimator plugins provide a standardized interface to expose different localization algorithms to the manager. For detailed information, see the [Estimation Manager documentation](../../50-features/01-managers/index.md#estimationmanager).
44+
45+
## Localization Integration Structure
46+
47+
<div style={{textAlign: 'center'}}>
48+
<img src={require('./fig/Algo_Integration_Pipeline_MRS.png').default} alt="MRS Localization Layers" style={{width: '35%'}} />
49+
</div>
50+
51+
To integrate a localization algorithm into the MRS UAV System, the implementation follows a three-layer structure that bridges the raw algorithm to the system's estimation framework.
52+
53+
### Algorithm Library
54+
55+
The algorithm library contains the core implementation of the localization algorithm (for example, `open_vins` for OpenVINS). This layer includes all mathematical models, feature tracking, optimization, and pose estimation code, but it operates in its own coordinate frames and ROS topics, which are not directly compatible with the MRS UAV System.
56+
57+
### Core Folder
58+
59+
The core folder (for example, `mrs_open_vins_core`) acts as the ROS integration wrapper. It provides configuration files, launch files for node wrapping and topic remapping, and tmux scripts for simulation startup (including RViz visualization). This layer handles all MRS-specific wiring and supports both simulation and real-world deployment. It allows the [Algorithm Library](#algorithm-library) to remain untouched, while still integrating the algorithm into the MRS UAV System. For instructions on how to start the Gazebo simulation, see the [How to Simulate](./../../60-simulations/01-gazebo/01-howto.md) page.
60+
61+
62+
### Estimator Plugin Folder
63+
64+
The estimator plugin folder (e.g., `mrs_open_vins_estimator_plugin`) implements the MRS estimator plugin interface, making the algorithm selectable by the estimation manager. See the [estimator plugins documentation](./../../45-plugin-interface/04-estimators.md) for full interface details.
65+
66+
## Optional Components
67+
68+
Algorithms that generate their own TF trees (such as VINS-based approaches) typically require a republisher node. This node is responsible for transforming the algorithm's odometry into the MRS `world` frame and linking the algorithm's internal TF tree to the main `fcu` frame via static transforms (specifically from `fcu` to the algorithm's `body` or `imu` frame). For a reference implementation, see the [VINS Republisher](https://github.com/ctu-mrs/mrs_vins_republisher.git).
69+
70+
For detailed information on the system's coordinate frame conventions, refer to the [Frames of Reference](./../../40-api/20-frames_of_reference.md) page.
71+
72+
## Available Localization Algorithms
73+
74+
Below you can find the localization algorithms currently integrated into the MRS UAV System. Refer to the documentation of each algorithm to learn about its installation, configuration, and usage within the estimation framework.
75+
76+
import DocCardList from '@theme/DocCardList';
77+
78+
<DocCardList />
4579

46-
* TODO The SLAM and the estimator plugins are prebuilt in the MRS but not test in the realworld
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: GNSS + Magnetometer
3+
pagination_label: GNSS + Magnetometer Localization Algorithm
4+
description: GNSS + Magnetometer Localization Algorithm
5+
---
6+
7+
* TODO State estimator is part of the MRS core.
8+
* TODO Direct integration with PX4 over the HW API.

0 commit comments

Comments
 (0)