当前位置:   article > 正文

ROS运行ORB_SLAM3遇到的问题以及解决_make: *** 没有指明目标并且找不到 makefile。 停止。 orb-slam

make: *** 没有指明目标并且找不到 makefile。 停止。 orb-slam

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

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

./build_ros.sh
  • 1

编译的时候出现:
– 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
  • 1

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

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

然后打开终端执行:

source ~/.bashrc
  • 1

然后再次:

// An highlighted block
./build_ros.sh
  • 1
  • 2

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

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

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

rosbag play MH_01_easy.bag
  • 1

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

rostopic list
  • 1

会出现如图:
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);
  • 1
  • 2

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

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

cam0代表的是左目。

最后,再次进行:

./build_ros.sh
  • 1

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/292859
推荐阅读
相关标签
  

闽ICP备14008679号