Hardware Setup
March 18, 2020 ยท View on GitHub
RealSense D435i (Infrared)
Why do we use the infrared cameras on the D435i? The infrared cameras offer the option to run the Kimera-VIO stereo version on monochrome global shutter cameras, which are generally better suited for visual tracking.
Setup
Note: Only 1. and 2. are necessary if you want to use the default calibration and launch files.
-
Download and install the Intel RealSense SDK. The
masterbranch currently has an issue with buggy image timestamps-- this is fixed in this pull request. You will need to check out thedevelopmentbranch withgit checkout developmentin order to access this fix. -
Download and install the Intel RealSense ROS wrapper.
-
Collect calibration parameters for the RealSense. This is already done for the D435i in VIO's
params/RealSenseIR.- Collect calibration bagfiles for camera intrinsics and extrinsics (see instructions).
- Calibrate camera intrinsics and extrinsics using Kalibr
- Convert the intrinsics and extrinsics to configuration files for Kimera-VIO-ROS wrapper using Kalibr2KimeraVIO-pinhole-radtan.
-
Create/adapt your own specific launch file, or use the example RealSense D435i file.
Testing
Each command will require its own terminal.
-
Run roscore with
roscore -
Launch RealSense camera using
roslaunch realsense2_camera rs_camera.launch unite_imu_method:=linear_interpolationwherers_camera.launchcan be repaced with your launch file. -
Visualize image stream using
rosrun image_view image_view image:=/camera/infra1/image_rect_rawwhere/camera/infra1/image_rect_rawcan be repaced with your launch file. -
The RealSense has an IR emitter on it to improve its RGBD stream. This creates undesirable dots on the infrared images. To fix this, you can either:
- Disable the emitter after the RealSense node is up using
rosrun dynamic_reconfigure dynparam set /camera/stereo_module emitter_enabled 0 - Physically cover the emitter on the RealSense with a piece of tape.
- Disable the emitter after the RealSense node is up using
-
Launch Kimera-VIO ROS wrapper using
roslaunch kimera_vio_ros kimera_vio_ros_realsense_IR.launchwherekimera_vio_ros_realsense_IR.launchcan be repaced with your launch file. -
Visualize trajectory with RVIZ using
rviz -d $(rospack find kimera_vio_ros)/rviz/kimera_vio_euroc.rviz, where kimera_vio_euroc.rviz can be repaced with your rviz setup file. -
Visualize state and statistics using
rqt_multiplot, (see example config)
It is important to remember that when launching the VIO, the camera should be standing still and upward (camera fov forward looking).
MyntEye S
Setup
-
Download and install the MyntEye SDK and ROS wrapper
-
Collect calibration bagfiles for camera intrinsics and extrinsics (see instructions)
-
Calibrate camera intrinsics and extrinsics using Kalibr, recommended model is:
pinhole-equi(see OpenCV documentation) -
Create configuration files for Kimera-VIO-ROS wrapper using Kalibr2KimeraVIO-pinhole-equi (or pinholde-radtan)
-
Create/adapt your own specific launch file, similar to example MyntEye S
Testing
-
Launch MyntEye camera using
roslaunch mynt_eye_ros_wrapper [name of your launch file] -
Visualize image stream using
rosrun image_view image_view image:=[name of camera topic] -
Launch Kimera-VIO-ROS wrapper using
roslaunch spark_vio_ros [name of your launch file](example, see below) -
Visualize trajectory with RVIZ using
rviz, (see example config) -
Visualize state and statistics using
rqt_multiplot, (see example config)
Example
For the MyntEyes used in SubT: (online)
roslaunch spark_vio_ros spark_vio_ros_mynteye.launch camera:=JPL distortion:=equidistant
Options for camera are MIT and JPL. Options for distortion are equidistant and radtan.
Same goes for use offline, using the spark_vio_ros_mynteye_offline.launch file and an additional data argument with path to bagfile.