单目相机的标定
cameracalibrator.py subscribes to ROS raw image topics, and presents a calibration window. It can run in both monocular and stereo modes. The calibration window shows the current images from the cameras, highlighting the checkerboard. When the user presses the CALIBRATE button, the node computes the camera calibration parameters. When the user clicks COMMIT, the node uploads these new calibration parameters to the camera driver using a service call.
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/images_raw
stereo camera
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 right:=/my_stereo/right/image_raw left:=/my_stereo/left/image_raw left_camera:=/my_stereo/left right_camera:=/my_stereo/right
melodic
cameracalibrator.py supports the following options:
Chessboard Options: You must specify one or more chessboards as pairs of --size and --square options. -p PATTERN, --pattern=PATTERN calibration pattern to detect - 'chessboard', 'circles', 'acircles' -s SIZE, --size=SIZE chessboard size as NxM, counting interior corners (e.g. a standard chessboard is 7x7) -q SQUARE, --square=SQUARE chessboard square size in meters ROS Communication Options: --approximate=APPROXIMATE allow specified slop (in seconds) when pairing images from unsynchronized stereo cameras --no-service-check disable check for set_camera_info services at startup --queue-size=QUEUE_SIZE image queue size (default 1, set to 0 for unlimited) Calibration Optimizer Options: --fix-principal-point for pinhole, fix the principal point at the image center --fix-aspect-ratio for pinhole, enforce focal lengths (fx, fy) are equal --zero-tangent-dist for pinhole, set tangential distortion coefficients (p1, p2) to zero -k NUM_COEFFS, --k-coefficients=NUM_COEFFS for pinhole, number of radial distortion coefficients to use (up to 6, default 2) --fisheye-recompute-extrinsicsts for fisheye, extrinsic will be recomputed after each iteration of intrinsic optimization --fisheye-fix-skew for fisheye, skew coefficient (alpha) is set to zero and stay zero --fisheye-fix-principal-point for fisheye,fix the principal point at the image center --fisheye-k-coefficients=NUM_COEFFS for fisheye, number of radial distortion coefficients to use fixing to zero the rest (up to 4, default 4) --fisheye-check-conditions for fisheye, the functions will check validity of condition number --disable_calib_cb_fast_check uses the CALIB_CB_FAST_CHECK flag for findChessboardCorners --max-chessboard-speed=MAX_CHESSBOARD_SPEED Do not use samples where the calibration pattern is moving faster than this speed in px/frame. Set to eg. 0.5 for rolling shutter cameras.
Camera Check
cameracheck.py subscribes to ROS rectified image topics and their associated camera_info, and prints out an error estimate. It can run in both monocular and stereo modes. The program expects to see a standard checkerboard target.
Subscribed Topics
monocular/image (sensor_msgs/Image)
- rectified image topic, for monocular cameras
monocular/camera_info (sensor_msgs/CameraInfo)
- camera info for the monocular camera
stereo/left/image (sensor_msgs/Image)
- rectified left image topic, for stereo cameras
stereo/right/image (sensor_msgs/Image)
- rectified right image topic, for stereo cameras
stereo/camera_info (sensor_msgs/CameraInfo)
- camera info for the stereo pair
rosrun camera_calibration cameracheck.py --size 8x6 monocular:=/forearm image:=image_rect
rosrun camera_calibration cameracheck.py --size 8x6 stereo:=/wide_stereo image:=image_rect