轨迹教程概述

注解

在学习本教程之前,对WPILib的:ref:PID control <docs/software/advanced-controls/controllers/pidcontroller:PID Control in WPILib>, feedforward, 和 :ref:`trajectory <docs/software/advanced-controls/trajectories/index:Trajectory Generation and Following with WPILib>`特性有一个基本的了解是有帮助的(但不是严格必要的)。

注解

本教程中的机器人代码使用 :ref:`command-based <docs/software/commandbased/what-is-command-based:What Is “Command-Based” Programming?>`的框架。强烈建议初级和中级团队使用基于指令的框架。

本教程的目标是提供“端到端”的指令来实现差动机器人的轨迹跟踪自主程序。通过学习本教程,读者将学习如何:

  1. 精确地描述机器人的传动系统以获得精确的前馈计算和近似反馈增益。。

  2. 使用WPILib的里程表库,配置驱动器子系统以跟踪机器人的位置。

  3. 使用WPILib的‘轨迹生成器’类通过一组路径点生成一个简单的轨迹。

  4. 使用WPILib的“RamseteCommand”类与计算的前馈/反馈增益和姿态在一个自主程序中跟踪生成的轨迹。

本教程的目的是让不具备大量编程专业知识的团队能够使用。虽然WPILib库在其轨迹跟踪特性的实现方式上提供了很大的灵活性,但密切遵循本教程中概述的实现应该能为团队提供一个相对简单、干净和可重复的自主移动解决方案。

本教程的完整机器人代码可以在RamseteCommand示例项目(Java <https://github.com/wpilibsuite/allwpilib/tree/main/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand>`__,C ++)中找到。

为什么需要轨迹跟踪?

FRC® 游戏通常以自主任务为特色,要求机器人有效且准确地从已知的起始位置移动到已知的得分位置。从历史上看,FRC中这类任务最常见的解决方案是“drive-turn-drive”方法——也就是说,以已知的距离向前行驶,以已知的角度转弯,再以已知的距离向前行驶。

虽然“驾驶-转弯-驱动”的方法确实有效,但近年来,研究团队已经开始跟踪要求机器人同时驾驶和转弯的平滑轨迹。虽然这是一个更加复杂的技术任务,但它提供了显著的好处:特别是,由于机器人不再需要停下来改变方向,路径可以更快地驱动,让机器人在自动阶段获得更多的游戏得分。

从2020年开始,WPILib现在为团队提供可行的、先进的轨迹生成和跟踪代码解决方案,大大降低了这种先进、有效的自动阶段“进入障碍”。

所需设备

要遵循本教程,您需要立即访问以下材料:

  1. 差动驱动机器人(例如, AndyMark AM14U4),配备:

  • 正交编码器测量车轮旋转的每一边的驱动器。

  • 用于测量机器人航向的陀螺仪。

  1. A driver-station computer configured with: