本文主要是介绍海康相机+SC-AHRS-100D2 IMU + VINS-MOMO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
百度找IMU适配型号的功能包sanchi_amov。注意imu的坐标系。
解压功能包,编译,用sanchi_amov启动SC-AHRS-100D2(根据不同型号改参数)
roslaunch sanchi_amov imu_100D2.launch
若端口打开错误,配置其权限
sudo chmod 777 /dev/ttyUSB0
IMU话题为
/imu/data_raw
将海康相机接入ros,参考:https://blog.csdn.net/weixin_41965898/article/details/116801491
可以在hk_camera_node.cpp中,修改HkCamNode::spin(),解除相机拍照帧率限制。在hk_camera.cpp中,将scanf("%d", &nIndex)注释掉,让他自动连接。
启动海康相机节点
roslaunch hk_camera hk_camera.launch
相机图像话题为
/hk_camera_node/image_raw
配置VINS-MOMO
先标定相机、imu和相机+imu的联合点目标定。
修改VINS-MOMO的launch文件:/home/gao/vins-momo/src/VINS-Mono/vins_estimator/launch/HIK+imu.launch。改变yaml文件的路径;
修改config文件:/home/gao/vins-momo/src/VINS-Mono/config/realsense/HIK+imu.yaml。更改imu、相机话题,更改输出路径,更改相机分辨率,更改distortion_parameters(畸变系数):
distCoeffs – Input vector of distortion coefficients (k_1, k_2, p_1, p_2)
更改相机内参(projection_parameters):
K = fx s cx0 fy cy0 0 1
或由单目标定的结果:
distortion: [k1 k2 p1 p2]
projection: [fx fy cx cy]
estimate_extrinsic建议改为1。extrinsicRotation和extrinsicTranslation(相机到imu转换矩阵),联合标定得到的结果是4维矩阵,左上3*3矩阵是extrinsicRotation,有上三行一列矩阵是extrinsicTranslation。
修改imu parameters,为imu标定结果。
运行VINS-MOMO
roslaunch vins_estimator HIK+imu.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play YOUR_PATH_TO_DATASET/.bag
若vins-momo出现错误:
what(): OpenCV(4.2.0) 和 [feature_tracker-1] process has died
或者realsense出现黄色警告:
Hardware Notification:Motion Module failure,1.68727e+12,Error,Hardware Error
说明realsense相机的分辨率出现了错误,建议将所有分辨率的值改为-1,这样可以让代码自动适配现在相机的分辨率。
这篇关于海康相机+SC-AHRS-100D2 IMU + VINS-MOMO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!