Skip to content

Latest commit

 

History

History
79 lines (50 loc) · 4.49 KB

StereoCalibration.md

File metadata and controls

79 lines (50 loc) · 4.49 KB

How to calibrate the stereo cameras on Snapdragon FlightTM

Pre-requisites

Hardware

This requires the Stereo Camera Kit from Intrinsyc.

Software

Stereo camera calibration for the Snapdragon FlightTM platform requires two hosts connected via network.

A Linux host runs the ROS Camera Calibration tool, while the Snapdragon FlightTM runs snap_cam_ros. The table below lists the requirements for both the hosts.

x86 Linux Host Snapdragon FlightTM platform
OS Ubuntu 14.04 Intrinsyc plaform image Flight_3.1.3.1
ROS version Install ROS Indigo Install ROS Indigo on Snapdragon FlightTM
ROS packages Install ROS Camera Calibration Tool (sudo apt-get install ros-indigo-camera-calibration) Install [snap_cam_ros](TODO:add link) Snapdragon FlightTM

Calibration Pattern

You will need to print a calibration pattern on a large, rigid board (like foam board). The following instructions assume you are using a circular patter, such as this one. We recommend using size A1 or A2.

Next, you need to measure the "square size" using the instructions in the figure below:

CalibrationPattern

The following calibration process will use the 'asymmetric circles pattern.' So the square size in this case is half of the actual square size.

Calibration Process

The stereo calibration uses the ROS Camera Calibration Tool (link to instructions).

The Linux host and the Snapdragon FlightTM board need to be connected via an IP network (wifi or ethernet).

The snap_cam_ros node runs on the Snapdragon FlightTM platform and provides stereo images via ROS topics. The ROS camera calibration tool runs on the Linux host and listens to the stereo image topics.

Start the ROS applications

Set up ROS environment variables and start the snap_cam_ros node on Snapdragon FlightTM:

export ROS_IP=192.168.1.1                       # assumes board is in SoftAP mode
export ROS_MASTER_URI=http://192.168.1.1:11311  # assumes board is in SoftAP mode
source devel/setup.bash                         # assumes you are at the top of your catkin workspace
roslaunch snap_cam_ros stereo.launch

Verify that the Linux host is receiving the image topics:

export ROS_MASTER_URI=http://192.168.1.1:11311  # assumes board is in SoftAP mode
source /opt/ros/indigo/setup.bash
rostopic hz /stereo/left/image_raw

The above should shows the frame rate for the left raw image. You should expect about 30 Hz unless you set a different rate in snap_cam_ros.

Now, start the ROS Camera Calibration tool on the Linux host:

rosrun camera_calibration cameracalibrator.py --no-service-check --pattern 'acircles' --size 4x11 --square 0.058 right:=/stereo/right/image_raw left:=/stereo/left/image_raw right_camera:=/stereo/right left_camera:=/stereo/left

Execute the ROS Camera Calibration procedure

Follow the ROS camera calibration procedure as described here.

Once the calibration is done, and click the "COMMIT" button. This will make a service call to "/stereo/left/set_camera_info" and "/stereo/right/set_camera_info" to populate the camera_info topic of each camera with the new calibration, as well as to save the results to /camera_info/left.yaml and /camera_info/right.yaml. NOTE: It is important to save the calibration files in this location, as it is where snap_cam_ros expects to find the calibration. In subsequent sessions, snap_cam_ros will read these files and publish the calibration data over the camera_info topics.