This code obtains the odometry of a UGV (BLUE) with the estimation of the position transform between two point-clouds (a current one with a previous one) obtained by a Velodyne VLP16 3D-lidar sensor.
This code is modified from FLOAM, which was based on LOAM and A-LOAM .
The contribution of this version of the code is that the point cloud map is not compiled and the location is generated using a configurable batch of data in the launch parameters. This means that odometry estimation times do not accumulate and are low.
Modifier: Edison P. Velasco Sánchez, Universidad de Alicante, Spain.
- ROS Kinetic or Melodic
- Velodyne repository
sudo apt-get install ros-melodic-velodyne-pointcloud
- PCL (Point Cloud Library)
- Hector trajectory server
sudo apt-get install ros-melodic-hector-trajectory-server
- Ceres Solver
- Clone the repository
git clone https://ceres-solver.googlesource.com/ceres-solver
- Install all the dependencies of Ceres
sudo apt-get install cmake libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev -y
- Build, test, and install Ceres. (latest stable release)
tar zxf ceres-solver-2.0.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.0.0
make -j3
sudo make install
cd ~/catkin_ws/src
git clone https://github.com/EPVelasco/lilo.git
cd ..
catkin_make --only-pkg-with-deps lilo
roslaunch velodyne_pointcloud VLP16_points.launch
roslaunch lilo lilo_velodyne.launch