2.8 KiB
2.8 KiB
里程计标定
里程计标定也叫里程计校准,即在当前运行环境下重新计算运动模型,得到里程计的运动模型参数,此教程只适用于使用ROS控制M1机器人的用户。
Autolabor M1 出厂时已做过标定了,在一般运行环境下(地毯、水泥、普通瓷砖等平坦路面)不用重新做标定,但如果您的运行环境是非一般环境,机器人可能就需要重新做标定,比如【经过打磨过的】并且还有【镜面效果】的水泥路面,或摩擦力较大路面,如果您在使用导航套件建图时效果不佳,也可以进行标定。
对于不太确定产品是否需要标定的用户,可先进行里程计测试,根据测试结果来判断机器人是否需要标定。
检测机器人是否需要标定
操作步骤:
- 启动键盘控制,使用ROS键盘控制M1原地转360度
- 打开一个新的terminal,运行
$ rviz
- rviz窗口打开后,将fixed frame选择为odom
- 关闭其他所有勾选,只保留grid和tf(如没有grid,左下角add新增)
- 打开tf,下拉出来frames的内容,关闭其他所有勾选,保留baselink和odom
- rviz右侧界面可看两个重合的坐标系(baselink和odom)
- 对机器人(实体)的四个轮子做标记,标记此时车的位置
- 键盘控制机器人原地360度转一圈(请必须记住此时旋转的方向,标定会用到),控制机器人回到刚刚标记的位置(重合),保持机器人与标记的初始位置方向一致
- 观察rviz中的2个坐标系是否重合
如果不重合,表示需要标定。
如果基本重合,表示不需要标定。
对机器人进行里程计标定
操作步骤:
- 打开一个新的terminal
- 运行
$ rosrun tf tf_echo /odom /base_link
- 在出现的数据中查找in RPY (degree)[0,0,X]
- 查看X值,如果刚刚键盘控制车时是顺时针转,用360-X,如果是逆时针转,用360+X,得到Y
- 计算 model_param*Y/360,得到计算结果
- 打开启动的launch文件,找到Autolabor M1驱动部分(autolabor_pro1_driver),找到model_param参数,将model_param改为上一步得到的结果
- 保存、关闭launch文件
- 关闭terminal中的运行的launch(ctrl+c),如果rviz关闭时弹出窗口,询问是否需要保存,点击【without saving】(不保存)
- 再次重复【检测机器人是否需要标定】的操作
如果不重合,表示需要标定,如果基本重合,表示不需要标定,重复以上【标定】工作,一次次的进行,直到基本重合。
注意:除第一次标定时使用的model_param为驱动中的原始值,之后每一次的标定操作中model_param为上一次标定计算的model_param结果(第5步)