从0开始,在ROS上运行ORB_SLAM2

本文详细指导如何在Ubuntu18.04和ROSMelodic环境下,安装依赖库(如Eigen3和openCV),并配置RealsenseD435i,最后在ROS上成功运行orb_slam2_ros,包括解决遇到的问题和rviz的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Github上的orb-slam2项目

github地址如下orb_slam2

在ROS上运行orb-slam2参考步骤

视觉SLAM | 在ROS上运行ORB-SLAM2 - 古月居

1.运行环境

硬件:Realsense D435i
软件环境:Ubuntu18.04、ROS melodic 、librealsense、realsense-ros

1.1 ros安装

参考古月Ros21讲
1.添加软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main"> /etc/apt/sources.list.d/ros-lastest.list'

2.添加密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-kry C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3.安装ros

sudo apt update
sudo apt install ros-melodic-destop-full

4.初始化rosdep

sudo rosdep init
rosdep update

5.设置环境变量

echo "source /opt/ros/melodic/setup.bash">>~/.bashrc

6.安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

7.安装完成打开海龟仿真验证

roscore

打开一个新终端,打开小海龟仿真节点

rosrun turtlesim turtlesim_node

再打开一个终端,启动海龟控制节点

rosrun turtlesim turtle_teleop_key

1.2 librealsense安装

参考自librealsense安装前半部分

添加仓库钥匙

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

添加仓库

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

安装库

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

安装开发和调试包

sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg #(这个可以不安装)

测试

realsense-viewer

1.3 realsense-ros安装

参考:realsense-ros安装

2.安装依赖项

2.1 安装Eigen3

这是矩阵运算用的库,最低要求版本3.1.0。

sudo apt install libeigen3-dev

2.2安装openCV

参考:Ubuntu18.04安装OpenCV 3.2.0

1.首先安装cmkae
一般都有cmake,可以不用再装

sudo apt install cmake

2.再安装依赖包

sudo apt install libgtk2.0-dev  
sudo apt install pkg-config

3.到如下网站下载opencv 3.2.0
opencv.org/releases.html
4.下载后,解压:

unzip opencv-3.2.0.zip
cd opencv-3.2.0

5.建立build文件夹

mkdir build
cd build

6.开始编译:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D ENABLE_PRECOMPILED_HEADERS=OFF ..
sudo make -j8
sudo make install

问题
CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else):
Flow control statements are not properly nested.
打开对应的cmake文件21行发现同一个作用域有两个else
解决方法
21行22行注释掉就可以了
别的电脑也编译过貌似没出现过这种问题,应该与cmake版本有关
7.添加库路径:
修改opencv.conf文件的内容

sudo vim /etc/ld.so.conf.d/opencv.conf   

opencv.conf的内容:
/usr/local/lib
8.添加环境变量:

sudo vim ~/.profile

.profile最后一行添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig   
export PKG_CONFIG_PATH

3.安装orb_slam2_ros

配置一个工作环境

mkdir -p ~/orbslam2_workspace/src
cd ~/orbslam2_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

使用catkin build进行编译

cd ~/orbslam2_workspace/src
git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git
cd ~/orbslam2_workspace
catkin build

当然也可以使用catkin_make来编译

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git
catkin_init_workspace
cd ~/catkin_ws/
catkin_make

运行orb_slam2_ros首先需要执行

source ~/orbslam2_workspace/devel/setup.bash

依次运行

roslaunch realsense2_camera rs_rgbd.launch
roslaunch orb_slam2_ros orb_slam2_d435_rgbd.launch

运行rs_rgbd.launch时可能出错,解决方法:

sudo apt install ros-melodic-rgbd-launch

然后在realsense_ws工作空间中重新编译一遍,解决上述问题

打开rviz

rviz

打开后,点击Add->By topic,选择orbslam2节点发布的pose、PointCloud2等话题,就可以显示相机位姿和稀疏点云。

### 安装和配置 ORB_SLAM2ROS2 为了在 ROS2 中成功安装和配置 ORB_SLAM2,需遵循一系列特定的操作流程。由于官方文档主要针对 ROS1 版本进行了详细的说明,在处理 ROS2 的情况下则需要额外注意一些兼容性和环境设置的问题。 #### 准备工作 确保已经正确设置了 ROS2 和必要的依赖项。对于 Ubuntu 用户来说,推荐版本为 20.04 LTS 或更新版本,因为这些版本更有可能与最新的 ROS2 发布版相匹配[^2]。 #### 下载源码并调整 CMakeLists 文件 获取 ORB_SLAM2 源代码仓库后,按照提示修改 `./CMakeLists.txt` 及其子目录下的同名文件内的编译器标准选项从 c++11 更改为 c++14,以此解决可能出现的编译错误[^3]。 ```bash git clone https://github.com/raulmur/ORB_SLAM2.git cd ORB_SLAM2 sed -i 's/CMAKE_CXX_STANDARD 11/CMAKE_CXX_STANDARD 14/g' */CMakeLists.txt ``` #### 创建 Catkin 工作空间并与 ROS2 集成 创建一个新的 catkin workspace 并初始化它来容纳 ORB_SLAM2 包以及任何其他所需的第三方库或工具包。接着将上述克隆下来的 ORB_SLAM2 放入 src 文件夹内,并执行如下命令完成构建过程: ```bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/ source /opt/ros/<distro>/setup.bash # 将 <distro> 替换为你使用的具体发行代号比如 foxy galactic humble 等 colcon build --symlink-install source install/setup.bash ``` #### 修改启动脚本适应 ROS2 构建体系结构 考虑到 ROS2 使用 colcon 而不是传统的 catkin_make 进行项目管理,因此如果存在用于简化编译步骤的 shell script (如 build.sh),应当相应地对其进行调整以支持新的构建方式[^1]。 #### 测试安装成果 最后一步是验证整个系统的正常运作情况。可以通过运行几个简单的例子来进行初步测试,确认一切按预期工作之后再深入研究更多高级特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值