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 未来工程师类别。 ![团队](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/53f9b3d34a153423.jpg) ## 1. 项目概述与“进化”策略 我们 2026 赛季的目标是摆脱“蛮力”设计,转向高精度工程。我们重点关注三个支柱:**稳定性、紧凑性和数据可靠性。** ### 1.1 与之前设计的比较 在上一赛季,我们的机器人体积更大且效率较低。 ![之前的机器人](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b992fe14d2153424.jpg) * **旧设计:** 重型底盘、高重心、结构复杂但“松散”的机械连杆。 * **新设计(当前):** 体积缩小 50%,质心集中在前轴上方,且传动系统得到加强。 ![新旧机器人对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/46ebbe3326153425.jpg) ![新旧机器人对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/272adb2d1a153426.jpg) ![新旧机器人对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8b14309a92153427.jpg) ![新旧机器人对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/448366c4e0153428.jpg) ![新旧机器人对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3413edd2bc153429.jpg) ## 2. 机动性管理:机械卓越 ### 2.1 转向策略辩论:平行转向 vs. 阿克曼转向 在原型设计阶段,我们对转向几何结构进行了研究。虽然**阿克曼转向**对于现实中的汽车来说能减少轮胎磨损,但我们有意为本次机器人选择了**平行转向**。 **为何选择平行转向?** 1. **微运动的精度:** 在 LEGO 零件的微小尺度下,阿克曼连杆中的“间隙”(机械回差)往往会吸收转向输入。平行转向提供了更直接、更刚性的电机连接。 2. **最大转向角度:** 我们的平行机构允许车轮旋转 70 度而不会锁死。这对于空间极其有限的平行停车动作至关重要。 3. **摩擦补偿:** 由于我们使用薄型前轮胎,平行转向产生的轻微“滑动”效应实际上有助于机器人在急转弯时更快地转向,而不会出现复杂 LEGO 连杆常见的弹跳现象。 ![转向几何分析](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/13dc856614153430.jpg) ### 2.2 后轴与差速器逻辑 为了确保机器人在高速行驶时不打滑,我们集成了一个**乐高 Technic 差速器**。 * **问题:** 固轴迫使两个车轮以相同速度旋转,导致内侧车轮在转弯时失去抓地力。 * **解决方案:** 差速器允许外侧车轮比内侧车轮行驶更长的路径。这实现了平稳、可预测的转弯,并延长了电机的使用寿命。 ![差速器装配](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7d4890f2bb153430.jpg) 这是我们更改设计前的差速器,当时的结构还不够美观。 ## 3. 传感器融合与电源架构 ### 3.1 Pixy2 视觉策略 我们使用的**Pixy2.1 LEGO 版**不仅作为颜色传感器,更作为空间坐标生成器。 * **坐标映射:** 我们将检测到的签名中心的 X 坐标映射为 PID 误差值。 * **帧率:** 以 60 FPS 运行,使得机器人能在不到 16 毫秒内响应障碍物,这对于最高速度 1.2 m/s 的机器人至关重要。 * ![摄像头](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b48b93a416153431.webp) ### 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, 工程文档, 平行转向, 开源硬件, 教育机器人, 数据可靠性, 未来工程师, 机器人, 机械设计, 模块化代码, 稳定性, 紧凑设计, 自动驾驶, 视觉导航, 阿克曼转向, 障碍物检测, 颜色识别, 高精度机械