rgbd_depth_correction package from industrial_calibration repocaljob_creator industrial_extrinsic_cal intrinsic_cal rgbd_depth_correction target_finder |
|
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-industrial/industrial_calibration.git |
VCS Type | git |
VCS Version | indigo-devel |
Last Updated | 2017-10-26 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Alex K. Goins
Authors
- Alex K. Goins
rgbd_depth_correction
This package was designed with RGBD cameras in mind, specifically the ASUS Prime sensor, where the point cloud often has some inherent depth error in the point cloud due to slight errors in the depth registration. This package attempts to correct the depth error by creating a nodelet which listens to the point cloud, applies a depth correction factor, and republishes the corrected point cloud on a new topic. This requires calibration of the camera intrinsics as well as calculating the depth correction factor for each camera individually since each camera is unique. This package depends on the industrial_extrinsic_cal package (http://wiki.ros.org/industrial_extrinsic_cal). Below are the details for running the calibration and correction node/nodelet.
Camera Intrinsic Calibration
Use the ROS camera calibration package (http://wiki.ros.org/camera_calibration) to find the RGB and IR camera intrinsic parameters. Make sure to over-sample the calibration target, especially for locations where the calibration target is at large skew angles and/or at the edge of the field of view of the camera. If intrinsic calibration is performed with too few images, then the results of the intrinsic calibration process may not be accurate. Inaccurate intrinsic calibration will show up later on when performing extrinsic calibration and will result in poor point cloud alignment especially in the x and y axes (with respect to the camera rgb frame).
- $ roslaunch openni2_launch openni2.launch device_id:=#@#
- $ rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb –size
--pattern circles -q - Move camera or target to collect images at a variety of poses. Oversample at large skew angles and at edges of field of view
- Save calibration results
- Copy projection matrix and distortion matrix to extrinsic calibration cameras.yaml file as well as to the calibration.launch file (target locator parameters)
When calibrating the IR camera, make sure to cover up the IR projector on the camera and to use an IR source (incandescent light bulb, heat lamp, etc.) to illuminate the calibration target.
- $ roslaunch openni2_launch openni2.launch device_id:=#@#
- $ rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image camera:=/camera/ir –size
--pattern circles -q - Move camera or target to collect images at a variety of poses. Oversample at large skew angles and at edges of field of view
- Save calibration results
Depth Calibration
- Copy RGB projection matrix and distortion matrix parameters from camera calibration file to correction.launch and camera_scene_cameras.yaml file
- Place calibration target on a large, flat surface. The surface should be large enough that it fills the field of view of the camera at all distances from 2-8ft.
- Place camera at a distance of 5ft from the target and as close to normal to the surface as is possible. Record the first set of images for depth correction using the /pixel_depth_correction service. If target cannot be found, adjust camera location and/or lighting until target is found.
- Place camera such that the target fills the field of view of the camera. Record one image using the /store_cloud service. Move camera away from target at approximately 1ft increments, recording a new image at each location.
- Execute final depth calibration optimization after all images are taken using the /depth_calibration service.
Depth Correction Nodelet
- $ roslaunch rgbd_depth_correction correction.launch
- Perform extrinsic calibration
- $ rosservice call /calibration_service “allowable_cost_per_observation: 1.0”
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
boost |
yaml-cpp |
pkg-config |
Dependant Packages
Launch files
- launch/calibrate.launch
-
- file [default: camera]
- depth_registration [default: true]
- launch/correction.launch
-
- file [default: camera]
- camera [default: kinect]
- depth_registration [default: true]
- launch/dual_correction.launch
-
- live [default: True]
- depth_registration [default: true]
- depth_registration [default: true]
Messages
Services
Plugins
Recent questions tagged rgbd_depth_correction at Robotics Stack Exchange
rgbd_depth_correction package from industrial_calibration repocalibration_guis caljob_creator industrial_extrinsic_cal intrinsic_cal rgbd_depth_correction stand_alone_gui target_finder |
|
Package Summary
Tags | No category tags. |
Version | 0.1.0 |
License | Apache2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-industrial/industrial_calibration.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2019-10-22 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Alex K. Goins
- AustinDeric
Authors
- Alex K. Goins
rgbd_depth_correction
This package was designed with RGBD cameras in mind, specifically the ASUS Prime sensor, where the point cloud often has some inherent depth error in the point cloud due to slight errors in the depth registration. This package attempts to correct the depth error by creating a nodelet which listens to the point cloud, applies a depth correction factor, and republishes the corrected point cloud on a new topic. This requires calibration of the camera intrinsics as well as calculating the depth correction factor for each camera individually since each camera is unique. This package depends on the industrial_extrinsic_cal package (http://wiki.ros.org/industrial_extrinsic_cal). Below are the details for running the calibration and correction node/nodelet.
Camera Intrinsic Calibration
Use the ROS camera calibration package (http://wiki.ros.org/camera_calibration) to find the RGB and IR camera intrinsic parameters. Make sure to over-sample the calibration target, especially for locations where the calibration target is at large skew angles and/or at the edge of the field of view of the camera. If intrinsic calibration is performed with too few images, then the results of the intrinsic calibration process may not be accurate. Inaccurate intrinsic calibration will show up later on when performing extrinsic calibration and will result in poor point cloud alignment especially in the x and y axes (with respect to the camera rgb frame).
- $ roslaunch openni2_launch openni2.launch device_id:=#@#
- $ rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb –size
--pattern circles -q - Move camera or target to collect images at a variety of poses. Oversample at large skew angles and at edges of field of view
- Save calibration results
- Copy projection matrix and distortion matrix to extrinsic calibration cameras.yaml file as well as to the calibration.launch file (target locator parameters)
When calibrating the IR camera, make sure to cover up the IR projector on the camera and to use an IR source (incandescent light bulb, heat lamp, etc.) to illuminate the calibration target.
- $ roslaunch openni2_launch openni2.launch device_id:=#@#
- $ rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image camera:=/camera/ir –size
--pattern circles -q - Move camera or target to collect images at a variety of poses. Oversample at large skew angles and at edges of field of view
- Save calibration results
Depth Calibration
- Copy RGB projection matrix and distortion matrix parameters from camera calibration file to correction.launch and camera_scene_cameras.yaml file
- Place calibration target on a large, flat surface. The surface should be large enough that it fills the field of view of the camera at all distances from 2-8ft.
- Place camera at a distance of 5ft from the target and as close to normal to the surface as is possible. Record the first set of images for depth correction using the /pixel_depth_correction service. If target cannot be found, adjust camera location and/or lighting until target is found.
- Place camera such that the target fills the field of view of the camera. Record one image using the /store_cloud service. Move camera away from target at approximately 1ft increments, recording a new image at each location.
- Execute final depth calibration optimization after all images are taken using the /depth_calibration service.
Depth Correction Nodelet
- $ roslaunch rgbd_depth_correction correction.launch
- Perform extrinsic calibration
- $ rosservice call /calibration_service “allowable_cost_per_observation: 1.0”
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/calibrate.launch
-
- file [default: camera]
- depth_registration [default: true]
- launch/correction.launch
-
- file [default: camera]
- camera [default: kinect]
- depth_registration [default: true]
- launch/dual_correction.launch
-
- live [default: True]
- depth_registration [default: true]
- depth_registration [default: true]