ROS package for automatic extrinsic pose calibration of multiple RGB-D sensor nodes. As described in the referenced paper, the use of large retroreflective markers is recommended for large volumes.
Keywords: ROS, RGB-D, calibration
The source code is released under a BSD 3-Clause license.
Author: Atle Aalerud
Affiliation: SFI Offshore Mechatronics, University of Agder
Maintainer: Atle Aalerud, atle.aalerud@uia.no
The wp3_calibrator package has been tested under ROS Indigo and Ubuntu 16.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
If you use this work in an academic context, please cite the following publication(s):
-
A. Aalerud, J. Dybedal, and G. Hovland, Automatic Calibration of an Industrial RGB-D Camera Network using Retroreflective Fiducial Markers. Submitted. to Sensors, 2018. (In review)
@article{Aalerud2018c, author = {Aalerud, Atle and Dybedal, Joacim and Hovland, Geir}, journal = {submitted to Sensors}, title = {{Automatic Calibration of an Industrial RGB-D Camera Network using Retroreflective Fiducial Markers}}, year = {2018} }
-
A. Aalerud, J. Dybedal, E. Ujkani, and G. Hovland, Industrial Environment Mapping Using Distributed Static 3D Sensor Nodes, in 2018 14th IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications (MESA), 2018. (PDF)
@inproceedings{Aalerud2018a, author = {Aalerud, Atle and Dybedal, Joacim and Ujkani, Erind and Hovland, Geir}, booktitle = {2018 14th IEEE/ASME Int. Conf. Mechatron. Embed. Syst. Appl.}, month = {jul}, publisher = {IEEE}, title = {{Industrial Environment Mapping Using Distributed Static 3D Sensor Nodes}}, year = {2018} }
- Robot Operating System (ROS) (middleware for robotics),
- Eigen (linear algebra library)
sudo apt-get install libeigen3-dev
To build from source, clone the latest version from this repository into your catkin workspace and compile the package using
cd catkin_workspace/src
git clone https://github.com/atleaa/wp3_calibrator.git
cd ../
catkin_make
To run the calibration on logged data from the Industrial Robotics Lab at UiA:
- Download the ROS bag from dataverse,
- Decompress
rosbag decompress *.bag
- Edit path to the ROS bag in calibrate.launch
- Run calibration using:
roslaunch wp3_calibrator calibrate.launch
The final calibration of the journal paper may be applied directly by using:
rosparam set use_sim_time true
rosbag play --clock -l rosbagname.bag
roslaunch wp3_calibrator tf_resultC.launch
To calibrate your own sensors you need to edit or copy calibrate.launch with following updates:
- Disable playback of rosbag.
- Set num_sensors to number of sensors to calibrate
- Update list of topics according to your sensors
- include/wp3_calibrator/defines.h Program configurations (reguires recompile)
- Dimensions of aruco markers
- Padding size around aruco markers
- Calibration parameters
- calibrate.launch: Sets parameters and starts calibration
- tf_resultC.launch Launch static transform publishers for final calibration results from journal.
Please report bugs and request features using the Issue Tracker.