测试环境

  • Webots2020a
  • 两轮底盘运动模型

    测试使用关键模块

  • motor底盘运动轮电机驱动

  • DistanceSensor测距模块
  • 测距模块的使用方法见【Webots】教程-【驱动】

    测试任务

  • [x] 激光辅助测角测试

  • 激光辅助定位测试

激光辅助测角测试

实验装置

image.png

  • 红色框圈住部分为激光测距模块
  • 激光测距模块符合实际情况不直接安装在中心位置上,计算距离时需要加上偏移量

    算法依据

  • 【全局定位】-【方案资料】-【激光辅助定位】

  • 相比原方案修改了激光测距模块的安装位置,但计算原理一致
  • 可遵循原步骤推导可得

【全局定位】激光辅助定位测试 - 图2

  • 代码实现

    1. float Length = sqrt(Distance_2*Distance_2+Distance_3*Distance_3-2*Distance_2*Distance_3*cos(OFFSET_ANGLE));
    2. float degree = acos((Length*Length+Distance_3*Distance_3-Distance_2*Distance_2)/(2*Length*Distance_3)) - PI/2.0;

    计算效果

  • 为了验证计算结果正确与否

  • 与安装的陀螺仪数据对比
  • 若两组数据一致则算法成立,依靠激光测角方案可行

image.png

  • 从输出结果可以看出,测试结果是完全符合预期的
  • 因此验证了通过两束激光可以得知机器人当前角度的算法可行性

    缺陷测试

  • 正如【全局定位】-【方案资料】-【激光辅助定位】中提到的那样

  • 这种测量方法存在部分缺陷
  • 即两束激光必须同时照射在同一反射平面上,否则测量算法不成立

image.png

  • 因此当想要使用激光矫正机器人角度时,对机器人的位置有一定要求