Realsense d435i驱动安装、配置及校准

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

写在前面
本文是在ubuntu20.04下安装,其它版本大同小异。可能出现的问题,主要由各自安装相关库版本不一致导致,故问题不一,但一般很好解决,正常情况下不会出现。

Intel Realsense 深度摄像头D435i将D435强大的深度感知能力和惯性测量单元(IMU)结合起来,可满足RGBD、单目、双目slam研究与实战。本文介绍D435i相关工具安装、配置及校准,也是实战slam算法的前提,不可缺少的部分。实物如图所示:
realsense d435i,VINS-FUSION,计算机视觉,自动驾驶,机器人

一、工具安装

D435i工具包括,Intel Realsense SDK2.0 和realsense-ros。

1.Intel Realsense SDK2.0
(1)下载源码
  • git clone https://github.com/IntelRealSense/librealsense.git
  • cd librealsense
(2)安装依赖
  • sudo apt-get install libudev-dev pkg-config libgtk-3-dev
  • sudo apt-get install libusb-1.0-0-dev pkg-config
  • sudo apt-get install libglfw3-dev
  • sudo apt-get install libssl-dev
(3)添加权限
  • sudo cp config/99-realsense-libusb.rules /etc/udev/rulesgger
  • sudo udevadm control --reload-rules && udevadm trigger
(4)编译、安装
  • mkdir build
  • cd build
  • cmake …
  • make
  • sudo make install
(5)测试
  • cd examples/capture
  • ./rs-capture

或者

  • realsense-viewer

安装成功后,sdk界面显示如下
realsense d435i,VINS-FUSION,计算机视觉,自动驾驶,机器人

注:使用USB3.0接口。

2.安装realsense-ros

因后续需要使用ros进行双目、imu数据发布,因此需要安装realsense-ros。

(1)创建工作空间、下载源码及编译
  • mkdir -p realsense_ws/src
  • cd realsense_ws/src
  • git clone https://github.com/IntelRealSense/realsense-ros.git
  • git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • catkin_make
    编译完成,根据个人喜好,可永久添加source
  • echo “source /realsense_ws/devel/setup.bash” >> ~/.bashrc
  • source ~/.bashrc
(2)测试

若上一步未添加source,运行launch时需

  • source devel/setup.bash
  • roslaunch realsense2_camera rs_camera.launch

可查看发布的话题

  • rostopic list

如下图所示
realsense d435i,VINS-FUSION,计算机视觉,自动驾驶,机器人

二、配置

因后续需要使用d435i进行vins_fusion实战,因此该配置为双目+imu,修改rs_camera.launch,具体如下。其它,如RGBD可以参照rs_rgbd.launch按需修改。

