Ubuntu 18.04+ROS melodic+MYNTEYE 安装运行ORB_SLAM3

据说ORB_SLAM3效果不错,尝试安装运行了一下。
官方github地址

编译

需要的预先安装库有Pangolin、OpenCV、Eigen3等,我都是编译报错后再回头去官方github上下载安装。DBoW2和g2o是算法自带的。

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh

这一步会创建libORB_SLAM3.so静态库。

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS #这里的PATH改成自己的路径
chmod +x build_ros.sh
./build_ros.sh

我编译的很顺利,基本没有报什么异常==
出现recipe for target ‘all’ failed的问题,是因为电脑算力不够,多编译几次就好了

运行

以EuRoc数据集V1_02_medium.bag(下载)为例,运行双目惯性程序:

roscore
#另一终端,运行并保存轨迹
cd ORB_SLAM3
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml true
#另一终端,运行rosbag
cd BAGFILEPATH
rosbag play V1_02_medium.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu

注:ORB_SLAM3的话题订阅是写死在程序里的,如果要修改的话到/Examples/ROS/ORB_SLAM3/src中修改特定的程序,然后重新运行./build_ros.sh

运行结果

在这里插入图片描述我把/Examples/ROS/ORB_SLAM3/src/ros_stereo_inertial.cc改了一下,如下所示:
在这里插入图片描述

使用evo工具进行分析

evo官方github
安装:pip install evo --upgrade --no-binary evo

从官方下载的V1_02_medium/mav0/state_groundtruth_estimate0/data.csv中找到真值,将其与刚才保存下来的KeyFrameTrajectory_TUM_Format.txt作对比:

#将真值格式存为tum格式
evo_traj euroc data.csv --save_as_tum
#对比轨迹
evo_traj tum KeyFrameTrajectory_TUM_Format.txt --ref=data.tum -p --plot_mod``e xyz -a --correct_scale
#对比绝对精度
evo_ape tum data.tum KeyFrameTrajectory_TUM_Format.txt -va --plot --plot_mode xyz -a --correct_scale --save_results ape_V1_02_medium.zip

在这里插入图片描述终端显示的绝对误差

在这里插入图片描述

结果还行吧?

使用自己的小觅相机运行ORB_SLAM3

安装MYNT-EYE-S-SDK

官方链接
安装:

git clone https://github.com/slightech/MYNT-EYE-S-SDK.git
cd MYNT-EYE-S-SDK
make init
make ros

启动相机节点:

#另一终端
source ./wrappers/ros/devel/setup.bash
roslaunch mynt_eye_ros_wrapper display.launch
#或是不显示图像,只启动节点
source ./wrappers/ros/devel/setup.bash
roslaunch mynt_eye_ros_wrapper mynteye.launch

获取参数,替换EuRoc.yaml中的参数得到my_MYNT.yaml:

#获取相机参数
./samples/_output/bin/get_img_params
#或
rostopic echo /mynteye/left/camera_info
rostopic echo /mynteye/right/camera_info

运行

还是以双目惯性为例。
为了省事,直接将程序中的话题名称改了:
在这里插入图片描述

#启动小觅
source wrappers/ros/devel/setup.bash
roslaunch mynt_eye_ros_wrapper mynteye.launch
#启动算法
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/my_MYNT.yaml true

运行效果不太好,就不贴图了。
对于my_MYNT.yaml,我尝试了SDK中其自带的读取内外参程序(见/MYNT-EYE-S-SDK/samples/_output/bin)还有小觅github官网上提供的ORB_SLAM2中的双目参数VINS中的imu外参,效果都不太理想。
个人猜测原因是ORB_SLAM3对参数的依赖很大,下周计划对小觅进行一次严格的标定,再进行尝试。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值