Yuan, Y., Kuang, H. & Schwertfeger, S. (2018). Fast Gaussian Process Occupancy Maps. In 2018 15th International Conference on Control, Automation, Robotics and Vision (ICARCV) (pp. 1502–1507). IEEE.
This is our project folder for Fast Gaussian Processes Occupancy Maps. Its implementation is on top of the src of Maani Ghaffari Jadidi.
If you used this work in research, please cite:
@inproceedings{yuan2018fast,
title={Fast Gaussian Process Occupancy Maps},
author={Yuan, Yijun and Kuang, Haofei and Schwertfeger, S{\"o}ren},
booktitle={2018 15th International Conference on Control, Automation, Robotics and Vision (ICARCV)},
pages={1502--1507},
year={2018},
organization={IEEE}
}
Implement the exist ROS package for next works.
Link: <https://github.com/MaaniGhaffari/gp_occ_mapping>
- Ubuntu 16.04
- ROS Kinetic
- Python 2/3
-
python2 Here recommend to use python2. Using system python2 or creating a python2 conda environment, for example(conda):
conda create -n gpom python=2.7 source activate gpom
if you can't perform
catkin_make
with python, you could using below instruction to install ROS python environment:pip install catkin-tools pip install rospkg
also, you need to install some dependencies like: numpy, scipy and so on. you could use
conda
orpip
to install these dependencies. -
python3 If you want to use python3 with ROS. It is possible. First, you need create a conda environment:
conda create -n gpom python=3 source activate gpom
The dependencies like previous.
-
Warning: If you get below error while execute
catkin_make
:No module named em
you could execute below command to solve it:
pip uninstall em pip install empy
-
dependencies
- numpy
- scipy
- matplotlib
- scikit-image
- pyGPs: https://github.com/marionmari/pyGPs
source activate gpom conda install numpy scipy matplotlib scikit-image pip install pyGPs
-
building ROS workspace:
mkdir -p your_catkin_workspace/src cd your_catkin_workspace/src catkin_init_workspace cd .. source activate gpom catkin_make
If you use python3 with ROS, you have to make sure your workspace contain geometry and geometry2 packages to solve tf problem.
The workflow like below:
cd your_catkin_workspace/src git clone https://github.com/ros/geometry.git git clone https://github.com/ros/geometry2.git cd .. catkin_make
-
download code
cd your_catkin_workspace/src git clone https://github.com/Jarrome/fun-gpom.git cd .. source activate gpom catkin_make source devel/setup.bash
We use STDR simulator as our experiment environment. It is very powerful tool to do mapping experiment, and it also provide ground truth for map.
-
Usage The tutorial of STDR simulator is showed their website or ROS wiki: website link: https://stdr-simulator-ros-pkg.github.io/ ROS wiki: http://wiki.ros.org/stdr_simulator
-
Use my modified version(more suit to gpom packages)
- Launch Simulator
cd your_catkin_workspace/src git clone https://github.com/KuangHaofei/stdr_simulator.git cd .. catkin_make source devel/setup.bash roslaunch stdr_launchers server_with_map_and_gui_plus_robot.launch
- Control Robot move by using keyboard
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=robot0/cmd_vel
- warning: make sure you use it at python2 environment.
- Launch Simulator
-
Dataset We have make a dataset by using STDR simulator, some details of it are showed below:
- Duration: 306 s
- Published Topics:
- tf (tf/tfMessage)
- robot0/laser_0 (sensor_msgs/LaserScan)
- slam_out_pose (geometry_msgs/PoseStamped
-
Usage Here, we also use python3, and you need to change the path of the bag file in fast_gpom_offline.py file firstly:
(It is a replay of bags, you can run directly)
-
Usage Here, assume we use python3:
cd your_catkin_workspace source activate gpom catkin_make source devel/setup.bash roslaunch gp_occ_mapping fast_gpom_online.launch
Just wait seconds and it will works.
- Usage
cd your_catkin_workspace source activate gpom catkin_make source devel/setup.bash roslaunch gp_occ_mapping fast_gpom_offine.launch
You could see a fastgpom being generated without display. But it will save a .mat in the end.
Some other launch file like gpom_offline.launch gpom_online.launch is also available. You can use similar command to run it.