工科男和机器人的扑克之战-uArm Metal机械臂体验记
工科男和机器人的扑克之战-uArm Metal机械臂体验记

前言

相信很多80后的朋友和我一样,小时候每当看到动画片里的人物操作机械战甲和恶势力斗争,心里都有一种成为英雄的渴望,期待着有一天能够拥有自己的机器人。本以为这只是个梦,可是越长大越发现,机器人竟发展的如此迅速。刚子的工作单位近几年做了不少汽车零件的机器人生产线,刚子也得以直接接触到这些钢铁巨人,然而种种条件限制,总是玩的不尽兴。慢慢的发现机器人甚至开始融入我们的生活,然而目前流行的多数机器人均是情感陪护类,除了蹩脚的语音对话能够博得一笑之外,似乎没有什么意义,最关键的是缺乏长期的固件更新支持,对于刚子这样水平一般的工科男来讲,封闭的系统很难去自己加扩展。有没有一款开源,可以让我们充分发挥想象力的机器人呢?当然,今天刚子就给大家带了一开源的4轴机械臂,也就是厂商所说的世界上第一台桌面级开源机械臂——uArm,在此基础上增加了视觉识别系统,实现了一个自动识别抓取扑克牌的功能。下面请大家和刚子一起来体验一番吧。

开箱

本次拿到的uArm Metal标准版机械臂包装箱采用了黑色的环保纸箱,外面套了一个白色的固定外套。正面中央是uArm的LOGO,四周搭配的芯片引脚流露出浓浓的科技感。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

纸套的背面是uArm的机械外形图,通过它和左边的英文介绍可以对uArm做一个大致的了解。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

打开盒子,并没有出现我们期待的机械臂身影,反而看到了一个手提袋。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

原来是一个制造商UFACTORY定制的无纺布手提袋,组装完成后再装箱不太现实,这样就可以使用手提袋来移动机械臂。从这么贴心的设计来推测,产品经理应该是一个细心的妹子吧。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

取出所有的配件,先来个全家福,内部包含:uArm Metal机身、 电源 x1、 电源线 x1、 气泵 x1 (附2颗安装螺丝)、 USB线 x1、 脚部支撑 x 4 (附8颗安装螺丝)、 螺丝刀 x1。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

说明书异常的简单,印有基本的技术参数、设备清单、和制造商的介绍,通篇的英文让刚子不用的有些紧张。看来入门的资料还得去网站搜寻了。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

电源适配器,100-240V AC输入,适应全球,5V5A DC输出。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

小气泵,具体型号没有标注,两个螺丝固定孔,一个电气控制插头,一个进气孔,一个出气孔。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

安装支架采用了非常有质感的铝合金,CNC加工工艺制作,与支撑面接触处添加了橡胶防滑垫。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

每个支架采用两个螺丝固定,下面安装完成后的效果。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

放桌上试一下,感觉很稳。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

为了满足不同形式的安装需要,uArm还提供了四个小吸盘,安装在平滑易动的物体表面时可以考虑使用吸盘。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

安装吸盘后的效果。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

这种力矩比较小,要将吸盘安装牢固才行。刚子没有这种桌子,因此没有进行牢固性测试。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

非常流行的Arduino开发板做主控,了解嵌入式的同行们应该都比较熟悉了。与普通的三线舵机不同,uARM的舵机多了一根反馈线,可以实时判断舵机的当前位置,进行闭环控制。舵机线有些长,使用套管进行了包扎。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

从侧面看起来还是有些凌乱,希望能够将线适当调短一些。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

吸盘处还有一个小舵机,可以进行180度旋转,意味着抓到东西后,可以调整一下角度。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

除了安装好的吸盘,还另外附带了一个小一些的吸盘,以适应抓取不同物体的需要。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

关节的结合部位使用了小轴承,保障了长期的动作平滑稳定,延长机械臂发使用寿命。在机械臂上采用激光打标技术,印上了UARM的logo。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

入门

刚子刚拿到机械臂时,几乎没找到对应的资料,利用官方提供的Uarm_Client.exe进行了简单的动作实验,并使用串口口监视工具进行了通讯协议的截取和破解,和一起试用的机友@anduony进行了交流,对机械臂的工作方式有了一定的了解。厂家资料到手后才得以迅速开始开发。不过现在拿到机械臂的小伙伴们不用这么麻烦了,官方在8月份更新了技术资料,刚子顺便贴出来,方便后来者使用。资料地址可能会有更新,链接无法进入的话可以自行联系厂家。由于报告不想写成说明书PLUS,加上厂家这次的入门指南写的非常详细,刚子不再赘述入门过程,大家可自行在下面链接进行观看。

