- Docker container for testing SLAM packages with Livox MID70
- Starts a ROS melodic container with the following packages
- livox viewer
- livox SDK
- livox ros driver
- livox detection
- livox mapping
- FAST-LIO
- FAST-LIO-SLAM | Not tested. Ceres, gtsam
- R2LIVE | make error, Use its own docker image
- mavros
- PTP master (PTPD on host)
- loam livox
- LIO-SAM
- ssl-slam2
- SFA3D
- PTPD (sudo apt install ptpd), Docker, NVIDIA Container Toolkit
docker pull eehantiming/livox:{tagnumber}
- Edit run.sh with the appropriate tag number, and (optional) any volumes that you want to mount
- Connect the LIDAR via ethernet and set your IP manually to 192.168.1.50 (assuming LIDAR with default static IP). Note: you must connect before starting the container
- If required, connect IMU via USB and start clock master with
sudo ptpd -M -i eth0 -C
(check ifconfig and change eth0) ./run.sh
. There are currently 2 workspaces, ros_ws and fastlioslam_ws.source {ws}/devel/setup.bash
as required- Use
docker cp {file} livox:/root
to copy rosbag or other files in. You can also use this to copy files out
Activate with tmux
. The basic controls are:
- ctrl-a followed by / to split and create another pane on the right
- ctrl-a followed by . to split and create another pane below
- hold alt and press arrow keys to navigate between the panes
- ctrl-d (with nothing typed) to close unwanted panes
roslaunch livox_ros_driver livox_lidar.launch
This package is required when working with actual LIDAR data instead of with rosbags. There are 2 main launch files which publishes lidar cloud to /livox/lidar.
- livox_lidar.launch publishes with PointCloud2 type
- livox_lidar_msg.launch publishes with a custom msg type which is required by some packages such as FAST-LIO
This package requires IMU data from /mavros/data/imu and custom lidar msg type
- Find imu tty with
dmesg | grep tty
- In mapping_avia.launch, the included file apm.launch is required for the IMU data from px4, edit param ACM0 or ACM1 from step 1
- Edit config/avia, change imu topic to /mavros/imu/data. change T to [0.080, 0, -0.080]. Change 'dense_publish_en' to false
- Start the node with
roslaunch fast_lio mapping_avia.launch
- Turn on IMU stream with
rosservice call mavros/set_stream_rate
. message rate 200 and 'true' - Start the lidar launch file or rosbag
Note: Before replaying rosbag with mapping.avia.launch, remove /path and /cloud_registered from the .bag files OR only record livox/lidar and mavros/imu/data
Does not require IMU and uses PointCloud2 msg.
- Change livox.launch to use config/performance_precision.yaml
- Edit .yaml, move max_allow_incre_R, max_allow_incre_T and max_allow_final_cost from mapping to optimization. Change if_enable_loop_closure to 1
roslaunch loam_livox livox.launch
and start the lidar launch file or rosbag
- clone and
git checkout -b
the branch with ros. - in ros/src/super/src/rosInference.py, change sub topic to livox/lidar, PointCloud2. Run this node for detection
roslaunch detected_objects_visualizer detected_objects_vis.launch
to process the detections into rviz.rosrun rviz/rviz
and add the marker and cloud. May need to change frame from 'map' if there is an error.- play rosbag
Main branch have cmake error. use the fork instead and build.
- FAST-LIO: works well
- loam_livox: works but sometimes DC and odometry fails. loop closure didnt do well when tested indoors. yet to test outdoors.
- livox_mapping: basic
- LIO-SAM: can't get livox supported fork to work. No map generated
- r2live: tested rosbag, have not hook up to camera
- ssl_slam2: tested rosbag
Tag | Description (Packages added on top of all previous versions) |
---|---|
1.2 | livox_mapping livox detection |
1.3 | FAST_LIO loam_livox ceres, gtsam FAST_LIO_SLAM |
1.4 | Edited imu topic in FAST_LIO/config/avia.yaml. Included apm.launch and rosservice call in FAST_LIO/launch/mapping_avia.launch LIO-SAM ssl_slam2 |