家庭机器人抓取或放置没有成功时,最直观的处理似乎是把同一个动作再做一遍。但如果失败原因没有改变,原地重复不仅可能无效,还可能让物品位置和现场状态进一步偏离原计划。
例如,目标物被遮挡时,重复接近不会自动消除遮挡;物品已经在第一次动作后发生位移,继续沿用旧位置也可能抓空。动作看起来相同,第二次执行所面对的环境却未必还是第一次的环境。
重试前首先要确认失败发生在哪一步。是没有找到目标、接近路径受阻、抓取后物品发生变化,还是目标位置已经不可用?不同问题需要不同处理,不能统一归结为“再试一次”。
随后要重新读取当前状态。目标物在哪里,周围有没有新增物品,原来的操作空间是否仍然存在,手中是否还拿着其他东西,都要以失败后的现场为准。恢复旧指令,不等于恢复旧环境。
还应判断这次失败是否改变了风险。物品更靠近桌边、容器被碰歪,或者家人已经进入任务区域时,原动作即使可以重复,也不一定适合继续。必要时应暂停并把决定交给用户。
一个可复核的重试流程,可以记录四类信息:原动作目标、停止位置、失败后发生的变化,以及再次执行所依据的新条件。如果没有新的判断依据,重复次数再多也不能证明系统具备异常恢复能力。
重试次数也需要边界。第一次失败后可以重新观察,第二次仍出现相同问题时,就应判断是否需要更换路径、调整任务步骤或请求人工处理。若系统只设定“不断重试直到成功”,用户很难知道任务何时会结束,也难以判断现场是否正在恶化。
演示资料同样需要区分“剪掉失败片段”和“展示恢复过程”。真正能够说明恢复的信息,是失败如何被识别、任务从哪一步重新开始、是否更换策略,以及最终结果怎样确认,而不只是最后一次动作成功。
任务记录还应保留失败结果,而不是在成功后覆盖前面的尝试。这样才能核对相同问题是否反复出现,并区分一次偶发变化与持续存在的边界条件。
对于家庭使用,重试的价值不在于坚持执行,而在于先弄清现场是否还支持原计划。失败后重新确认目标、环境和边界,才能避免把一个小偏差连续放大。
热门跟贴