DJI Matrice M210 RTK v2 : https://www.dji.com/hk-en/matrice-200-series-v2/info#specs
DJI Manifold-2C: https://www.dji.com/hk-en/manifold-2/specs
Clone and build DJI OSDK-ROS : https://github.com/dji-sdk/Onboard-SDK-ROS
- Calibrating Stereo Cameras
- Stereo Depth Perception
- Calibrating Stereo Camera with Payload Camera
- Publishing Camera Frame Transformation on ROS
- Publishing Camera Parameters (Extrinsic and Intrinsic) and information on ROS
- Projecting 3D Pointcloud to Payload Camera Frame
- Run the built OSDK-ROS:
$roslaunch dji_osdk_ros dji_vehicle_node.launch
-
Print a checkerboard pattern for calinbration. For this project, an A4 size 9x7 checkerboard with 25mm squares was used.
-
Run ROS camera calibration node:
$rosrun camera_calibration cameracalibrator.py --size 9x7 --square 0.025 right:=dji_osdk_ros/stereo_vga_front_right_images left:=dji_osdk_ros/stereo_vga_front_left_images
- Save the calibration to file (see scripts/m210_stereo_param.yaml for reference)
-
navigate to scripts/
-
run
$./depth_perception.sh <calibration_params_relative_filepath>
-
Point cloud will be published as sensor_msgs/PointCloud2 messages on ROS Topic: /stereo_depth_perception/unprojected_pt_cloud
-
Collect images of a checkerboard taken simultaneously from both cameras. The ROS camera calibration package can be used to collect images, since it ensures all major angles and positions are captured.
-
Save the images in separate folders and edit lines 213-217 of src/calib_extrinsic.py with the camera and image folder names
-
Run
$rosrun dji_osdk_apps calib_extrinsic.py
to save the calibration parameters to text files
-
Edit transformation matrices in nodes/broadcast.py lines 56-63 with the values obtained after calibration
-
Run
$catkin_make
-
Run
$roslaunch dji_osdk_apps broadcast_transform.launch
-
Verify by running
$rqt_graph
or$rosrun tf view_frames
and viewing saved pdf
-
Edit camera information and parameters in line 43-56 of src/pub_camera_info.py and desired ROS Topic names for publisher in lines 10-11
-
Run
$catkin_make
-
Run
$roslaunch dji_osdk_apps publish_cam_info.launch
-
The camera information will be published as sensor_msgs/CameraInfo messages on defined ROS topics
-
Edit Relative Extrinsic Matrix in lines 47-58 and desried ROS topic name for publisher in line 61 of file reproject.cpp
-
Run
$rosrun dji_osdk_apps reproject
-
Projected Point Cloud will be published as sensor_msgs/PointCloud2 messages on the defined ROS topic