查看原文
其他

可能是最懒的实习生:想吃饺子就算了,你居然让机器人包??

2017-01-26 Dorabot 果壳网

马上就要过年了,一说到年夜饭吃什么,全国各地习俗不一样,但是北方很多餐桌上都会出现同一种美食:

饺子。 

饺子好吃是好吃,可是包饺子好累。

于是,Dorabot公司有那么一帮实习生,趁着年前还在公司,居然用公司里的机器人给自己包饺子……他们还管这叫“提前庆祝新年”。

于是我就看到了这一幕:在两脚兽压迫下,机器人苦力被迫年末加班,做牛做马不得休息——

https://v.qq.com/txp/iframe/player.html?vid=q0369u7awks&width=500&height=375&auto=0

……有点酷炫??

怎么做到的?容我慢慢说。

一般我们包饺子的步骤是:先拿饺子皮,然后放馅料,再捏紧饺子皮,就这样,一个饺子做好了。 

视频里是用两台UR5(Universal Robots)的轻量级机械臂进行协作,这个是从别的地方买的,但是机械手是我们公司3D打印的。

视频中左边这个机械手叫平行夹,右边的叫灵巧手。

左边这个的机械手叫平行夹,它只能简单夹取物品。

右边的叫灵巧手,它的设计就像乐高一样,可以随意组装手指数量、位置、关节数量等,非常方便。

除了这两种现成的硬件之外,更重要的是控制机械臂的代码。 

参与这场大型搞事情中的实习生之一Muhong说:“虽然包饺子的动作看起来很简单,可是实际上让机器来做,就需要好好规划一下动作的路线。从初始位置到目标位置,怎样的路径才是最好的。为了找到最优的方案、更好的分配每一个任务,我们就得从分析这些机械手开始。”


平行夹特点

控制简单,且只要物体大小在夹取范围内,就有良好的抓取力。


灵巧手特点

抓取硬物的能力强,而且这款手指可以在一定程度上适应不同的形状,即使物体摆放或者机械臂操纵有误差也可以进行矫正。但是它无法抓取很软的物体,比如饺子皮……


分析了以上机械手的优缺点后,就可以对动作进行分配,这样才能相互配合共同完成包饺子这个任务。


平行夹的任务

  1. 将饺子皮夹到模具上

  2. 夹着模具将包好的饺子放到盘子里

  3. 拧瓶盖

  4. 揭锅盖

  5. 把装着饺子的盘子夹起来,倒进锅里

 

灵巧手的任务

  1. 抓勺子铲肉,并将肉放到饺子皮上

  2. 翻模具盖将饺子皮压成饺子

  3. 将水瓶中的水倒入锅中


分配好动作之后,就要开始考虑环境的因素了。实习生Zhong用比较学术的语言总结了他们面临的难题:“包饺子的环境并非静态的,而是动态的。”

想象一下除夕夜一大家子人一起包饺子的场景——当你左手拿着饺子皮、右手去夹馅料的时候,桌椅、碗筷、包好的一盖帘饺子、正在擀饺子皮的你二大娘、试图抓面团的熊孩子……都有可能挡在你面前。如果你坚决秉持“两点之间直线最短”的原则,后果可能是人仰盆翻。

比如某位网友,一屁股坐在了饺子上。

机械臂面临的场景也差不多:锅、碗、水瓶、另一台机械臂,以及环境中的其他障碍物都有可能与运动中的机械臂发生碰撞。

在这过程中,除了两个机械臂不要打架之外,其他物品的位姿(位置和姿态)也免不了会改变。比如将饺子模具取走又放回,揭起锅盖停滞于空中……Zhong说:“如果没有考虑这些障碍物的位姿变化的话,后续的运动规划中极有可能让两只机械手撞在一起。”

解决这个问题可以有两种方案

  • 一种是让机械臂运动之前,先看一眼,这些东西都在哪里,另一台机械臂在哪里,然后把它们全记下来,这样就能自动躲开障碍了。

  • 另一种是让程序员看一下障碍物的情况,然后在机械臂的运动轨迹中加入代码,人为改变途经点,让机械臂巧妙地绕过障碍物。

因为时间的关系,他们选择了后一种方案。

“这个机械臂有一个功能,就是当人把机械臂调整到合适的位姿时,它就能记住各个关节转动了多少角度,下一次就可以自己运动到目标位置。”项目中唯一一个妹子,Xuan指着机械臂如是说。下面这个动图就是演示这个功能。


但是由于多次调整环境和机器人之间的相对位置后,这个过程一直重复,还要手动读取机械臂的各种信息,比如转了多少度,大概的位置在哪里……深感这种方法效率太低的实习生们写了个小脚本,每次只要按回车键,就可以自动读出数据了。虽然这只是个小脚本,但是对未来类似的工作很有帮助。如果不是时间有限,他们一定会升级这个脚本,让它自动生成运动到某个位置信息的代码,这样就更方便了!

说是说的轻巧,整个调试过程中,经常发生一些让人“揪心”的事。比如还没来得及揭锅盖,就把水倒在锅盖上什么的……实习生们就坚持这样不断的调啊调,我都搞不清他们到底是真懒还是假懒了……

(所以你们真的是想包饺子吗?)

最让人“揪心”的是,每次试验离成功都只差一点!比如把饺子皮放到模具这个步骤,就那么一个寸劲儿,就是过不去!!说实话,程序里的bug比这个容易解决多了……

灵巧手:啧,你是不是傻?

平行夹:你行你上!!


因为饺子皮的位置是人手摆放的,所以每次摆放的位置会有细小的误差,而恰恰就是这个误差,造成每次平行夹都会把饺子皮放歪了,包出来的饺子形状特别难看,要不就是有个地方开了个口,要不就是有一半的饺子皮露在外面,怪浪费的。 

其实啊,整个过程最考验的就是耐心了,欲速则不达。

而负责摆放饺子皮的人毕竟是通过视觉和触觉去调整位置的,并不精确。所以,也只能不断重复又重复,把这个误差降到最小。这个过程虽然累了点,但是每次只要接近正确的位置,都会让人兴奋。

最终,包饺子终于成功啦


知道你们懒得翻上去,我在这里重新贴一下开头的视频:机器人苦力包饺子的标准流程——

https://v.qq.com/txp/iframe/player.html?vid=q0369u7awks&width=500&height=375&auto=0

不过我最好奇的是机器人包的饺子味道怎么样,然而实习生们表示:不敢吃。

“调试过程太久了,肉都馊了,吃了肯定拉肚子,我还想过年吃大餐呢。”

那你有考虑过饺子也想被吃的心情么,心疼饺子。


AI默念三定律中

……你们让平行夹和灵巧手,怎么在那些做微创手术的、修精密仪器的老同学面前抬得起头??啊,这年还过不过了!!

 

· 蓝胖子机器人 ·

本职是科普关于机器人的知识

副业是养一群蛇精病实习生

欢迎扫码关注

本文来自果壳网,谢绝转载

如有需要请联系sns@guokr.com

(欢迎转发到朋友圈~)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存