【Ubuntu18.04 D435i RGB相机与IMU标定详细版(三)】

【Ubuntu18.04 D435i RGB相机与IMU标定详细版(三)】

提示:继上篇文章

文章目录


四、RGB相机与IMU联合标定

1.调节帧率

相机20Hz,IMU200Hz,官方说这个参数比较好,并分别以/color和/imu为话题名发布

c 复制代码
roslaunch realsense2_camera rs_camera.launch color_width:=640 color_height:=480 color_fps:=30
rosrun topic_tools throttle messages /camera/color/image_raw 20.0 /color
rosrun topic_tools throttle messages /camera/imu 200.0 /imu

2.录制数据包

官方似乎没有说录多久,但是说了每一个方向都要给激励,可以参考官网的视频。YouTube看不了的话可以看泡泡机器人搬运过来的视频。

总结下来就是偏航角左右摆动2次,俯仰角摆动2次,滚转角摆动2次,上下移动2次,左右移动2次,前后移动2次,然后自由移动一段时间,摆动幅度要大一点,让视角变化大一点,但是移动要缓慢一点,同时要保证标定板在2个相机视野内部,整个标定时间要在90s以上更好,但是优化时间会比较长。

c 复制代码
rosbag record -O dynamic /color /imu

3.重写yaml文件

标定需要三个文件,一个是相机的标定文件,一个是IMU的标定文件,一个是录制的数据包

(1)相机标定的yaml文件

由于我们刚刚也是在kalibr工作环境下标定的,所以直接用刚刚标定好的相机yaml文件即可。

即上述所说的

camchain-...camd435i.yaml

c 复制代码
cam0:
  cam_overlaps: []
  camera_model: pinhole
  distortion_coeffs: [0.11114194921960645, -0.2171600270591326, -0.0037942616908056637,
    -0.004000340562604045]
  distortion_model: radtan
  intrinsics: [579.5589935482029, 578.1762234104125, 326.6772381912598, 243.3955018655041]
  resolution: [640, 480]
  rostopic: /color

(2)新建imu.yaml

在kalibr工作环境目录下新建imu.yaml文件,格式如下:

格式如下:

c 复制代码
#Accelerometers
accelerometer_noise_density: 1.86e-03   #Noise density (continuous-time)
accelerometer_random_walk:   4.33e-04   #Bias random walk

#Gyroscopes
gyroscope_noise_density:     1.87e-04   #Noise density (continuous-time)
gyroscope_random_walk:       2.66e-05   #Bias random walk

rostopic:                    /imu0      #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

已知

c 复制代码
Gyr:
   avg-axis:
      gyr_n: 3.1820671461855504e-03
      gyr_w: 3.0693398103399251e-05
Acc:
   avg-axis:
      acc_n: 2.6449533258549235e-02
      acc_w: 7.2111910796954259e-04

把IMU标定结果对应地填到imu.yaml去,如下:

c 复制代码
#Accelerometers
accelerometer_noise_density: 2.64e-02   #Noise density (continuous-time)
accelerometer_random_walk:   7.21e-04   #Bias random walk

#Gyroscopes
gyroscope_noise_density:     3.18e-03   #Noise density (continuous-time)
gyroscope_random_walk:       3.07e-05   #Bias random walk

rostopic:                    /imu   #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

由于我们刚刚也是在kalibr工作环境下标定的,所以直接用刚刚标定好的相机yaml文件即可。

即上述所说的

4.使用Kalibr进行标定

然后下面的参数仍然需要自己修改

c 复制代码
rosrun kalibr_calibrate_imu_camera --target 标定板位置/标定板名称.yaml --cam 相机标定位置/相机标定名称.yaml --imu imu.yaml --bag dynamic.bag --show-extraction

rosrun kalibr kalibr_calibrate_imu_camera --target ../camera_calib/april_6x6_80x80cm.yaml --cam ./d435i-camchain.yaml --imu imu.yaml --bag dynamic.bag --show-extraction

# --show-extraction 可以增加参数可视化标定

运行时间会根据你录制数据包的大小和电脑性能而定,我录制了将近两分钟,电脑是四年前的神舟,所以速度较慢,大概用了有半个小时以上,可以去喝杯咖啡再回来看看。

生成好多个文件,主要关注一个文件:

c 复制代码
camchain-imucam-dynamic.yaml

里面有一个T_cam_imu,就是我们要求的外参。

相关推荐
胖咕噜的稞达鸭5 小时前
如何写好一个skill
人工智能·数码相机
Hello-FPGA5 小时前
CameraLink相机模拟器 信号源加速激光雷达系统算法开发
数码相机
双翌视觉7 小时前
机器视觉系统为何离不开光学滤光片?
人工智能·数码相机·视觉检测·制造
3DVisionary14 小时前
XTDIC-VG视频引伸计技术原理解析:金属疲劳测试的“非接触革命“
python·数码相机·音视频·非接触测量·xtdic-vg·视频引伸计·金属疲劳测试
_李小白1 天前
【智能驾驶:视觉感知后处理 阅读笔记】Day4: 相机成像模型与畸变
笔记·数码相机
Hello-FPGA1 天前
基于VU13P VU系列FPGA的高性能CoaXpress 图像采集系统
数码相机
ctrl_v助手1 天前
VisionPro (R) QuickBuild相机的连接
服务器·笔记·数码相机·c#
工头阿乐1 天前
相机坐标系标定与外参矩阵求解
数码相机·线性代数·矩阵
问道财经1 天前
Pocket 4爆火,索尼富士慌了
数码相机
Hello-FPGA1 天前
CoaXPress 相机触发设置
数码相机