This requires the Stereo Camera Kit from Intrinsyc.
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 |
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:
The following calibration process will use the 'asymmetric circles pattern.' So the square size in this case is half of the actual square size.
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.
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
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.