mujin工业机器人设计公司,他的优势在哪里,在算法上获得了哪些突破?
- 作者 · 邱强
- 5120次浏览
- 2018-03-29
- 来源 · 知乎
- 分享
- 字体-+
mujin工业机器人设计公司为什么这么火,请看知乎大V(fly qq)的透彻分析,其中一个关键技术是运动规划。
问题:mujin工业机器人设计公司,他的优势在哪里,在算法上获得了哪些突破?
由于不少人私信我关于OpenRave安装、Rosen论文与运动规划的问题,这里补充一下:
OpenRave:我只在Ubuntu下用过,参照官网,直接在terminal中输指令就可以安装好了,Windows下没用过,所以也不好答。但是,如果要做运动规划,还是建议在Linux平台下;此外,我现在主要是在ROS里做开发,ROS可以用OpenRave的ikFast等工具,同时也很方便研究,推荐使用。
Rosen博士论文:论文题目是《Automated Construction of Robotic Manipulation Programs》,可以关注我的公众号Nao(ID: qRobotics),回复“Rosen”关键词,获取下载地址。
运动规划:这部分可能国内研究的人比较少,中文教材也基本没有,建议看英文的教材,如《Planning Algorithms》、《Principles of Robot Motion: Theory, Algorithms, and Implementation》,网上都能找到电子版。另外,如果想先了解一下运动规划的内容的话,可以看我近期写的文章运动规划 | 简介篇,同时也欢迎大家订阅我的公众号。
国内 MUJIN 类公司:最近两年国内出现了一批类似 MUJIN 的机器人创业公司,我在另一个回答里有简单介绍:国内是否有与武汉库柏特类似业务的机器人公司,这些公司的独特优势是什么? - 知乎
==== 以下为正文 ====
1、是什么?
MUJIN是日本一家创业公司,业务主要涉及工业领域中的3D物体识别与抓取、机械臂运动学计算、运动规划、3D仿真等。希望为工业机器人提供一种更加通用的一体化解决方案。
2、为什么?
首先说这样的公司为什么火。目前工业机器人虽然已经很成熟了,也有很多应用实例,但是也存在不少问题:
① 人工示教费时费力;
② ②无法应对变化环境;
③ ③更新流水线成本高;
④ ④应用场景较为简单。
随着手机等3C产业(更新换代快)的发展,人工费用的上升,工业界开始追求一种更加灵活的机器人:要是机器人可以进行任务层次的编程(例如“抓取A放到B”),而不是手把手示教(从A-->001-->002-->张开手爪--->200-->...-->关闭手爪-->...--->666--->B-->打开手爪),那岂不是太amazing了!
嗯,MUJIN就是做这个的。
然而,系统集成商千千万,为什么偏偏是你MUJIN火?虽然目前工业机器人整体智能水平比较低,但是研究机构已经有非常多类似的尝试了。然而,几乎所有做motion planning的人都认识一个开源project:OPENRAVE,它可以帮你们算机器人运动学逆解(IKFast),跟视觉系统结合,做3D仿真环境,做碰撞检测,做Motion Planning,简直机器人研究必备。很多著名的机器人平台都使用了OpenRAVE做开发。
嗯,这个项目是MUJIN的CTO Rosen Diankov (出杏光魯仙)创立的。
3、怎么样?
再说说MUJIN是怎样实现工业机器人的任务级编程的吧。其实我不太了解,但是我猜Rosen也是基于他之前在OpenRAVE上的工作来做的,而且我当时也把他的博士论文仔细看了几遍,所以让我来猜一猜。
3D视觉:OpenRAVE并没有3D视觉方面的内容,Rosen本人博士论文也没有具体谈这一技术。但是目前有很多3D视觉方面的研究成果,包括开源点云运算库PCL(Point Cloud Library)等,其中涉及平面分割、欧氏聚类、ICP点云匹配等算法。因此我猜MUJIN也是使用类似方法。
相机自动标定:由于需要使用3D摄像机,于是我们必须知道摄像机相对于机械臂的安装位置,这就需要标定。目前很多标定方法需要人为协助标定,费时费力。但MUJIN提供了一种自动标定方法,只要将标定板往机器人前一扔,机器人自己动几下就把摄像机相对于机械臂的位置给标定出来了。
碰撞检测:既然要求机器人自己计算从A到B的轨迹,那就必然要让机器人能避开工作空间内的障碍物了。据我了解,MUJIN是把碰撞检测做到了机器人的实时控制回路里,实现了real time collision detection。当然,我还是不知道他们是怎么做的。但我知道OpenRAVE是怎么做的,之前看过OpenRAVE源码,发现他们是调用了香港城市大学的潘佳写的FCL(Flexible Collision Library)碰撞检测库。之前试验过,FCL可以实现约0.1ms的碰撞检测速度(基于AABB原理)。目前ROS的MoveIt也是把FCL作为默认碰撞检测库,所以我猜MUJIN很可能还是使用这个方法(完全自己重写碰撞检测的话,成本和效率都是问题)。
抓取规划:这个也是Rosen论文里的一个重点内容,他通过采样方法计算到合适的抓取姿态。当然,工业环境中机器人的爪手一般很简单,工件也相对固定,可能MUJIN并没有使用复杂的Manipulation Planning。
机器人逆解:这个是我当时看Rosen论文感到最震撼的一章了。他的IKFast算法可以解决绝大多数串联机器人运动学逆解的封闭解!请注意,我说的是封闭解!目前其他通用运动学逆解求解器都是利用雅克比迭代法求的数值解。这两个的区别在于数值解速度慢(约1ms),且一次只能得到一个解;而封闭解速度快(约4μs),且可以得到所有逆解(如果是冗余机构,则可设置分辨率)。亲手算过7-dof机械臂逆解的同仁们应该能理解这个功能的强大之处(PS:我在另外一个回答里关于UR的逆解(universal robot机器人有多少种逆解? - fly qq 的回答)居然还得到很多质疑,就算不信我,也要信IKFast大法啊...)。
运动规划:这个是机器人目前很热的研究点,我的博士课题也是在这方面。运动规划就是指给定起点与终点,自动生成一条连接起止点的无碰撞轨迹。由于规划空间大,在Path Planning中常用的A*,Dijkstra等算法均无用武之地了。Rosen的博士论文在这方面没有太多创新,但是他把基于采用的规划算法整合进了OpenRAVE,这样用户就可以直接使用,而不需要对每个机器人进行复杂的配置了。
4、会如何?
既然MUJIN的方向这么精准、成员这么牛逼,那么以后可能会发展怎样呢?总之,我本人是坚信学术界与工业界中间的巨大割裂情况肯定会有人去解决,很有可能是MUJIN,也有可能是其他人。但是,工业界对稳定性的要求可谓极致(甚至6σ,99.99966%无缺陷率),然而,前述几种技术中,3D视觉识别精度可能无法保证,另外,Sampling based Motion Planning随机性太大,肯定也无法达到这么高的稳定性。当然,机器人智能化后,可以通过对执行结果进行检测,并进行re-grasp或者re-planning来实现高成功率。但是,依旧还有许多技术问题亟待解决。
由于不少人私信我关于OpenRave安装、Rosen论文与运动规划的问题,这里补充一下:
OpenRave:我只在Ubuntu下用过,参照官网,直接在terminal中输指令就可以安装好了,Windows下没用过,所以也不好答。但是,如果要做运动规划,还是建议在Linux平台下;此外,我现在主要是在ROS里做开发,ROS可以用OpenRave的ikFast等工具,同时也很方便研究,推荐使用。
Rosen博士论文:论文题目是《Automated Construction of Robotic Manipulation Programs》,可以关注我的公众号Nao(ID: qRobotics),回复“Rosen”关键词,获取下载地址。
运动规划:这部分可能国内研究的人比较少,中文教材也基本没有,建议看英文的教材,如《Planning Algorithms》、《Principles of Robot Motion: Theory, Algorithms, and Implementation》,网上都能找到电子版。另外,如果想先了解一下运动规划的内容的话,可以看我近期写的文章运动规划 | 简介篇,同时也欢迎大家订阅我的公众号。
国内 MUJIN 类公司:最近两年国内出现了一批类似 MUJIN 的机器人创业公司,我在另一个回答里有简单介绍:国内是否有与武汉库柏特类似业务的机器人公司,这些公司的独特优势是什么? - 知乎
==== 以下为正文 ====
1、是什么?
MUJIN是日本一家创业公司,业务主要涉及工业领域中的3D物体识别与抓取、机械臂运动学计算、运动规划、3D仿真等。希望为工业机器人提供一种更加通用的一体化解决方案。
2、为什么?
首先说这样的公司为什么火。目前工业机器人虽然已经很成熟了,也有很多应用实例,但是也存在不少问题:
① 人工示教费时费力;
② ②无法应对变化环境;
③ ③更新流水线成本高;
④ ④应用场景较为简单。
随着手机等3C产业(更新换代快)的发展,人工费用的上升,工业界开始追求一种更加灵活的机器人:要是机器人可以进行任务层次的编程(例如“抓取A放到B”),而不是手把手示教(从A-->001-->002-->张开手爪--->200-->...-->关闭手爪-->...--->666--->B-->打开手爪),那岂不是太amazing了!
嗯,MUJIN就是做这个的。
然而,系统集成商千千万,为什么偏偏是你MUJIN火?虽然目前工业机器人整体智能水平比较低,但是研究机构已经有非常多类似的尝试了。然而,几乎所有做motion planning的人都认识一个开源project:OPENRAVE,它可以帮你们算机器人运动学逆解(IKFast),跟视觉系统结合,做3D仿真环境,做碰撞检测,做Motion Planning,简直机器人研究必备。很多著名的机器人平台都使用了OpenRAVE做开发。
嗯,这个项目是MUJIN的CTO Rosen Diankov (出杏光魯仙)创立的。
3、怎么样?
再说说MUJIN是怎样实现工业机器人的任务级编程的吧。其实我不太了解,但是我猜Rosen也是基于他之前在OpenRAVE上的工作来做的,而且我当时也把他的博士论文仔细看了几遍,所以让我来猜一猜。
3D视觉:OpenRAVE并没有3D视觉方面的内容,Rosen本人博士论文也没有具体谈这一技术。但是目前有很多3D视觉方面的研究成果,包括开源点云运算库PCL(Point Cloud Library)等,其中涉及平面分割、欧氏聚类、ICP点云匹配等算法。因此我猜MUJIN也是使用类似方法。
相机自动标定:由于需要使用3D摄像机,于是我们必须知道摄像机相对于机械臂的安装位置,这就需要标定。目前很多标定方法需要人为协助标定,费时费力。但MUJIN提供了一种自动标定方法,只要将标定板往机器人前一扔,机器人自己动几下就把摄像机相对于机械臂的位置给标定出来了。
碰撞检测:既然要求机器人自己计算从A到B的轨迹,那就必然要让机器人能避开工作空间内的障碍物了。据我了解,MUJIN是把碰撞检测做到了机器人的实时控制回路里,实现了real time collision detection。当然,我还是不知道他们是怎么做的。但我知道OpenRAVE是怎么做的,之前看过OpenRAVE源码,发现他们是调用了香港城市大学的潘佳写的FCL(Flexible Collision Library)碰撞检测库。之前试验过,FCL可以实现约0.1ms的碰撞检测速度(基于AABB原理)。目前ROS的MoveIt也是把FCL作为默认碰撞检测库,所以我猜MUJIN很可能还是使用这个方法(完全自己重写碰撞检测的话,成本和效率都是问题)。
抓取规划:这个也是Rosen论文里的一个重点内容,他通过采样方法计算到合适的抓取姿态。当然,工业环境中机器人的爪手一般很简单,工件也相对固定,可能MUJIN并没有使用复杂的Manipulation Planning。
机器人逆解:这个是我当时看Rosen论文感到最震撼的一章了。他的IKFast算法可以解决绝大多数串联机器人运动学逆解的封闭解!请注意,我说的是封闭解!目前其他通用运动学逆解求解器都是利用雅克比迭代法求的数值解。这两个的区别在于数值解速度慢(约1ms),且一次只能得到一个解;而封闭解速度快(约4μs),且可以得到所有逆解(如果是冗余机构,则可设置分辨率)。亲手算过7-dof机械臂逆解的同仁们应该能理解这个功能的强大之处(PS:我在另外一个回答里关于UR的逆解(universal robot机器人有多少种逆解? - fly qq 的回答)居然还得到很多质疑,就算不信我,也要信IKFast大法啊...)。
运动规划:这个是机器人目前很热的研究点,我的博士课题也是在这方面。运动规划就是指给定起点与终点,自动生成一条连接起止点的无碰撞轨迹。由于规划空间大,在Path Planning中常用的A*,Dijkstra等算法均无用武之地了。Rosen的博士论文在这方面没有太多创新,但是他把基于采用的规划算法整合进了OpenRAVE,这样用户就可以直接使用,而不需要对每个机器人进行复杂的配置了。
4、会如何?
既然MUJIN的方向这么精准、成员这么牛逼,那么以后可能会发展怎样呢?总之,我本人是坚信学术界与工业界中间的巨大割裂情况肯定会有人去解决,很有可能是MUJIN,也有可能是其他人。但是,工业界对稳定性的要求可谓极致(甚至6σ,99.99966%无缺陷率),然而,前述几种技术中,3D视觉识别精度可能无法保证,另外,Sampling based Motion Planning随机性太大,肯定也无法达到这么高的稳定性。当然,机器人智能化后,可以通过对执行结果进行检测,并进行re-grasp或者re-planning来实现高成功率。但是,依旧还有许多技术问题亟待解决。
本文首发于知乎,作者:fly qq,原文链接:https://www.zhihu.com/question/26834888/answer/114456322,本网站经授权发布,如若转载请联系原作者。
相关标签:
- 工业机器人
- 运动规划
参与评论