Ubuntu 20.04 配置 Realsense

这篇具有很好参考价值的文章主要介绍了Ubuntu 20.04 配置 Realsense。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、硬件说明

可以在官网查看各个类型的相机说明

Intel® RealSense™ Computer Vision - Depth and Tracking cameras

目前实验室常用的是 D400 系列的相机,如 D435i相机,D455相机等,本文主要使用 D435i 相机,如下图所示

librealsense2 安装,ROS,Ubuntu,ubuntu,realsense,ros

librealsense2 安装,ROS,Ubuntu,ubuntu,realsense,ros

D435i 相机是一个RGB-D相机,也就是我们常说的深度相机,目前深度相机的实现原理主要分为三种:分别是结构光,Tof,双目成像。

二、安装 realsense 驱动

参考 librealsense 的 github 官方教程

librealsense/doc/distribution_linux.md at master · IntelRealSense/librealsense · 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-transport-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 规则,构建和激活内核模块、运行库以及可执行演示和工具:

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

安装开发程序包和调试程序包:

sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

确认成功安装 librealsense :

realsense-viewer

如果需要安装指定版本的 librealsene(2.54.1 之后 的版本不支持 realsense t265 相机),参考

realsense-viewer 不识别 T265——Realsense SDK 在 v2.54.1 版本以后不再支持T265相机的解决办法_realsense t265_看我放个大招的博客-CSDN博客

三、安装 realsense-ros

作用:将 realsense 数据转换为 ros 数据并发布到 ros 话题中,相当于realsense 和 ros 的桥梁。

参考 realsense-ros 的 github 官方教程:

GitHub - IntelRealSense/realsense-ros at ros1-legacy

官方提供了直接方式和源码方式两种方法安装 realsense-ros

3.1 直接方式安装

终端输入:

sudo apt-get install ros-$ROS_DISTRO-realsense2-camera

其中 $ROS_DISTRO 为自己的 ros 版本, Ubuntu 18.04 对应 melodic,Ubuntu 20.04 对应 noetic,这种方法的安装路径为

/opt/ros/noetic/share/realsense2_camera/

3.2 源码方式安装

创建工作目录

mkdir -p ~/realsense_ws/src
cd ~/realsense_ws/src/

