跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 选词工具 > Ubuntu 20.04 配置 Realsense

Ubuntu 20.04 配置 Realsense

时间:2024-04-09 07:30:45 来源:网络cs 作者:焦糖 栏目:选词工具 阅读:

标签: 配置 

一、硬件说明

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

Intel® RealSense™ Computer Vision - Depth and Tracking cameras

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

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

二、安装 realsense 驱动

参考 librealsense 的 github 官方教程

librealsense/doc/distribution_linux.md at master · IntelRealSense/librealsense · GitHub

创建服务器公钥

sudo mkdir -p /etc/apt/keyringscurl -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.listsudo apt-get update

部署  librealsense2 udev 规则,构建和激活内核模块、运行库以及可执行演示和工具:

sudo apt-get install librealsense2-dkmssudo apt-get install librealsense2-utils

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

sudo apt-get install librealsense2-devsudo 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/srccd ~/realsense_ws/src/

下载源码

git clone https://github.com/IntelRealSense/realsense-ros.gitcd 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_workspacecd ..catkin_make cleancatkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Releasecatkin_make install

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

echo "source ~/realsense_ws/devel/setup.bash" >> ~/.bashrcsource ~/.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.kjpai.cn/news/2024-04-09/155754.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论