124 lines
4.1 KiB
Markdown
124 lines
4.1 KiB
Markdown
# 里程计标定
|
||
|
||
|
||
|
||
|
||
***
|
||
|
||
里程计标定也叫里程计校准,即在当前运行环境下重新计算运动模型,得到里程计的运动模型参数,此教程**只适用于使用ROS控制AP1机器人**的用户。
|
||
|
||
Autolabor M1 出厂时已做过标定了,在一般运行环境下(地毯、水泥、普通瓷砖等平坦路面)不用重新做标定,但如果您的运行环境是非一般环境,机器人可能就需要重新做标定,比如【经过打磨过的】并且还有【镜面效果】的水泥路面,或摩擦力较大路面,如果您觉得建图导航时效果不佳,也可以进行标定。
|
||
|
||
准备工作:
|
||
给M1车轮打满气,规格:胎压250kpa/36psi/2.5bar
|
||
|
||
|
||
## 操作步骤
|
||
|
||
### 一、简介
|
||
|
||
#### 1. 打开软件
|
||
|
||
进入 AutolaborOS -> 桌面 -> 测试 -> 标定
|
||
|
||
![](./imgs/robot_calibration1.png)
|
||
|
||
#### 2. 功能区介绍
|
||
|
||
|
||
①:车轮半径标定
|
||
|
||
②:转向运动系数标定
|
||
|
||
③:键盘控制
|
||
|
||
④:标定预览
|
||
|
||
wheel_diameter:车轮半径
|
||
|
||
model_param_cw:顺时针旋转运动模型参数
|
||
|
||
model_param_acw:逆时针旋转运动模型参数
|
||
|
||
标定文件中的底盘参数,数值更改后程序立即更新(暂存在内存,无法存储至实体文件中)。
|
||
|
||
### 二、使用
|
||
|
||
#### (一)车轮标定
|
||
|
||
|
||
操作步骤:
|
||
|
||
1. 在机器人【前轮】处标记此时车的位置为A
|
||
2. 点击【开始标定】
|
||
3. 点击【激活键盘控制】,控制机器人向前【直行】约2米,此时机器人位置为B,取消勾选【激活键盘控制】
|
||
4. 使用尺子量从A前轮至B前轮的距离S
|
||
5. 将S填写到①中距离(米)框里,点【计算结果】,得到计算后的车轮直径d'
|
||
6. 将d'填入到④中wheel_diameter处
|
||
|
||
|
||
#### (二) 运动转向模型标定
|
||
|
||
操作步骤:
|
||
|
||
1. 对机器人的四个轮子做标记,标记此时车的位置
|
||
2. 点击【开始标定】
|
||
3. 点击【激活键盘控制】,控制机器人原地360度顺时针旋转一圈,控制机器人回到刚刚标记的位置(重合),保持机器人与标记的初始位置方向一致,取消勾选【激活键盘控制】
|
||
4. 点【计算结果】,得到计算后的转向参数m',将m'填入到④中model_param_cw处
|
||
5. 重复执行步骤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>
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|