|
2 | 2 |
|
3 | 3 | [](https://www.youtube.com/watch?v=Y9ZlRrX1UBY) |
4 | 4 |
|
5 | | - * novel method for sampling large 3D LiDAR point clouds |
6 | | - * replacement for voxelization |
7 | | - * pipelines using **RMS** are faster (lower latency) and more accurate (less drift) |
| 5 | + * quick sampling of 3D LiDAR point clouds |
| 6 | + * pipelines using **RMS** are fast (low latency) and accurate |
8 | 7 | * designed for **real-time LiDAR-based** 6-DoF odometry/SLAM pipelines |
9 | 8 | * both point-based (ICP-like) and feature-based (LOAM-like) methods |
10 | | - * potentially improving most L, LI, LVI, LV pipelines |
11 | | - * **single parameter only -> depends on the SLAM pipeline (and not the environment!)** |
| 9 | + * **single parameter only: [lambda](https://github.com/ctu-mrs/RMS/blob/master/config/default.yaml)** |
| 10 | + * depends on the SLAM pipeline (and not the environment!) |
12 | 11 | * tuned just once given your pipeline |
13 | 12 | * deterministic (no data for learning needed) |
14 | | - * when is it (probably) not going to perform well: |
| 13 | + * when is it not going to perform well (most probably): |
15 | 14 | * the data have large orientation changes between two consecutive frames (tens of degrees) |
16 | | - * under heavy noise (such as dust clouds) |
| 15 | + * under heavy noise |
17 | 16 |
|
18 | | -#### Code & How to |
19 | | -The code will be made available upon acceptance. |
| 17 | +## Paper |
| 18 | +Published in IEEE RA-L --- [pdf](https://arxiv.org/pdf/2312.07337.pdf). |
20 | 19 |
|
21 | | -#### Paper |
22 | | -Submitted to IEEE RA-L on December 1, 2023. |
23 | | -Preprint available at [arXiv](https://arxiv.org/pdf/2312.07337.pdf). |
| 20 | +## Code & How to |
24 | 21 |
|
25 | | -#### How to cite |
| 22 | +### Installation |
| 23 | +1) Install prerequisities (`mrs_lib`, `PCL`): |
| 24 | +```bash |
| 25 | + curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash |
| 26 | + apt-get install ros-noetic-mrs-lib ros-noetic-pcl-ros |
26 | 27 | ``` |
27 | | -@article{petracek2023rms, |
28 | | - title = {{RMS: Redundancy-Minimizing Point Cloud Sampling for Real-Time Pose Estimation in Degenerated Environments}}, |
29 | | - author = {Petracek, Pavel and Alexis, Kostas and Saska, Martin}, |
30 | | - year = {2023}, |
31 | | - journal = {arXiv:2312.07337}, |
32 | | - note = {Submitted to IEEE RA-L on December 1, 2023} |
| 28 | +2) Clone and build via `catkin` |
| 29 | +```bash |
| 30 | + cd <ROS1_WORKSPACE>/src |
| 31 | + git clone [email protected]:ctu-mrs/RMS.git |
| 32 | + catkin build |
| 33 | +``` |
| 34 | + |
| 35 | +### How to use |
| 36 | +1) Launch as nodelet: |
| 37 | +```bash |
| 38 | +roslaunch rms rms_nodelet.launch NS:=<NAMESPACE> points_in:=<POINTS IN TOPIC> points_out:=<POINTS OUT TOPIC> |
| 39 | +``` |
| 40 | +2) Use as library in your code: |
| 41 | + - add `rms` among dependencies in `CMakeLists.txt` and `package.xml` and include the `<rms/rms.h>` header file |
| 42 | + - basic usage: `<rms/rms.h>` and use as in [src/rms_nodelet.cpp](https://github.com/ctu-mrs/RMS/blob/master/src/rms_nodelet.cpp) example |
| 43 | + ```cpp |
| 44 | + #include <rms/rms.h> |
| 45 | + ... |
| 46 | + // Initialize |
| 47 | + ros::NodeHandle nh; |
| 48 | + mrs_lib::ParamLoader param_loader(nh, "RMS"); |
| 49 | + RMS rms = RMS(param_loader); |
| 50 | + ... |
| 51 | + // Use |
| 52 | + sensor_msgs::PointCloud2::Ptr msg = ...; |
| 53 | + rms->sample(msg); // 'msg' now contains sampled data |
| 54 | + ``` |
| 55 | + - **example**: `RMSNodelet` implemented in [src/rms_nodelet.cpp](https://github.com/ctu-mrs/RMS/blob/master/src/rms_nodelet.cpp) |
| 56 | + |
| 57 | +### Example |
| 58 | +[WORK IN PROGRESS] To be added in coming days. |
| 59 | + |
| 60 | +## How to cite |
| 61 | +```tex |
| 62 | +@article{petracek2024rms, |
| 63 | + author = {Petracek, Pavel and Alexis, Kostas and Saska, Martin}, |
| 64 | + title = {{RMS: Redundancy-Minimizing Point Cloud Sampling for Real-Time Pose Estimation}}, |
| 65 | + journal = {IEEE Robotics and Automation Letters}, |
| 66 | + year = {2024}, |
| 67 | + volume = {9}, |
| 68 | + number = {6}, |
| 69 | + pages = {5230--5237}, |
| 70 | + doi = {10.1109/LRA.2024.3389820} |
33 | 71 | } |
34 | 72 | ``` |
35 | 73 |
|
36 | | -#### Acknowledgment |
37 | | -To be added upon acceptance. |
| 74 | +## Acknowledgment |
| 75 | +This work was supported |
| 76 | +- by CTU grant no. SGS23/177/OHK3/3T/13, |
| 77 | +- by the Czech Science Foundation under research project No. 23-06162M, |
| 78 | +- by the European Union under the project Robotics and advanced industrial production (reg. no. CZ.02.01.01/00/22_008/0004590), and |
| 79 | +- by the Research Council of Norway Award NO-321435. |
0 commit comments