获取已同步的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系统。
设备默认打开深度图,深度自信度,RGB图像,关闭IMU数据,在这里将最后两个标识符设置为true,即可打开陀螺仪和加速计的数据流。
针对各数据流的分辨率,帧率等,也可以在此文件进行修改设置:
为使深度图与RGB图像实现同步,可将对应默认参数修改为true:
使用相机
按照Github页面的指引安装对应的realsense-ros包后,运行如下命令行启动相机:
roslaunch realsense2_camera rs_camera.launch
使用ROS命令rostopic list
可以看到相机数据流发布的话题列表:
IMU数据是不同步的,即accel和gyro互相独立。
设置同步选项
可修改的配置介绍:https://github.com/IntelRealSense/realsense-ros#launch-parameters
其中影响IMU数据同步的为:
若使用linear_interpolation选项,可以将加速计的数据以插值的方式对齐到陀螺仪数据时间轴上;
若使用copy选项,则是在每一个陀螺仪数据上,附加上时间最近邻的加速计数据。
默认选项为:None。
在camera.launch文件中,将unite_imu_method对应设置为“linear_interpolation”,两路数据即可以同步为同一个topic: /camera/imu:
使用命令行rostopic echo /camera/imu
查看IMU数据,同一个数据中同时包含两个传感器数据:
修改彩色相机配置
https://github.com/IntelRealSense/realsense-ros#set-camera-controls-using-dynamic-reconfigure-params
使用命令rosrun rqt_reconfigure rqt_reconfigure
打开相机配置页面:
可以调整曝光,增益等参数。
RVIZ显示图像
使用 rviz 命令打开可视化窗口,选择添加相关话题:
在左下角窗口显示图像:
录制BAG数据
使用命令行rosbag record topic1 topic2 ...
将所需要的数据录制到bag包中。注意此命令行在所需保存数据的文件夹路径下执行。