编译ROS版本的ORBSLAM2_with_pointcloud_map参考的https://github.com/ZhenghuaHIT/orbslam2_modified_ros#1-download--install-project
修改了ROS下的CMakeLists。
首先进入到ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/文件夹下, 顺序执行以下命令
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j
由于之前编译过ros包并没有报错,当cmake后报如下错误的时候,我是懵逼的状态。为什么会缺少opencv3,之前一直都可以编译成功,所以后来一直把这个明显的错误忽略,走了很多弯路还是不行的时候,终于走回来
Failed to invoke /opt/ros/kinetic/bin/rospack deps-manifests ORB_SLAM2
Error: package 'cv_bridge' depends on non-existent package 'opencv3' and
rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'
sudo apt-get install ros-kinetic-cv-bridge
又面临了新的错误
Err:1 http://packages.ros.org/ros/ubuntu xenial/main arm64 ros-kinetic-opencv3 arm64 3.3.1-5xenial-20180811-012457-0800
404 Not Found [IP: 64.50.233.100 80]
Err:2 http://packages.ros.org/ros/ubuntu xenial/main arm64 ros-kinetic-cv-bridge arm64 1.12.8-0xenial-20190322-180810-0800
404 Not Found [IP: 64.50.233.100 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-opencv3/ros-kinetic-opencv3_3.3.1-5xenial-20180811-012457-0800_arm64.deb 404 Not Found [IP: 64.50.233.100 80]
E: Failed to fetch http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-cv-bridge/ros-kinetic-cv-bridge_1.12.8-0xenial-20190322-180810-0800_arm64.deb 404 Not Found [IP: 64.50.233.100 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
于是参考https://blog.csdn.net/feiniao8651/article/details/60332535配置DNS,貌似解决了部分问题,我留意了关于ros包的情况,发现公钥有问题
sudo apt-get update
Err:10 http://packages.ros.org/ros/ubuntu xenial InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
然后就轻松安装了cv_brage解决了最初的cv_bridge问题,到此,我们已经编译成功了。
-------------------------------------------------------------------------------------------------------------------------------------------------
运行打开不同的终端分别执行
你深度相机的启动文件(如果是launch,可以不用启动roscore, 否则启动提前启动roscore)
然后在将要运行ORBSLAM的窗口 source 一下
source Your_path/ROS/ORB_SLAM2/build/devel/setup.bash
在/ORB_SLAM2_modified/文件夹下运行
rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml
发布depth topic遇到问题ResourceNotFound: rgbd_launch 参考https://www.cnblogs.com/sea-stream/p/10066117.html
sudo apt-get install ros-(kinetic)-rgbd-launch //括号改为相应版本