视觉惯性里程计算法
功能介绍
视觉惯性里程计(Visual Inertial Odometry,VIO)是融合相机与惯性测量单元(Inertial Measurement Unit,IMU)数据实现机器人定位的算法。VIO定位算法具有成本低、适用环境广等优点,在室外环境下能够有效弥补卫星定位中遮挡、多路径干扰等失效场景。优秀、鲁棒的VIO算法是实现室外高精度导航定位的关键。
代码仓库: (https://github.com/D-Robotics/hobot_vio.git)
支持平台
平台 | 运行方式 | 示例功能 |
---|---|---|
RDK X3, RDK X3 Module | Ubuntu 20.04 (Foxy), Ubuntu 22.04 (Humble) | 使用realsense的图像和IMU数据作为算法输入,算法输出机器人运动轨迹,轨迹可在PC的rviz2上可视化 |
RDK X5, RDK X5 Module | Ubuntu 22.04 (Humble) | 使用realsense的图像和IMU数据作为算法输入,算法输出机器人运动轨迹,轨迹可在PC的rviz2上可视化 |
RDK Ultra | Ubuntu 20.04 (Foxy) | 使用realsense的图像和IMU数据作为算法输入,算法输出机器人运动轨迹,轨迹可在PC的rviz2上可视化 |
准备工作
-
RDK已烧录好Ubuntu 20.04/Ubuntu 22.04系统镜像。
-
RDK已成功安装TogetheROS.Bot和Realsense的ROS2 Package。
-
realsense相机,连接到RDK的USB 3.0接口。
-
确认PC机能够通过网络访问RDK。
使用介绍
算法订阅realsense相机的图像和IMU数据作为算法的输入,经过计算得到相机的轨迹信息,并通过ROS2的话题机制发布相机的运动轨迹,轨迹结果可在PC的rviz2软件查看。算法的输入和输出topic如下表所示:
输入topic
参数名 | 类型 | 解释 | 是否必须 | 默认值 |
---|---|---|---|---|
path_config | std::string | vio算法配置文件路径 | 是 | /opt/tros/${TROS_DISTRO}/lib/hobot_vio/config/realsenseD435i.yaml |
image_topic | std::string | vio算法订阅的图像数据话题名 | 是 | /camera/infra1/image_rect_raw |
imu_topic | std::string | vio算法订阅的IMU数据话题名 | 是 | /camera/imu |
sample_gap | std::string | vio算法处理频率,1表示每帧图像都会参与轨迹计算,2表示每两帧图像计算一次,依此类推 | 是 | 2 |