自己ubuntu18.04上部署ORBSLAM3的可行操作步骤整理

装Pangolin(Pangolin起可视化作用的)

git clone https://gitee.com/maxibooksiyi/Pangolin/tree/v0.6

再把v0.6这个文件夹名称改为Pangolin

然后装些Pangolin的依赖,保险起见我没有直接运行脚本装,怕他给我更新了什么软件,其实下面这些装的时候大部分已经装了

sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
cd Pangolin
mkdir build
cd build
cmake ..         #有的地方写 cmake -DCPP11_NO_BOOSR=1 .. 也可以,#待验证区别
make
sudo make install 
sudo ldconfig  #这步容易漏掉

sudo ldconfig的作用是刷新
https://blog.csdn.net/qq_42848006/article/details/118760313

输入图片说明

卸载2.0.0版本的ceres并装1.14.0版本的ceres
卸载源码编译安装的ceres只需要在build文件夹下打开终端运行sudo make uninstall即可
说明一下,下仓库里对应tag的时候,也是可以用git clone -b tag名称 的,就当下载某个分支一样。

git clone -b 1.14.0 https://gitee.com/maxibooksiyi/ceres-solver
cd ceres-solver/
mkdir build
cd build
cmake ..
make
sudo make install

然后就是下tag为v0.4-beta的ORB_SLAM3并编译,注意不需要专门下到一个工作空间里面。

git clone -b v0.4-beta https://gitee.com/maxibooksiyi/ORB_SLAM3

然后直接用脚本编译了

cd ORB_SLAM3
chmod +x build.sh
./build.sh

为使编译不报错,需要修改三处地方的代码。
这是第一处
OTB_SLAM3文件夹下的CMakeLists.txt里面添加下面这句(我不确定这步有没有起作用,后来似乎主要是靠更换ceres版本解决的编译报的一大堆语法错误,但是至少更换ceres版本再加上这步是没有问题的,可以解决那一大堆报错,不加这步只改ceres版本不知道是否OK,只加这步但是不改ceres版本是解决不了那些一大堆报错的,万全起见,这步还是加上,至少没坏处)

add_compile_options(-std=c++14)

https://blog.csdn.net/hhz_999/article/details/120473659?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-120473659-blog-107630069.pc_relevant_downloadblacklistv1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-120473659-blog-107630069.pc_relevant_downloadblacklistv1&utm_relevant_index=1

输入图片说明

这个地方有两处
error: no match for ‘operator/’ (operand types are ‘cv::Matx<float, 3, 1>’ and ‘float’) x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3)错误
将x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);

修改为

x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) /    x3D_h(3), x3D_h.get_minor<3,1>(0,0)(2) / x3D_h(3));

https://blog.csdn.net/qq_45807929/article/details/120445366
 

输入图片说明


 

输入图片说明

输入图片说明

改完这三处,再用./build.sh重新编译即可。

其实到这里可以下数据集跑,当然不基于ROS的,但是由于下数据集的网站网速太慢,所以我就没有在这里下数据集跑了。接着弄基于ROS的ORBSLAM。

可以接着准备编译ROS版的ORBSLAM3
先运行这两个命令,注意路径对应真实路径,应该是为了让系统能找到这个功能包。

echo "export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/maxi/ORB_SLAM3/Examples/ROS" >> ~/.bashrc
source ~/.bashrc

再运行这两个命令进行编译

chmod +x build_ros.sh
./build_ros.sh

更改订阅话题的名称再运行./build_ros.sh重新编译
参照这里去对应位置修改订阅的图像话题名称,我这里是改为订阅T265的鱼眼图像话题

下面两个命令分别是启动T265发出鱼眼图像话题,启动ORBSLAM,注意第二个命令里面的路径要跟实际路径相对应,不要直接复制。由于是单目,启动完成后,需要移动下相机使得完成初始化。
当然目前这只是初步跑通,还没有严格修改配置文件,标定等等的。还没有跑双目双目IMU的ORBSLAM3。

roslaunch realsense2_camera rs_t265_image.launch
rosrun ORB_SLAM3 Mono /home/maxi/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/maxi/ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml

下图是成功启动并完成初始化后的现象,可以在相机图像里看到熟悉的ORBSLAM的特征点方格。
 

输入图片说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值