4.1 KiB
4.1 KiB
里程计标定
里程计标定也叫里程计校准,即在当前运行环境下重新计算运动模型,得到里程计的运动模型参数,此教程只适用于使用ROS控制AP1机器人的用户。
Autolabor M1 出厂时已做过标定了,在一般运行环境下(地毯、水泥、普通瓷砖等平坦路面)不用重新做标定,但如果您的运行环境是非一般环境,机器人可能就需要重新做标定,比如【经过打磨过的】并且还有【镜面效果】的水泥路面,或摩擦力较大路面,如果您觉得建图导航时效果不佳,也可以进行标定。
准备工作: 给M1车轮打满气,规格:胎压250kpa/36psi/2.5bar
操作步骤
一、简介
1. 打开软件
进入 AutolaborOS -> 桌面 -> 测试 -> 标定
2. 功能区介绍
①:车轮半径标定
②:转向运动系数标定
③:键盘控制
④:标定预览
wheel_diameter:车轮半径
model_param_cw:顺时针旋转运动模型参数
model_param_acw:逆时针旋转运动模型参数
标定文件中的底盘参数,数值更改后程序立即更新(暂存在内存,无法存储至实体文件中)。
二、使用
(一)车轮标定
操作步骤:
- 在机器人【前轮】处标记此时车的位置为A
- 点击【开始标定】
- 点击【激活键盘控制】,控制机器人向前【直行】约2米,此时机器人位置为B,取消勾选【激活键盘控制】
- 使用尺子量从A前轮至B前轮的距离S
- 将S填写到①中距离(米)框里,点【计算结果】,得到计算后的车轮直径d'
- 将d'填入到④中wheel_diameter处
(二) 运动转向模型标定
操作步骤:
- 对机器人的四个轮子做标记,标记此时车的位置
- 点击【开始标定】
- 点击【激活键盘控制】,控制机器人原地360度顺时针旋转一圈,控制机器人回到刚刚标记的位置(重合),保持机器人与标记的初始位置方向一致,取消勾选【激活键盘控制】
- 点【计算结果】,得到计算后的转向参数m',将m'填入到④中model_param_cw处
- 重复执行步骤1-4,控制机器人逆时针旋转,则将m'填入到④中model_param_acw处
(三) 验证
此时填入④中的结果为第一次标定的结果,将得到的结果填入到①中直径框里、②中系数框里,再重复一次(一)(二)的标定步骤,如果得到的结果接近,表示标定完成。
记住此次的结果,将数值修改至对应的传感器驱动launch中。
文件路径:
catkin_ws/src/launch/
├── autolabor_navigation_launch //导航launch
│ ├── launch
│ │ ├── real_environment //实车launch
│ │ │ ├── first_generation_base.launch //单雷达版本-传感器驱动
│ │ │ ├── second_generation_advanced_base.launch //双雷达版本-传感器驱动(含定位标签)
│ │ │ ├── second_generation_basic_base.launch //双雷达版本-传感器驱动
│ │ │ ├── third_generation_base.launch //多线雷达版本-传感器驱动
修改参数:
- wheel_diameter
- model_param_cw
- model_param_acw
<!-- autolabor pro 1 驱动 -->
<node name="autolabor_driver" pkg="autolabor_pro1_driver" type="autolabor_pro1_driver" output="screen">
<remap from="/wheel_odom" to="/odom"/>
<param name="port_name" value="/dev/autolabor_pro1" />
<param name="odom_frame" value="odom" />
<param name="base_frame" value="base_link" />
<param name="baud_rate" value="115200" />
<param name="control_rate" value="10" />
<param name="sensor_rate" value="5" />
<param name="reduction_ratio" value="1.0" />
<param name="encoder_resolution" value="1600.0" />
<param name="wheel_diameter" value="0.25" />
<param name="model_param_cw" value="0.80" />
<param name="model_param_acw" value="0.80" />
<param name="pid_rate" value="50.0" />
<param name="maximum_encoding" value="32.0" />
<param name="publish_tf" value="$(arg robot_pub_tf)" />
</node>