ROS2与Ailibot2入门教程-校准-角速度校准
说明:
介绍如何在Ailibot上进行角速度校准
小车默认已经校准,除非数据明显差异,否则跳过次步骤
原理:
- 角速度校准的作用是让旋转的角度更加准确。
- 影响角速度的硬件参数主要是轮间距,可以修改固件里面的轮间距或修改角速度的修正系数来较少误差。
相关设备:
- ailibot2差速系列:采购Ailibot2-D2,采购Ailibot2-D4
- ailibot2全向系列:采购Ailibot2-M4,采购Ailibot2-O3,采购Ailibot2-O4
操作步骤
校准前先准备一个校准环境
例如将小车放置在平整的地面上,在往上面平行放置且固定一部手机,在手机上打开指南针,指向0度,则是转向正北方向。
示例图
- [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_angular.launch.py
- 其涉及的参数:
test_distance: 测试小车应要转动的度数
speed:小车的移动速度
tolerance:与目标距离的容差值
odom_angular_scale_correction: 角速度修正系数
start_test: 启动测试的复选框
- 启动校准程序
ros2 launch ailibot2_calib calibrate_angular.launch.py
小车旋转完后,可以根据手机指南针的度数来确定实际转了多少度
odom_angular_scale_correction
的值应为 实际转动的度数 / 测试度数,调整后再重新校准,适当调整该值假设测试旋转360度,而实际转的度数为270度,那么将
odom_angular_scale_correction
参数修改为0.75,其余不变,重新校准但若重新校准后,实际移动的距离与理论上的距离相差无几,现在就可以保存
odom_angular_scale_correction
角速度修正系数
使用修正系数
- 修改ailibot2_d2_node.yaml中的
odom_angular_scale_correction
角速度修正系数为新的获取值 - 修改完成后,中止所有终端,重新启动底盘即可使用新的修正系数来减少旋转角度误差
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号