ROS运行ORB_SLAM3遇到的问题以及解决

ROS运行ORB_SLAM3遇到的问题以及解决

1.首先是在对应的ORB_SLAM3的文件夹下进行

./build_ros.sh

编译的时候出现:
– Configuring incomplete, errors occurred!
See also “/home/cuiyunxuan/ORB_SLAM3/Examples/ROS/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log”.
make: *** 没有指明目标并且找不到 makefile。 停止。

解决办法如下:
1)打开./bashrc文件:

sudo gedit ~/.bashrc

在最后面加上这样一句话:

//文件路径要和自己的一致/home/....../Examples/ROS
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/cuiyunxuan/ORB_SLAM3/Examples/ROS

然后打开终端执行:

source ~/.bashrc

然后再次:

// An highlighted block
./build_ros.sh

如果这时候你还是有问题,比如说死机了(和我一样哈哈哈),那么你就要打开/home/…/ORB_SLAM3/build_ros.sh文件把最后的make -j改为make -j4

相信你的编译问题已经解决了!

2.接下来就是关键了
首先先看一下rosbag的话题,运行你下载的rosbag:

rosbag play MH_01_easy.bag

运行的时候再打开一个终端,然后输入:

rostopic list

会出现如图:
ROS话题看前两个是最重要的,他们分别是cam0左目,cam1右目。
然后,这两个一定要和Examples/ROS/ORB_SLAM3/src下的ros_stereo.cc里面的message_filters::Subscriber里的内容一致
我做出了如下修改:

    message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/cam0/image_raw", 1);
    message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "/cam1/image_raw", 1);

如果运行的是单目Monocular而你的数据集是双目的。首先打开Examples/ROS/ORB_SLAM3/src下面的ros_mono.cc。并修改话题ros::Subscriber,如下:

ros::Subscriber sub = nodeHandler.subscribe("/cam0/image_raw", 1, &ImageGrabber::GrabImage,&igb);

cam0代表的是左目。

最后,再次进行:

./build_ros.sh

此时,就没问题喽,可以用ros运行你的单目或双目数据集了。
这里提一点初学者的错误:
1.首先没有打开终端输入roscore
2.没有source devel/setup.bash
3.如果你发现你输入rosrun的时候只是出现了一个黑框框和一个白框框,不用着急,因为你没运行rosbag啊。只需在打开一个终端,输入rosbag play MH_01_easy.bag(bag要是你自己的哦)。

最最后,上我的效果!
这是单目的:
单目的这是双目的:
双目的

  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值