1. <launch>
2.   <arg name="serial_no"           default=""/>
3.   <arg name="json_file_path"      default=""/>
4.   <arg name="camera"              default="camera"/>
5.   <arg name="tf_prefix"           default="$(arg camera)"/>
6.   <arg name="external_manager"    default="false"/>
7.   <arg name="manager"             default="realsense2_camera_manager"/>
8. 
9.   <arg name="fisheye_width"       default="640"/>
10.   <arg name="fisheye_height"      default="480"/>
11.   <arg name="enable_fisheye"      default="false"/>
12. 
13.   <arg name="depth_width"         default="640"/>
14.   <arg name="depth_height"        default="480"/>
15.   <arg name="enable_depth"        default="false"/>
16. 
17.   <arg name="infra_width"        default="640"/>
18.   <arg name="infra_height"       default="480"/>
19.   <arg name="enable_infra1"       default="true"/>
20.   <arg name="enable_infra2"       default="true"/>
21. 
22.   <arg name="color_width"         default="640"/>
23.   <arg name="color_height"        default="480"/>
24.   <arg name="enable_color"        default="true"/>
25. 
26.   <arg name="fisheye_fps"         default="30"/>
27.   <arg name="depth_fps"           default="30"/>
28.   <arg name="infra_fps"           default="30"/>
29.   <arg name="color_fps"           default="30"/>
30.   <arg name="gyro_fps"            default="400"/>
31.   <arg name="accel_fps"           default="200"/>
32.   <arg name="enable_gyro"         default="true"/>
33.   <arg name="enable_accel"        default="true"/>
34. 
35.   <arg name="enable_pointcloud"         default="false"/>
36.   <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
37.   <arg name="pointcloud_texture_index"  default="0"/>
38. 
39.   <arg name="enable_sync"               default="true"/>
40.   <arg name="align_depth"               default="true"/>
41. 
42.   <arg name="publish_tf"                default="true"/>
43.   <arg name="tf_publish_rate"           default="0"/>
44. 
45.   <arg name="filters"                   default=""/>
46.   <arg name="clip_distance"             default="-2"/>
47.   <arg name="linear_accel_cov"          default="0.01"/>
48.   <arg name="initial_reset"             default="false"/>
49.   <arg name="reconnect_timeout"         default="6.0"/>
50.   <arg name="unite_imu_method"          default="linear_interpolation"/>
51.   <arg name="topic_odom_in"             default="odom_in"/>
52.   <arg name="calib_odom_file"           default=""/>
53.   <arg name="publish_odom_tf"           default="true"/>
54.   <arg name="allow_no_texture_points"   default="false"/>
65. 
66.   <group ns="$(arg camera)">
67.     <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
68.       <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
69.       <arg name="external_manager"         value="$(arg external_manager)"/>
70.       <arg name="manager"                  value="$(arg manager)"/>
71.       <arg name="serial_no"                value="$(arg serial_no)"/>
72.       <arg name="json_file_path"           value="$(arg json_file_path)"/>
73. 
74.       <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
75.       <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
76.       <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
77.       <arg name="enable_sync"              value="$(arg enable_sync)"/>
78.       <arg name="align_depth"              value="$(arg align_depth)"/>
79. 
80.       <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
81.       <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
82.       <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>
83. 
84.       <arg name="depth_width"              value="$(arg depth_width)"/>
85.       <arg name="depth_height"             value="$(arg depth_height)"/>
86.       <arg name="enable_depth"             value="$(arg enable_depth)"/>
87. 
88.       <arg name="color_width"              value="$(arg color_width)"/>
89.       <arg name="color_height"             value="$(arg color_height)"/>
90.       <arg name="enable_color"             value="$(arg enable_color)"/>
91. 
92.       <arg name="infra_width"              value="$(arg infra_width)"/>
93.       <arg name="infra_height"             value="$(arg infra_height)"/>
94.       <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
95.       <arg name="enable_infra2"            value="$(arg enable_infra2)"/>
96. 
97.       <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
98.       <arg name="depth_fps"                value="$(arg depth_fps)"/>
99.       <arg name="infra_fps"                value="$(arg infra_fps)"/>
100.       <arg name="color_fps"                value="$(arg color_fps)"/>
101.       <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
102.       <arg name="accel_fps"                value="$(arg accel_fps)"/>
103.       <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
104.       <arg name="enable_accel"             value="$(arg enable_accel)"/>
105. 
106.       <arg name="filters"                  value="$(arg filters)"/>
107.       <arg name="clip_distance"            value="$(arg clip_distance)"/>
108.       <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
109.       <arg name="initial_reset"            value="$(arg initial_reset)"/>
110.       <arg name="reconnect_timeout"        value="$(arg reconnect_timeout)"/>
111.       <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
112.       <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
113.       <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
114.       <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>
115.       <arg name="allow_no_texture_points"  value="$(arg allow_no_texture_points)"/>
116.     </include>
117.   </group>
118. </launch>
109. 
三、校准

d435i校准主要是针对双目相机内参、畸变及imu校准。

1.关闭结构光

d435i包含IR Project,用于辅助测量深度信息,而本文主要想通过单/双目完成slam实战,无需IR提供深度信息。但IR结构光会使成像有很多光斑,影响校准及后续双目使用,故需关闭。
修改rs_camera.launch

  • gedit rs_camera.launch

在参数后添加

