zed相机用zed_cup_ros 跑ORB_SLAM2

由于自己的电脑没有NVIDIA的显卡,下载官方的驱动的ros驱动需要安装CUDA,所以在网上找的一个大佬的https://github.com/willdzeng/zed_cpu_ros,不需要显卡就能跑得动相机。

1.zed_cup_ros安装及使用

先去zed官网下载,ZED官网下载SDK 官网传送门:https://www.stereolabs.com/developers/release/

下载一个对于电脑系统的版本就好,带CUDA无所谓,因为后面不会安装它。本文下载的是

zed相机用zed_cup_ros 跑ORB_SLAM2ZED_SDK_Ubuntu16_cuda10.0_v3.1.2.run

在终端输入命令行:我这里对应的是我的版本,大家根据自己下载的版本更改即可

zed相机用zed_cup_ros 跑ORB_SLAM2

后面按提示安装完成,第一个按q,后面的按Y安装完成就好。

zed相机用zed_cup_ros 跑ORB_SLAM2

接着运行tools里面的./ZED_Explorer

zed相机用zed_cup_ros 跑ORB_SLAM2

出来图片了说明安装成功了,其他的功能没有CUDA是用不了的。接着安装zed_cpu_ros,下载上面的版本不能修改频率,略有修改https://github.com/NCHUPJ/zed_cpu_ros。

接着按着里面的zed_cpu_ros的步骤就行调试。

zed相机用zed_cup_ros 跑ORB_SLAM2

上面的意思是将原先安装的SDK里面settings的.conf文件替换zed_cpu_ros里面config的.conf文件,我的是:

zed相机用zed_cup_ros 跑ORB_SLAM2

zed相机用zed_cup_ros 跑ORB_SLAM2

如下图所示,改成自己的conf文件名字。

zed相机用zed_cup_ros 跑ORB_SLAM2

特别注意需要修改自己电脑对应的device_name,在dev文件夹下面搜索video出来了两个,其中那个0是我笔记本自带的摄像头,1才是zed相机的。其中use_zed_config是是否加载left.yaml,right.yaml,这个可以存放自己标定好的参数,后续用image_proc.launch需要设置为false才能获取标定后的图片。

zed相机用zed_cup_ros 跑ORB_SLAM2

 

zed相机用zed_cup_ros 跑ORB_SLAM2

在rviz上面显示的效果

zed相机用zed_cup_ros 跑ORB_SLAM2

zed相机的标定(最好用专门的标定板)

利用zed_cup_ros里面的camera_calibration.launch文件,不过得先下载https://github.com/ros-perception/image_pipeline.git

zed相机用zed_cup_ros 跑ORB_SLAM2

或者运行:

zed相机用zed_cup_ros 跑ORB_SLAM2

其中size是角点数量,square代表每个方块的大小,一定要在出来的图片上看到有不同颜色的线条,不然说明参数设置有误,标定的结果

zed相机用zed_cup_ros 跑ORB_SLAM2

将config里面的left.yaml,right.yaml文件修改一下,然后将zed_cup_ros.launch里面的use_zed_config设置为false,然后再运行

zed相机用zed_cup_ros 跑ORB_SLAM2

rviz订阅rect的话题就能获取矫正过后的图片。

zed相机用zed_cup_ros 跑ORB_SLAM2

zed相机用zed_cup_ros 跑ORB_SLAM2

运行ORB_SLAM2

ORB_SLAM2环境的配置网上博客很多可以去参考这里就不写了。

开始由于标定zed的参数出现了一些问题,导致相机的定位一直在原地打转。后续用专用的标定板标定出来的参数比较好,再ORB_SLAM2的config文件进行修改如下,因为我们使用的矫正过后的图片,其他部分不做修改也没关系。

zed相机用zed_cup_ros 跑ORB_SLAM2

运行如下命令,注意最后的参数是false,如果输入的不是矫正过后的图片,那就得在ORB_SLAM2里面就行矫正,将最后的参数设置为true,而且前面的zed.yaml后面的left,right的相关参数也要进行设定,就将你标定出来的参数填入就好。

zed相机用zed_cup_ros 跑ORB_SLAM2

运行效果:

zed相机用zed_cup_ros 跑ORB_SLAM2