这两天看到一条新闻,提到“2016年高交会上展览的机器人小胖机器人,造成了高交会上首例伤人事件”,朋友圈传了不少消息,本来我也没太,觉得就是个机器人失控事件,而且还是遥控的时候失误,这跟平时玩飞机不小心炸鸡砸到人没什么区别嘛,怎么会被炒这么热,估摸着是跟最近两年的机器人热潮有关系,不过考虑到这个机器人是个陪伴机器人,也是我挺看好的方向,所以凑周末假设一下如果我是陪伴机器人的系统工程师,我该怎么去思考,具体分析以下几点:
1. 为什么小胖机器“人”会伤到人?
2. 小胖机器人设计有什么问题?
3. 如何给小胖机器人设计安全系统?
1.为什么小胖机器“人”会伤到人?
我去翻了一下小胖机器人的母公司“北京进化者机器人科技有限公司”,看到了公司的描述,还是11.18日新鲜出炉的,贴下来如下:
看完公司发布的消息,我大概简单评论下:
1, 公司承认是参展人员遥控时出现错误操作,然后机器人碰到玻璃并破碎,然后玻璃划伤了观众,然后提到了很重要的一点:小胖机器人在打开面罩的情况下(估计是调试模式),会关闭避障感应模块,官方解释是为了更好实现对机器人的控制;
2, 公司表示这篇文章是个自媒体号发布的,用了一些过激的语言,我估计是作者希望吸引眼球,刻意的用一些词语夸大了事实,并表示要追责。
OK,那么看下来小胖机器人伤人的原因如下:
-
参展人员将小胖设置到了调试模式;
-
参展人员对小胖进行遥控;
-
参展人员遥控出现错误;
-
小胖机器人撞到玻璃了;
-
玻璃倒下破碎划伤观众;
看起来官方的解释似乎比较合理,我不知道大家怎么看,但是我作为机器人从业者,只能给这篇声明60分,勉强及格,原因第二条解释。
另外,看到小胖机器人提到自己9月份量产,到现在销售3000多台,我表示还是很吃惊的!因为我看到小胖机器人家用尊享版要12988元!!不过尊享版的功能描述倒是蛮齐全的,不知道实际效果如何。
2.小胖机器人设计有什么问题?
我搜了下小胖机器人的设计参数,查到了感应器这一项,截图如下:
我最初以为小胖机器人没安装距离传感器,但是发现自己图样了。
我本来以为小胖机器人就算不开启调试模式也不能检测到玻璃(广交会撞倒的是玻璃,我开始觉得玻璃不能反射红外),但是还是发现自己图样了,工程师给他安装了红外避障和超声波测距的,所以不能反射红外的玻璃能够被超声波检测到,理论上是可以检测到玻璃的,所以我暂时判定小胖机器人确实是因为开启了调试模式而关闭了传感器识别功能。
那么我们接着分析,小胖在打开面罩遥控状态该不该关闭避障传感器?出了这起事故,我估计以后的很多陪伴机器人都会在调试模式下考虑机器人避障了。
我认为,小胖机器人在设计思路上有问题,设计机器人,一定要给机器人安全模块最高级的权限,我猜想很有可能做小胖机器人这群人是互联网出身,对机器人的安全没有很深刻的理解。
我就不扯机器人三法则了,因为这件事情里面小胖没有直接伤害人类(当然以小胖的智商,如果他有智商的话,根本判断不了撞东西之后的损伤后果),机器人三法则的本质内容就两个字:安全,四个字:对人安全。所以下面第三节直接讲给小胖机器人设计安全系统该怎么分析。
3. 如何给小胖机器人设计安全系统?
这里我必须安利一下北京珞石机器人韩峰涛的文章:让机器人更安全(1-4),因为我从他的文章里面吸收了很多,但是!韩总的文章居然点赞数很少!我不开心,希望看到这篇文章的朋友一定要去给韩总的文章点个赞。
我先简介下机器人安全模块的描述:
安全模块隶属于控制系统,一般来说控制系统包括主控制器(操作系统),示教器(操作系统),伺服驱动系统(驱动器 电机),安全模块,我目前理解来看,安全模块可能设计难度没那么大,但是可靠性一定要非常高,这是机器人安全的最后一道防线,出了事没拦住就是事故。
懒省事,直接放韩总的PPT介绍工业界安全模块的功能介绍:
可以看出目前工业界对机器人安全的控制除了控制失控意外,基本上都是在控制速度,因为实际应用中速度是造成碰撞损伤的主要原因,速度决定能量大小。
在工业机器人是这样,其实陪护机器人也是类似,小胖机器人自重45.6公斤,跟个成年软妹子差不多重了,跑起来动量也是很大的,何况小胖一点都不软!考虑到这点,其实陪伴机器人外壳应该至少都做成软橡胶或者泡沫的,从物理上降低可能对环境的损坏。
工业机器人会采用视觉传感器来检测人的距离来调整速度控制策略,这种属于ISO10218标准的Speed and separation monitoring (速度和距离监控)模式。
如上图所示,机器人检测到人靠近时,就会主动降低运行速度,来降低可能造成的伤害,那么这个点是小胖机器人可以借鉴的,如果检测到周围有物体,那么就可以降低自己的运行速度来降低自己的运动能量(举例子)。
上面讲到的速度控制策略其实是机器人界比较简单初级的安全策略,真正高级的安全策略是力控制策略,即ISO10218标准的Power and force limiting (功率和力限制),举例子还是放图,我最喜欢的KUKA的IIWA机器人。
第一个图是IIWA机器人在运动中用匕首刺手臂,而保证不会刺伤,虽然我不知道匕首有多锋利,第二个图是展示机器人与人协作时碰到人手能够检测到而停止或者改变策略。不过这两个动作做的时候机器人一定运行很慢,因为我看了IIWA机器人的说明书,他特定条件下的停止距离和停止时间如下:
可以看出停止距离和停止时间还是挺长的,极端速度情况下肯定会刺伤人手臂,我不太清楚IIWA急停为什么要时间这么久,至少我目前做的机器人安全模块的停止时间比IIWA做的要小很多。
可以看出停止距离和停止时间还是挺长的,极端速度情况下肯定会刺伤人手臂,我不太清楚IIWA急停为什么要时间这么久,至少我目前做的机器人安全模块的停止时间比IIWA做的要小很多。
精确的力控制技术是目前机器人界的一个高壁垒,无论是精确的机器人动力学建模(参数辨识)还是先进的力控制策略,这些都已经在德国宇航局DLR研究了接近30年(IIWA是德宇航技术转让给KUKA的),国内很多机器人厂家目前都在攻关这个方向。
那么同样小胖机器人也需要借鉴这个点,要保证对外界环境输出的功率和力是受到限制的。
综合上文,我暂时考虑到的几个小胖可以考虑的安全模块设计要点如下:
1, (保证无论在任何情况和任何模式下,都应该将安全模块优先级置最高,保证机器人的Safety-rated monitored stop (安全级监控停止)(来自ISO10218第三种人机协作方式)始终在运行,即如果发现有环境危险,就采取措施,而不是把遥控者的权限设置为最高);
修改为:应该将安全模式设置为较高级优先级,而且要避免轻易进入关闭安全模式,比如设置一个密码或者提示“禁止在可能导致他人受伤或者机器人受损的情况下进入调试模式”,在此感谢@岁月无痕的认真解释,并引用了他的部分解释。
2, 采用小胖头部的主摄像头、超声波、红外避障等传感器的数据,结合安全策略,支持Speed and separation monitoring (速度和距离监控),在有环境碰撞风险时,降低运行速度;
3, 考虑与环境的作用,陪护机器人要借鉴阻抗控制思想(来自hogan),环境是刚性的,那么机器人就要尽可能是柔性的,两个都是刚的就容易出事(wiki: Impedance control is an approach to the control of dynamicinteraction between a manipulator and its environment. This type of control issuitable for environment interaction and object manipulation.),让小胖机器人柔起来有两种思想:一种是被动柔顺,一种是主动柔顺。我暂时能想到被动柔顺最简单的是给小胖机器人外壳加弹性泡沫,复杂起来的话主动柔顺就是给小胖的机器人外壳加力传感器(或者力测量机构),保证小胖碰到环境之后能够主动控制自己的运动来降低(控制)对环境的作用力。
KUKA的机器人使用手册就写了77页,里面有大量的解释和描述来保证机器人如何使用是安全的,我感觉服务机器人不需要写那么长的说明书,但是设计者一定要考虑足够安全的策略来保证用户的安全。
另外,工业机器人在设计时是要考虑非常多的标准的,这些其实对服务机器人也有很强的指导意义,我截图IIWA机器人参考的标准放在后面,有兴趣的朋友可以看看跟我交流(我没看完···)
分析的不合理的地方,还请大家留言指正,谢谢。