<arg name="emitter_enable"   		      default="false"/>

<!-- rosparam set /camera/stereo_module/emitter_enabled false -->
<rosparam>
 /camera/stereo_module/emitter_enabled: false
</rosparam>

<rosparam if="$(arg emitter_enable)">
/camera/stereo_module/emitter_enabled: true
</rosparam>

代码块意思为,启用rs_camera.launch时,默认关闭结构光。
当需要时,可使用以下方式打开

  • roslaunch realsense2_camera rs_camera.launch emitter_enable:=true
    默认关闭时,运行无需添加后面参数 emitter_enable:=true
2.相机内参、畸变校准

参看相机默认内参

  • source devel/setup.bash
  • roslaunch realsense_camera rs_camera.launch
  • rostopic echo /camera/infra1/camera_info
  • rostopic echo /camera/infra2/camera_info
    如下图所示:
    realsense d435i,VINS-FUSION,计算机视觉,自动驾驶,机器人

注:这里特别注意,如果需要使用双目相机,话题如上,而不是/camera/color/camera_info

如图可知,默认提供了双目镜头内参,但没有畸变参数。由于后续需要使用kailbr,校准imu随机游走及相机与imu外参,故此处不使用自带工具进行相机内参校准。

3.imu六面校准

imu六面校准是指校准acc、gyro的零偏、尺度因子及非正交误差,realsense提供官方库。

(1)安装依赖
  • sudo pip3 install pyrealsense2
(2)运行

进入rs-imu-calibration文件夹

  • cd librealsense/tools/rs-imu-calibration
  • python rs-imu-calibration.py

如下图所示
realsense d435i,VINS-FUSION,计算机视觉,自动驾驶,机器人

根据提示旋转六面。具体参照https://github.com/IntelRealSense/librealsense/blob/master/tools/rs-imu-calibration/README.md

注:1.为保证六面水平,可用realsense包装盒制作六面校准工装,2.采集每一面数据时,保证无振动干扰。

(3)保存、写入校准数据

六面数据采集完成后,提示:
Would you like to save the raw data?
输入yes,完成并写入硬件中。校准的数据保存在同目录下calibration.json中。

参考:

https://github.com/IntelRealSense/librealsense
https://github.com/IntelRealSense/realsense-ros
https://blog.csdn.net/Hanghang_article/details/103612300文章来源地址https://www.toymoban.com/news/detail-782739.html

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

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

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

