18、PushBot:规划与设计

PushBot:规划与设计

在机器人设计的领域中,每一次新的挑战都意味着要构思全新的解决方案。这次我们面临的任务是设计一个能够将雕像推到指定位置的机器人,也就是 PushBot。

任务背景

在一个充满机关陷阱的环境里,有几个雕像需要被推到黑色黑曜石压力板上,最后还要把一个国王雕像推上斜坡放到石棺顶部的压力板上,以解除地板上的大型压力板陷阱,从而安全进入墓室。此前设计的 GrabberBot 是通过提升动作完成任务,而这次的 PushBot 则采用推动的方式,这样做是为了让雕像始终与地面接触,避免掉落,同时降低因雕像过重导致机器人翻倒的风险。

规划与设计流程
  1. 设计前期准备
    • 拿出空白的设计日志页面和笔,在“机器人名称”框中写下 PushBot 或其他你为新机器人取的名字,然后开始撰写描述。在还未完全了解机器人可能遇到的问题时,描述应尽量通用,避免指定具体使用的组件。
    • 例如,当前的机器人描述很笼统,没有说明如何检测雕像、怎样推动雕像以及如何判断雕像是否到达黑色压力板。但随着对描述语句的深入思考,能逐渐明确一些传感器的使用方式。
  2. 机器人描述分析
    • “PushBot 将从基座出发,向第一个雕像(最左边的雕像)移动”:由于能看到第一个雕像的位置,可以利用这一点让机器人顺利起步。
    • “机器人必须检测到雕像,且不能将其撞到或碰倒到后墙(压力板)”:为了让机器人在不接触雕像的情况下检测到它,需要使用红外传感器。
    • “机器人必须将雕像推到黑色压力板上,且不能使雕像翻倒”:推动雕像时,从雕像底部推动能降低翻倒风险,但仍有可能向机器人方向倾倒,所以机器人需要缓慢推动,还可以考虑设计一个笼子或其他结构来防止雕像前后倾倒。
  3. 任务列表制定
    • 移动到第一个雕像 :已知基座边缘到第一个雕像的距离,可编程让机器人先移动特定距离,再开始检测雕像。
    • 检测并推动雕像到压力板 :红外传感器可用于检测雕像,而在雕像被检测到后,要停止推动使其不超出压力板,可考虑使用触摸传感器、颜色传感器或红外遥控器,但目前暂不做决定,待开始构建时再确定。
    • 反向移动到第二个雕像 :根据已知的雕像间距离,通过编程让机器人做出正确转弯,到达剩余雕像前。

以下是 PushBot 的任务列表:
| 任务序号 | 任务内容 |
| ---- | ---- |
| 1 | 从基座移动到第一个雕像,不触碰它 |
| 2 | 检测到雕像并将其推到压力板上 |
| 3 | 反向移动到第二个雕像 |
| 4 | 检测到雕像并将其推到压力板上 |
| 5 | 反向移动到第三个雕像 |
| 6 | 检测到雕像并将其推到压力板上 |
| 7 | 移动到斜坡底部的雕像 |
| 8 | 将斜坡底部的雕像推上斜坡放到压力板上 |

限制与约束

在设计 PushBot 时,需要考虑以下限制和约束:
1. 尺寸限制 :机器人宽度必须小于 2 英尺,以适应斜坡。虽然对高度没有明确限制,但为降低机器人在斜坡上翻倒的风险,应尽量降低其高度。
2. 测量误差 :测量数据并非 100%精确,雕像间距离约为 2 英尺,要确保机器人有足够的空间转弯和移动,避免碰撞其他雕像。
3. 重量限制 :成年蜘蛛猴的最大重量约为 10 磅,此前设计的机器人都未超过该重量,这次也要保证 PushBot 的重量在此范围内,否则会触发地板压力板陷阱。

这些限制和约束会对机器人的最终设计产生影响,在后续的设计过程中需要充分考虑。

设计思路启发(Mindstorm)
  1. 位置编程 :通过编程设定机器人的移动距离,使其能准确到达每个雕像前,且在到达最大距离前停止,然后后退一定距离,为安全转弯和导航到下一个雕像留出空间。
  2. 颜色检测 :由于机器人是将雕像推到黑色黑曜石压力板上,可以使用颜色传感器检测颜色变化,就像在 SnapShotBot 中使用的方法一样。需要将颜色传感器放置在笼子机构上或附近,以便快速检测到黑色压力板。
  3. 避免碰撞 :将笼子机构放在机器人后部,直到需要时再旋转机器人去接近雕像。当红外传感器检测到雕像时,机器人停止(可能后退一点),旋转后缓慢接近。可以使用红外遥控器辅助机器人在雕像附近正确定位,当机器人到达合适位置时,按下遥控器按钮,机器人关闭笼子并继续推动雕像,直到颜色传感器检测到黑色压力板。

以下是 PushBot 设计的流程图:

