赞
踩
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
会出现如图:
看前两个是最重要的,他们分别是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要是你自己的哦)。
最最后,上我的效果!
这是单目的:
这是双目的:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。