下载源码

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`
cd ..

请确保安装了 ros 软件包 ddynamic_reconfigure, 如果没有安装,可以通过 apt 安装

sudo apt-get install ros-$ROS_DISTRO-ddynamic-reconfigure

或者将其源码下载到当前工作目录

git clone https://github.com/pal-robotics/ddynamic_reconfigure.git

注意,这里如果通过 apt 安装了 ddynamic_reconfigure 就不要再下载源码到工作空间一起编译了,可能会冲突报错。

接下来编译工作空间

catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

最后将其加到 ~/.basrc 文件中

echo "source ~/realsense_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

这两种方法选择一种安装就可以。

3.3 修改配置文件

首先通过 ros 启动相机,终端输入

roslaunch realsense2_camera rs_camera.launch

查看能否收到相机数据。

一般来说,安装完成后可能会出现 ros 能接收到话题但是收不到数据的情况。

这时需要修改 /opt/ros/noetic/share/realsense2_camera/rs_camera.launch 文件。

调整 图像尺寸 :

  <arg name="infra_width"         default="640"/>
  <arg name="infra_height"        default="480"/>

打开 双目相机 数据,

  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>

打开深度相机

<arg name="depth_width"         default="640"/>
<arg name="depth_height"        default="480"/>
<arg name="enable_depth"        default="true"/>

打开 陀螺仪和加速度计 数据

  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

设置双目相机、深度相机、陀螺仪和加速度计的频率

  <arg name="fisheye_fps"         default="-1"/>
  <arg name="depth_fps"           default="30"/>
  <arg name="infra_fps"           default="30"/>
  <arg name="color_fps"           default="-1"/>
  <arg name="gyro_fps"            default="400"/>
  <arg name="accel_fps"           default="400"/>

打开 imu 数据

  <arg name="unite_imu_method"          default="linear_interpolation"/>

关闭结构光(光斑),添加

  <arg name="emitter_enable"   	default="false"/>
  <!-- rosparam set /camera/stereo_module/emitter_enabled false -->
  <rosparam>
    /camera/stereo_module/emitter_enabled: 0
  </rosparam>
  <rosparam if="$(arg emitter_enable)">
    /camera/stereo_module/emitter_enabled: 1
  </rosparam>

也可以直接粘贴如下代码:

<launch>
  <arg name="serial_no"           default=""/>
  <arg name="usb_port_id"         default=""/>
  <arg name="device_type"         default=""/>
  <arg name="json_file_path"      default=""/>
  <arg name="camera"              default="camera"/>
  <arg name="tf_prefix"           default="$(arg camera)"/>
  <arg name="external_manager"    default="false"/>
  <arg name="manager"             default="realsense2_camera_manager"/>
  <arg name="output"              default="screen"/>
  <arg name="respawn"              default="false"/>

  <arg name="fisheye_width"       default="-1"/>
  <arg name="fisheye_height"      default="-1"/>
  <arg name="enable_fisheye"      default="false"/>

  <arg name="depth_width"         default="640"/>
  <arg name="depth_height"        default="480"/>
  <arg name="enable_depth"        default="true"/>

  <arg name="confidence_width"    default="-1"/>
  <arg name="confidence_height"   default="-1"/>
  <arg name="enable_confidence"   default="false"/>
  <arg name="confidence_fps"      default="-1"/>

  <arg name="infra_width"         default="640"/>
  <arg name="infra_height"        default="480"/>
  <arg name="enable_infra"        default="false"/>
  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>
  <arg name="infra_rgb"           default="false"/>

  <arg name="color_width"         default="-1"/>
  <arg name="color_height"        default="-1"/>
  <arg name="enable_color"        default="false"/>

  <arg name="fisheye_fps"         default="-1"/>
  <arg name="depth_fps"           default="30"/>
  <arg name="infra_fps"           default="30"/>
  <arg name="color_fps"           default="-1"/>
  <arg name="gyro_fps"            default="400"/>
  <arg name="accel_fps"           default="400"/>
  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

  <arg name="enable_pointcloud"         default="false"/>
  <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
  <arg name="pointcloud_texture_index"  default="0"/>
  <arg name="allow_no_texture_points"   default="false"/>
  <arg name="ordered_pc"                default="false"/>

  <arg name="enable_sync"               default="false"/>
  <arg name="align_depth"               default="false"/>

  <arg name="publish_tf"                default="true"/>
  <arg name="tf_publish_rate"           default="0"/>

  <arg name="filters"                   default=""/>
  <arg name="clip_distance"             default="-2"/>
  <arg name="linear_accel_cov"          default="0.01"/>
  <arg name="initial_reset"             default="false"/>
  <arg name="reconnect_timeout"         default="6.0"/>
  <arg name="wait_for_device_timeout"   default="-1.0"/>
  <arg name="unite_imu_method"          default="linear_interpolation"/>
  <arg name="topic_odom_in"             default="odom_in"/>
  <arg name="calib_odom_file"           default=""/>
  <arg name="publish_odom_tf"           default="true"/>

  <arg name="stereo_module/exposure/1"  default="7500"/>
  <arg name="stereo_module/gain/1"      default="16"/>
  <arg name="stereo_module/exposure/2"  default="1"/>
  <arg name="stereo_module/gain/2"      default="16"/>


  <arg name="emitter_enable"   	default="false"/>
  <!-- rosparam set /camera/stereo_module/emitter_enabled false -->
  <rosparam>
    /camera/stereo_module/emitter_enabled: 0
  </rosparam>
  <rosparam if="$(arg emitter_enable)">
    /camera/stereo_module/emitter_enabled: 1
  </rosparam>


  <group ns="$(arg camera)">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
      <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
      <arg name="external_manager"         value="$(arg external_manager)"/>
      <arg name="manager"                  value="$(arg manager)"/>
      <arg name="output"                   value="$(arg output)"/>
      <arg name="respawn"                  value="$(arg respawn)"/>
      <arg name="serial_no"                value="$(arg serial_no)"/>
      <arg name="usb_port_id"              value="$(arg usb_port_id)"/>
      <arg name="device_type"              value="$(arg device_type)"/>
      <arg name="json_file_path"           value="$(arg json_file_path)"/>

      <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
      <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
      <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
      <arg name="enable_sync"              value="$(arg enable_sync)"/>
      <arg name="align_depth"              value="$(arg align_depth)"/>

      <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
      <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
      <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

      <arg name="depth_width"              value="$(arg depth_width)"/>
      <arg name="depth_height"             value="$(arg depth_height)"/>
      <arg name="enable_depth"             value="$(arg enable_depth)"/>

      <arg name="confidence_width"         value="$(arg confidence_width)"/>
      <arg name="confidence_height"        value="$(arg confidence_height)"/>
      <arg name="enable_confidence"        value="$(arg enable_confidence)"/>
      <arg name="confidence_fps"           value="$(arg confidence_fps)"/>

      <arg name="color_width"              value="$(arg color_width)"/>
      <arg name="color_height"             value="$(arg color_height)"/>
      <arg name="enable_color"             value="$(arg enable_color)"/>

      <arg name="infra_width"              value="$(arg infra_width)"/>
      <arg name="infra_height"             value="$(arg infra_height)"/>
      <arg name="enable_infra"             value="$(arg enable_infra)"/>
      <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
      <arg name="enable_infra2"            value="$(arg enable_infra2)"/>
      <arg name="infra_rgb"                value="$(arg infra_rgb)"/>

      <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
      <arg name="depth_fps"                value="$(arg depth_fps)"/>
      <arg name="infra_fps"                value="$(arg infra_fps)"/>
      <arg name="color_fps"                value="$(arg color_fps)"/>
      <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
      <arg name="accel_fps"                value="$(arg accel_fps)"/>
      <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
      <arg name="enable_accel"             value="$(arg enable_accel)"/>

      <arg name="publish_tf"               value="$(arg publish_tf)"/>
      <arg name="tf_publish_rate"          value="$(arg tf_publish_rate)"/>

      <arg name="filters"                  value="$(arg filters)"/>
      <arg name="clip_distance"            value="$(arg clip_distance)"/>
      <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
      <arg name="initial_reset"            value="$(arg initial_reset)"/>
      <arg name="reconnect_timeout"        value="$(arg reconnect_timeout)"/>
      <arg name="wait_for_device_timeout"  value="$(arg wait_for_device_timeout)"/>
      <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
      <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
      <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
      <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>
      <arg name="stereo_module/exposure/1" value="$(arg stereo_module/exposure/1)"/>
      <arg name="stereo_module/gain/1"     value="$(arg stereo_module/gain/1)"/>
      <arg name="stereo_module/exposure/2" value="$(arg stereo_module/exposure/2)"/>
      <arg name="stereo_module/gain/2"     value="$(arg stereo_module/gain/2)"/>

      <arg name="allow_no_texture_points"  value="$(arg allow_no_texture_points)"/>
      <arg name="ordered_pc"               value="$(arg ordered_pc)"/>
      
    </include>
  </group>
</launch>

最后终端输入

roslaunch realsense2_camera rs_camera.launch

就能收到相机数据了。文章来源地址https://www.toymoban.com/news/detail-745011.html

到了这里,关于Ubuntu 20.04 配置 Realsense的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04安装配置Nginx

    由于在学习配置时,网上的教程比较杂乱,用时很久才做好一些基础配置,把流程记录一下方便和我一样的小白学习 本文写于2023.2.10,如果间隔太久,下述内容可能会失效,请另寻教程 仅包含基础教程,个人服务未涉及到负载均衡 安装nginx 配置静态服务器 配置端口转发 配

    2024年02月03日
    浏览(63)
  • Ubuntu20.04配置mysql配置主从复制

    ubuntu20.04 :mysql主库 主库 mysqld.cnf 配置 进入mysql配置远程账号,并允许复制权限 查看当前主库二进制日志坐标     ubuntu20.04 :mysql从库 从库 mysqld.cnf 配置 进入mysql配置从库复制信息 停止主从复制

    2024年02月11日
    浏览(35)
  • Ubuntu系统安装、配置与美化(Ubuntu20.04)

    本文的写作目的在于帮助完全零基础的小白不理解原理而可以 无脑安装Linux系统 ,同时也是为自己进行的一个整理,相较于网上大多数的教程,本教程将一些内容进行了整合与整理,加之本人在安装Ubuntu系统的时候听从学长的教导了解的内容,对于部分的网络常见的教程进行

    2023年04月17日
    浏览(78)
  • WSL 2 Ubuntu 20.04 配置 CUDA

    目前大多数 N 卡电脑都已经自带了 NVIDIA GeForce Experience 软件以及显卡驱动,无需额外配置。 在 Windows 的终端中,可以执行 nvidia-smi 查看显卡状态: 如果没有驱动的话,可以在官网下载,根据自己的配置选择安装即可: 驱动安装完成后,可以执行 nvidia-smi 验证驱动安装是否成

    2024年02月16日
    浏览(48)
  • Ubuntu 20.04 配置VNC远程桌面访问

    一开始安装的是tigervnc,安装之后一直不能用VNCviewer访问,并且在输入vncserver的时候不会自动建立xstartup文件,卸载重新安装tightvnc之后就可以vnc远程访问且自动建立xstartup文件了。 接着就可以输入vncserver,创建端口: 此时已经可以创建端口了,但是还需要安装桌面并且完成配

    2024年02月06日
    浏览(49)
  • Ubuntu Server 20.04 网卡启动及配置

    由于网络环境问题,联网安装会导致报错,故在安装期间disable了所有网卡,下面记录装好之后打开的过程。 得到本机的所有网卡信息,例如我这边网卡为eth0 将上述网卡名称填入 把up换成down是关掉 ubuntu server 20.04 采用读yaml配置文件的方式修改网卡配置,文件在/etc/netplan/下,

    2024年02月11日
    浏览(63)
  • Ubuntu20.04中Docker安装与配置

    1、卸载可能存在的旧版本 2、更新apt包索引 显示“正在读取软件包列表… 完成” 3、安装以下包以使apt可以通过HTTPS使用存储库(repository) 显示“done.” 4、添加Docker官方的GPG密钥 显示“OK” 5、设置stable存储库 如果没有报错就正常进行下一步。显示“正在读取软件包列表… 完

    2024年02月05日
    浏览(55)
  • Ubuntu20.04在vsCode配置opencv

    https://opencv.org/releases/ 我下载的为opencv4.5.4版本,可以直接下载.zip文件,可以选择其他版本。 Sources版本即为.zip版本: Linux默认下载目录为Downloads,在这里用终端打开 1、解压 输入命令: unzip opencv-4.5.4.zip ; 如果报错,安装unzip: sudo apt-get install unzip ; 2、安装依赖的库: 先

    2024年02月16日
    浏览(53)
  • Ubuntu20.04配置静态固定IP地址

    Ubuntu从17.10开始,放弃在/etc/network/interfaces里面配置IP,改为在/etc/netplan/XX-installer-config.yaml的文件中配置IP地址。 我这里是01-network-manager-all.yaml 文件名。 默认内容如下: 修改为如下: 编辑好后,保存。 至此Ubuntu20.04的静态IP配置完成。 如果对您有帮助,请记得 一键三连~~~

    2024年02月10日
    浏览(44)
  • Ubuntu 20.04 系统配置 OpenVINO 2022.3 环境

    由于 OpenVINO 2021 版本在调用 IECore 时会出现 Segmentation fault 的问题,因此需要将其升级为 2022 版本的。 1. 卸载原来版本的 OpenVINO 进入OpenVINO的卸载目录,通常在 /opt/intel 文件夹下, 之后执行卸载程序,一路next即可 之后将 ~/.bashrc 中原本的 source 那行注释掉 注释以下这行 至此

    2024年02月03日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包