Ubuntu 驱动Intel RealSense D435i 深度相机及ROS应用

      Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,原链接:IntelRealSense-Github

      RealSense驱动对于Intel自家的X86_64架构的支持十分友好,驱动配置和调用也基本不会出现什么问题,而对于ARM架构的TX2或者Nano来说就稍显麻烦,日后会介绍给大家。以下是在基于Intel CPU的Ubuntu 16.04中利用apt-get安装驱动包、快速配置RealSense ROS的步骤:

1、注册公钥:

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

2、添加包仓库列表:

Ubuntu 16 LTS:

sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u

Ubuntu 18 LTS:

sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u

3、安装库以及开发包:

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

至此,驱动包安装完成,使用以下命令可以打开RealSense的预览插件,连接相机即可查看设备输出。

PS:某些电脑在安装过程中会出现configure UEFI Secure Boot的窗口,意思是开启了UEFI Secure Boot,而这会阻止你使用第三方的硬件驱动,不必更改这一模式,只需要按照窗口提示设定一个Secure Boot的密码确认,然后重启就会自动进入到MOK界面,选择第二项,yes之后输入刚才设定的密码,即可重新进入系统,此时realsense的驱动也就安装好了。

realsense-viewer

       注意:D435i包含RGB图像、深度图像和IMU的信息,如果插上没反应,或者只能出现Stereo深度图这一个信息,一般是因为USB端口不是3.0造成的,或者是端口识别错了,换口或重新插拔试试。

      接下来是装ROS包,在ROS框架下通过topic直接获取D435i的数据。

4、下载并编译realsense2-camera ROS包

      在一个ROS工作空间的src目录下,下载realsense2-camera:

git clone https://github.com/intel-ros/realsense.git

      随后catkin_make编译即可。

5、启动rs_camera节点

roslaunch realsense2_camera rs_camera.launch

     只有之前所有驱动配置成功,并在viewer中成功显示数据后,这个节点才能够被launch,该节点发出的topic如下:

/camera/color/camera_info
/camera/color/image_raw
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/extrinsics/depth_to_color
/camera/extrinsics/depth_to_infra1
/camera/extrinsics/depth_to_infra2
/camera/infra1/camera_info
/camera/infra1/image_rect_raw
/camera/infra2/camera_info
/camera/infra2/image_rect_raw
/camera/gyro/imu_info
/camera/gyro/sample
/camera/accel/imu_info
/camera/accel/sample

      可以使用rostopic echo 或rqt_image_view等指令查看topic内容。

/************************************************************更新分割线*****************************************************/

在使用D435i一段时间后,有如下心得分享给大家:

1、某些情况下连接相机后使用realsense-viewer看到左侧列表中只显示了一个设备,正常应该是三个,这种情况是由于所连接的端口不是USB3.0,左上角设备名称旁边可以看到显示可能类似USB2.1的端口,这是不能够正常使用的,找到USB3.0端口连接设备才可以完整使用相机的所有模块。

2、Intel提供的ROS包的Launch文件中提供了各种参数的设定,比如RGB相机的分辨率和帧率,还有各种数据是否发出等等,可以手动将相机、深度、陀螺仪或者加速度计选择性开启与关闭。特别的,其中打开align_depth选项可以获得一个与彩色图像对齐的深度图,这个包中所有的深度图话题的类型都是Image,需要利用ROS中的CV_Bridge将消息转换成OpenCV的单通道图像格式才可以获取某点深度值,在这个过程中博主遇到的问题是,CV_Bridge的C++接口可以将这种32位编码的Image消息转换成普通图像,而Python接口中对应的编码名称是mono16,这个就不能实现转化,始终会报一个不是图片格式的错误。各位如果有解决办法,希望能分享给我。

3、realsense的ROS驱动包其实都是根据Intel的驱动Librealsense实现的,只是封装出了各种数据的话题,觉得麻烦的话完全可以不使用这个包,直接利用lib的接口就可以开启设备、获取数据。如果是Python用户,pip install一个pyrealsense2,学习几句简单的命令就可以获取原始数据。

  • 7
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值