Skip to content

Commit 15c14bf

Browse files
committed
Merge branch 'main' of https://github.com/robotics-upo/dll into main
2 parents 2d61ac9 + 52feef3 commit 15c14bf

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

LICENSE

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
BSD 3-Clause License
2+
3+
Copyright (c) 2021, Service Robotics Lab
4+
All rights reserved.
5+
6+
Redistribution and use in source and binary forms, with or without
7+
modification, are permitted provided that the following conditions are met:
8+
9+
1. Redistributions of source code must retain the above copyright notice, this
10+
list of conditions and the following disclaimer.
11+
12+
2. Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
16+
3. Neither the name of the copyright holder nor the names of its
17+
contributors may be used to endorse or promote products derived from
18+
this software without specific prior written permission.
19+
20+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
## Summary
44
This package presents DLL, a direct map-based localization technique using 3D LIDAR for its application to aerial robots. DLL implements a point cloud to map registration based on non-linear optimization of the distance of the points and the map, thus not requiring features, neither point correspondences. Given an initial pose, the method is able to track the pose of the robot by refining the predicted pose from odometry. The method performs much better than Monte-Carlo localization methods and achieves comparable precision to other optimization-based approaches but running one order of magnitude faster. The method is also robust under odometric errors.
55

6-
DLL is fully integarted in Robot Operating System (ROS). It follows the general localization apparoch of ROS, DLL makes use of sensor data to compute the translation that better fits the robot odometry TF into the map. Although an odometry system is recommended for fast and accurate localization, DLL also performs well without odometry information if the robot moves smoothly.
6+
DLL is fully integarted in Robot Operating System (ROS). It follows the general localization apparoch of ROS, DLL makes use of sensor data to compute the transform that better fits the robot odometry TF into the map. Although an odometry system is recommended for fast and accurate localization, DLL also performs well without odometry information if the robot moves smoothly.
7+
8+
![DLL experimental results in different setups](dll_video.gif)
79

810
## Software dependencies
9-
There are not hard dependencies except for Google Ceres Solver and
11+
There are not hard dependencies except for Google Ceres Solver and ROS:
1012
- ceres: Follow installation instructions for Google Ceres (http://ceres-solver.org/installation.html)
11-
- ROS: The package has been tested in ROS Melodic under Ubunto 18.04. Follow installation instruction from ROS (http://wiki.ros.org/melodic/Installation/Ubuntu)
13+
- ROS: The package has been tested in ROS Melodic under Ubuntu 18.04. Follow installation instruction from ROS (http://wiki.ros.org/melodic/Installation/Ubuntu)
1214

1315
## Hardware requirements
14-
DLL has been tested in a 10th generation Intel i7 processor, with 16GB of RAM. No graphics card is needed.
16+
DLL has been tested in a 10th generation Intel i7 processor, with 16GB of RAM. No graphics card is needed. The optimization is currently configured to be single threaded. You can easily reduce the processing time by a 33% just increasing the number of threads used by Ceres Solver.
1517

1618
## Compilation
1719
Download this source code into the src folder of your catkin worksapce:
@@ -27,24 +29,25 @@ $ catkin_make
2729
```
2830

2931
## How to use DLL
30-
You can find an example of use into the launch directory. The module needs the following input information:
32+
You can find several examples into the launch directory. The module needs the following input information:
3133
- A map of the environment. This map is provided as a .bt file
32-
- You need to provide an initial positio of the robot into the map.
34+
- You need to provide an initial position of the robot into the map.
3335
- base_link to odom TF. If the sensor is not in base_link frame, the corresponding TF from sensor to base_link must be provided.
3436
- 3D point cloud from the sensor. This information can be provided by a 3D LIDAR or 3D camera.
3537
- IMU information is used to get roll and pitch angles. If you don't have IMU, DLL will take the roll and pitch estimations from odometry as the truth values.
3638

3739
Once launched, DLL will publish a TF between map and odom that alligns the sensor point cloud to the map.
3840

39-
When a new map is provided, DLL will compute the Distance Field grid. This file will be automatically generated on startup if it does not exists. Once generated is recorded in the same path of the .bt map, so that it is not needed to be computed in future executions.
41+
When a new map is provided, DLL will compute the Distance Field grid. This file will be automatically generated on startup if it does not exist. Once generated, it is stored in the same path of the .bt map, so that it is not needed to be computed in future executions.
4042

41-
As example, you can download 5 datasets from the Service Robotics Laboratory repository (https://robotics.upo.es/datasets/dll/). The example launch files are prepared and configured to work with these bags. You can see the different parameters of the method. Notice that, except for mbzirc.bag, the bags do not include osometry estimation. For this reason, as an easy work around, the lauch files publish a fake odometry that is the identity matrix. DLL is faster and more accurate when a good odometry is available.
43+
As example, you can download 5 datasets from the Service Robotics Laboratory repository (https://robotics.upo.es/datasets/dll/). The example launch files are prepared and configured to work with these bags. You can see the different parameters of the method. Notice that, except for mbzirc.bag, these bags do not include odometry estimation. For this reason, as an easy work around, the lauch files publish a fake odometry that is the identity matrix. DLL is faster and more accurate when a good odometry is available.
4244

43-
## Citing
44-
DLL has been submitted to IROS 2021, it is currently under review, you can download the paper from ArcXiv:
45+
## Cite
46+
DLL has been accepted for publication in IROS 2021.
4547

46-
F. Caballero & L. Merino. "DLL: Direct LIDAR Localization. A map-based localization approach for aerial robots". Sumbitted to the International Conference on Intelligent Robots and Systems, IROS 2021.
48+
F. Caballero and L. Merino. "DLL: Direct LIDAR Localization. A map-based localization approach for aerial robots". Sumbitted to the International Conference on Intelligent Robots and Systems, IROS 2021.
4749

50+
You can download preliminar version of the the paper from [arXiv](https://arxiv.org/abs/2103.06112)
4851

4952

5053

dll_video.gif

19.7 MB
Loading

0 commit comments

Comments
 (0)