Caution Tape Robotics Club
返回博客

如何让你的 VEX IQ 机器人直线行驶

2026年2月6日 3 分钟阅读 Master Shifu

使用比例控制校正的机器人直线行驶

你是否曾经让机器人向前行驶,结果却看着它偏向一侧?你不是一个人!让机器人完美直线行驶是 VEX IQ 编程中最常见的挑战之一。

在本指南中,我们将教你一种叫做比例控制的技术,它能在机器人开始偏移时自动纠正。

为什么我的机器人会偏移?

即使使用相同的电机和轮子,机器人也很少能完美直线行驶。原因如下:

  • 电机差异 - 没有两个电机是完全相同的
  • 轮子摩擦力 - 一个轮子可能比另一个更能抓住地面
  • 重量分布 - 如果机器人一侧较重,它会向那个方向偏移
  • 地面表面 - 凹凸、接缝或光滑的地方会对每个轮子产生不同的影响

解决方案?与其期望机器人直线行驶,我们检测它何时偏移并自动纠正

秘诀:Brain Inertial 传感器

VEX IQ 第二代主机内置了惯性传感器,可以追踪机器人的旋转。我们可以用它来检测偏移:

  • 机器人面向前方 = 0 度
  • 机器人向右偏移 = 正角度(如 5°)
  • 机器人向左偏移 = 负角度(如 -5°)

通过持续检查这个传感器,我们可以准确知道机器人何时偏离轨道。

基本原理:比例控制

比例控制遵循一个简单的公式:

校正值 = 误差 × kp

其中:

  • 误差 = 目标位置 - 实际位置
  • kp = 校正的强度

当误差大(机器人偏移很多)时,我们校正很多。当误差小(接近目标)时,我们校正一点。这创造了平滑、自然的校正。

直线行驶函数

这是一个使用比例控制让机器人直线行驶的自定义模块:

definedriveStraightrotationrotationdistancedistancevelocityvelocitykpkpsetLeftMotorpositionto0degreessetRightMotorpositionto0degreeswhileabsofLeftMotorpositionindegreesdistanceseterrortorotationBrainInertialrotationindegreessetoutputtoerrorkpsetLeftMotorvelocitytovelocityoutput%setRightMotorvelocitytovelocityoutput%spinLeftMotorforwardspinRightMotorforwardstopLeftMotorstopRightMotor

每个参数的作用

参数控制内容
rotation目标航向(直行通常为 0)
distance行驶距离(以电机角度为单位)
velocity速度(正值 = 前进,负值 = 后退)
kp校正强度

校正如何工作

假设机器人在前进时向右偏移了 5 度:

  1. 误差 = 0 - 5 = -5(我们偏离目标 5 度)
  2. 输出 = -5 × 1 = -5

现在我们调整电机:

  • 左电机 = 速度 + (-5) = 减速
  • 右电机 = 速度 - (-5) = 加速

右轮加速,使机器人向左转,纠正偏移!

完整程序

这是一个直线前进和后退的完整程序:

whenstartedcalibrateBrainInertialdriveStraight0rotation720distance30velocity1kpdriveStraight0rotation720distance-30velocity1kp

这个程序:

  1. 校准惯性传感器(保持机器人静止!)
  2. 前进 720 电机角度,同时保持 0° 航向
  3. 后退 720 电机角度,同时保持 0° 航向

调整 kp 值

kp 值决定了机器人校正的强度。每个机器人都不同,所以你需要实验!

kp 值行为
太低机器人偏移,校正太弱
刚好平滑、直线行驶
太高机器人来回摆动

如何调整:

  • 机器人仍在偏移?→ 增加 kp
  • 机器人摆动?→ 减小 kp

常见问题和解决方法

机器人弯曲而不是直线行驶

  • 检查 Brain Inertial 是否已校准(启动时机器人必须静止)
  • 增加你的 kp 值

机器人行驶时摆动

  • 减小你的 kp 值
  • 尝试降低速度

机器人应该前进却后退

  • 检查设备配置中的电机方向
  • 确保 LeftMotor 和 RightMotor 连接到正确的端口

下一步

掌握直线行驶后,你可以:

  • 添加转向函数来旋转到特定角度
  • 将动作组合成复杂的自主程序
  • 学习 PID 控制以获得更平滑的运动

同样的比例控制概念适用于转向、机械臂定位和许多其他机器人行为。掌握这个基础,你将拥有应对任何编程挑战的强大工具!


这项技术被各级别的 VEX 竞赛队伍使用。从简单开始,调整你的数值,看着你的机器人从一个漫游者变成一台精确的机器。

分享文章

不知道从哪里开始?

使用路径指南为您的孩子找到合适的课程。

探索课程