Qatami-0/wro-future-engineers-the-good-boys
GitHub: Qatami-0/wro-future-engineers-the-good-boys
面向 WRO Future Engineers 竞赛的自动驾驶机器人项目,包含完整的机械设计、电气系统和多传感器融合导航的工程文档与源代码。
Stars: 0 | Forks: 0
WRO Future Engineers 文档
The Good Boys | 自动驾驶机器人 | Matrix Mini R4 + Arduino C++
The Good Boys WRO Future Engineers 自动驾驶机器人的工程文档和源代码,使用 Matrix Mini R4、Arduino C++、舵机转向、后轮驱动、激光传感、AI 摄像头识别和颜色巡线检测。
## 目录 - [团队信息](#team-information) - [机器人概述](#robot-overview) - [机械设计](#mechanical-design) - [后轮驱动系统](#rear-wheel-drive-system) - [前轮转向系统](#front-steering-system) - [底盘与结构](#chassis-and-structure) - [电气系统](#electrical-system) - [传感器系统](#sensor-system) - [颜色传感器](#color-sensor) - [激光距离传感器](#laser-distance-sensor) - [AI 摄像头](#ai-camera) - [软件概述](#software-overview) - [代码文件](#code-files) - [Open Challenge 策略](#open-challenge-strategy) - [Obstacle Challenge 策略](#obstacle-challenge-strategy) - [机器人图集](#robot-gallery) ## 团队信息 | 项目 | 详情 | |---|---| | 团队名称 | The Good Boys | | 比赛类别 | WRO Future Engineers | | 机器人类型 | 自动驾驶车辆 | | 控制器 | Matrix Mini R4 | | 编程语言 | Arduino C++ |
The Good Boys 团队参加 WRO Future Engineers 挑战赛的文档。
## 机器人概述 我们的机器人采用后轮驱动系统和前轮转向系统。后轴由一个电机驱动,推动机器人前进。后轴带有轴承支撑,以减少摩擦并保持车轮在移动时对齐。 在转向方面,机器人使用一个连接到前轴的舵机。前轴固定着两个车轮,两个车轮通过单个连接器和轮轴相连。这使得舵机能够平稳地旋转转向轴,并在自动移动过程中控制机器人的方向。 机器人使用多个传感器来感知场地: - 安装在机器人底部的颜色传感器,用于检测场地上的彩色线条。 - 激光距离传感器,用于测量与物体或墙壁的距离。 - AI 摄像头,用于帮助识别物体并在 Obstacle Challenge 期间辅助导航。 机器人通过 Matrix Mini R4 系统使用 Arduino C++ 进行编程。
展示主要车辆布局的机器人整体结构。
## 机械设计 机械设计基于简单且稳定的四轮车辆结构。机器人有两个主要的运动系统: - 后轮驱动系统 - 前部舵机转向系统 ### 后轮驱动系统 机器人使用一个连接到后轴的电机。电机将运动传递给后轴,使后轮推动机器人前进。选择这种设计是因为它保持了驱动系统的简单和直接。 后轴由单根轮轴和一个连接器支撑。连接器的作用是减少摩擦、改善旋转的平顺性,并保持轮轴在移动过程中的稳定性。
由连接到后轴的电机驱动的后轮驱动系统。
### 前轮转向系统 转向系统使用一个连接到前轴的舵机。前轴固定着两个车轮。每个车轮都带有自己的轴承,这有助于在舵机改变转向角度时使车轮平稳旋转。 舵机通过旋转前轴来控制机器人的转弯方向。这使得转向更接近真实汽车的原理,而不是使用差速转向。 选择这种设计是因为 WRO Future Engineers 挑战赛要求在赛道上进行受控移动,而基于舵机的转向系统为机器人提供了更精确的转弯控制。
用于实现受控转弯的基于舵机的前轮转向系统。
### 底盘与结构 机器人使用 Matrix 套件结构构建。底盘将控制器、电机、舵机、传感器和接线固定在特定位置。该结构旨在保持机器人的稳定性,同时仍然允许接触主要组件以进行测试和维修。
![]() Chassis structure view |
![]() Component placement view |
展示控制器及已连接组件的电气布局。
## 传感器系统 机器人使用三个主要传感器:颜色传感器、激光传感器和 AI 摄像头。 ### 颜色传感器 颜色传感器安装在机器人的底部。它的主要任务是检测场地上的彩色线条。 在 Open Challenge 中,机器人使用颜色传感器来检测橙色和蓝色线条。每当机器人经过一条线时,程序就会更新一个用于计算检测到的线条数量的变量。这使得机器人能够知道它已经通过了赛道的多少个区段,以及何时应该停下。 这一点非常重要,因为机器人不能简单地通过行驶固定的时间来决定。如果电池电量发生变化、机器人发生打滑或转弯情况不同,计时器就会变得不准确。通过计算线条,机器人为追踪其在场地上的进度提供了一种更好的方式。 ### 激光距离传感器 激光距离传感器用于测量与物体或墙壁的距离。这有助于机器人了解它与障碍物或边界的距离远近。 该传感器可用于帮助机器人避免碰撞、纠正其路径或决定何时转弯。 ### AI 摄像头 AI 摄像头用于物体识别和障碍物检测。它帮助机器人在 Obstacle Challenge 期间识别物体,并根据所看到的内容调整其运动。 AI 摄像头在简单的巡线和距离检测之外增添了另一层感知。这非常有用,因为 Obstacle Challenge 要求机器人对场地内的物体做出反应,而不是仅仅沿着固定路线行驶。 ## 软件概述 机器人使用 Matrix Mini R4 系统通过 Arduino C++ 进行编程。 软件控制: - 电机运动 - 舵机转向 - 线条检测 - 线条计数 - 距离感知 - 基于摄像头的障碍物检测 - 停车逻辑 - 特定挑战的运动策略 程序分为两种主要的挑战模式: | 挑战模式 | 目的 | |---|---| | Open Challenge 代码 | 使用线条检测和计数在场地周围行驶 | | Obstacle Challenge 代码 | 使用传感器和摄像头输入对障碍物做出反应 | ## 代码文件 机器人代码按挑战类型进行组织。每个部分包含用于该特定 WRO Future Engineers 挑战的 Arduino C++ 代码。 | 代码部分 | 用途 | 链接 | |---|---|---| | Open Challenge 代码 | 使用线条检测和计数控制自动驾驶 | [查看 Open Challenge 代码](./Open%20Challenge%20Code) | | Obstacle Challenge 代码 | 使用距离感知和摄像头输入控制障碍物导航 | [查看 Obstacle Challenge 代码](./Obstacle%20Challenge%20Code) | ## Open Challenge 策略 在 Open Challenge 中,机器人必须在没有障碍物的情况下在场地周围自主行驶。 我们的 Open Challenge 策略基于检测场地上的橙色和蓝色线条。底部颜色传感器读取地面,并检查机器人何时越过彩色线条。 每当机器人检测到橙色或蓝色线条时,代码就会更新一个变量。此变量存储机器人已通过的线条数量。机器人使用此计数来估算其在场地周围的进度,并决定何时应该停下。 ### Open Challenge 逻辑 ``` 1. Start the robot. 2. Drive forward using the rear motor. 3. Use the servo to steer and stay on the correct path. 4. Use the bottom color sensor to detect orange and blue lines. 5. Increase the line count whenever a valid line is detected. 6. Continue driving until the target number of lines is reached. 7. Stop the robot. ``` 这种方法比仅使用计时更强,因为线条计数基于场地的实际位置。如果机器人的移动速度稍微变快或变慢,线条计数仍然能为它提供一种了解自身位置的方式。 ## Obstacle Challenge 策略 在 Obstacle Challenge 中,机器人必须在自主行驶的同时对积木和附近的墙壁做出反应。此挑战使用与 Open Challenge 相同的基础驾驶系统,但增加了基于摄像头的积木检测和更强的距离感知。 机器人像在 Open Challenge 中一样,使用底部颜色传感器来检测橙色和蓝色线条。这些线条帮助机器人决定其行驶方向并计算其在场地周围的进度。 Obstacle Challenge 还使用 AI 摄像头来检测红色和绿色积木。当摄像头检测到红色积木时,机器人向右转向。当摄像头检测到绿色积木时,机器人向左转向。这使得机器人能够根据障碍物的颜色做出反应,而不是仅仅遵循固定的路线。 前置激光传感器用于检测机器人正前方的近距离物体或墙壁。如果机器人在未追踪积木时距离墙壁过近,它会停下、后退并转向驶离。这有助于防止机器人撞到场地边界。 左侧激光传感器用于柔和的墙壁稳定。如果机器人离左墙太近,它会稍微向右转。如果离左墙太远,它会稍微向左转。这有助于机器人在场地周围行驶时保持更加稳定。 ### Obstacle Challenge 逻辑 ``` 1. Start the robot. 2. Read the front laser sensor, left laser sensor, bottom color sensor, and AI camera. 3. Use the bottom color sensor to detect orange and blue lines. 4. Decide the driving direction based on the first valid colored line. 5. Count valid colored lines to track the robot’s progress. 6. Use the AI camera to detect red and green blocks. 7. If a red block is detected, steer right. 8. If a green block is detected, steer left. 9. If a front wall is detected and no block is being tracked, stop, reverse, and turn away. 10. Use the left laser sensor to make small steering corrections near the wall. 11. Continue driving until the target number of lines is reached. 12. Stop the robot after completing the required route. ``` 这种策略比仅使用线条检测更强,因为机器人可以实时对障碍物做出反应。摄像头允许机器人根据积木颜色做出响应,而激光传感器则帮助其避开墙壁并保持稳定的路径。 ## 机器人图集
![]() Robot overview |
![]() Rear drive system |
![]() Front steering system |
![]() Chassis structure |
![]() Component placement |
![]() Electrical system |
文档结束
标签:AI摄像头, Arduino, Arduino C++, autonomous vehicles, Matrix Mini R4, WRO, WRO未来工程师, 世界机器人奥林匹克竞赛, 传感器融合, 后轮驱动, 嵌入式系统, 工程文档, 开源硬件, 无人车, 智能车, 机器人, 机器人控制, 机器视觉, 比赛机器人, 激光传感器, 自动寻迹, 自动驾驶, 舵机转向, 避障, 颜色识别

