ros2机器人foxy版用笔记本摄像头跑单目orb_slam3

环境:
    Ubuntu 20.04
    ROS2 foxy
    OpenCV 4.4.0(4版本以上的应该都可以)

安装orb_slam3 搭建环境参考:

https://mp.csdn.net/mp_blog/creation/editor/129137521

git clone https://github.com/zang09/ORB-SLAM3-STEREO-FIXED.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh

这将在lib文件夹中创建libORB_SLAM3.so,只需要安装到这一步,生成 libORB_SLAM3.so 动态库即可。后面的ros程序安装是ros1的,ros1早晚会被ros2替代的,所以后面的ros程序我们就不在安装了。

安装ros2 foxy版orb_slam3程序:

安装相关的ROS2软件包:

sudo apt install ros-$ROS_DISTRO-message-filters

安装orb_slam3_ros2

mkdir -p colcon_ws/src
cd ~/colcon_ws/src
git clone https://github.com/zang09/ORB_SLAM3_ROS2.git orbslam3_ros2

 按自己的目录结构修改CMakeLists.txt 第五行

set(ENV{PYTHONPATH} "/opt/ros/foxy/lib/python3.8/site-packages/")

 修改 FindORB_SLAM3.cmake 第八行为自己的ORB_SLAM3路径,比如我的:

set(ORB_SLAM3_ROOT_DIR "~/ORB_SLAM3")

编译:

cd ~/colcon_ws
colcon build --symlink-install --packages-select orbslam3

编译报错找不到sophus/se3.hpp:

cd ~/ORB_SLAM3/Thirdparty/Sophus/build
sudo make install

重新编译直至成功。

安装笔记本摄像头驱动:

sudo apt install ros-foxy-usb-cam             //foxy安装摄像头驱动
ros2 run usb_cam usb_cam_node_exe    //启动摄像头节点

查看摄像头话题:ros2 topic list
/camera_info
/image_raw
/image_raw/compressed
/image_raw/compressedDepth
/image_raw/theora
/parameter_events
/rosout

摄像头发布话题为 : /image_raw

和程序里面的接收话题不一样,需要修改程序内的接收话题名与摄像头发布话题名一致

修改 monocular-slam-node.cpp

 修改好话题后要重新编译。

运行程序:

1. 打开终端开启摄像头节点 

ros2 run usb_cam usb_cam_node_exe

2. 重新打开一个终端开启单目orbslam3程序

source ~/colcon_ws/install/local_setup.bash

ros2 run orbslam3 mono ~/ORB_SLAM3/Vocabulary/ORBvoc.txt ~/ORB_SLAM3/Examples/Monocular/RealSense_D435i.yaml   

上面命令是ros主程序+  ORBvoc.txt  + RealSense_D435i.yaml (摄像头配置文件任意选一个就行)路径需要按自己电脑实际路径修改。

可能我的笔记本配置低,需要等待十几秒才能看到图像

 看到图像说明程序正常运行了,如果只是一个黑框出不来图像,移动一下笔记本,跑单目静止画面有时出不来图像。

我们这里的目的是跑通程序,真正要让程序运行好还需要给摄像头做标定。

参考网址:

GitHub - zang09/ORB-SLAM3-STEREO-FIXED: Fixed version of ORB-SLAM3 stereo mode

GitHub - zang09/ORB_SLAM3_ROS2: ROS2 wrapping package for orbslam3 library

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
ORB SLAM2是一个基于特征点的视觉SLAM(Simultaneous Localization and Mapping)系统,它可以通过单目摄像头实现实时的相机定位和地图构建。而ROS(Robot Operating System)是一个用于机器人开发的开源框架,提供了一系列工具和库来简化机器人软件开发。 要搭建ORB SLAM2 ROS单目摄像头环境,你需要按照以下步骤进行: 1. 安装ROS:首先,你需要在你的计算机上安装ROS。你可以根据你的操作系统版本选择合适的ROS版本进行安装。安装过程可以参考ROS官方网站提供的文档。 2. 创建ROS工作空间:在安装完ROS后,你需要创建一个ROS工作空间来存放ORB SLAM2和其他相关的ROS包。你可以使用以下命令创建一个新的工作空间: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 3. 下载ORB SLAM2 ROS包:在创建好工作空间后,你需要下载ORB SLAM2的ROS包并将其放置在工作空间的`src`目录下。你可以使用以下命令进行下载: ``` cd ~/catkin_ws/src git clone https://github.com/raulmur/ORB_SLAM2.git ``` 4. 编译ORB SLAM2 ROS包:下载完ORB SLAM2 ROS包后,你需要编译它。在`catkin_ws`目录下,运行以下命令进行编译: ``` cd ~/catkin_ws catkin_make -DCMAKE_BUILD_TYPE=Release ``` 5. 配置相机参数:在使用ORB SLAM2之前,你需要根据你的摄像头配置相机参数。你可以编辑ORB SLAM2的配置文件,将相机的内参和畸变参数填入其中。 6. 运行ORB SLAM2:完成以上步骤后,你可以运行ORB SLAM2来进行相机定位和地图构建。首先,启动ROS核心节点: ``` roscore ``` 然后,在另一个终端中运行ORB SLAM2节点: ``` rosrun ORB_SLAM2 Mono /path/to/ORB_SLAM2/Vocabulary/ORBvoc.txt /path/to/ORB_SLAM2/Examples/Monocular/your_camera.yaml ``` 其中,`/path/to/ORB_SLAM2/Vocabulary/ORBvoc.txt`是ORB SLAM2的词汇文件路径,`/path/to/ORB_SLAM2/Examples/Monocular/your_camera.yaml`是相机参数配置文件路径。 7. 可选:可视化结果:如果你想可视化ORB SLAM2的结果,你可以使用rviz工具。在另一个终端中运行以下命令: ``` rosrun rviz rviz -d `rospack find ORB_SLAM2`/Examples/Monocular/ORB_SLAM2.rviz ``` 以上就是搭建ORB SLAM2 ROS单目摄像头环境的基本步骤。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值