相关文章

  • ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    写在前面 :一定要注意各个版本之间的匹配问题,否则会报各种错误。 例如ROS版本和librealsense SDK版本之间的对应关系,以及realsense-ros(Wrapper)与librealsense SDK之间的对应关系 。 系统:ubuntu18.04 ros: melodic 附上Intel® RealSense github网站: https://github.com/IntelRealSense 以及安装教程

    2024年02月05日
    浏览(7)
  • realsense D435i 实现外部时钟触发硬件同步多相机数据采集

    realsense D435i 实现外部时钟触发硬件同步多相机数据采集

    最近有一个调试D435i相机的工作,需要使得三个相机能够完成硬件触发的同步,具体来说,就是有一个固定频率的外部脉冲信号,使得三个相机能够根据外部脉冲信号的硬件触发完成双目图片、深度图片、彩色图片、IMU数据的实时响应采集,因为外部脉冲信号是通过一个精确

    2024年01月16日
    浏览(102)
  • Realsense D435i Yolov5目标检测实时获得目标三维位置信息

    Realsense D435i Yolov5目标检测实时获得目标三维位置信息

    - Colorimage: - Colorimage and depthimage: 1.一个可以运行YOLOv5的python环境 2.一个realsense相机和pyrealsense2库 在下面两个环境中测试成功 win10 python 3.8 Pytorch 1.10.2+gpu CUDA 11.3 NVIDIA GeForce MX150 ubuntu16.04 python 3.6 Pytorch 1.7.1+cpu 修改模型配置文件,以yolov5s为例。 如果使用自己训练的模型,需要进

    2024年02月04日
    浏览(25)
  • Ubuntu 18.04安装D435i 相机驱动及Ros1 Wrapper

    Ubuntu 18.04安装D435i 相机驱动及Ros1 Wrapper

    1.安装前注意 librealsense SDK相当于相机的驱动,SR300和ZR300的支持驱动是librealsense SDK 1.0,而D435i是librealsense SDK 2.0 **安装前一定要注意librealsense,realsense-ros(即Ros Wrapper),D435i相机固件版本三者之间的版本对应关系。**ros1环境只支持librealsense2.50.0之前的版本,ros2环境要下载librealse

    2024年02月22日
    浏览(10)
  • Intel RealSense D435i深度相机通过点云获取图片中任意点三维信息(python实现)

    Intel RealSense D435i深度相机通过点云获取图片中任意点三维信息(python实现)

    此时效果(左侧RGB图,右侧深度图)(过近时深度信息几乎显示不出来)  按下p键暂停画面 按下s键保存图片 按下r键读取刚才保存的图片,并通过image_sliced文件将图片裁剪到自己需要的范围 image_sliced.py 按下g键进行图像处理,判断方向,并将三维信息显示在图片上 image_pro

    2023年04月08日
    浏览(9)
  • (已修正精度 1mm左右)Realsense d435i深度相机+Aruco+棋盘格+OpenCV手眼标定全过程记录

    (已修正精度 1mm左右)Realsense d435i深度相机+Aruco+棋盘格+OpenCV手眼标定全过程记录

    最近帮别人做了个手眼标定,然后我标定完了大概精度能到1mm左右。所以原文中误差10mm可能是当时那个臂本身的坐标系有问题。然后用的代码改成了基于python的,放在下面。 新来的小伙伴可以只参考前面的代码就可以完成标定了。 有问题的话可以留言,一起交流~ 手眼标定

    2024年02月04日
    浏览(29)
  • jetsonTX2 nx配置yolov5和D435I相机,完整步骤

    jetsonTX2 nx配置yolov5和D435I相机,完整步骤

    转载一篇问题解决博客:问题解决 一、烧录系统 使用SDK烧录 二、安装archiconda3 JETSON TX2 NX的架构是aarch64,与win10,linxu不同,所以不能安装Anaconda,这里安装对应的archiconda。 1. 安装 2. 配置环境变量 3. 创建虚拟环境 其他相关命令(来源:相关命令) 换源 安装成功截图 三、安装

    2024年02月03日
    浏览(5)
  • 【深度相机D435i】Windows+Ubuntu下调用D435i利用Python读取、保存RGB、Depth图片

    【深度相机D435i】Windows+Ubuntu下调用D435i利用Python读取、保存RGB、Depth图片

    最近组里面的项目需要用到D435i深度相机采集深度图片,所以记录一下在Windows+Ubuntu的环境下使用D435i深度相机的流程,以及如何利用python读取、保存常见的RGB、Depth图片。 D435i 在小巧外形中采用英特尔模块和视觉处理器,是一个功能强大的一体产品,可与可定制软件配合使用

    2024年02月02日
    浏览(13)
  • d435i 相机和imu标定

    d435i 相机和imu标定

    使用 imu_utils 功能包标定 IMU,由于imu_utils功能包的编译依赖于code_utils,需要先编译code_utils,主要参考 相机与IMU联合标定_熊猫飞天的博客-CSDN博客 Ubuntu20.04编译并运行imu_utils,并且标定IMU_学无止境的小龟的博客-CSDN博客 1.1 编译 code_utils 创建工作空间 1.1.1 修改 CMakeLists.txt 文件

    2024年02月09日
    浏览(14)
  • ROS D435I识别目标并获取深度数据

    使用D435I相机,并基于ros获取到彩色图像和匹配后的深度数据,通过OPENCV对彩色图像进行目标识别,得到目标所在的像素范围,随后得到深度数据 重点在于:转换ros图像数据到opencv格式,得到目标像素点的实际深度值 d435i启动与修改 使用上述指令启动d435i,可以在里面进行分

    2024年02月10日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包