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

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

写在开头

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

最新的SDK 支持ROS2 Wrapper

如果完全按照后文从git仓库克隆的方法安装的话,一般安装的都是最新版的librealsense以及ROS2 Wrapper,两者一般情况下是相互匹配的。如果是手动安装或是从其他地方离线获取了库文件,就可能存在版本不匹配的问题,查看librealsense的版本方法如下:
librealsense/目录下,打开package.xml文件,第十行左右有版本描述<version>2.51.1</version>
在这里插入图片描述

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

ROS1 Wrapper支持较老版本的SDK

在这里插入图片描述
因此如果使用的是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的内容要获取与下载:在这里插入图片描述

  • 安装结束:

  • 在这里插入图片描述

  • 安装硬件基础包:

    • 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
在这里插入图片描述
解决办法就是更换线材或是尝试升级固件,升级固件可参考realsense升级固件Firmware
再次尝试./rs-capture,即可正常显示:在这里插入图片描述

安装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
  • 11
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
1. 下载安装RealSense SDK: a. 前往Intel RealSense官网下载SDK:https://github.com/IntelRealSense/librealsense/releases b. 根据自己的Linux版本选择相应的安装包进行下载,本文以Ubuntu 18.04为例 c. 下载后解压文件,进入文件夹执行以下命令进行安装: ``` sudo apt-get update && sudo apt-get upgrade sudo apt-get install libusb-1.0-0-dev pkg-config libglfw3-dev mkdir build && cd build cmake ../ make && sudo make install ``` d. 安装完成后,执行以下命令检查是否安装成功: ``` realsense-viewer ``` 如果成功安装,则会打开一个相机预览界面。 2. 安装ROS: a. 前往ROS官网下载安装:http://wiki.ros.org/ROS/Installation b. 根据自己的Ubuntu版本选择相应的安装包进行下载,本文以Ubuntu 18.04为例 c. 安装完成后,执行以下命令检查是否安装成功: ``` roscore ``` 如果成功安装,则会启动ROS核心服务。 3. 安装realsense-ros包: a. 在终端中执行以下命令安装: ``` sudo apt-get install ros-kinetic-realsense-camera ``` b. 安装完成后,执行以下命令检查是否安装成功: ``` roslaunch realsense2_camera rs_camera.launch ``` 如果成功安装,则会启动相机节点,并打开相机预览界面。 4. 进行相机标定: a. 安装相机标定工具包: ``` sudo apt-get install ros-kinetic-camera-calibration ``` b. 运行标定工具: ``` roslaunch camera_calibration cameracalibrator.launch ``` c. 在工具界面中选择相机和分辨率,然后按照提示进行标定。 d. 标定完成后,会生成一个相机标定文件,保存在~/.ros/camera_info下。 5. 使用标定文件进行图像校正: a. 在终端中执行以下命令启动相机节点: ``` roslaunch realsense2_camera rs_camera.launch ``` b. 打开一个新终端,执行以下命令启动相机校正节点: ``` roslaunch realsense2_camera rs_camera_nodelet_rgbd.launch ``` c. 打开一个新终端,执行以下命令启动图像校正节点: ``` roslaunch realsense2_camera rs_camera_nodelet_rgbd.launch rectify:=true ``` d. 打开一个新终端,执行以下命令启动图像查看节点: ``` rosrun image_view image_view image:=/camera/rgb/image_rect_color ``` e. 如果成功启动,则会打开图像查看界面,显示已经校正后的图像。 至此,Ubuntu18.04安装配置realsense d435i相机进行标定已经完成。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值