Jeston nano+RealSense D455相机+ORB_SLAM3+ROS实时运行

2023-05-16

Jeston nano+RealSense D455相机+ORB_SLAM3+ROS实时运行

  • 安装各种ORB_SLAM3依赖项
  • 编译
    • 编译正常版本
    • 编译ROS版本
  • 外接相机实时运行ORB_SLAM3
    • 修改订阅话题名
    • 运行
    • 效果

本人是在已经装有Ubuntu系统和ROS和opencv的Jeston nano上外接D455相机实现ORB_SLAM3的初步实时运行。

安装各种ORB_SLAM3依赖项

这个内容已经有许多人做了,建议参照ORB_SLAM3源代码讲解进行下载安装各类依赖项
参考链接:ORB_SLAM3官方下载
按照以上链接内容进行一步步下载安装,即可完成初步的ORB_SLAM3的下载。

编译

编译正常版本

正常版本不需要添加环境变量,正常按以下命令正常编译即可:

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

但是,由于我使用的Jeston nano的内存和CPU比较小,似乎不足以很快地编译成功,会出现卡机死机的情况,所以可以通过设置交换空间进行解决,具体可参考:swap分区设置
同时,为了防止死机,可以手动编译:

cd ORB_SLAM3/build
make -j1

另外,在编译过程中还会发现依赖库找不到的情况,此时是由于新下载的库默认位置是/usr/local/lib,而库配置文件并没有写入库文件所在目录,所以进行如下操作:

#找到库配置文件:
/etc/ld.so.conf.d/usr-libs.conf
#在其中添加:
/usr/local/lib
#更新/etc/ld.so.cache文件:
ldconfig

具体可参考:解决lib依赖库问题

编译ROS版本

在进行ROS版本编译前,需要先添加环境变量,具体命令如下:

nano ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/…/ORB_SLAM3/Examples/ROS
#上面…填上ORB_SLAM3的具体路径
source ~/.bashrc

然后,按照以下操作进行ROS版本的编译,同样这个过程中会出现卡机、死机的情况,具体解决办法可以参考前面。

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

但是,此时可能出现仍然找不到package的情况,即环境变量添加不成功,具体解决方法是在ROS的安装路径下添加环境变量,操作命令如下:

 cd /opt/ros/melodic/
 sudo su    #进入root权限
 nano setup.bash
 export  ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/…/ORB_SLAM3/Examples/ROS
 source setup.bash

其中更详细内容可以参考:添加环境变量
此时重新编译./build_ros.sh即可成功。

外接相机实时运行ORB_SLAM3

修改订阅话题名

首先要将原程序中的订阅话题名修改成我们自己的订阅名称,主要是根据相机节点发布的消息名称,改成自己需要订阅的数据。

# 使用单目摄像头
# 位置:ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/ros_mono.cc(66行左右)
ros::Subscriber sub = nodeHandler.subscribe("/camera/color/image_raw", 1, &ImageGrabber::GrabImage,&igb);

这里本人目前只测试了单目摄像头,所以只改了这个话题,其他情况类似。

运行

# 使用单目摄像头(3个终端)
roscore
roslaunch realsense2_camera rs_camera.launch
#在ORB_SLAM3文件夹下
rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml 
#上面程序:rosrun ORB_SLAM3 功能  词典位置  相机参数文件位置

此步骤具体可以参考:D455实时运行ORB_SLAM3

效果

最后效果如图所示:
外接相机实时运行ORB_SLAM3效果图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jeston nano+RealSense D455相机+ORB_SLAM3+ROS实时运行 的相关文章

随机推荐