INDEMIND 相机具备两个全局曝光的相机,广角相机,水平视野120度,垂直75度。图像帧率在640x400分辨率可以达到200HZ,在1280x800分辨率下最高达到50Hz。1KHZ的IMU(IMU型号为ICM-20602,性能和MPU 6050差不多)[3]数据频率,具有硬件同步功能。相机基线为12cm,估计深度范围大约在0.1-10m,且自带深度估计功能,输出深度图像为640x400,25Hz。是做VIO的理想设备,最主要的是价格便宜。由于官网上的教程写的比较简略(可以说很简略),尤其是针对ROS环境下的教程,对于我们这小白有些不友好,直接按照官网上的步骤根本无法实现相机数据读取并发布到制定的topic上,因此做了一下笔记,备以后查阅, 同时把我自己写的ROS节点分享到博客中,方便大家做参考。(我所使用的系统版本是ubuntu1604+ROS-Kinetic版本)
更新日志:
——2020-2- 8 修复了深度数据的发布 /indemind/depth/point_cloud
——2020-2-7 添加了camera_info 话题的发布
——2020-2-5 在官方的基础上修改发布了ROS节点驱动,可成功读取左右目图像
1 相机驱动安装
1.1 安装驱动
首先在github上下载SDK包:
git clone https://github.com/INDEMIND/SDK-Linux.git
其次安装相机需要的依赖包
a)安装cmake
sudo apt-get install cmake
b)安装google-glog + gflags
sudo apt-get install libgoogle-glog-dev
c)安装BLAS & LAPACK
sudo apt-get install libatlas-base-dev
d)安装SuiteSparse and CXSparse
sudo apt-get install libsuitesparse-dev
1.2 测试demo运行
cd 到 SDK-Linux-master/demo 目录下,创建一个名为build的文件夹
cd demo
mkdir build
cd build
cmake ..
make
然后,cd 到 SDK-Linux-master/lib/1604 目录下,修改 TestIndem 和 TestIndem.sh 运行权限
sudo chmod 777 TestIndem
sudo chmod 777 TestIndem.sh
运行测试代码
sudo ./TestIndem.sh
这样就可以看到效果了,如果显示了以下效果,证明你已经成功安装了驱动。
在启动的时候相机静止情况下,可以看到相机的内参等信息
这个demo自带有一个SLAM库,可运行该双目范例,场地是在老家外面的公路上面,感觉相机当前提供的SDK中深度灰度的效果很不错,但是位姿估计的还不够鲁棒,最终起点和终点没有重合,旋转的时候会有偏差。下面是测试效果:
indemind相机自带SLAM demo测试
1.3 ROS驱动节点
官方提供的ROS节点的教程[1]位于此处,直接按照教程运行会出现较多的错误。这里我就不按照官方的步骤进行操作了,我直接用我修改后的ROS节点进行操作说明(代码链接)[2]
1)将github上的代码下载下来,放置到你的ROS工作空间中,然后进行编译,
cd catkin_ws
source devel/setup.bash
catkin_make
2)编译成功以后拷贝文件 libslam.so 、headset.yaml 和 libusbdriver.so (这三个文件在ROS包的lib目录下面-- indemind_stereo/lib)到目录 "~/catkin_ws/devel/lib/indemind_stereo" 下面 (目前我只想到了使用这种方法来添加文件过去,不知道能不能通过修改CMakeList.txt的方式自动安装文件过去,如果哪位大大知道烦请指导一下)
3)进入超级用户权限,启动节点(必须要在超级用户权限下面启动ROS节点,相机必须插在USB3.0端口上)
sudo -s
cd catkin_ws
source devel/setup.bash
roslaunch indemind_stereo stereo.launch
这时候你可以看到RVIZ中显示了左右目的图像,用rostopic list 可以看到这个节点发布的topic, /indemind/image_left 和 /indemind/image_right 分别表示左右目的图像, /indemind/imu 为IMU的数据
1.4 补充
把ROS包的lib目录下面的 plugin 文件夹 拷贝到目录 "~/catkin_ws/devel/lib/indemind_stereo" 下面,然后重新启动节点既可以看到输出的深度图。
参考链接:
[1] 官方教程 https://indemind-sdk.readthedocs.io/zh_CN/latest/src/sdk/ros%20SDK%20anzhuang.html
[2] ROS 节点修改 https://gitee.com/cenruping/indemind_stereo.git
[3] SLAM硬件体验-INDEMIND双目IMU相机: https://zhuanlan.zhihu.com/p/69479261