Skip to content

limshoonkit/handheld_mapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UoSM Handheld Mapper

Custom Rig for https://github.com/hku-mars/LIV_handhold_2, support ROS2 Humble.

FAST-LIVO2 is based on [https://github.com/yqmy0814/FAST-LIVO2] and [hku-mars/FAST-LIVO2#128]

Note:-

  1. livox_ros_driver2 is custom, not the official version from Livox. It reads and writes from a time-share file located in home/${User}/timeshare for synchronization. Ensure to set a static IP of 192.168.1.50 for the device connected to the Livox LiDAR.

  2. The FAST-LIVO2 voxelmap is unbounded, which means memory usage will grow indefinitely. This could potentially lead to issues such as a forced shutdown when mapping for extended periods on systems with limited memory, like the Jetson Orin (16GB RAM).

  3. libusb from MVS (/opt/MVS/lib/aarch64/libusb-1.0.so.0) may conflict with the system installation (/lib/aarch64-linux-gnu/libusb-1.0.so.0). It is recommended to either delete the MVS version or set the system's libusb with the following commands:

export LD_LIBRARY_PATH=/opt/MVS/lib/aarch64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
  1. This repo uses cyclondds and mcap storage. Get it with:
sudo apt install ros-humble-rmw-cyclonedds-cpp ros-humble-rosbag2-storage-mcap

A. Hardware / Environment

front back

B. Build

Get submodules and dependencies

git submodule init
git submodule update
sudo apt update
rosdep update
rosdep install --from-paths src/zed-ros2-wrapper --ignore-src -r -y # install dependencies
rosdep install --from-paths src/livox_ros_driver2 --ignore-src -r -y
rosdep install --from-paths src/mvs_ros_driver2 --ignore-src -r -y
rosdep install --from-paths src/FAST-LIVO2 --ignore-src -r -y
rosdep install --from-paths src/ros2_jetson_stats --ignore-src --rosdistro humble -y

# Install SC-PGO dependencies (GTSAM for pose graph optimization)
sudo apt install ros-humble-gtsam

Erase all and rebuild

./src/livox_ros_driver2/build.sh humble

Build only specific packages

colcon build --packages-select handheld_bringup --symlink-install # eg handheld_bringup

C. Run Calibration Recording

  1. Get FastCalib
  2. Get kalibr, use the docker
source ./install/setup.bash
ros2 launch handheld_bringup handheld_sensors.launch.py

Display

D. Run Fast-Livo2

Note :-

Comment out driver nodes and set preprocess.lidar_type to 3 for bags using standard pointcloud2 msg rather than livox custom msg.

source ./install/setup.bash
ros2 launch handheld_bringup fast_livo2.launch.py

# ros2 bag play ./data/record_20251214_173541/ -p --remap /hik_camera/image:=/left_camera/image

# source ./install/setup.bash
# ros2 launch fast_livo mapping_avia.launch.py
# ros2 bag play ./data/fast_livo/test_bag/ros2/ -p

Sample0 Sample1 Sample2

E. Replay from ZED SVO

Based on https://github.com/stereolabs/ros2_replay_data/blob/main/README.md

source ./install/setup.bash
ros2 launch handheld_bringup zed_svo_replay.launch.py \
    svo_file_path:=/home/nvidia/Desktop/data/svo/zed_recording.svo2 \
    bag_output_path:=/home/nvidia/Desktop/data/zed_ros_output

Get mcap-cli from https://github.com/foxglove/mcap/releases?q=mcap-cli and use mcap filter to match start and end timing of rosbag

mcap filter rosbag_20251227_075258_0.mcap \
  --start 1766821986886082602 \
  --end 1766822024386007309 \
  -o rosbag_trimmed.mcap

F. Offline Loop Closure

colcon build --packages-select sc_pgo --symlink-install # eg handheld_bringup
source ./install/setup.bash
ros2 launch handheld_bringup fast_livo2.launch.py use_sc_pgo:=True

About

Custom Rig for https://github.com/hku-mars/LIV_handhold_2, supports ROS2 humble

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published