RealSense-获取已同步的IMU数据

获取已同步的IMU数据

Intel官方软件RealSense-Viewer作为数据采集工具,简单易用;

但其输出的IMU数据,即陀螺仪与加速计的读数,是互相独立的,另外深度图像与RGB图像也存在数据时间戳不同步问题。

问题其实就是,RealSense-Viewer将陀螺仪和加速计的数据,发布为两个互相独立的topic,而实际使用中需要订阅一个同时具有角速度和线加速度信息的topic。

为解决上述问题(主要是IMU不同步),尝试使用官方提供的ROS Wrapper进行数据采集。

参考地址:https://github.com/IntelRealSense/realsense-ros

配置

针对相机的各种配置参数,通过 /realsense-ros/realsense2_camera/launch/rs_camera.launch 文件传给ROS系统。
RealSense-获取已同步的IMU数据_第1张图片
设备默认打开深度图,深度自信度,RGB图像,关闭IMU数据,在这里将最后两个标识符设置为true,即可打开陀螺仪和加速计的数据流。

针对各数据流的分辨率,帧率等,也可以在此文件进行修改设置:
RealSense-获取已同步的IMU数据_第2张图片
为使深度图与RGB图像实现同步,可将对应默认参数修改为true:
在这里插入图片描述

使用相机

按照Github页面的指引安装对应的realsense-ros包后,运行如下命令行启动相机:

roslaunch realsense2_camera rs_camera.launch

使用ROS命令rostopic list 可以看到相机数据流发布的话题列表:
RealSense-获取已同步的IMU数据_第3张图片
IMU数据是不同步的,即accel和gyro互相独立。

设置同步选项

可修改的配置介绍:https://github.com/IntelRealSense/realsense-ros#launch-parameters

其中影响IMU数据同步的为:
RealSense-获取已同步的IMU数据_第4张图片
若使用linear_interpolation选项,可以将加速计的数据以插值的方式对齐到陀螺仪数据时间轴上;

若使用copy选项,则是在每一个陀螺仪数据上,附加上时间最近邻的加速计数据。

默认选项为:None。
RealSense-获取已同步的IMU数据_第5张图片
在camera.launch文件中,将unite_imu_method对应设置为“linear_interpolation”,两路数据即可以同步为同一个topic: /camera/imu:
RealSense-获取已同步的IMU数据_第6张图片
使用命令行rostopic echo /camera/imu查看IMU数据,同一个数据中同时包含两个传感器数据:
RealSense-获取已同步的IMU数据_第7张图片

修改彩色相机配置

https://github.com/IntelRealSense/realsense-ros#set-camera-controls-using-dynamic-reconfigure-params

使用命令rosrun rqt_reconfigure rqt_reconfigure打开相机配置页面:
RealSense-获取已同步的IMU数据_第8张图片可以调整曝光,增益等参数。

RVIZ显示图像

使用 rviz 命令打开可视化窗口,选择添加相关话题:
RealSense-获取已同步的IMU数据_第9张图片
在左下角窗口显示图像:
RealSense-获取已同步的IMU数据_第10张图片

录制BAG数据

使用命令行rosbag record topic1 topic2 ...将所需要的数据录制到bag包中。注意此命令行在所需保存数据的文件夹路径下执行。

你可能感兴趣的:(RealSense,linux)