From 3ab1a73db1404ae4b14b45f55bb8fb064c6574dc Mon Sep 17 00:00:00 2001
From: Eduardo Perdices
Date: Tue, 10 Mar 2020 16:33:39 +0100
Subject: [PATCH] Update README
---
LeGO-LOAM/launch/jackal-label.jpg | Bin 32355 -> 0 bytes
README.md | 123 ++++++++++++------------------
2 files changed, 48 insertions(+), 75 deletions(-)
delete mode 100644 LeGO-LOAM/launch/jackal-label.jpg
diff --git a/LeGO-LOAM/launch/jackal-label.jpg b/LeGO-LOAM/launch/jackal-label.jpg
deleted file mode 100644
index d020b1b15a0095bcd55b2ee6218227dd3ffd56b8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 32355
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
diff --git a/README.md b/README.md
index f61c68d2..751d0250 100644
--- a/README.md
+++ b/README.md
@@ -1,62 +1,13 @@
# LeGO-LOAM-SR
-LeGO-LOAM migrated to ROS2
+This code is a fork from [LeGO-LOAM-BOR](https://github.com/facontidavide/LeGO-LOAM-BOR) to migrate [LeGO-LOAM](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM) algorithm to ROS2.
-## 1. Run code with Rosbag
+This code does not modify and/or improve the original [LeGO-LOAM](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM) algorithm.
-Shell 1:
+## 1. About the original LeGO-LOAM
-```
-source /opt/ros/melodic/setup.bash
-roscore &
-rosbag play *.bag --clock --topic /velodyne_points
-```
-
-Shell 2:
-```
-source /opt/ros/melodic/setup.bash
-source /opt/ros/dashing/setup.bash
-export ROS_MASTER_URI=http://localhost:11311
-ros2 run ros1_bridge dynamic_bridge
-```
-
-Shell 3:
-```
-source /opt/ros/dashing/setup.bash
-source ~/dev_ws/install/setup.bash
-ros2 launch lego_loam_sr run.launch.py
-```
-
-# LeGO-LOAM-BOR
-
-This is a fork of the original [LeGO-LOAM](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM).
-
-This is a "friendly fork", in other words, we will be happy to work with the original authors to merge
-these improvements with the original LeGO-LOAM... if they want to!
-
-The original author deserves all the credits, we just use good software engineering practices to
-make the code more readable and efficient.
-
-The purpose of this fork is:
-
-- To improve the quality of the code, making it more readable, consistent and easier to understand and modify.
-- To remove hard-coded values and use proper configuration files to describe the hardware.
-- To improve performance, in terms of amount of CPU used to calculate the same result.
-- To convert a multi-process application into a single-process / multi-threading one; this makes the algorithm
- more deterministic and slightly faster.
-- To make it easier and faster to work with rosbags: processing a rosbag should be done at maximum
- speed allowed by the CPU and in a deterministic way (usual speed improvement in the order of 5X-10X).
-- As a consequence of the previous point, creating unit and regression tests will be easier.
-
-The purpose of this fork (for the time being) is **not** to modify and/or improve the original algorithm.
-
-Please do not submit to this repository any issue related to the algorithm, since we are focusing on the
-software implementation.
-
-# About the original LeGO-LOAM
-This repository contains code for a lightweight and ground optimized lidar odometry and mapping (LeGO-LOAM) system for ROS compatible UGVs.
-The system takes in point cloud from a Velodyne VLP-16 Lidar (palced horizontal) and optional IMU data as inputs.
-It outputs 6D pose estimation in real-time. A demonstration of the system can be found here -> https://www.youtube.com/watch?v=O3tz_ftHV48
+[LeGO-LOAM](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM) contains code for a lightweight and ground optimized lidar odometry and mapping (LeGO-LOAM) system for ROS compatible UGVs.
+The system takes in point cloud from a Velodyne VLP-16 Lidar (palced horizontal) and it outputs 6D pose estimation in real-time. A demonstration of the system can be found here -> https://www.youtube.com/watch?v=O3tz_ftHV48
@@ -64,9 +15,9 @@ It outputs 6D pose estimation in real-time. A demonstration of the system can be
-## Dependency
+## 2. Dependencies
-- [ROS](http://wiki.ros.org/ROS/Installation) (tested with indigo and kinetic)
+- [ROS2](https://index.ros.org/doc/ros2/Installation/Dashing/) (tested with dashing)
- [gtsam](https://github.com/borglab/gtsam/releases) (Georgia Tech Smoothing and Mapping library, 4.0.0-alpha2)
```
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
@@ -77,24 +28,20 @@ It outputs 6D pose estimation in real-time. A demonstration of the system can be
sudo make install
```
-## Compile
+## 3. Compile
You can use the following commands to download and compile the package.
```
-cd ~/catkin_ws/src
-git clone https://github.com/facontidavide/LeGO-LOAM-BOR.git
+cd ~/dev_ws/src
+git clone https://github.com/eperdices/LeGO-LOAM-SR.git
cd ..
-catkin_make
+colcon build
```
-## The system
+## 4. The system
-LeGO-LOAM is speficifally optimized for a horizontally placed lidar on a ground vehicle. It assumes there is always a ground plane in the scan. The UGV we are using is Clearpath Jackal.
-
-
-
-
+LeGO-LOAM is speficifally optimized for a horizontally placed lidar on a ground vehicle. It assumes there is always a ground plane in the scan.
The package performs segmentation before feature extraction.
@@ -108,7 +55,7 @@ Lidar odometry performs two-step Levenberg Marquardt optimization to get 6D tran
-## New sensor and configuration
+## 5. New sensor and configuration
To customize the behavior of the algorithm or to use a lidar different from VLP-16, edit the file **config/loam_config.yaml**.
@@ -117,22 +64,48 @@ If you want to use our algorithm with Velodyne VLP-32c or HDL-64e, you need to w
If the point cloud is not projected properly, you will lose many points and performance.
-**The IMU has been remove from the original code.** Deal with it.
+**The IMU has been remove from the original LeGO-LOAM code.**
-## Run the package
+## 6. Run the package
-You may process a rosbag using the following command:
+System can be started using the following command:
```
-roslaunch lego_loam_sr run.launch rosbag:=/path/to/your/rosbag lidar_topic:=/velodyne_points
+ros2 launch lego_loam_sr run.launch.py
```
-Change the parameters `rosbag`, `lidar_topic` as needed.
+Some sample bags can be downloaded from [here](https://github.com/RobustFieldAutonomyLab/jackal_dataset_20170608).
+### 6.1 Run ROS1 rosbag
-Some sample bags can be downloaded from [here](https://github.com/RobustFieldAutonomyLab/jackal_dataset_20170608).
+To use rosbags from ROS1, you need to use a [bridge](https://github.com/ros2/ros1_bridge) between ROS1 and ROS2.
+
+Play rosbag using ROS1:
+
+```
+source /opt/ros/melodic/setup.bash
+roscore &
+rosbag play *.bag --clock --topic /velodyne_points
+```
+
+Create the bridge in another terminal:
+
+```
+source /opt/ros/melodic/setup.bash
+source /opt/ros/dashing/setup.bash
+export ROS_MASTER_URI=http://localhost:11311
+ros2 run ros1_bridge dynamic_bridge
+```
+
+Finally, run ROS2 code:
+
+```
+source /opt/ros/dashing/setup.bash
+source ~/dev_ws/install/setup.bash
+ros2 launch lego_loam_sr run.launch.py
+```
-## New data-set
+### 6.2 New data-set
This dataset, [Stevens data-set](https://github.com/TixiaoShan/Stevens-VLP16-Dataset), is captured using a Velodyne VLP-16, which is mounted on an UGV - Clearpath Jackal, on Stevens Institute of Technology campus.
The VLP-16 rotation rate is set to 10Hz. This data-set features over 20K scans and many loop-closures.
@@ -144,7 +117,7 @@ The VLP-16 rotation rate is set to 10Hz. This data-set features over 20K scans a
-## Cite *LeGO-LOAM*
+## 7. Cite *LeGO-LOAM*
Thank you for citing our *LeGO-LOAM* paper if you use any of this code:
```