使用evo测试aruco_detect精度

使用evo测试aruco_detect精度

  • 一、实验目的
  • 二、实验设备
  • 三、实验步骤
  • 四、实验结果
  • 五、实验结论
  • 六、结论分析

一、实验目的

  • 测试aruco_detect的精确度;
  • 分析影响aruco_slam精准度的主要因素。

二、实验设备

  • 普通USB单目摄像头一个;
  • aruco_detect文件、usb_cam文件、fiducial_slam文件等;
  • 有ros相关配置的Ubuntu系统(本实验使用的是18.04版本)。

三、实验步骤

  • 配置好相关环境及文件;
  • 更改usb_cam的launch 文件,将USB摄像头的端口改成与自己摄像头相适配的,如下图所示,将“video_device”对应的value改成了“/dev/video2”。使用evo测试aruco_detect精度_第1张图片
  • 更改aruco_detect的launch文件,将USB端口的数据喂到aruco_detect中,如下图所示:使用evo测试aruco_detect精度_第2张图片
  • 校准USB摄像头。
  • 开始录制bag,命令如下:
roslaunch usb_cam usb_cam-test.launch
roslaunch aruco_detect aruco_detect.launch
roslaunch fiducial_slam fiducial_slam.launch
roslaunch fiducial_slam fiducial_rviz.launch
rosbag record -a
  • 截取运行录好的bag,处理输出为txt格式的数据
roscore
rosbag play <bag name>
rostopic echo -p /tf >tf.txt
  • 处理tf.txt文件中的数据,使用evo小工具进行对其等处理,此处可以参考文章。

注:安装好evo之后如果tab不出来指令的话,可以尝试重启电脑,轨迹对齐的指令为:

evo_ape tum data.tum FrameTrajectory_TUM_Format.txt -va --plot

四、实验结果

  • 只包含一个二维码环境的测试
    使用evo测试aruco_detect精度_第3张图片使用evo测试aruco_detect精度_第4张图片
    使用evo测试aruco_detect精度_第5张图片
    使用evo测试aruco_detect精度_第6张图片

  • 包含多个随机二维码环境的测试
    使用evo测试aruco_detect精度_第7张图片
    使用evo测试aruco_detect精度_第8张图片
    使用evo测试aruco_detect精度_第9张图片
    使用evo测试aruco_detect精度_第10张图片

五、实验结论

  • aruco_detect结合fiducial_slam对于单个二维码的定位效果较好,在识别出来的情况下可以达到厘米级,但是对于存在多个二维码的环境,它所存在的误差极大,基本丧失了定位的效果。
  • 在多个二维码的环境下,影响aruco定位效果的主要是二维码识别的稳定性上:即当视野中所有的二维码都能够准确识别出来时,该slam的定位效果良好,但是由于二维码摆放、远近(即在视野中的大小)等因素的影响,二维码的识别存在一定的不稳定性,这个不稳定性导致预测位置的抖动。

六、结论分析

  • 本次aruco_detect的测试,虽然在多个二维码随机摆放的条件下效果极差,但是由单个二维码位置预测可以得出,摄像头与二维码的位置适合,例如二维码依次贴在天花板上,该slam将能很好的适用,就好像视频里面所展示的一样链接: aruco_example。
    另外,我们也可以通过提高相机的分辨率来提高aruco_detect对二维码的检测。

你可能感兴趣的:(使用evo测试aruco_detect精度)