realsense D435i安装配置


realsense D435i终于到手了,打开发现其实很小巧,先做一些配置看看。默认要使用USB3,如果RealSense使用USB2, Output Resolution自动降到480*270 30fbs,而非产品所宣称的1280 x 720 active stereo depth resolution和90fps,且只有Stereo Moudle在工作,无Image Sensor的RGB Moudle菜单项,无法进行3D建模。

D435i采用了即用型USB供电形式,不仅提供深度传感器模组,还配备了一个IMU单元(惯性测量单元,采用的博世BMI055)。凭借内置的IMU单元,结合视觉数据可实现6DoF追踪功能。其中,IMU将各种线性加速度计和陀螺仪数据结合,可检测X,Y,Z三轴的旋转和平移,以及俯仰、横摇等动作。D435i的2000万像素RGB摄像头和3D传感器可以30帧/秒的速度提供分辨率高达1280 × 720,或者以90帧/秒的速度提供848 × 480的较低分辨率。该摄像头具有全局快门,可以处理快速移动物体,室内室外皆可操作。深度距离在0.1 m~10 m之间,视场角度为85 × 58度

可以获得RGB图、左右红外摄像图、深度图、IMU数据,并且将深度图数据和RGB图进行对齐。左右红外相机进行测量深度,中间红外点阵投射器相当于补光灯,不打开也能测深度,只是效果不好;最右边的rgb相机用于采集彩色图片,最终可以将彩色视频流与深度流进行对齐.

两个驱动讲究搭配,否则安装编译都不报错,运行时会报错 realsense hwmon command 0x7d failed 我使用的是realsense-ros-2.2.23librealsense-2.43.0

安装librealsense

先装realsense的驱动,步骤参考网上的,其实不必完全相同,我的步骤如下:

  1. 下载驱动,然后解压到根目录
  2. 执行如下命令:
    1
    2
    3
    4
    5
    cd ~/librealsense
    sudo apt-get install libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev
    # 许可脚本
    sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
    sudo udevadm control --reload-rules && udevadm trigger
  3. 开始编译
    1
    2
    3
    4
    5
    cd ~/librealsense
    mkdir build && cd build
    cmake ../ -DBUILD_EXAMPLES=true

    sudo make uninstall && make clean && make -j7 && sudo make install

运行realsense-viewer验证,看到如下画面
RGB Depth Infrared
配置可以修改为常见的黑白深度图以及分辨率等等
配置栏

ROS驱动

这里下载,然后放到某工作空间,编译即可:

1
2
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

现在运行roslaunch realsense2_camera rs_camera.launch,打开rqt就能看到realsense的三种图像
实际运行了/camera/realsense2_cameracamera/realsense2_camera_manager两个节点,涉及的话题有很多,以后慢慢分析。

tf关系如图:
frames.png

在rqt中打开深度图时出现了报错,又是图像编码问题
launch文件中报错.png
rqt终端报错.png
在rqt里查看/camera/depth/image_rect_raw/theora,同样没有深度图,但rqt不报警

在rqt查看RGB和红外的图像,只要选择theora,rqt终端都会报警:

1
[ WARN][/rqt_gui_cpp_node_25764] [TheoraSubscriber::internalCallback] line_170  [theora] Packet was not a Theora header


使用对齐的深度话题信息发布RGBD点云

1
roslaunch realsense2_camera rs_rgbd.launch

这一步还没有成功,在rviz里没看到结果

内参

realsense启动时可以发现信息 [color stream is enabled - width: 640, height: 480, fps: 15, Format: RGB8]

realsense相机出厂的时候一般都标定好了,直接读取他们的内参即可。终端输入: rs-sensor-control,根据提示选择,出现所有视频流的列表时,根据上面的信息选择,最终显示内参:

1
2
3
4
Principal Point         : 327.438, 239.997
Focal Length : 611.354, 610.016
Distortion Model : Inverse Brown Conrady
Distortion Coefficients : [0,0,0,0,0]

参考:
realsense D435 驱动安装并嵌入ROS中使用