Giter Club home page Giter Club logo

lio_sam_6axis's Introduction

hkust

LIO_SAM_6AXIS

Introduction

This repo may help to adapt LIO_SAM for your own sensors!

  • support a 6-axis IMU, since the orientation information of IMU is not used in state estimation module.
  • support low-cost GNSS, thus we do not need to adapt for the robot_localization node.
  • support the gps constraint visualization module to help debugging the normal GNSS.

LIO_SAM is only designed for 9-axis IMU, for the following reasons.

  • the back-end GNSS-based optimization relies on the robot_localization node, and also requires a 9-axis IMU.

Therefore, only minor changes to the original code are required. which can directly use stable GPS points for optimization. Finally, we also made some explanations for some common lidars, as well as coordinate system adaptation and extrinsics between lidars and IMUs, such as Pandar.

image-20220609035032131

Latest News(2022-11-10)

  • fix some bugs of GNSS odometry, If the gnss has enough translation (larger than 0.1m) in a short time, then we publish an absolute yaw angle as a reference.
  • In the LIO-GPS initialization module, if the GNSS trajectory has been aligned well with the LIO trajectory, then we will refine the LLA coordinate of the origin point of the map.
  • add tf messages in *__result.bag so that we can use the result.bag to generate the gif demo above!
  • add rviz_satellate plugs which can show your point cloud on google map.
  • update map origin point automatically during the optimization.

image-20221030051152185

Dataset and Adaption

Dataset Description Sensor Link GT Comment
hkust_20201105full image-20221030035547512 vlp16 + stim300+left camera+ normal gps Dropbox, BaiduNetdisk (password: m8g4). GT about 10 km outdoor, See this doc.
HILTI DATASET img hesai32+ low-cost imu+5 fisher eye camera Download The config/params_pandar.yaml is prepared for the HILTI sensors kit, so you can run it direcly!
garden_day Garden ouster128 + stim300+ stere camera Download GT indoors. when you download this compressed data, remember to execute the following command, rosbag decompress 20220216_garden_day_ref_compressed.bag

Usage

Dependences

The same as LIO_SAM.

Video Tutorial

Docker

Dockerfile is for people who don't want to break their own environment. Running the algorithm in the docker. Recommend!

# please cd the folder which have Dockerfile first, approximately 10mins based on your internet and CPU
docker build -t zhangkin/lio_sam_6axis .

docker run -it --net=host --gpus all --name lio_sam_6axis zhangkin/lio_sam_6axis /bin/zsh

# OR -v to link the folder from your computer into container (your_computer_loc:container_loc)
docker run -it --net=host --gpus all --name lio_sam_6axis -v /home/kin/bag_data:/home/xchu/data/ramlab_dataset zhangkin/lio_sam_6axis /bin/zsh

# in the container
catkin build
source devel/setup.zsh

# with dataset download and linked ==> please see more usage in previous section
roslaunch lio_sam_6axis ouster128_indoors.launch

对于在内地的同学,可以换源dockerhub后,直接拉取:

docker pull zhangkin/lio_sam_6axis

follow these steps:

Single Sequence

  • hkust_20201105full
roslaunch lio_sam_6axis run.launch

when you set the useGPS true, you may get the following los. It means that these gps points are used for optimization.

  • garden_day

when you use the garden_day rosbag, set your bag_path in the LIO-SAM-6AXIS/launch/ouster128_indoors.launch.

roslaunch lio_sam_6axis ouster128_indoors.launch

Batch Scripts

when you want to test on multi-sequence rosbag with the same set of sensor equipment. You just need to modify the script LIO-SAM-6AXIS/scripts/lio_loop_batch.py.

  1. put all your rosbag info one folder , and set it as the bag_path_downloadparams. set your rosbag file name(bag_path_list)

  2. set your sequence name (plat_data_pair_list)

  3. source your workspace(source devel/setup.zsh )

  4. run the script

python3 src/LIO-SAM-6AXIS/scripts/lio_loop_batch.py

Results

I will give the map and related example results constructed based on the instance data using LIO_SAM_6AXIS.

rosservice call /lio_sam_6axis/save_map
  • campus_result.bag: inlcude 2 topics, the distorted point cloud and the optimzed odometry

  • odom_tum.txt

  • optimized_odom_kitti.txt

  • optimized_odom_tum.txt

  • pose_graph.g2o: the final pose graph g2o file

  • globalmap_lidar.pcd: global map in lidar frame.

  • globalmap_imu.pcd: global map in IMU body frame, but you need to set proper extrinsics.

  • globalmap_lidar_feature.pcd: edge+planer points map, based on lidar frame.

  • origin.txt: The origin of the point cloud map, which can be used for prior map-based localization.

  • optimized_gps_trajectry.kml: KML file for optimized trajectory, you can show it in GoogleMaps.

image-20220609044824460

Related Package

  • LIO_SAM 6轴IMU适配香港城市数据集UrbanNav,并给出添加GPS约束和不加GPS约束的结果

Bugs

  1. Call the save map service only when your system optimization is complete, otherwise there will be problems.

Star History

Star History Chart

Acknowledgments

Thanks to Guoqing Zhang, Jianhao JiaoQingwen Zhang.

Thanks to LIO_SAM.

lio_sam_6axis's People

Contributors

jokerjohn avatar zarathustr avatar kin-zhang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.