autolabor-m1-doc/chassis/odomCalibration.md

2.8 KiB
Raw Blame History

里程计标定

里程计标定也叫里程计校准,即在当前运行环境下重新计算运动模型,得到里程计的运动模型参数,此教程只适用于使用ROS控制M1机器人的用户。

Autolabor M1 出厂时已做过标定了,在一般运行环境下(地毯、水泥、普通瓷砖等平坦路面)不用重新做标定,但如果您的运行环境是非一般环境,机器人可能就需要重新做标定,比如【经过打磨过的】并且还有【镜面效果】的水泥路面,或摩擦力较大路面,如果您在使用导航套件建图时效果不佳,也可以进行标定。

对于不太确定产品是否需要标定的用户,可先进行里程计测试,根据测试结果来判断机器人是否需要标定。

检测机器人是否需要标定

操作步骤:

  1. 启动键盘控制使用ROS键盘控制M1原地转360度
  2. 打开一个新的terminal运行
$ rviz
  1. rviz窗口打开后将fixed frame选择为odom
  2. 关闭其他所有勾选只保留grid和tf如没有grid左下角add新增
  3. 打开tf下拉出来frames的内容关闭其他所有勾选保留baselink和odom
  4. rviz右侧界面可看两个重合的坐标系(baselink和odom)
  5. 对机器人(实体)的四个轮子做标记,标记此时车的位置
  6. 键盘控制机器人原地360度转一圈请必须记住此时旋转的方向标定会用到控制机器人回到刚刚标记的位置重合保持机器人与标记的初始位置方向一致
  7. 观察rviz中的2个坐标系是否重合

如果不重合,表示需要标定。

如果基本重合,表示不需要标定。

对机器人进行里程计标定

操作步骤:

  1. 打开一个新的terminal
  2. 运行
$ rosrun tf tf_echo /odom /base_link
  1. 在出现的数据中查找in RPY (degree)[0,0,X]
  2. 查看X值如果刚刚键盘控制车时是顺时针转用360-X如果是逆时针转用360+X得到Y
  3. 计算 model_param*Y/360得到计算结果
  4. 打开启动的launch文件找到Autolabor M1驱动部分autolabor_pro1_driver找到model_param参数将model_param改为上一步得到的结果
  5. 保存、关闭launch文件
  6. 关闭terminal中的运行的launch(ctrl+c)如果rviz关闭时弹出窗口询问是否需要保存点击【without saving】不保存
  7. 再次重复【检测机器人是否需要标定】的操作

如果不重合,表示需要标定,如果基本重合,表示不需要标定,重复以上【标定】工作,一次次的进行,直到基本重合。

注意除第一次标定时使用的model_param为驱动中的原始值之后每一次的标定操作中model_param为上一次标定计算的model_param结果第5步