Using multiple kinects
- Launch
rgbd-multikinect
. You need to plug each Kinect on a different usb hub. You can set the number of connected devices with the—numdevices
flag. Then you can switch between different devices using the number keys, or theDevices
menu. - A calibration file can be set for each device using e.g.
—calibration calibration_dir
to set the directory where the calibration files are located. The file should be namedcalibration-SERIAL.yml
where SERIAL is the serial number of the corresponding camera. It is recommended to initialize these files first by running the program and using “File/Save calibration parameters” to create default files.
To calibrate the extrinsics of each Kinect, you can:
- Put a checkerboard in front of the camera. If it can be seen from all the cameras, then simply click on “Refine with checkboard” to estimate the extrinsics.
- Use the 3D view and check calibration mode to manually move the current view until it matches the reference one.
- Once you’re close to a good alignment, the “Refine with ICP” button can help to finalize the registration.
- Another option is to use the
calibrate-multiple-kinects
program. You will first need to grab images of checkerboards seen by both cameras using uncalibratedrgbd-multikinect
. Then you can call the calibration program with, e.g.:
./calibrate-multiple-kinects grab0 grab1 calibration-SERIAL1.yml calibration-SERIAL2.yml --pattern-size 0.025
grab0
and grab1
are the directories containing the grabbed checkboards. grab0
correspond to the reference camera, and grab1
to the Kinect whose extrinsics will be computed. calibration-SERIAL1.yml
and calibration-SERIAL2.yml
are the calibration files containing the intrinsics of each Kinect (see above to obtain them). —pattern-size
is the same as in the calibration section. If calibration is successful, a calibration_multikinect.yml
file will be generated, containing the computed R_extrinsics
and T_extrinsics
matrices, respectively the 3D rotation matrix and the 3D translation vector of the second camera w.r.t. the first one.
This file can then be fed to rgbd-multikinect
by overwriting calibration-SERIAL2.yml
with the generated file.
- Note: PCL support is required by this demo.