graph LR
    A[开始] --> B[设计前期准备]
    B --> C[撰写机器人描述]
    C --> D[制定任务列表]
    D --> E[考虑限制与约束]
    E --> F[Mindstorm 设计思路启发]
    F --> G[绘制草图]
    G --> H[开始构建和测试]
    H --> I[完成 PushBot 设计]

通过以上步骤,我们对 PushBot 的规划与设计有了清晰的思路,接下来将根据这些思路进行草图绘制,然后开始构建和测试,逐步完善 PushBot 的设计。

PushBot:规划与设计(续)

草图绘制

在完成前面的规划和设计思路梳理后,接下来要进行草图绘制,这有助于我们更直观地呈现 PushBot 的大致形状和各组件的布局。

由于 PushBot 可能会用到颜色传感器、红外传感器、触摸传感器,还会使用三个电机并构建笼子机构,这使得它的形状可能比较独特。通过绘制草图,用基本形状代表电机、控制模块(Brick)和传感器,能初步形成一个“目标形状”,虽然最终设计可能与草图不完全一致,但整体形状应该相近。

以下是一些关于组件布局的初步想法:
- 传感器 :颜色传感器要放置在笼子机构上或附近,以便及时检测黑色压力板的颜色变化;红外传感器用于检测雕像,其位置需保证能有效探测到前方雕像;触摸传感器可作为启动按钮,放置在便于操作的位置。
- 电机 :三个电机要合理分布,以提供机器人移动、推动雕像和笼子机构开合所需的动力。
- 笼子机构 :考虑到避免碰撞其他雕像,将其初始位置设置在机器人后部,并且要保证其能够灵活开合,包围住雕像。

构建与测试

完成草图绘制后,就可以开始实际的构建和测试工作了。这是将设计想法转化为实际机器人的关键阶段。
1. 构建步骤
- 准备材料 :收集所需的乐高积木、传感器、电机和控制模块等组件。
- 搭建框架 :根据草图,搭建机器人的基本框架,确保其结构稳定。
- 安装组件 :按照设计思路,依次安装传感器、电机和笼子机构等组件,并连接好线路。
- 调试程序 :根据任务列表和 Mindstorm 中的设计思路,编写并调试机器人的控制程序。
2. 测试要点
- 移动测试 :测试机器人从基座到雕像的移动是否准确,能否按照预设距离停止和转弯。
- 检测测试 :检查红外传感器和颜色传感器是否能正常工作,能否准确检测到雕像和黑色压力板。
- 推动测试 :测试机器人推动雕像时,是否能保持雕像稳定,不发生翻倒,并且能否准确将雕像推到压力板上。
- 整体测试 :进行多次整体测试,模拟实际场景,检查机器人在完成一系列任务时是否顺畅,是否能应对各种可能出现的情况。

优化与完善

在构建和测试过程中,可能会发现一些问题和不足之处,需要对 PushBot 进行优化和完善。
1. 性能优化
- 速度调整 :根据测试结果,调整机器人的移动速度和推动速度,确保既能高效完成任务,又能保证雕像的安全。
- 传感器精度 :对传感器的灵敏度进行微调,提高检测的准确性。
2. 结构改进
- 笼子机构 :如果发现笼子机构在开合或包围雕像时存在问题,对其结构进行改进,使其更加灵活和稳定。
- 整体布局 :根据实际情况,对机器人的整体布局进行调整,优化各组件的位置,提高机器人的平衡性和稳定性。
3. 程序优化
- 代码简化 :对控制程序进行优化,简化代码结构,提高程序的运行效率。
- 错误处理 :增加错误处理机制,使机器人在遇到异常情况时能够自动调整或发出警报。

以下是 PushBot 优化与完善的表格:
| 优化方面 | 具体措施 |
| ---- | ---- |
| 性能优化 | 调整移动和推动速度,微调传感器灵敏度 |
| 结构改进 | 改进笼子机构,调整整体布局 |
| 程序优化 | 简化代码,增加错误处理机制 |

总结

通过对 PushBot 的规划、设计、构建、测试和优化等一系列工作,我们逐步完成了一个能够完成特定任务的机器人设计。在整个过程中,充分考虑了任务需求、各种限制和约束,运用了合理的设计思路和方法,并且通过不断的测试和优化,提高了机器人的性能和稳定性。

设计机器人是一个充满挑战和创意的过程,每一个环节都需要精心思考和实践。希望通过本文的介绍,能为大家在机器人设计方面提供一些有益的参考和启发。

以下是 PushBot 设计的完整流程图:

graph LR
    A[开始] --> B[设计前期准备]
    B --> C[撰写机器人描述]
    C --> D[制定任务列表]
    D --> E[考虑限制与约束]
    E --> F[Mindstorm 设计思路启发]
    F --> G[绘制草图]
    G --> H[开始构建和测试]
    H --> I{测试是否通过}
    I -- 是 --> J[完成 PushBot 设计]
    I -- 否 --> K[优化与完善]
    K --> H

通过这个流程图,我们可以清晰地看到 PushBot 设计的整个过程,从最初的规划到最终的完成,每个环节都紧密相连,相互影响。只有经过不断的迭代和优化,才能设计出一个满足需求的优秀机器人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值