Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

最近因为学习开发需要,要开始接触一些视觉相关的内容,拿到了一个Inter 的D435i深度相机,记录一下在Ubuntu18环境下配置SDK 包的历程

目录

  • 写在开头
    • 最新的SDK 支持ROS2 Wrapper
    • ROS1 Wrapper支持较老版本的SDK
  • Intel官网的安装文档
    • 安装须知(来自官网)
    • SDK安装(拔掉相机进行)
    • SDK编译
    • 相机试运行
  • 安装ROS Wrapper

写在开头

注意
Intel官方最新版的librealsense版本与ROS1的ROS Wrapper是 版本不一致的,且ROS Wrapper支持的是较低版本的SDK ,具体可以去网站查看

最新的SDK 支持ROS2 Wrapper

如果完全按照后文从git仓库克隆的方法安装的话,一般安装的都是最新版的librealsense以及ROS2 Wrapper,两者一般情况下是相互匹配的。如果是手动安装或是从其他地方离线获取了库文件,就可能存在版本不匹配的问题,查看librealsense的版本方法如下:
librealsense/目录下,打开package.xml文件,第十行左右有版本描述2.51.1
Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置_第1张图片

以该版本为例,其支持的SDK 为v2.51.1,与ROS2 Wrapper 4.51.1相匹配

ROS1 Wrapper支持较老版本的SDK

Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置_第2张图片
因此如果使用的是ROS1环境,建议手动下载sdk包,以及支持Ros1与librealsense v2.50.0的ROS Wrapper,后文的克隆仓库步骤就可以跳过了。

Intel官网的安装文档

文档链接

安装须知(来自官网)

  • D435i is supported on Linux, Windows 10. Requires FW 5.11.6.250+.

SDK安装(拔掉相机进行)

  • 更新Linux内核:
    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

  • 克隆远端仓库git clone https://github.com/IntelRealSense/librealsense.git

  • 安装依赖sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

  • 在克隆的本地仓库路径下,cd librealsense\

  • 运行许可脚本./scripts/setup_udev_rules.sh

  • 下载并编译内核模块./scripts/patch-realsense-ubuntu-lts.sh

  • 注意,这一步的代码运行时间会很长,要耐心等待remote :Counting objects运行完毕,约有1.5Gb的内容要获取与下载:在这里插入图片描述

  • 安装结束:

  • Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置_第3张图片

  • 安装硬件基础包:

    • cd ./scripts/
    • ./patch-arch.sh

SDK编译

  • 在librealsense根目录下创建build文件夹:mkdir build && cd build
  • 使用cmake ..预编译,有以下三种具体方式
    • cmake ..:默认构建设置为在Debug模式下生成核心共享对象和单元测试二进制文件。使用-DCMAKE_BUILD_TYPE=Release进行优化构建。
    • cmake ../ -DBUILD_EXAMPLES=true:同时编译demos和tutorials ——我使用这个
    • cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false:针对没有OpenGL 或X11的系统
  • 清除安装,生成项目,安装至系统:sudo make uninstall && make clean && make && sudo make install
    • 注意,这一步如果因为网络原因无法连接到‘libcurl’,可以去github手动下载,然后修改/librealsense/CMake目录下的external_libcurl.cmake文件,注释掉20行左右的GIT_REPOSITORY "https://github.com/curl/curl.git"
    • 下载 后的文件夹改名为libcurl存放于目录/librealsense/build/third-party
    • 如果出现报错:gcc: internal compiler error,可能是因为设备没有足够的运行内存,可以尝试关掉一些正在运行的app再次make一下,确保RAM大于2GB(虚拟机注意)

相机试运行

进入文件目录build/examples/capture根目录下,插上相机,运行./rs-capture此时理论上会出现相机捕捉到的图像和深度图,而我在第一次运行时没有显示图像,并出现报错:

RealSense error calling rs2_pipeline_wait_for_frames(pipe:0x557831ce1260):
    Frame didn't arrive within 15000

说明通过py文件并没有正常启动摄像头,相关问题可查看:

https://github.com/IntelRealSense/librealsense/issues/2639
细细研究了一波他们的讨论后,认为应该是usb连接线以及电脑插口的问题,在命令行输入realsense-viewer,发现相机已经被电脑读取到,只是USB 端口是2.1
Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置_第4张图片
解决办法就是更换线材或是尝试升级固件,升级固件可参考realsense升级固件Firmware
再次尝试./rs-capture,即可正常显示:Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置_第5张图片

安装ROS Wrapper

官网教程
本部分一定要在前一步相机驱动安装好后进行

  • 创建工作空间mkdir -p ~/Vision_ws/src
  • 进入工作空间cd ~/Vision_ws/src
  • 克隆仓库代码(在src目录下):
    • git clone https://github.com/IntelRealSense/realsense-ros
    • cd realsense-ros/
    • git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1
    • cd ..
    • git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • 编译工作空间
    • 定义workspace:catkin_init_workspace(src中)
    • cd ..
    • catkin_make clean
    • catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
    • catkin_make install
  • 定义环境变量:
    • bash终端:
      • echo "source ~/Vision_ws/devel/setup.bash" >> ~/.bashrc
      • source ~/.bashrc
    • zsh终端:
      • echo "source ~/Vision_ws/devel/setup.zsh" >> ~/.zshrc
      • source ~/.zshrc
  • 在ROS中测试相机节点roslaunch realsense2_camera rs_camera.launch

你可能感兴趣的:(视觉,计算机视觉,算法)