kalibr标定realsenseD435i(三)--imu+双目标定

步骤一:编写camchain.yaml,具体的参数参考上面得到的yaml文件,没有的参数可以删除。

cam0:
  camera_model: pinhole
  distortion_coeffs: [0.3741003900681439, -0.3881978058678547, 3.1716618459908745,
    -6.001063348025562]
  distortion_model: equidistant
  intrinsics: [390.758503853357, 391.25816160400524, 321.83897980850134, 239.4465181428646]
  resolution: [640, 480]
  rostopic: /infra_left
cam1:
  T_cn_cnm1:
  - [0.9999998901585861, -4.294157013095873e-05, 0.00046673208390293774, -0.05012845047306967]
  - [4.2939084706306155e-05, 0.9999999990638859, 5.335182709763375e-06, -4.592119433712806e-05]
  - [-0.00046673231256714554, -5.315141075253501e-06, 0.9999998910663435, 2.7033932716557476e-06]
  - [0.0, 0.0, 0.0, 1.0]
  camera_model: pinhole
  distortion_coeffs: [0.34234774358277686, 0.11586227173983633, 0.1467711250555194,
    -0.10482812645454345]
  distortion_model: equidistant
  intrinsics: [390.99220733802025, 391.5150578117259, 321.8225997794459, 239.3566665455548]
  resolution: [640, 480]
  rostopic: /infra_right

步骤二:编写imu.yam,具体参数使用之前imu标定得到的参数

accelerometer_noise_density: 1.3105289977393427e-02   
accelerometer_random_walk:   2.6279926558638435e-04  
gyroscope_noise_density:     1.5606318435633282e-03   
gyroscope_random_walk:       1.6355489539708390e-05 
rostopic:                    /imu      
update_rate:                 200.0    

步骤三:准备好之前的checkerboard.yaml文件

步骤四:复制realsense-ros包中rs_camera.launch,重命名为rs_imu_stereo.launch,更改内容为

    将

<arg name="enable_sync"               default="false"/>

改为:

<arg name="enable_sync"               default="true"/>

这样来使imu和双目数据时间对齐

<arg name="unite_imu_method"          default=""/>

改为

<arg name="unite_imu_method"          default="linear_interpolation"/>

这样来保证会有imu话题

步骤五:启动realsense

我是在~/catkin_ws$ 里运行!!后面文件数据录制结束储存地方也在/catkin_ws)

roslaunch realsense2_camera rs_imu_stereo.launch

 步骤六:关闭IR结构光,参考上面

rosrun rqt_reconfigure rqt_reconfigure

打开后将camera->stereo_module中的emitter_enabled设置为off(0)

 步骤七:打开rviz,add imu topic和infra1 topic以及infra2 topic,同时调整realsenseD435i位置,要确保双目图像数据一直包含标定板全部内容

 步骤八:调整imu和双目topic的发布频率以及以新的topic名发布它们,其中双目图像的发布频率改为20Hz,imu发布频率改为200Hz

使用Ctrl+shift+T,打开新的终端,一个终端运行一个,分别运行

rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 20.0 /infra_left

rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 20.0 /infra_right

rosrun topic_tools throttle messages /camera/imu 200.0 /imu

步骤九: 开始录制数据包,,同样注意双目图像在整个过程要包含整个标定板,同时运动不能太快,这样会造成图像过于模糊,在前后左右上下方向来回移动,录制大概90秒,前后15秒等下可以不使用。录制命令为:

使用Ctrl+shift+T,打开另一个新的终端运行

rosbag record -O imu_stereo.bag /infra_left /infra_right /imu

其生成文件imu_stereo.bag位置在运行启动realsense终端的路径中,要将它复制过来放 kalibr_workspace中,与下面标定命令的文件夹放在一起。

步骤十:开始进行标定,标定命令为

kalibr_calibrate_imu_camera --target checkerboard.yaml --cam camchain.yaml --imu imu.yaml --bag imu_stereo.bag –show-extraction

最后标定生成4个文件:

camchain-imucam-imu_stereo.yaml

imu-imu_stereo.yaml

report-imucam-imu_stereo.pdf

results-imucam-imu_stereo.txt

上一篇:IMU工作原理


下一篇:软件工程应用与实践第十一篇