Ubuntu 安装 RealSense SDK 及 RealSense-ROS 驱动程序
文章目录
- 一、简介
- 二、RealSense SDK 安装
- 方法一:从英特尔服务器安装librealsense2 debian软件包
- 方法二:从源码构建(可操作性更高)
- 三、RealSense-ROS 安装
- 1、安装 ros
- 2、安装 librealsense
- 3、安装RealSense-ROS
- 四、报错
- 五、小结
一、简介
- Intel®RealSense™SDK 2.0(也称为librealsense)是Intel®RealSense™深度摄像机的跨平台库,SDK允许深度和颜色流,并提供内在和外部校准信息。该库还提供合成流(PointCloud,与颜色对齐的深度,与Vise-vissa对齐),以及对流媒体会话的记录和播放的内置支持。提供了丰富的API接口,支持多种编程语言,支持多种操作系统,使开发者能够轻松地将RealSense功能整合到各种应用程序中。
Intel®RealSense™SDK 2.0(librealsense)官方github链接
- realsense-ros(Wrapper) 是Intel RealSense相机在ROS(Robot Operating System)框架下的驱动程序封装。这个封装将RealSense相机的SDK(软件开发工具包)与ROS进行了整合,使得ROS节点能够轻松地与RealSense相机进行交互,并发布和订阅相机的各种数据(如深度图像、RGB图像、IMU数据等)。
realsense-ros官方github链接
二、RealSense SDK 安装
方法一:从英特尔服务器安装librealsense2 debian软件包
官方安装过程及相关介绍请参考github链接
-
注册服务器的公钥
sudo mkdir -p /etc/apt/keyrings curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
-
确保安装了APT HTTPS支持
sudo apt-get install apt-transport-https
-
将服务器添加到存储库列表
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/librealsense.list sudo apt-get update
-
安装库(部署LibrealSense2 UDEV规则,构建和激活内核模块,运行时库以及可执行的演示和工具) 注意: Realsense
DKMS
内核驱动程序包(librealsense2-dkms)支持 Ubuntu LTS(长期支持)内核版本 4.4、4.8、4.10、4.13、4.15、4.18、5.0、5.3*、5.4、5.13、5.15、5.19、6.2 和 6.5,如果内核版本过高或过低发生报错,可以尝试使用源码编译安装。sudo apt-get install librealsense2-dkms # 注意系统内核版本 sudo apt-get install librealsense2-utils
-
安装开发人员和调试软件包(可选,按需安装)
sudo apt-get install librealsense2-dev sudo apt-get install librealsense2-dbg
-
验证安装(启动GUI界面)
realsense-viewer
-
验证内核已更新
modinfo uvcvideo | grep "version:"
-
移除和SDK相关的所有包
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
方法二:从源码构建(可操作性更高)
官方源码下载github链接,根据支持的系统及各种依赖的版本,选择源码版本下载
参考官方github安装流程,支持ubuntu18/20/22系统版本
-
安装依赖
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade # 这里可以仅执行前两个指令,第三个 sudo apt-get dist-upgrade 可能会升级操作系统,可不执行。 sudo apt-get install libssl-dev libusb-1.0-0-dev libudev-dev pkg-config libgtk-3-dev sudo apt-get install git wget cmake build-essential sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at
-
安装librealsense2
(1) 除了直接下载tar源码包,也可以通过git克隆获得。
git clone https://github.com/IntelRealSense/librealsense.git
(2) 从libralsense2根目录运行Intel realsense权限脚本
cd librealsense ./scripts/setup_udev_rules.sh # 终端提示绿字之后回车
可以随时删除权限./scripts/setup_udev_rules.sh --uninstall
(3) 构建和应用修补的内核模块(根据内核及系统版本选择指令)
./scripts/patch-realsense-ubuntu-lts-hwe.sh # 可选 # Ubuntu 20/22 (focal/jammy) with LTS kernel 5.13, 5.15, 5.19, 6.2, 6.5 ./scripts/patch-realsense-ubuntu-lts.sh # 可选 # Ubuntu 18/20 with LTS kernel (< 5.13)
如果内核版本太高则会出现下面的问题,目前我可以正常使用,后续如果遇到问题再分享。
-
编译librealsense2 SDK
(1) 回到librealsense2根目录创建build目录并执行cmake指令
cd librealsense mkdir build && cd build cmake ../ -DBUILD_EXAMPLES=true # 官方文档中还有其他选项,按需使用
(2) 多核并行编译
make -j$(($(nproc)-1)) # $(nproc)获取线程数 sudo make install
相关库将安装在 /usr/local/lib中,头文件在 /usr/local/include中,二进制demo,教程和测试文件将被复制到 /usr/local/bin中。
(3) 编译完成后,执行指令
realsense-viewer
可启动图形界面。
三、RealSense-ROS 安装
1、安装 ros
RealSense-ROS支持 ROS_1 和 ROS_2
ROS_1支持:ROS Kinetic on Ubuntu 16.04,ROS Melodic on Ubuntu 18.04 or ROS Noetic on Ubuntu 20.04
ROS_2支持:ROS2 Foxy on Ubuntu 20.04,ROS2 Humble、ROS2 Iron on Ubuntu 22.04
安装ros推荐使用小鱼一键安装:
wget http://fishros.com/install -O fishros && . fishros
2、安装 librealsense
- 如果想要通过ros使用realsense深感相机,librealsense同样是不可或缺的,如果跳过安装librealsense,则会有如下报错:
- 如果只需要使用ros相关的功能,也不需要图形界面及样例,那么可以通过
sudo apt install ros-
指令来安装librealsense,其中-librealsense2* 为你安装的ros版本,比如humble: sudo apt install ros-humble-librealsense2*
。另外,可以通过指令sudo apt remove ros-humble-librealsense2*
来卸载安装的包。 - 如果还有其他的需求,那么通过源码安装librealsense的具体流程见章节2
3、安装RealSense-ROS
-
推荐使用源码安装,这在后期开发过程中会有很大的可操作性,实测系统为ubuntu22.04 & 18.04及ros2-humble & ros1-melodic版本。
-
创建一个工作空间
mkdir -p ~/realsense_ws/src cd ~/realsense_ws/src/
-
克隆源码
# ros2 git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-master cd ~/realsense_ws ------------------- # ros1 git clone https://github.com/IntelRealSense/realsense-ros.git cd realsense-ros/ git checkout `git tag | sort -V | grep -P "^2.d+.d+" | tail -1` # 切换仓库版本HEAD cd ..
-
安装依赖(官方使用rosdep,但是会报错,所以使用rosdepc替代)
# ros2 sudo apt install python3-pip -y sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple rosdepc sudo rosdepc init sudo rosdepc fix-permissions rosdepc update rosdepc install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y -------------------- # ros1 sudo apt install ros-melodic-ddynamic-reconfigure # 根据ros版本修改 melodic
-
构建(如果有设置anaconda的环境变量,建议先注释掉,不然会报错)
# ros2 colcon build ------------------- # ros1 catkin_init_workspace cd .. catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install
-
初始化环境变量
# ros2 ROS_DISTRO=<YOUR_SYSTEM_ROS_DISTRO> # 设置ros版本: ROS_DISTRO = iron/humble/foxy source /opt/ros/$ROS_DISTRO/setup.bash cd ~/realsense_ws . install/setup.bash --------------------- # ros1 source devel/setup.bash
-
启动节点(可以根据实际相机命名)
ros2 launch realsense2_camera rs_launch.py camera_namespace:=robot1 camera_name:=D455_1 ------------------- # ros1 roslaunch realsense2_camera rs_camera.launch color_width:=640 color_height:=480 color_fps:=30
-
通过
sudo apt install ros-humble-librealsense2*
指令安装librealsense并编译realsense-ros,启动相机节点后输出的版本信息如下:
-
如果需要开启双目红外图像的话题发布,需要将
rs_launch.py
或rs_camera.launch
中如下两项默认值置为true
。
-
在ros2中,如果需要开启深度图的话题发布,需要修改
depth_module.depth_profile
参数,和rgb的配置一样rgb_camera.color_profile
,默认的三个值分别表示图像的分辨率及帧率值。
-
在ros1中,只需要单独修改
depth_width
、infra_height
、enable_depth
、depth_fps
的值即可。 -
在ros1中,连接D435i相机无法看到imu话题的问题,可以参考博文:解决intel realsense D435i深度相机没有IMU话题的问题 ,进行如下的修改:
-
在ros2中,同样将
enable_gyro
和enable_accel
置为true,然后修改{'name': 'unite_imu_method', 'default': "1", 'description': '[0-None, 1-copy, 2-linear_interpolation]'}
,陀螺仪和加速度计的融合方法可以选择线性插值或者复制。 -
如果需要关闭激光散斑,ros1可以参考博文:ubuntu1804系统安装Realsense SDK驱动和ROS Wrapper,在launch文件中增加如下参数:
-
如果需要修改相机的参数,可以通过如下指令查看realsense设备支持的所有传感器、流格式、分辨率和帧率。
rs-enumerate-devices -o
-
如果需要显示当前设备的已启用流,可以使用如下指令查看,这个指令会显示所有支持的realsense设备的内外参。
rs-enumerate-devices -c
-
其他操作见官方链接。
四、报错
-
如果在涉及到
sudo apt update
指令,并产生如下错误:W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://security.ubuntu.com/ubuntu jammy-security InRelease: Couldn’t create temporary file /tmp/apt.conf.uVU4hR for passing config to apt-key
可以使用指令修改
/tmp
文件夹的访问权限来解决。chmod go+w /tmp
五、小结
目前,我尝试了上述关于ros2&1的安装方式,没有遇到其他的报错情况,如果有其他情况欢迎在评论区分享你的解决办法!!