ROS2与Ailibot2入门教程-校准-线速度校准
说明
介绍如何在Ailibot上进行线速度校准
小车默认已经校准,除非数据明显差异,否则跳过次步骤
相关设备:
- ailibot2差速系列:采购Ailibot2-D2,采购Ailibot2-D4
- ailibot2全向系列:采购Ailibot2-M4,采购Ailibot2-O3,采购Ailibot2-O4
原理
- 线速度校准的作用是让小车反馈的里程数据与实际直线行走的距离相符,如果不相符,通过校准值减少直行里程误差,控制误差在3CM以内。
- 影响线速度的硬件参数是轮半径,可以修改固件的轮半径或修改线速度的修正系数来减少误差。
- 比如要指定运行1米,但是实际运行了1.2米,也就导致里程与实际相差了0.2米。
- 校准时候,需要小车直行1米,里程数据为1米,实际直线距离在1-1.03米之间可算符合,最理想值是完全匹配。
- 校准时候,需要小车直行1米,里程数据为1.02米,实际距离为1.02米,也是符合要求。
- 可以通过调整linear_scale_correction来多次测试,达到理想值
校准步骤:
校准前先准备一个校准环境,比如在地砖上标定一米的距离
示例图
- 假设是二轮差速小车,配置文件是ailibot2_d2_node.yaml
- [Ailibot] 执行校准前,先将线速度修正系数修改为1.0
vim ~/ros2_ailibot2_ws/src/ailibot2/ailibot2_bringup/param/robot/ailibot2_d2_node.yaml
- 内容如下:
odom_node:
ros__parameters:
odometry:
publish_tf: false
use_imu: false
frame_id: "odom"
child_frame_id: "base_footprint"
odom_topic_name: "wheel/odometry"
linear_scale_correction: 1.0
anguilar_scale_correction: 1.0
- 小车端,启动底盘
./tools/ros2_ailibot_firmware/agent.sh
- PC端,发布odom
ros2 launch ailibot2_bringup robot.launch.py
- 启动校准文件是calibrate_linear.launch.py
- 其涉及的参数:
test_distance: 测试小车所需移动的距离
seppd:小车的移动速度
tolerance:与目标距离的容差值
odom_linear_scale_correction: 线速度修正系数
start_test: 启动测试的复选框
- 将小车放在起点位置,设置好相关的参数值后
- 启动小车和校准程序
ros2 launch ailibot2_calib calibrate_linear.launch.py
启动脚本后,小车即开始直线行走
小车移动完后,用直尺测量实际移动的距离
odom_linear_scale_correction
的值应为 实际移动的距离 / 测试距离,调整后再重新校准,适当调整该值假设测试1米距离,而实际移动的距离为1.13米,那么将
odom_linear_scale_correction
参数修改为1.13,其余不变,重新校准但若重新校准后,实际移动的距离与理论上的距离相差无几,现在就可以保存
odom_linear_scale_correction
线速度修正系数;反之则重新校准
使用修正系数
- 如上,修改配置文件是ailibot2_d2_node.yaml,设置
odom_linear_scale_correction
为新的线速度修正系数 - 修改完成后,中止所有终端,重新启动底盘即可获取修正后的里程数据。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号