zha0ming1e / steam_icp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

STEAM-ICP

Paper: Picking Up Speed: Continuous-Time Lidar-Only Odometry using Doppler Velocity Measurements

For code that pertains to the picking-up-speed paper, git checkout picking_up_speed

Dataset: Boreas and KITTI-raw/360 (from CT-ICP) and Aeva.

Installation

Clone this repository and its submodules.

We use docker to install dependencies The recommended way to build the docker image is

docker build -t steam_icp \
  --build-arg USERID=$(id -u) \
  --build-arg GROUPID=$(id -g) \
  --build-arg USERNAME=$(whoami) \
  --build-arg HOMEDIR=${HOME} .

When starting a container, remember to mount the code, dataset, and output directories to proper locations in the container. An example command to start a docker container with the image is

docker run -it --name steam_icp \
  --privileged \
  --network=host \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v ${HOME}:${HOME}:rw \
  steam_icp

(Inside Container) Go to the root directory of this repository and build STEAM-ICP

bash build.sh

Experiments

Commands below should be run in the docker container.

# set to the root directory of this repository
WORKING_DIR=$(pwd)

# add library paths
EXTERNAL_ROOT=${WORKING_DIR}/cmake-build-Release/external/install/Release
LGMATH_ROOT=${WORKING_DIR}/cmake-build-Release/lgmath/install/Release
STEAM_ROOT=${WORKING_DIR}/cmake-build-Release/steam/install/Release
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${EXTERNAL_ROOT}/Ceres/lib:${EXTERNAL_ROOT}/glog/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${LGMATH_ROOT}/lib:${STEAM_ROOT}/lib

# run experiments - configure algorithm and dataset in the params file
source ${WORKING_DIR}/steam_icp/install/setup.bash
ros2 run steam_icp steam_icp --ros-args --params-file ${WORKING_DIR}/steam_icp/config/default_config.yaml

# (optional) rviz for visualization - run following commands in another terminal
source /opt/ros/galactic/setup.bash
ros2 run rviz2 rviz2 -d ${WORKING_DIR}/steam_icp/rviz/steam_icp.rviz # launch rviz

In terms of outputs, you should get something similar to the files in the results directory.

Evaluation

See python scripts in the script directory for evaluation.

Citation

@ARTICLE{9968059,
  author={Wu, Yuchen and Yoon, David J. and Burnett, Keenan and Kammel, Soeren and Chen, Yi and Vhavle, Heethesh and Barfoot, Timothy D.},
  journal={IEEE Robotics and Automation Letters}, 
  title={Picking up Speed: Continuous-Time Lidar-Only Odometry Using Doppler Velocity Measurements}, 
  year={2023},
  volume={8},
  number={1},
  pages={264-271},
  doi={10.1109/LRA.2022.3226068}
}

About

License:MIT License


Languages

Language:Jupyter Notebook 53.4%Language:C++ 41.7%Language:Python 3.6%Language:Shell 0.5%Language:Dockerfile 0.5%Language:CMake 0.3%