uArm Metal 快速入门指南

uArm Metal开发者指南201608.pdf

UArm Arduino Library

UArmProtocol.ino

拓展

为了实现视觉识别,先来在抓手上加一个摄像头吧。这个摄像头看起来有些奇怪,这是当年刚子买来协助疏通下水道的,闲置几年后终于又派上了用场。安装支架就是用可乐瓶剪开做个支架,固定牢固即可。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

为了保证坐标系的唯一,刚子用纸做了一个工作台,每次机械臂放在固定的位置,这样就能保证了摄像头照射的角度一致性。前期先拿纸片做一个简单的测试。为了减少工作量,这里把黑色的鼠标垫做背景,配上白色的纸片,识别起来更容易一些。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

机械臂内跑的程序是出厂的 UArmProtocol.ino,刚子将通讯协议进行了仔细的分析,并针对协议在电脑端使用C#进行了通讯编程。这里需要注意的是其独特的数据格式,由于坐标会有负数,因此其协议中做了巧妙的处理,例如:  发送浮点数函数:   

void sendFloatAsFour7bitBytes(float val){

int int_val = val;

int decimal_val = int(round((val - int_val)*100));

Serial.write(val > 0 ? 0 : 1);  //这里就是判断正负的标志。

Serial.write(abs(int_val) & B01111111 );

Serial.write(abs(int_val) >> 7 & B01111111);

Serial.write(abs(decimal_val) & 0x7F );

}

C#数据解析时就需要这样处理


   RX = result[4] + (result[5] << 7) + (float)(result[6]) / 100;

    if (result[3] == 1)

    RX = -RX;  //判断坐标的正负


经过一个多月的努力,将自己编制的通讯协议,加上网络上搜索的AForge.net扑克牌识别程序融合到一起,终于能够实现简单的扑克牌识别了。

工科男和机器人的扑克之战-uArm Metal机械臂体验记


工科男和机器人的扑克之战-uArm Metal机械臂体验记

识别受光线影响较大,下面这个识别时就因为反光造成了识别失误。

工科男和机器人的扑克之战-uArm Metal机械臂体验记

自动抓取的控制思路如下:

1.摄像头拍照时,固定在正上方,每次都是固定位置,这样图像上各点相对于机械臂的坐标系来说,也就是固定值了。

2.手动开动机械臂,确定摄像头在该位置时,分别采集画面的四个角坐在的坐标,并用软件进行记录。

3.识别扑克牌,同时找到其中心位置,确定中心点相对于图像的像素坐标,并和四角的坐标系进行联合计算,确定中心在机械臂坐标系中的坐标,

4.抓取后按照预定的路径将扑克牌放置到指定的位置,然后返回。依次循环即可。

视频观看下载地址

代码下载:

总结

经过这段时间的试用,感觉uArm机械臂的可玩性非常好,最大的优点就是开源,方便开发者进行自主创作,更灵活一些,另外其精致的做工也给人很深的印象。只是目前的入门门槛较高,需要具有专业知识才能玩转。在这里有些小建议,希望厂家进行考虑,以便使产品更加完善。

  1. 舵机更换为精度更高的数字舵机,具体型号可参考优必选的忍者龟系列机器人采用的舵机,对提高精度应该会有很大的帮助。

  2. 搭配蓝牙模块或者WiFi模块,官方开发手机APP,增加动作学习、标准动作实例,配合图形化的编程在加上手机或者电脑客户端的编程后三维模拟动作等功能,这样能够降低初学者的门槛,使得用户群更加广泛。

  3. 电源供电采用滑环式供电,通讯采用蓝牙或者WiFi等通讯,将使得机械臂更加灵活。线缆的减少也能提高美观程度。

  4. 开发如摄像头、3D打印头、激光雕刻头,使得整个产品链更丰富,用户能够选配更多的功能,方便开发。

分享:
爱搞机试用文章由网友完成,不代表本站观点。
科技始发站
普通
一个电气工程师,数码爱好者,喜欢尝鲜,擅长找BUG提建议。
分享微博 分享微信
爱搞机微信

爱搞机微信

搞机啦微信

搞机啦微信

推荐产品

抱歉,产品库没有您要找的产品

试用