双目IMU相机
1. 功能介绍
地瓜双目IMU相机自带完整的标定参数,包括双目标定参数、IMU内参、双目和IMU之间的外参,用户无需额外标定即可直接使用。 利用这些参数,可以通过双目立体匹配算法计算高精度的深度图,实现实时的三维环境感知。 同时,相机的数据能应用于开源视觉惯性里程计(VIO)算法,如 OpenVINS 等,可计算相机位姿与轨迹信息。 适用于机器人导航、避障等应用,为开发者提供即插即用的深度感知与视觉惯性融合能力。
mipi相机代码仓库:https://github.com/D-Robotics/hobot_mipi_cam
2. 支持平台
| 平台 | 系统支持 | 示例功能 |
|---|---|---|
| RDK X5, RDK X5 Module | Ubuntu 22.04 (Humble) | 启动双目相机,输出双目图像和IMU数据 |
3. 准备工作
3.1. RDK平台
- RDK已烧录好RDK OS系统
- RDK已成功安装TogetheROS.Bot
- 如果需要在线推理,请准备好双目相机,目前支持多款MIPI相机、ZED mini/2i USB相机
- 如果需要离线推理,请准备好双目图像数据
- 确认PC机能够通过网络访问RDK
3.2. 系统和功能包版本
| 版本 | 查询方法 | |
|---|---|---|
| RDK X5系统镜像版本 | 3.4.1及以上 | cat /etc/version |
| tros-humble-hobot-stereonet功能包版本 | 2.5.0及以上 | apt list | grep tros-humble-hobot-stereonet/ |
| tros-humble-mipi-cam功能包版本 | 2.5.0及以上 | apt list | grep tros-humble-mipi-cam/ |
- 如果系统镜像版本不符合要求,请参考文档对应章节进行镜像烧录
- 如果功能包版本不符合要求,请执行以下指令进行更新:
sudo apt update
sudo apt install --only-upgrade tros-humble-hobot-stereonet
sudo apt install --only-upgrade tros-humble-mipi-cam
注意
如果sudo apt update命令执行失败或报错,请查看常见问题章节的Q10: apt update 命令执行失败或报错如何处理?解决。
4. 启动双目相机
4.1. 双目IMU相机
- 注意相机有黑色金属外壳和亚克力外壳两个版本,功能都是一样的

4.2. 硬件连接
- 模组背后开关设置为
EXT模式,不要在LPWM模式 - 相机的黑色杜邦线要 连接RDK X5的
37管脚,需要外部触发控制相机和IMU的时间同步,管脚定义可以查看3.1.1 管脚定义与应用

4.3. RDK X5配置
- RDK X5上要进行相应的设置才能读取IMU数据,首先检查一下系统版本是否符合要求,需要
3.4.1版本以上:
cat /etc/version
- 在RDK X5上运行以下指令进行配置:
srpi-config

- 重启后,确认目录
/sys/bus/iio/devices/有iio:device1和iio:device2则代表配置成功
ll /sys/bus/iio/devices/

4.4. 相机启动指令
- 执行如下指令启动相机:
source /opt/tros/humble/setup.bash
ros2 launch mipi_cam mipi_cam_dual_channel.launch.py \
mipi_channel:=2 mipi_channel2:=0 \
mipi_lpwm_enable:=True mipi_frame_ts_type:=realtime \
mipi_image_width:=816 mipi_image_height:=960 \
mipi_image_framerate:=10.0 mipi_gdc_enable:=True \
mipi_out_format:=nv12 \
log_level:=info
参数解释:
- mipi_channel:=2 mipi_channel2:=0 调整左右目拼接顺序
- mipi_lpwm_enable:=True 开启LPWM硬件同步
- mipi_frame_ts_type:=realtime 时间戳采用系统时间
- mipi_image_width:=816 mipi_image_height:=960 调整图像分辨率,最高可设置为1088*1280
- mipi_image_framerate:=10.0 调整相机帧率,最高可调整为30.0
- mipi_gdc_enable:=True 开启GDC矫正会发布矫正后的双目图像,否则会发布带畸变的图像
- mipi_out_format:=nv12 设置图像格式,支持nv12/bgr8
- log_level:=info 日志等级,info等级可以打印标定参数,如果不需要显示那 么多信息,则设置为warn
- 程序运行成功会打印如下日志,包括相机全部的标定参,目前双目标定采用鱼眼模式,可以参考OpenCV fisheye的介绍:

- 发布的话题如下:
ros2 topic list -v

- /image_combine_raw 为上下拼接的双目图像,mipi_channel:=2 mipi_channel2:=0 参数控制拼接顺序
- /image_left_raw//image_right_raw 为左右目数据话题,mipi_channel:=2 mipi_channel2:=0 参数控制顺序
- /imu_data 为IMU数据话题,发布陀螺仪和加速度计数据
注意
imu数据话题中angular_velocity 单位是 rad/s,linear_acceleration单位是 m/s²,重力加速度值是9.81
5. 启动双目深度算法
5.1. 启动指令
- 参考双目深度算法,里面有双目算法的相关介绍和启动指令介绍
- 本相机启动指令为:
bash run_stereo.sh --mipi_rotation 0.0
# 参考对应文档查看具体的参数设置