外观
FTC 示例程序一览表
本文档提供 FTC 机器人控制器中 samples 目录下所有示例程序的概述,包括每个程序的主要功能和涉及的知识点,帮助初学者快速了解各种编程概念和硬件集成方法。
基础编程示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| BasicOpMode_Linear.java | 使用线性 OpMode 控制机器人基本运动 | 线性 OpMode 结构、电机控制、游戏手柄输入、遥测输出 |
| BasicOpMode_Iterative.java | 使用迭代式 OpMode 控制机器人基本运动 | 迭代式 OpMode 结构、事件驱动编程、电机控制 |
| BasicOmniOpMode_Linear.java | 控制全向轮机器人的基本运动 | 全向轮运动学、矢量分解、线性 OpMode |
| ConceptNullOp.java | 最小化的空操作模式示例 | OpMode 基本结构、生命周期 |
| ConceptTelemetry.java | 演示不同的遥测数据显示方法 | 遥测系统、数据可视化、日志记录 |
| ConceptExternalHardwareClass.java | 将硬件控制代码分离到独立类中 | 代码模块化、面向对象编程、代码复用 |
| RobotHardware.java | 硬件抽象层示例 | 硬件抽象、封装、接口设计 |
驱动控制示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| RobotTeleopPOV_Linear.java | 使用 POV(视角)控制方式操作机器人 | 线性 OpMode、POV 控制方式、游戏手柄映射 |
| RobotTeleopTank_Iterative.java | 使用坦克式控制方式操作机器人 | 迭代式 OpMode、坦克式控制、差速转向 |
| ConceptRampMotorSpeed.java | 演示如何平滑改变电机速度 | 速度斜坡控制、减少机械冲击、电机保护 |
| ConceptGamepadRumble.java | 使用游戏手柄震动提供触觉反馈 | 触觉反馈、驾驶员界面、游戏手柄高级功能 |
| ConceptGamepadTouchpad.java | 使用游戏手柄触摸板进行输入 | 触摸板输入、多维控制、高级输入方法 |
| ConceptMotorBulkRead.java | 演示批量读取电机数据以提高效率 | 性能优化、批量数据读取、电机监控 |
自动驾驶示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| RobotAutoDriveByTime_Linear.java | 基于时间的自动驾驶 | 时间控制、基本自动化、线性顺序操作 |
| RobotAutoDriveByEncoder_Linear.java | 基于编码器的精确距离控制 | 编码器使用、闭环位置控制、精确移动 |
| RobotAutoDriveByGyro_Linear.java | 基于陀螺仪的直线和转向控制 | 陀螺仪导航、PID 控制、航向维持 |
| RobotAutoDriveToLine_Linear.java | 使用颜色传感器寻找并停在线上 | 颜色传感器、条件检测、传感器触发动作 |
| RobotAutoDriveToAprilTagTank.java | 坦克式机器人导航到 AprilTag | AprilTag 视觉识别、视觉伺服控制、坦克式运动 |
| RobotAutoDriveToAprilTagOmni.java | 全向轮机器人导航到 AprilTag | AprilTag 视觉识别、全向运动控制、视觉伺服控制 |
传感器示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| SensorDigitalTouch.java | 使用数字触摸传感器检测碰撞 | 数字输入、触摸检测、条件触发 |
| SensorTouch.java | 使用模拟触摸传感器 | 模拟信号处理、触摸检测、阈值判断 |
| SensorColor.java | 颜色传感器基本使用 | 颜色检测、RGB 分量、HSV 颜色空间 |
| SensorMRColor.java | Modern Robotics 颜色传感器使用 | 特定硬件集成、I2C 通信、颜色检测 |
| SensorMRGyro.java | Modern Robotics 陀螺仪传感器使用 | 角度测量、陀螺仪校准、航向控制 |
| SensorMROpticalDistance.java | Modern Robotics 光学距离传感器 | 距离测量、模拟信号、红外测距 |
| SensorMRRangeSensor.java | Modern Robotics 超声波测距传感器 | 超声波测距、距离检测、障碍物感知 |
| SensorBNO055IMU.java | BNO055 IMU 传感器基本使用 | 惯性测量单元、姿态估计、传感器融合 |
| SensorIMUOrthogonal.java | IMU 在正交安装情况下的使用 | 坐标系转换、传感器方向校准、正交安装 |
| SensorIMUNonOrthogonal.java | IMU 在非正交安装情况下的使用 | 复杂坐标系转换、非标准安装校准 |
| SensorBNO055IMUCalibration.java | IMU 传感器校准 | 传感器校准流程、校准值保存、精度提升 |
| SensorREV2mDistance.java | REV 2m 距离传感器使用 | 激光测距、高精度距离测量、ToF 技术 |
| SensorOctoQuad.java | OctoQuad 编码器接口使用 | 编码器接口、正交解码、位置反馈 |
| SensorOctoQuadAdv.java | OctoQuad 高级功能演示 | 多通道编码器、速度监测、脉宽测量 |
| SensorSparkFunOTOS.java | SparkFun 智能视觉传感器使用 | 视觉传感器、图像处理、目标检测 |
| SensorKLNavxMicro.java | Kauai Labs NavX-Micro IMU 使用 | 高精度 IMU、姿态估计、导航增强 |
| SensorHuskyLens.java | 使用 HuskyLens AI 视觉传感器 | AI 视觉识别、目标跟踪、特征检测 |
| SensorLimelight3A.java | 使用 Limelight 3A 视觉处理系统 | 高级视觉处理、目标跟踪、网络表通信 |
视觉处理示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| ConceptAprilTag.java | AprilTag 视觉标记识别基础 | AprilTag 检测、姿态估计、视觉标记 |
| ConceptAprilTagEasy.java | 简化的 AprilTag 使用方法 | 简易 API、基础定位、初学者友好 |
| ConceptAprilTagLocalization.java | 使用 AprilTag 进行机器人定位 | 机器人定位、坐标系转换、场地相对位置 |
| ConceptAprilTagMultiPortal.java | 多个视觉处理管道使用 | 多摄像头管理、并行处理、资源管理 |
| ConceptAprilTagSwitchableCameras.java | 在多摄像头间切换使用 AprilTag | 摄像头切换、视觉系统配置、资源共享 |
| ConceptAprilTagOptimizeExposure.java | 优化摄像头曝光以提高 AprilTag 检测效果 | 摄像头参数调优、曝光控制、图像质量优化 |
| ConceptVisionColorSensor.java | 使用摄像头实现颜色传感功能 | 计算机视觉、颜色分析、图像处理 |
| ConceptVisionColorLocator.java | 识别和定位特定颜色的物体 | 颜色分割、目标定位、区域提取 |
| UtilityCameraFrameCapture.java | 从摄像头捕获并保存图像帧 | 图像捕获、文件 I/O、调试工具 |
外设控制示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| ConceptScanServo.java | 控制伺服电机进行往复扫描运动 | 伺服电机控制、往复运动、位置控制 |
| ConceptRevSPARKMini.java | 控制 REV Spark Mini 电机控制器 | 外部电机控制器、PWM 控制、高功率驱动 |
| ConceptRevLED.java | 控制 REV Robotics LED 灯条 | LED 控制、视觉反馈、状态指示 |
| ConceptLEDStick.java | 控制 LED 灯条显示不同模式 | LED 阵列、模式切换、视觉效果 |
| SampleRevBlinkinLedDriver.java | 控制 REV Blinkin LED 控制器 | LED 控制器、预设模式、状态指示 |
实用工具示例
| 文件名 | 主要功能 | 涉及的知识点 |
|---|---|---|
| ConceptSoundsASJava.java | 使用 Android Studio 播放音效 | 音频资源管理、事件声音反馈 |
| ConceptSoundsOnBotJava.java | 使用 OnBotJava 播放音效 | 在线编程环境、音频播放 |
| ConceptSoundsSKYSTONE.java | SKYSTONE 特定音效演示 | 游戏特定资源、音频反馈 |
| ConceptExploringIMUOrientation.java | 探索 IMU 传感器不同方向配置 | IMU 方向、坐标系、传感器配置 |
| UtilityOctoQuadConfigMenu.java | OctoQuad 编码器接口配置工具 | 配置界面、传感器设置、用户交互 |
总结
以上示例程序涵盖了 FTC 机器人编程的各个方面,从基础的电机控制到高级的传感器集成和视觉处理。通过学习和修改这些示例,您可以掌握 FTC 机器人编程的核心概念,并为开发您自己的比赛机器人奠定基础。
每个示例都包含详细的注释和说明,建议按照从简单到复杂的顺序逐步学习。特别是 Basic 系列示例和 Concept 系列示例对初学者尤为有益。
