博主曾经以五自由度机械臂为基础做过本科的毕业设计,毕设的大部分精力是视觉操控部分 但是限于时间短, 任务重。 最后仅仅实现了简单的操控, 并没有涉及到精确地机械臂动作规划。 由于我打算将我的本科毕设继续完善升级—— 以此作为我研究生期间的毕设(加入机器学习,视觉检测,动作规划等方面)。 所以认真改装升级我的机械臂设备以及重新建模并进行精确地动作规划是非常有必要的。
机械臂是机器人技术领域中使用最广泛的自动机械装置。它可以在工业制造,医疗,娱乐服务,军事,半导体制造和太空探索中看到。虽然它们的形状不同,但它们都具有共同的特征,即它们可以接受指令并准确地定位三维(或二维)空间中的点以进行操作。
六自由度机械手臂,顾名思义,由六个关节组成,由伺服电机机械臂驱动。既然它是手臂,那么就有几个关节,可以想象我们的人体手臂,除了肩膀,肘部,手腕三个关节外,加上手指的关节,还有很多关节。我们的机器人手臂也是如此,它使用六个伺服电机来实现简单的手部结构。除了没有人的关节外,还有一些神经组织和神经系统缺失。然而,已经开发出具有“灵巧手”(其可以完成复杂的组装,处理或手动抓取蛋的手)的“人形”机器。
自由度: 自由度是机器人的一个重要技术指标,它是由机器人的结构决定的,并直接影响到机器人的机动性。
物体上任何一点都与坐标轴的正交集合有关。物体能够对坐标系进行独立运动的数目称为自由度(DOF,degree of freedom)。如下图所示:
沿着坐标轴ox、oy和oz的三个平移运动T1,T2和T3;
绕着坐标轴ox、oy和oz的三个旋转运动R1,R2和R3。
这意味着物体能够运用三个平移和三个旋转,相对于坐标系进行定向和运动。
一个物体可以相对于坐标系,进行三个平移和三个旋转运动,即一个简单的物体有六个自由度。
机器人的自由度 是指机器人所具有的独立坐标轴运动的数目,但一般不包括手部(末端操作器)的开合自由度。自由度表示了机器人动作灵活的尺度,但也不是自由度越多越好。因为随着自由度的增加,其结构也会变得更加复杂。
和电路一样,机器人的自由度也有串并联之分,它们之间的区别在哪呢?举一个简单的例子,串联机器人像是我们用一只手拿起一个东西,并联机器人就相当于两个手一起端一个东西。并联机器人具有刚度大、承载能力强、精度高、末端件惯性小等优点,串联机器人具有结构简单、控制简单、运动空间大等优点。
而关于机器人自由度的完美诠释,我们举个例子。
串联机器人–7自由度机械臂
一般来讲,由之前我们所讲的刚体的自由度来看,6自由度的机械臂已经足够确定末端物体的位姿,那为什么还要增加一个冗余自由度呢?先看一个有趣的例子。
首先介绍一个定理:
6个自由度的机械手,在空间中无法在保持末端机构的三维位置不变的情况下从一个构型变换到另一个构型。
这个定理乍一看很不好理解,可以考虑一个更简单的情况:
如上图所示, 六自由度机械臂如果想改变姿势的同时(由左姿势摆动到右姿势)而时刻保持末端位置不变是不可能的。
但是人的手臂是完全可以实现的! 想象一下, 在日常生活中, 你拿着一个水杯, 你完全可以在摆动(旋转)手臂的同时而保持水杯在三维坐标中保持不动———防止杯中的水洒下。
这是为什么呢? 分析人体手臂后我们可以清晰的发现人体手臂的结构是七自由度! 如下图所示
上图为人的手臂自由度剖析图,除去末端手指的自由度,这恰好也是7个自由度。如果我们把上图分解为一个个转动副的关节,便可以得到下面的数学模型:
由上图解析可得出结论,也许这就是上帝在创造人类的鬼斧神工之处,每一种生物体完美的立体结构都可以为我们创造机器人带来灵感。那么为什么上帝多为我们的手臂创造了七个自由度而不是六个呢?
关于它的答案有特别学术的解释:
改善运动学特性(奇异构型、关节位移超限、工作环境中存在的障碍);
改善动力学特性(七轴机器人可以实现关节力矩的再分配,使整个机器人的力矩分配均匀合理);
容错性(即使有一个关节失效,还可以继续正常工作)。
总结来说: 七自由度机器人可以实现不改变末端位置,只改变机械臂姿态。这对于6自由度机器人来说是无法实现的。 但是要实现驱动机械臂末端到达到任意有效位置来时, 六自由度已经足够了。
楼主曾经在某宝买过一套小型的教学五自由度机械臂部件。由于在开发过程中发现了五自由度的诸多不便, 决定自己进行改装并再加一个自由度。 由于此款机械臂是由简单的机械结构组装而成, 所以原料多, 改装的自由度大, 易于开发者改装学习机械别的机械结构。
五自由度机械臂成品如上图所示,感兴趣的朋友可以参考一下。 博主只买了舵机与空支架配件以及一个简单的夹手。驱动电路板用了博主自己设计的电路板(后面会详细介绍)所以用没买他们家的驱动电路, 只买了一套空架子。 链接如下:乐幻索尔机械臂。
虽然他们家的机械臂在某宝上的简介都标明是六自由度机械臂, 但是买回来组装后发现只有五个自由度。。。 看来客服是把夹手的舵机也算成一个自由度了。 由于本科毕业设计的机械臂部分只要求简单的机械臂操纵, 并没有涉及到运动学的算法部分。 所以当时就仅仅实现了简单的操控五自由度机械臂, 没有研究到运动学算法。
既然现在要抽出时间要好好研究机械臂的运动学算法了, 所以将这款机械臂升级成六自由度机械臂就能更好的辅助学习测试。So, 又在某宝买了几个舵机与支架, 开始改装。 最后选定了一个舵机支架, 一个L型架, 两个长U型架, 和两个短U支架。 最后为了稳固加重了的机械臂,又加了一个旋转云台。
经过参考多个六自由度机械臂样例后, 我选择在原五自由度机械臂的第三,四轴之间加一个垂直旋转轴作为新的自由度。 加完云台以及新的自由度后, 改装成果如下图所示(银色部分为新增自由度):
最终六自由度机械臂效果图如下:
改装准备OK, 下一步开始测量建模, 为运动学算法做准备。