D435i安装使用(Ubuntu18.04+ROS1+TX2)
1、安装IntelRealSense SDK2.0
1.1 注册 key
apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
1.2 添加Repositories(Ubuntu18.04)
add-apt-repository "deb http://realsense-hw- public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
1.3 安装Libraries
apt-get install librealsense2-dkms
apt-get install librealsense2-utils
1.4 安装Dev和Debug工具
apt-get install librealsense2-dev
apt-get install librealsense2-dbg
2、验证安装D435i
//命令行输入
realsense-viewer
点击左侧的Stereo Module可以开启深度图显示,RGB Module可以显示RGB影像,Motion Module会显示IMU相关数据,如下图所示:
若如下图所示即表示成功。
3、ROS接口安装
3.1 下载 realsense-ros
3.2 创建ros工作空间
// An highlighted block
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
3.3 设置环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
将realsense-ros代码放到catkin_ws/src文件下,返回目录下catkin_make命令进行编译即可。
4、ROS接口使用
4.1 启动节点
roslaunch realsense2_camera rs_camera.launch
当出现“RealSense Node Is Up!”就说明节点启动成功了
4.2 话题查看
//命令行输入
rostopic list
4.3 订阅话题(可以显示你想看的数据)
rqt_image_view
4.4 打开红外影像输出
在Realsense-ROS节点的Launch文件夹中,编辑rs_camera.launch文件,将下列三个参数项改成true。
下拉选择 /cerema/infra/image_rect_raw如下图所示即表示成功
5、python接口使用
pip安装pyrealsense2的时候,通过下面命令难以安装成功
pip install pyrealsense2
于是采用 .whl文件安装方法:
4.1 下载 pyrealsense2
根据硬件架构和软件环境选择合适的依赖
4.2 安装依赖(本文是python3.7)
进入pyrealsense2-2.48.0.3381-cp37-cp37m-win_amd64.whl所在的文件夹,然后输入
pip install pyrealsense2-2.48.0.3381-cp37-cp37m-win_amd64.whl
4.3 安装验证
连接摄像头建立python文件
mkdir test
cd test
vim test.py
将以下代码写入test.py
import pyrealsense2 as rs
pipe = rs.pipeline()
profile = pipe.start()
try:
for i in range(0, 100):
frames = pipe.wait_for_frames()
for f in frames:
print(f.profile)
finally:
pipe.stop()
再运行 python test.py,若输入如下图所示,即表示成功
<pyrealsense2.stream_profile: Gyro(0) @ 200fps MOTION_XYZ32F>
<pyrealsense2.video_stream_profile: Depth(0) 640x480 @ 15fps Z16>
<pyrealsense2.video_stream_profile: Color(0) 640x480 @ 15fps RGB8>
<pyrealsense2.stream_profile: Accel(0) @ 63fps MOTION_XYZ32F>
<pyrealsense2.stream_profile: Gyro(0) @ 200fps MOTION_XYZ32F>
6、关于D435i注意事项
6.1 IMU信息的融合
启动节点,rostopic list查看是否发布关于陀螺仪和加速度的话题:在rs_camera.launch文件中找到 /camera/gyro/sample,/camera/accel/sample,将其融合查看 /camera/imu话题即可查看两个话题的参数,修改如下:
<arg name="unite_imu_method" default="linear_interpolation"/>
<arg name="enable_gyro" default="true"/>
<arg name="enable_accel" default="true"/>
在~/catkin_ws目录下打开终端输入(这里source很重要)
source devel/setup.bash
roslaunch realsense2_camera rs_camera.launch
6.2 深度图对齐问题
编辑rs_camera.launch文件,保证enable_depth,再设置align_depth参数是true状态:
(1)/camera/aligned_depth_to_color/image_raw:单目RGB影像对齐的深度图
(2)/camera/depth/image_rect_raw:输出原始深度图
请确保采集数据时需要对齐的深度图,这很重要,否则采集的数据无效。
6.3 红外发射开关
D435i会主动发射红外散斑,因此可以获得相对准确的深度信息,但是对于较小或者较暗的场景,红外散斑会非常明显,解决办法如下:
(1)关闭红外发射开关
启动rs_camera节点,输入
rosrun rqt_reconfigure rqt_reconfigure
选择左边stereo_module,找到 emitter_enabled关闭即可
(2)RGBD数据和红外双目数据分开采集(后续再发布相关知识)
6.3 topic信息
如果想获得传感器相关信息,直接订阅带info的Topic即可。
rostopic echo /camera/infra1/camera_info