This repo documents the process of installing and reproducing FAST-LIVO2 on DEEP Robotics Lite3 robot, including camera/lidar installation, onboard compute extension and how to test this in an outdoor environment. Original repo and paper. And you can watch our tutorial videos on Bilibili or Youtube.
System Environment: Ubuntu 22.04, ROS2 Humble, Lite3 Venture (ONLY THIS VERSION!), AGX Jetson Orin (or other onboard compute)
Please setup your onboard compute and install ROS2 on it. For details, please check their websites. We've tested the repo on AGX Jetson Orin with ROS2 Humble. Note: we are using Jetpack 6.1 and the cmake version is 3.22.
If you have Lite3 pro/lidar, you don't need further hardware extension cause there is already a Orin NX and you can use that as additional onboard compute. If you have Lite3 venture, you can follow the installation process in our video. For the 3d printed structure parts, you can download them from here.
Connect the Mid360 following the user manual. You will need a cable like this:
Plug the xt30 end to the 24V xt30 of lite3 and plug the ethernet end to a normal x86 ubuntu system. If you open Livoxviewer2 and see that lidar is connected, this step is successful.
First, git clone this repo:
git clone https://github.com/DeepRoboticsLab/fast-livo2-deep-robotics.git
cd fast-livo2-deep-robotics
Compile Livox-SDK2 separately:
cd fast-livo2-deep-robotics/src/Livox-SDK2
mkdir build && cd build
cmake .. && make -j
sudo make installPlease follow this doc to install intel realsense on your AGX Jetson Orin. It's tested to work in the widest range of cases.
Known issues:
06/11 17:00:12,985 ERROR [281473429722208] (context.cpp:40) No valid configuration file found at : /home/fjwjetson/.realsense-config.json loading defaults
06/11 17:00:13,098 ERROR [281473429722208] (rs.cpp:256) [rs2_create_device( info_list:0xaaab00eb1d90, index:0 ) UNKNOWN] bad optional access
06/11 17:00:13,098 ERROR [281473429722208] (rs.cpp:256) [rs2_delete_device( device:nullptr ) UNKNOWN] null pointer passed for argument "device"
Could not create device - bad optional access . Check SDK logs for details
No device detected. Is it plugged in?
This indicates that the kernel layer has recognized the camera, but the librealsense RSUSB driver lacks permission to access the device node. In simple terms, the permission rules are not being applied correctly. You can try the following command first:
sudo rs-enumerate-devicesIf the above command outputs normally, then the root cause is identified: a library version conflict, meaning there are two sets of librealsense in the system:
| Path | Version | Source | Status |
|---|---|---|---|
| /usr/local/lib | librealsense2.so.2.56.5 | Self-compiled (supports RSUSB) | ✅ |
| /opt/ros/humble/lib | librealsense2.so.2.56.4 | Automatically installed by ROS2 (older version) | ❌ |
When launching without sudo, the older library is loaded, preventing the device from being opened.
Force the system to prioritize /usr/local/lib:
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/99-realsense-local.conf
sudo ldconfigThen permanently set the environment variable to take effect automatically in all terminals:
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrcVerify using the following command:
ldd $(which rs-enumerate-devices) | grep realsenseSuccessful result:
librealsense2.so.2.56 => /usr/local/lib/librealsense2.so.2.56.5
After this, the launch command should be able to start the depth camera normally.
Please follow this doc to install realsense-ros. For example:
sudo apt -y install ros-humble-realsense2-*.
If you can run this ros2 launch realsense2_camera rs_pointcloud_launch.py and see reasonable visualization, this step is successful.
Install required ROS2 packages:
sudo apt update
sudo apt -y install ros-humble-pcl-ros ros-humble-compressed-image-transport ros-humble-sophus Build FAST-LIVO2:
cd fast-livo2-deep-robotics/src/livox_ros_driver2/
source /opt/ros/humble/setup.bash
./build.sh humbleIf successful, you should see output indicating completion.
Verify packages:
cd fast-livo2-deep-robotics
source install/setup.bash
ros2 pkg list | grep livoExpected output should include fast_livo and livox_ros_driver2.
Change the ip in src/livox_ros_driver2/config/MID360_config.json to use the ip from step 2.1.1. Fill the host with the actual host ip and the lidar ip with the actual lidar ip. If you can ros2 launch livox_ros_driver2 rviz_MID360_launch.py and see lidar points, this step is successful.
You can download the ROS2 dataset from the original FAST-LIVO2 (Retail_Street.bag) here.
Run the algorithm:
cd fast-livo2-deep-robotics
source install/setup.bash
ros2 launch fast_livo mapping_avia.launch.py use_rviz:=TrueGo to the place where you download the dataset and open a new terminal:
source install/setup.bash
ros2 bag play Retail_Street # Use space bar to control play/pauseThis should launch the mapping process with RViz visualization.
modify config and recompile on AGX Jetson Orin. then open 3 terminals
# 1
cd fast-livo2-deep-robotics
source install/setup.bash
ros2 launch livox_ros_driver2 msg_MID360_launch.py# 2
cd fast-livo2-deep-robotics
source install/setup.bash
ros2 launch realsense2_camera rs_launch.py enable_rgbd:=false enable_sync:=false align_depth.enable:=false enable_color:=true enable_depth:=false# 3
cd fast-livo2-deep-robotics
source install/setup.bash
ros2 launch fast_livo mapping_avia.launch.py use_rviz:=TrueThis project is licensed under the GNU General Public License v2.0 (GPL-2.0).
This project incorporates or derives from the following open-source projects:
- FAST-LIVO2 (GPL-2.0)
- livox_ros_driver2 (MIT License)
- Livox-SDK2 (MIT License)
See the LICENSE file for details.
