本文将详细介绍如何在Ubuntu 20.04系统中,利用ROS Noetic框架,驱动Intel RealSense D435i相机,并实时运行ORB-SLAM3视觉SLAM系统。即使你是刚接触Linux和ROS的小白,按照本教程一步步操作,也能成功实现。
首先确保你的系统是Ubuntu 20.04(建议最小安装)。打开终端,依次执行以下命令安装ROS Noetic:
sudo sh -c "echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list"sudo apt install curlcurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -sudo apt updatesudo apt install ros-noetic-desktop-full 安装完成后,初始化rosdep:
sudo rosdep initrosdep update 设置环境变量:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc D435i是Intel的深度相机,需要安装SDK驱动和ROS功能包。首先添加RealSense服务器:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDEsudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -usudo apt-get updatesudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev 测试SDK是否安装成功,连接相机后运行:realsense-viewer。接下来安装ROS wrapper:
sudo apt-get install ros-noetic-realsense2-camera 如果需要点云等功能,可安装ros-noetic-realsense2-description等。
ORB-SLAM3是一个支持视觉、视觉+惯导的SLAM系统。首先安装依赖:
sudo apt-get install build-essential cmake gitsudo apt-get install libopencv-devsudo apt-get install libeigen3-devsudo apt-get install libglew-devsudo apt-get install libboost-all-devsudo apt-get install libssl-dev 还需要Pangolin(用于可视化):
git clone https://github.com/stevenlovegrove/Pangolin.gitcd Pangolinmkdir build && cd buildcmake ..make -j4sudo make install 然后克隆ORB-SLAM3源码:
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3cd ORB_SLAM3chmod +x build.sh./build.sh 编译过程中会自动下载Vocabulary文件,可能需要较长时间,请耐心等待。
为了在ROS中运行ORB-SLAM3,我们需要将其作为一个ROS包。首先创建工作空间:
mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspacecd ~/catkin_wscatkin_make 将ORB-SLAM3克隆到src目录下,并修改CMakeLists.txt以支持ROS。官方提供了ROS示例,位于ORB_SLAM3/Examples/ROS。我们需要将其链接到工作空间:
cd ~/catkin_ws/srcgit clone https://github.com/UZ-SLAMLab/ORB_SLAM3.gitcd ORB_SLAM3 然后编辑~/catkin_ws/src/ORB_SLAM3/CMakeLists.txt,确保set(CMAKE_CXX_STANDARD 14)。接着编译整个工作空间:
cd ~/catkin_wscatkin_make --pkg ORB_SLAM3 如果遇到OpenCV版本问题,可在ORB_SLAM3/CMakeLists.txt中指定OpenCV路径。
在运行ORB-SLAM3之前,需要启动D435i的ROS节点,发布图像和IMU数据。首先连接相机,然后运行:
roslaunch realsense2_camera rs_camera.launch unite_imu_method:="linear_interpolation" enable_gyro:=true enable_accel:=true 该命令会启用IMU数据,并发布到/camera/imu和/camera/color/image_raw等话题。你可以用rostopic list查看。
现在我们可以运行ORB-SLAM3的ROS节点。进入ORB-SLAM3目录,根据相机类型选择合适的配置文件。对于D435i(双目+IMU),可以使用EuRoC.yaml作为基础,但需要调整话题名称。我们复制并修改配置文件:
roscd ORB_SLAM3cp Examples/ROS/ORB_SLAM3/Asus.yaml .# 修改话题名称为/camera/color/image_raw和/camera/imu 然后运行节点:
rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml /camera/left/image_raw:=/camera/color/image_raw /camera/right/image_raw:=/camera/infra1/image_rect_raw /imu:=/camera/imu 注意话题重映射根据实际情况调整。如果你使用的是单目+IMU,可用Mono_Inertial节点。成功运行后,你会看到ORB-SLAM3的可视化窗口,实时构建地图。
- 编译错误:确保所有依赖完整,特别是Pangolin和OpenCV版本兼容。- 相机无法识别:检查USB接口,运行lsusb查看是否有Intel设备。- IMU数据未发布:确认启动文件添加了enable_gyro:=true enable_accel:=true。- 性能问题:ORB-SLAM3对计算资源要求较高,建议在配备独立显卡的电脑上运行。
至此,你已经学会了在Ubuntu 20.04下使用D435i相机通过ROS实时运行ORB-SLAM3。SLAM的世界充满乐趣,祝你探索顺利!
本文由主机测评网于2026-03-08发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260329366.html