你是否曾经让机器人向前行驶,结果却看着它偏向一侧?你不是一个人!让机器人完美直线行驶是 VEX IQ 编程中最常见的挑战之一。
在本指南中,我们将教你一种叫做比例控制的技术,它能在机器人开始偏移时自动纠正。
为什么我的机器人会偏移?
即使使用相同的电机和轮子,机器人也很少能完美直线行驶。原因如下:
- 电机差异 - 没有两个电机是完全相同的
- 轮子摩擦力 - 一个轮子可能比另一个更能抓住地面
- 重量分布 - 如果机器人一侧较重,它会向那个方向偏移
- 地面表面 - 凹凸、接缝或光滑的地方会对每个轮子产生不同的影响
解决方案?与其期望机器人直线行驶,我们检测它何时偏移并自动纠正。
秘诀:Brain Inertial 传感器
VEX IQ 第二代主机内置了惯性传感器,可以追踪机器人的旋转。我们可以用它来检测偏移:
- 机器人面向前方 = 0 度
- 机器人向右偏移 = 正角度(如 5°)
- 机器人向左偏移 = 负角度(如 -5°)
通过持续检查这个传感器,我们可以准确知道机器人何时偏离轨道。
基本原理:比例控制
比例控制遵循一个简单的公式:
校正值 = 误差 × kp
其中:
- 误差 = 目标位置 - 实际位置
- kp = 校正的强度
当误差大(机器人偏移很多)时,我们校正很多。当误差小(接近目标)时,我们校正一点。这创造了平滑、自然的校正。
直线行驶函数
这是一个使用比例控制让机器人直线行驶的自定义模块:
每个参数的作用
| 参数 | 控制内容 |
|---|---|
rotation | 目标航向(直行通常为 0) |
distance | 行驶距离(以电机角度为单位) |
velocity | 速度(正值 = 前进,负值 = 后退) |
kp | 校正强度 |
校正如何工作
假设机器人在前进时向右偏移了 5 度:
- 误差 = 0 - 5 = -5(我们偏离目标 5 度)
- 输出 = -5 × 1 = -5
现在我们调整电机:
- 左电机 = 速度 + (-5) = 减速
- 右电机 = 速度 - (-5) = 加速
右轮加速,使机器人向左转,纠正偏移!
完整程序
这是一个直线前进和后退的完整程序:
这个程序:
- 校准惯性传感器(保持机器人静止!)
- 前进 720 电机角度,同时保持 0° 航向
- 后退 720 电机角度,同时保持 0° 航向
调整 kp 值
kp 值决定了机器人校正的强度。每个机器人都不同,所以你需要实验!
| kp 值 | 行为 |
|---|---|
| 太低 | 机器人偏移,校正太弱 |
| 刚好 | 平滑、直线行驶 |
| 太高 | 机器人来回摆动 |
如何调整:
- 机器人仍在偏移?→ 增加 kp
- 机器人摆动?→ 减小 kp
常见问题和解决方法
机器人弯曲而不是直线行驶
- 检查 Brain Inertial 是否已校准(启动时机器人必须静止)
- 增加你的 kp 值
机器人行驶时摆动
- 减小你的 kp 值
- 尝试降低速度
机器人应该前进却后退
- 检查设备配置中的电机方向
- 确保 LeftMotor 和 RightMotor 连接到正确的端口
下一步
掌握直线行驶后,你可以:
- 添加转向函数来旋转到特定角度
- 将动作组合成复杂的自主程序
- 学习 PID 控制以获得更平滑的运动
同样的比例控制概念适用于转向、机械臂定位和许多其他机器人行为。掌握这个基础,你将拥有应对任何编程挑战的强大工具!
这项技术被各级别的 VEX 竞赛队伍使用。从简单开始,调整你的数值,看着你的机器人从一个漫游者变成一台精确的机器。