Amira-shab/WRO-2026-Future-Engineers_XLNC-Lunar
GitHub: Amira-shab/WRO-2026-Future-Engineers_XLNC-Lunar
一个面向 WRO 未来工程师的 LEGO Spike Prime 机器人项目,通过 Pixy2 视觉与 Python 实现高精度定位与自主导航。
Stars: 0 | Forks: 0
# WRO 2026 未来工程师 - 详细工程文档
**团队:** XCLNC Lunar
**平台:** LEGO Spike Prime + Pixy2
**编程语言:** Python (Pybricks)
## 团队
我们是 XLNC Lunar 团队,正在参加 2026 年 WRO 未来工程师类别。

## 1. 项目概述与“进化”策略
我们 2026 赛季的目标是摆脱“蛮力”设计,转向高精度工程。我们重点关注三个支柱:**稳定性、紧凑性和数据可靠性。**
### 1.1 与之前设计的比较
在上一赛季,我们的机器人体积更大且效率较低。

* **旧设计:** 重型底盘、高重心、结构复杂但“松散”的机械连杆。
* **新设计(当前):** 体积缩小 50%,质心集中在前轴上方,且传动系统得到加强。





## 2. 机动性管理:机械卓越
### 2.1 转向策略辩论:平行转向 vs. 阿克曼转向
在原型设计阶段,我们对转向几何结构进行了研究。虽然**阿克曼转向**对于现实中的汽车来说能减少轮胎磨损,但我们有意为本次机器人选择了**平行转向**。
**为何选择平行转向?**
1. **微运动的精度:** 在 LEGO 零件的微小尺度下,阿克曼连杆中的“间隙”(机械回差)往往会吸收转向输入。平行转向提供了更直接、更刚性的电机连接。
2. **最大转向角度:** 我们的平行机构允许车轮旋转 70 度而不会锁死。这对于空间极其有限的平行停车动作至关重要。
3. **摩擦补偿:** 由于我们使用薄型前轮胎,平行转向产生的轻微“滑动”效应实际上有助于机器人在急转弯时更快地转向,而不会出现复杂 LEGO 连杆常见的弹跳现象。

### 2.2 后轴与差速器逻辑
为了确保机器人在高速行驶时不打滑,我们集成了一个**乐高 Technic 差速器**。
* **问题:** 固轴迫使两个车轮以相同速度旋转,导致内侧车轮在转弯时失去抓地力。
* **解决方案:** 差速器允许外侧车轮比内侧车轮行驶更长的路径。这实现了平稳、可预测的转弯,并延长了电机的使用寿命。

这是我们更改设计前的差速器,当时的结构还不够美观。
## 3. 传感器融合与电源架构
### 3.1 Pixy2 视觉策略
我们使用的**Pixy2.1 LEGO 版**不仅作为颜色传感器,更作为空间坐标生成器。
* **坐标映射:** 我们将检测到的签名中心的 X 坐标映射为 PID 误差值。
* **帧率:** 以 60 FPS 运行,使得机器人能在不到 16 毫秒内响应障碍物,这对于最高速度 1.2 m/s 的机器人至关重要。
* 
### 3.2 电子元件与电源稳定性
* **Hub 放置:** Spike Prime Hub 水平安装以保持低重心。
* **电源管理:** 我们使用 2100 mAh 锂离子电池。我们发现 Pixy2 的电流消耗约为 140mA;为防止 I2C 掉电,我们确保电池电压在比赛运行前不低于 7.2V。
## 4. 软件工程:Python 的优势
我们使用 **Pybricks (MicroPython)** 而非标准积木块。这使我们能够实现多线程,用于传感器读取和电机控制。
### 4.1 首轮(开放轮次):
我们团队决定为完成“开放”轮次采用简单策略。驱动系统本身结合了机载陀螺仪和超声波传感器。超声波传感器测量与外侧/内侧墙壁的距离,机器人尝试保持与该墙壁的特定距离(存储在变量中)。陀螺仪使其以最小偏差向前保持直线轨迹。在本轮第一次转弯时,我们的机器人使用颜色传感器扫描经过的第一条线,并将其值存储在变量中。这一一次性操作告诉程序机器人是顺时针还是逆时针转向(橙色代表顺时针,蓝色代表逆时针)。随后该信息影响所有后续转弯,决定机器人向左还是向右转向,方法是将期望转弯角度变为负值或反之。这些转弯通过将陀螺仪期望角度改为 90 或 -90 来实现。机器人还使用一个变量作为计数器,检查已通过的线数。一旦该变量等于 12(即已完成全部 3 圈),机器人将向前行驶一段设定时间,以停回起始区域并停止。
### 4.2 障碍轮次:
当摄像头视野中没有障碍物时,机器人行为与资格赛类似:使用超声波传感器保持与墙壁的恒定距离,并利用陀螺仪保持轨道和转弯。一旦障碍物进入摄像头视野,机器人将切换到绕行模式。对于绕行,我们创建了一个以 kx+b 形式的预定义函数,并经过仔细校准。该直线作为障碍物中心在图像帧中应遵循的理想路径。简而言之,我们定义了障碍物在理想情况下应在摄像头中“出现”的位置。利用我们的“绕行直线”和障碍物在图像帧中的 XY 位置,机器人可以计算出障碍物偏离理想路径的偏差并相应调整转向。这种方法为机器人提供了稳定性和易于修改的特性,因为每次绕行在数学上是相同的,且理想路径的系数可以轻松调整以适应各种情况。
### 4.3 停车:
一旦机器人完成所需的 3 圈,我们启动停车算法。最后一次转弯后,我们减速并继续行驶,直到超声波传感器检测到“停车区”的“左”侧。在此过程中,与资格赛相同的原则适用:机器人尝试与外侧墙壁保持特定距离。
一旦检测到停车区的墙壁,机器人会向前行驶一小段距离,然后执行一组预定义的里程计动作,安全驶入停车区。
正如你可能推断出的,以上说明仅适用于逆时针运动,因为我们主要的超声波传感器位于机器人右侧,没有它就无法检测停车区。然而,解决方案很简单:当顺时针行驶完成最后一圈后,机器人向前行驶并执行 U 转弯,使其位置和方向与逆时针停车算法开始时的位置相似(偏差可忽略)。完成 U 转弯后,机器人应用相同的逆时针停车算法。
标签:CAD设计, LEGO Spike Prime, Pixy2, Pybricks, Python编程, WRO, 工程文档, 平行转向, 开源硬件, 教育机器人, 数据可靠性, 未来工程师, 机器人, 机械设计, 模块化代码, 稳定性, 紧凑设计, 自动驾驶, 视觉导航, 阿克曼转向, 障碍物检测, 颜色识别, 高精度机械