跳到主要内容

姓名:______________________________

日期:____________________

第 7 周

规划一次自主任务

把一件真实的活儿变成一份方案:需求、约束、流程图,以及一次安全的自主任务。

60 至 75 分钟

要点

自主与遥控

机器人干活有两种方式。遥控的时候,是人实时操控它,每一个动作都由人来决定。自主的时候,机器人跑自己的程序,靠传感器自己作决定,没有人在操控。

需求、约束和评判标准

动手之前先规划。需求是机器人「必须」做到的事:「把方块送到蓝色区域」。约束是你必须在里面施展的限制:「30 秒之内」「只能用一个传感器」「不能比一个鞋盒大」。评判标准是你判断成败的方式:「停在区域之内」以及「一次也没撞到墙」。

取舍与工程设计流程

好处几乎不可能一次全占。取舍就是放弃一点这个,去换更多的那个。跑得快的机器人可能来不及读传感器就撞上;把它放慢,就是用速度换可靠性。往往没有唯一「正确」的答案:你要挑一个最贴合自己需求和约束的取舍。

流程图:先把程序画出来,再动手写

流程图就是把你程序的步骤画成一张图。动作写在矩形里(「向前走」「停」)。判断写在菱形里,提一个是或否的问题(「前面有墙吗?」),「是」和「否」各引出一条箭头。箭头把各个方框连起来,你就能顺着看出机器人要走的路。

安全停车与负责任的机器人技术

自主机器人是自己作决定的,所以它需要一种安全停下来的办法:一段编好的行为,在任务完成或者有东西(或有人)挡路时把它停住。没有安全停车,自主机器人可能会一直往墙上或人身上撞。

现实世界里的自主机器人

自主机器人已经在干实实在在的活儿了,而且几乎都是枯燥、脏累或危险的活儿,也几乎都有人在旁边监督。看看真实的例子,有助于你规划自己的任务:每一个都在感知世界、用程序作决定、然后行动,而且都有一种安全停下来的办法。

要认识的词

自主:
靠自己行动:机器人用传感器和程序决定该做什么,不需要有人操控。
遥控:
由人实时地、一步步地操控,比如用摇杆或手机应用。
需求:
机器人「必须」做到、才算完成任务的事,比如「到达卸货区」。
约束:
你必须在里面施展的限制条件,比如时间、尺寸、材料或预算。
评判标准:
你用来判断成败的尺度,比如「在离墙 5 厘米以内停住」或者「30 秒内跑完」。
取舍:
放弃一点某样好东西,去换来更多的另一样,比如开慢一点来换取更可靠。
工程设计流程:
工程师们反复走的那个循环:规划、制作、测试、改进。
迭代:
在设计循环里走完的一圈:测试你的方案或机器人,找出问题,再把它改好。
效率:
用更少的东西把活儿干好:更少的步骤、更短的时间,或者更少的能量。
安全停车:
一段编好的行为,在任务完成或者有东西挡路时,让机器人安全地停下来。
负责任的机器人技术:
多想想安全,也想想什么时候该由人、而不是机器人来掌控。
流程图:
程序的分步示意图,用方框表示动作、用菱形表示判断。

你的活动

写一份任务方案

目标:把一件小小的自主任务变成一份方案:需求、约束、成功标准,以及你不得不权衡的一处取舍。

  1. 挑一件小的自主任务,比如「开到区域里停下」或者「一直找到目标为止」。把它写在「任务规划书」的最上面。
  2. 填写规划书:需求(它「必须」做到什么)、约束(时间、尺寸、只有一个传感器之类的限制)和评判标准(你要怎样判断成败)。然后点明一处你不得不权衡的取舍,比如速度与可靠性。

写下发生了什么:

画出任务流程图

目标:把任务方案变成一张流程图,其中要有动作方框、至少一个判断菱形、一个查看传感器的循环,以及一次安全停车。

  1. 在流程图页上,从一个「开始」方框出发,到一个「安全停车」方框结束。动作放进矩形里,每一次是或否的判断放进菱形里,并配上一条「是」箭头和一条「否」箭头。
  2. 你的自主流程图必须不停地查看传感器(也就是一个循环),而且必须终结于一次安全停车:任务完成时或者有东西挡路时,机器人就停下来。

写下发生了什么:

引导式自主练习任务

目标:跑一次简短的自主任务(开到一个区域、对一个障碍物作出反应、然后安全停下),为下周的结业项目做预演。

  1. 直接照着你的流程图把程序搭出来:一段行驶的顺序指令、一个不停查看传感器的循环、一个对障碍物作出反应的条件,以及机器人到达区域或碰到障碍物时的安全停车。
  2. 跑一遍,对照你的成功标准看结果,并记下一处你想改进的地方;那个「改进」的步骤就是一次迭代,也正是你下周要大量去做的事。

写下发生了什么:

预测

动手测试之前,先写下你的猜测。

跑之前先预测:你的练习任务会一次就满足所有成功标准吗?哪一条标准最可能不达标?

测试并记录

练习任务与它的标准对照

每次都从同一个起点跑这次引导式练习任务。每跑一遍,都记下发生了什么,并对照规划书上的成功标准检查一遍。

记录:每一条成功标准是否达成,以及结业项目里该改什么

Run到达区域了吗?(是/否)对障碍物作出反应了吗?(是/否)安全停下了吗?(是/否)该改进什么
     
     

知识检测

逐题作答。选择题请把最合适的答案圈出来。

  1. 一台送货机器人靠自己的传感器和程序,自己开到了卸货区,全程没人操控。这台机器人是:

    • A.遥控的
    • B.自主的
    • C.根本不是机器人
    • D.坏掉了
  2. 「机器人必须到达蓝色区域」和「它必须在 30 秒之内完成」。哪一条是需求,哪一条是约束?

    • A.到达区域是需求;30 秒的限制是约束
    • B.到达区域是约束;30 秒的限制是需求
    • C.两条都是约束
    • D.两条都是需求
  3. 在流程图里,菱形代表什么?

    • A.机器人做出的一个动作
    • B.一次是或否的判断
    • C.程序的结尾
    • D.某一步要花多长时间
  4. 你的机器人跑得快,可有时来不及读传感器就撞了。你把它放慢,好让它读得稳。这个选择属于:

    • A.一条需求
    • B.一处取舍
    • C.一次安全停车
    • D.一条约束
  5. 自主机器人的程序里为什么需要一次安全停车?

    • A.为了让它看上去像做完了
    • B.为了在任务完成或有东西挡路时安全地停住,而不是径直撞上去
    • C.为了让它能跑得更快
    • D.为了让它永远不需要传感器

反思

为你的任务写需求、约束还是评判标准最难?为什么?

描述你方案里的一处取舍。你放弃了什么,又换来了什么?

负责任的机器人技术:说出一件自主机器人确实帮得上大忙的活儿,以及一种应该由人继续掌控的情形。说说你的理由。