赞
踩
请确保opencv、eigen、sophus等包已经安装好了。
下载ORBSLAM3
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
本人感觉先安装非ROS再安装ROS会将很多第三方库安装好,减少不必要的BUG
./build.sh
解决方法:
修改里面opencv版本号
vim CMakeLists.txt
由于我的opencv版本是4.2 所以修改成4.2
重新build :
./build.sh
/usr/local/include/sigslot/signal.hpp:1180:65: error: ‘slots_reference’ was not declared in this scope
1180 | cow_copy_type<list_type, Lockable> ref = slots_reference();
| ~~~~~~~~~~~~~~~^~
这个是由于默认使用的是C++11,而最新的g2o使用的是c++14的问题。
解决方法:
修改CMakeLists中的c++版本号
vim CMakeLists.txt
将选中的地方修改成14就可以了,注意不要修改其他的,会造成代码里面的标签错误。
然后重新build。
./build.sh
非ROS版安装成功:
首先build_ros.sh。
./build_ros.sh
有的同学会没没办法build,需要修改一下权限。
chmod +x build_ros.sh
./build_ros.sh
出现了rospack找不到ORBSLAM3问题,我们需要建立一个软连接并且加上ROS路径
解决方法:
sudo vim ~/.bashrc
#文件路径要和自己的一致/home/....../Examples/ROS
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/jiangz/CODE/ORB_SLAM3/Examples/ROS
source ~/.bashrc
还要在ros share中建立软链接
sudo ln -s ~/CODE/ORB_SLAM3/Examples/ROS/ORB_SLAM3 /opt/ros/noetic/share/ORB_SLAM3
然后再 build一下
./build_ros.sh
出现了和非ROS时一模一样的问题,所以同样的也是修改CMakeList,但是需要注意的是在build_ros.sh中的CMakList在上面的Example路径中
vim Examples/ROS/ORB_SLAM3/CMakeLists.txt
修改的方式是一样的。
build一下
./bulid_ros.sh
这里说的是一共使用了两个不同版本的opencv,在调用包时候会产生冲突。所以我们需要修改CMakeList中的opencv版本。
解决方法
vim Examples/ROS/ORB_SLAM3/CMakeLists.txt
修改成同样的opencv版本
build 一下
不出意外又出问题了。
解决方法:
这个也是由于包冲突引起的。
方法可以见这个帖子:
https://blog.csdn.net/zhh2005757/article/details/122353772?spm=1001.2014.3001.5506
build一下。
终于成功了 泪目,搞了我两天。
首先查看topic
rosbag info test.bag
将topic修改到需要运行的ROS包中。
比如说我这个是双目的,修改ros_stereo.cc 订阅的 topic
修改完成之后重新build一下。
rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/RealSense_T265.yaml false
rosbag play test.bag
成功!
最后再附上一个大佬的文章:https://zhaoxuhui.top/blog/2020/09/30/orb-slam3-cmake-ros-compilation-and-test.html#1ros%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。