操作模式概念解析(OpMode Concepts)¶
约 793 个字 25 行代码 预计阅读时间 3 分钟
OpMode(Operation Mode 操作模式)是 FTC 机器人编程中的核心概念,它定义了机器人在比赛中的行为方式。
OpMode 基本概念¶
OpMode 是一个 Java 类,用于编写机器人的控制程序。它可以被看作是机器人的"大脑",定义了机器人在比赛中如何响应驾驶员的输入或自动执行任务。每个 OpMode 都代表一种特定的机器人行为模式,比如遥控驾驶或自动执行任务。
OpMode 类型¶
FTC 支持两种主要类型的 OpMode:
- 遥控操作模式(TeleOp / Teleoperation):由驾驶员通过游戏手柄控制机器人使用@TeleOp注解标记在比赛的遥控阶段使用
遥控操作模式(TeleOp / Teleoperation):
-
由驾驶员通过游戏手柄控制机器人
-
使用@TeleOp注解标记
-
在比赛的遥控阶段使用
-
自动操作模式(Autonomous):机器人自主执行预编程的指令使用@Autonomous注解标记在比赛的自动阶段使用
自动操作模式(Autonomous):
-
机器人自主执行预编程的指令
-
使用@Autonomous注解标记
-
在比赛的自动阶段使用
OpMode 实现方式¶
FTC SDK 提供了两种实现 OpMode 的基类:
- LinearOpMode:代码按顺序线性执行使用waitForStart()方法等待开始使用while(opModeIsActive())循环保持运行更直观,适合初学者
LinearOpMode:
-
代码按顺序线性执行
-
使用waitForStart()方法等待开始
-
使用while(opModeIsActive())循环保持运行
-
更直观,适合初学者
-
迭代式 OpMode(Iterative OpMode):基于事件和回调的模型实现init(),init_loop(),start(),loop(),stop()等方法每个方法在特定时刻被系统调用更高级,适合复杂的状态机实现
迭代式 OpMode(Iterative OpMode):
-
基于事件和回调的模型
-
实现init(),init_loop(),start(),loop(),stop()等方法
-
每个方法在特定时刻被系统调用
-
更高级,适合复杂的状态机实现
OpMode 生命周期¶
LinearOpMode 生命周期:¶
-
实例化 OpMode
-
执行runOpMode()方法
-
在waitForStart()处暂停,等待驾驶员按下开始按钮
-
开始执行主要代码
-
在while(opModeIsActive())循环中持续执行,直到驾驶员按下停止按钮
迭代式 OpMode 生命周期:¶
-
实例化 OpMode
-
调用init()方法(初始化)
-
重复调用init_loop()直到驾驶员按下开始按钮
-
调用start()方法
-
重复调用loop()方法直到驾驶员按下停止按钮
-
调用stop()方法
OpMode 注册¶
要使 OpMode 出现在驾驶站的选择列表中,必须对其进行注册:
@TeleOp(name="我的遥控模式", group="比赛")
public class MyTeleOpMode extends LinearOpMode {
// 实现代码...
}
@Autonomous(name="我的自动模式", group="红方")
public class MyAutonomousMode extends LinearOpMode {
// 实现代码...
}
如果不想某个 OpMode 出现在列表中(比如仍在开发中),可以添加@Disabled注解:
@TeleOp(name="测试模式", group="测试")
@Disabled
public class TestOpMode extends LinearOpMode {
// 测试代码...
}
OpMode 访问硬件¶
OpMode 可以通过hardwareMap对象访问机器人的硬件组件:
// 获取左右驱动电机
DcMotor leftDrive = hardwareMap.get(DcMotor.class, "left_drive");
DcMotor rightDrive = hardwareMap.get(DcMotor.class, "right_drive");
// 设置电机方向
leftDrive.setDirection(DcMotor.Direction.REVERSE);
rightDrive.setDirection(DcMotor.Direction.FORWARD);
// 控制电机
leftDrive.setPower(0.5);
rightDrive.setPower(0.5);
总结¶
OpMode 是 FTC 编程的基础概念,它定义了机器人的行为模式。通过创建和注册 OpMode,团队可以定义机器人在比赛中的遥控和自动行为。选择合适的 OpMode 类型(LinearOpMode 或迭代式 OpMode)取决于任务复杂性和编程偏好。