This package implements a particle filter 6DOF localization algorithm using RGB-D camera in known 3D environments. We use octomap and 3D Euclidean Distance Map for map . This method uses external visual odometry (such as fovis, demo) to predict the pose of the particle set, then update each particle's weight using Likelihood observation model.
This package depends on the message defined in range-flow odometry package. The odometry provides initial guess then the localization corrects the drift.
Related Paper:
- Robust Autonomous Flight in Constrained and Visually Degraded Shipboard Environments, JFR 2017, ICRA 2015, Z. Fang, S. Yang, et al. S. Scherer PDF
If you use the code in your research work, please cite the above paper. Please do not hesitate to contact the authors if you have any further questions.
- Install octomap > 1.5 (This should not be necessary. Just need to install octomap packages. The dynamicedt3d augments the missing functionality in the indigo packages.)
git clone git://github.com/OctoMap/octomap.git
cd octomap; mkdir build; cd build;
cmake ..; make; sudo make install
- Install octomap_ros
sudo apt-get install ros-indigo-octomap-ros ros-indigo-octomap-msgs
catkin_make
using ROS
- Subscribed Topics:
point cloud
or depth image.
optional imu
(only roll and pitch will be used, if parameter use_imu is enabled)
- Published Topics:
pose
: The final localization pose.
~particlecloud
: The complete particle distribution
See launch
files in launch folder for details on how to use it.
Zheng Fang(fangzheng@mail.neu.edu.cn), Shichao Yang(shichaoy@andrew.cmu.edu), Sebastian Scherer(basti@andrew.cmu.edu)