主要参考这位大佬的,但是那个ros的topic我这里和他不一样。
https://blog.csdn.net/hhhhpanda/article/details/85037463
1.先说说自己遇到的问题吧,因为我开始根据网上的博主使用opencv2.4.13,编译都没问题,
但是
cd ~/catkin_ws
source ./devel/setup.bashroscore
//另开一个命令行
cd ~/catkin_ws
source ./devel/setup.bash //不知道为什么不执行这一步就无法找到zed.launch
roslaunch zed_wrapper zed.launch
//另开一个命令行
cd ~/catkin_ws/src/ORB_SLAM2
rosrun ORB_SLAM2 zed_Stereo_rect Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false
结果在最后rosrun ORB_SLAM2 zed_Stereo_rect Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false,总是提示EuRoC.yaml 这个文件打开失败,搞了半天没懂什么问题。
后来我换了个运行顺序,先用来这个rosrun ORB_SLAM2 zed_Stereo_rect Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false
然后他就会等待,之后运行roslaunch zed_wrapper zed.launch,发现了问题了,opencv版本的冲突问题,因为rosrun他用的是自己的opencv3.2的,就是ros全安装会有的,然后我之前ROBSLAM2改了makelist让他使用的opencv2.4.13进行编译的,结果我改回了opencv3,结果报错,opencv问题。我看github上这个ORBSLAM2已经支持opencv3的版本了,想着这样改也不行,卸载了opencv2.4.13,发现还是报错,那我就装一下3.4.4,发现有问题还要装什么包,后来想着不如重新clone一下ROBSLAM2,
然后果然就成功了。
今天整理了一下上次失败的那个文件,原来没有把之前用2.4.13版本编译的很多build文件夹删除,然后今天果断删除,发现可以编译成功了。
2.这块里topic需要修改
使用ROB_SLAM2+ZED
因为这个,/zed/left/image_rect_color,没有图像出来。
仿照/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src目录下的ros_stereo.cc建立一个新文件,如zed_stereo_rect.cc。将代码复制过去,修改以下部分:
message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/zed/zed_node/left/image_rect_color", 1); message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "/zed/zed_node/right/image_rect_color",1);
其实你运行这个 roslaunch zed_wrapper zed.launch,可以看到的,这里有的。
3.最后github下载慢,可以使用码云,将这个项目导入自己的仓库,然后在clone就是自己的正常网速了。