马上就要过年了,一说到年夜饭吃什么,全国各地习俗不一样,但是北方很多餐桌上都会出现同一种美食: 饺子。 饺子好吃是好吃,可是包饺子好累。 于是,Dorabot公司有那么一帮实习生,趁着年前还在公司,居然用公司里的机器人给自己包饺子……他们还管这叫“提前庆祝新年”。 于是我就看到了这一幕:在两脚兽压迫下,机器人苦力被迫年末加班,做牛做马不得休息——
……有点酷炫?? 怎么做到的?容我慢慢说。 一般我们包饺子的步骤是:先拿饺子皮,然后放馅料,再捏紧饺子皮,就这样,一个饺子做好了。 视频里是用两台UR5(Universal Robots)的轻量级机械臂进行协作,这个是从别的地方买的,但是机械手是我们公司3D打印的。
视频中左边这个机械手叫平行夹,右边的叫灵巧手。 左边这个的机械手叫平行夹,它只能简单夹取物品。 右边的叫灵巧手,它的设计就像乐高一样,atv,可以随意组装手指数量、位置、关节数量等,非常方便。 除了这两种现成的硬件之外,更重要的是控制机械臂的代码。 参与这场大型搞事情中的实习生之一Muhong说:“虽然包饺子的动作看起来很简单,可是实际上让机器来做,就需要好好规划一下动作的路线。从初始位置到目标位置,怎样的路径才是最好的。为了找到最优的方案、更好的分配每一个任务,我们就得从分析这些机械手开始。” 平行夹特点 控制简单,且只要物体大小在夹取范围内,就有良好的抓取力。
灵巧手特点 抓取硬物的能力强,而且这款手指可以在一定程度上适应不同的形状,即使物体摆放或者机械臂操纵有误差也可以进行矫正。但是它无法抓取很软的物体,比如饺子皮……
分析了以上机械手的优缺点后,就可以对动作进行分配,这样才能相互配合共同完成包饺子这个任务。 平行夹的任务 将饺子皮夹到模具上 夹着模具将包好的饺子放到盘子里 拧瓶盖 揭锅盖 把装着饺子的盘子夹起来,倒进锅里
灵巧手的任务 抓勺子铲肉,并将肉放到饺子皮上 翻模具盖将饺子皮压成饺子 将水瓶中的水倒入锅中
分配好动作之后,就要开始考虑环境的因素了。实习生Zhong用比较学术的语言总结了他们面临的难题:“包饺子的环境并非静态的,而是动态的。” 想象一下除夕夜一大家子人一起包饺子的场景——当你左手拿着饺子皮、右手去夹馅料的时候,桌椅、碗筷、包好的一盖帘饺子、正在擀饺子皮的你二大娘、试图抓面团的熊孩子……都有可能挡在你面前。如果你坚决秉持“两点之间直线最短”的原则,后果可能是人仰盆翻。
比如某位网友,一屁股坐在了饺子上。 机械臂面临的场景也差不多:锅、碗、水瓶、另一台机械臂,以及环境中的其他障碍物都有可能与运动中的机械臂发生碰撞。 在这过程中,开奖,除了两个机械臂不要打架之外,其他物品的位姿(位置和姿态)也免不了会改变。比如将饺子模具取走又放回,揭起锅盖停滞于空中……Zhong说:“如果没有考虑这些障碍物的位姿变化的话,后续的运动规划中极有可能让两只机械手撞在一起。” 解决这个问题可以有两种方案: 一种是让机械臂运动之前,先看一眼,这些东西都在哪里,另一台机械臂在哪里,然后把它们全记下来,这样就能自动躲开障碍了。 另一种是让程序员看一下障碍物的情况,然后在机械臂的运动轨迹中加入代码,人为改变途经点,让机械臂巧妙地绕过障碍物。 因为时间的关系,他们选择了后一种方案。 (责任编辑:本港台直播) |