[轉載] | 機械手臂設計方法
在工作期間搜尋資料時,找到的實用文章,目前先以轉載的方式記錄文章,等到有空閒時,再將此篇文章吸收應用,並拆解成不同自己想法的文章。文章來源
如何制作机械臂 - 丁有爽的文章 - 知乎关于机械臂:
机械臂可能是机器人中最为复杂的部分。这里,将重点讲述关于机械臂中的一些基本知识和制作方法。
为了对机械臂有一个直观的认识,下面是一个机械臂的小视频。
自由度:
自由度是机械臂中一个非常重要的概念,通常来讲,机械臂中的每一个关节均对应一个自由度,这个自由度可以是移动、旋转或者弯曲自由度。一个机械臂中的自由度一般等于机械臂中执行部件的个数,如电机、液压驱动机构等。在制作机械臂时,我们一般希望自由度越少越好,因为随着自由度增大,不仅执行部件数目增加,其计算量和成本会指数增长。
DH变换:
Denavit-Hartenberg(D-H)变换是对机器人连杆和关节进行建模的一种非常简单的方法。這种方法在机器人的每个连杆上都固定一个坐标系,然后用4×4的齐次变换矩阵来描述相邻两连杆的空间关系。通过依次变换可最终推导出末端执行器相对于基坐标系的位姿,从而建立机器人的运动学方程。
机械臂的每个关节只可以实现一种运动形式,如旋转或者移动。因而,机械臂关节分为转动关节和移动关节两类。下面是一些常用的机械臂的结构形式。
4自由度机械臂,包含4个转动关节,其中一个关节转动范围为360°。
5自由度机械臂,包含1个移动关节和4个转动关节。
5自由度机械臂,包含5个转动关节。
从上面可以看出,在相邻两个关节(自由度)之间存在一个连杆。机械臂主要包含关节和连杆两部分。
另外,需要注意的是,有时,在一个关节处会存在多个自由度。其中一个典型的例子是人的肩膀,人的肩膀可以在xyz三个方向转动,因而,在一个关节处具有三个自由度。这时我们认为两个自由度之间连杆长度为0。
人在肩膀处具有三个自由度
记下来的讨论,我们认为每个关节仅具有一个自由度,关节和自由度是等同的。
每个关节可以运行的范围称为其位形空间(Configuration Space),并不是所有的关节都可以进行360角度旋转,每个关节都有其运行范围。举例来说,人类手臂的旋转范围不超过200°。关节运行范围可能有执行机构能力、伺服电机最大角度以及物体的阻碍等进行限制。下图是一个位形空间的例子,每一个关节都在图中标明了其运行范围。
工作空间:
机械臂的工作空间(可达空间)指的是机械臂末段可以达到的范围。其由每个关节的位形空间、连杆长度决定。
由于机械臂的形态多种多样,因而,其工作空间也各有不同,下图是一个简单的三自由度机械臂的形态。
球形工作空间机械臂
移动机械臂
移动机械臂是机械臂的一种特殊情况,其包含一个传统的机械臂和一个移动平台,如下图,假设移动平台为差分驱动方式,机械臂包含5个自由度,那么移动机械臂共有7个自由度。
对机械臂进行受力分析的目的在于选择合适的电机。选择电机时,我们需要保证不仅使得电机能够支撑整个机械臂的重量,还要保证其具有完成要求任务的能力。
受力分析的第一步是绘制机械臂的结构图,如下图:
1. 每个连杆的重量;2.每个关节质量;3.机械臂负载质量;4,每个连杆的长度;
接下来我们开始计算每个驱动机构所需要的转矩:
其中,转矩=力*力臂;
如上图中关节1,其需要驱动连杆W1,W2,关节W4,负载W3,因而,其要求转矩为:
M1=L1/2*W1+L1*W4+(L1+L2/2)*W2+(L1+L3)*W3
对于关节2,其需要驱动连杆W2,负载W3,因而,其要求转矩为:
M2=L2/2*W2+L3*W3
从上式可以看出,对于每增加一个关节,那么转矩计算公式复杂度大量增加。连杆长度越短,那么电机需要转矩越小。
正向运动分析:
正向运动分析指的是给定各个关节角度和各个连杆长度,确定机械臂末段方向和位置。
以下图机械臂为例,给定各个关节角度和各个连杆长度,计算末段位置。
关节J1:x0=0,y0=L0;
关节J2:x1=L1*cos(psi),y1=L1*sin(psi);
关节J3: x2=L2*sin(theta),y2=L2*cos(theta);
机械臂末段位置为:
x0+x1+x2,y0+y1+y2;
机械臂末段角度为:theta+psi
逆向运动学:
逆向运动学是正向运动学的相反过程,即根据末段位置,确定各个关节角度。举例来说,机械臂看到了一份报纸,想要抓住它,那么应该如何操纵机械臂各个关节呢?
相对于正向运动学,逆向运动学要复杂的多,一般可以根据几何关系得到。对于前述的机械臂,其逆向运动学方程如下:
psi=arccos((x^2+y^2-La^2-L2^2)/(2*L1*L2));
theta=arcsin((y*(L1+L2*c2)-x*L2*s2)/(x^2+y^2));
其中:
c2=(x^2+y^2-L1^2-L2^2)/(2*L1*L2);
s2=sqrt(1-c2^2)
那么为什么逆运动学计算会如此复杂呢?
首先,对于一个特定的机械臂,可能有很多种方式达到给定位置,因而,这时就需要确定一个最优的方式(基于最省力,路程最近等等)。
其次,对于一个特定的机械臂,如果目标在工作空间之外,那么逆运动学将没有结果。
奇异性,如果在运动过程中,要求某一点的加速度为无穷大,那么由于电机出力限制,机械臂也无法完成任务,达到给定点。
最后,随着机械臂自由度增加,逆运动学计算量指数增加,计算复杂度非常大。
轨迹规划:
轨迹规划同样是一个非常复杂的过程,这里我们将仅仅做一些初步的解释。
这里,我们假定机械臂为三维空间内运动的移动机械臂。机械臂的末段将会跟随移动平台的移动遍历整个空间,那么,怎么才能保证机械臂能够避开所有的障碍物呢?
假设我们需要机械臂绘制一条直线,那么机械臂应该怎么做?此时,我们应该在直线上分别取很多点,然后使得机械臂末段依次通过这些点,同样,采用这种方法,机械臂不仅可以绘制直线,也可以绘制曲线。
在一些专业的机械臂上,我们只需要给定机械臂的出发点和终止点,然后告诉机械臂以何种方式到达(最快时间、最短距离等),机械臂会按照其轨迹规划算法,完成机械臂路径的规划。
机械臂末段转速:
同样,机械臂末段转速的计算也非常复杂,这里仅给出一些基本的方法。
计算机械臂末段转速最简单的方法是假定机械臂末段围绕一个半径为r的圆柱旋转,机械臂末段沿y方向旋转,因而,机械臂末段速度为:
机械臂末端速度=2*pi*r*转速;
但是,需要注意的是,机械臂末段并不仅仅围绕基座做旋转运动,而是可以在各个方向运动,机械臂末段可以沿直线、曲线或者任意轨迹动作。
在操作机械臂时,任意两点之间最快的路径通常不是直线。假设两个机械臂关节采用不同的驱动电机或者负载不同,那么它们的最大转速也就不同。因而,当操纵机械臂从一点运动到另一点时,我们有两个选择,1.使得机械臂末段沿直线行走。2.使得机械臂的每个关节都采用其最大转速行走-可能会导致机械臂末段在两点之间摆动前进。
在下面的图形中,假设机械臂的末段需要从蓝色点运行至红色点。在上面的轨迹规划方法中,机械臂末段沿直线行走,在下面的轨迹规划方法中,机械臂末段按照最短时间运行。
这取决于很多因素,假如机械臂的负载较重,那么我们希望机械臂运行距离越短越好;而如果机械臂负载较轻,那么此时我们希望机械臂运行越快越好。
现在,我们假设我们希望机械表末段以一定的转速旋转,那么关节处需要多大的转矩呢?
同样,以下面的机械臂结构图为例:
首先,关节J0的旋转不受重力的影响,因而我们只需要考虑惯量和转矩。转矩计算公式如下:
转矩=转动惯量*角加速度;
将其应用到我们这里得到;
转矩=(质量*力臂^2)*(转速变化/时间);
其中:
转速变化=转速1-转速0;
转速=角度变化/时间;
上面的计算过程比较复杂,其中同样采用的方法为雅可比矩阵计算方法。
机械臂下垂:
机械臂下垂是机械臂设计中面临的一个常见的问题。通常发生在,当机械臂连杆较长时,机械臂的弯曲。因而,当设计机械臂时,应该尽量采用轻质材料。如果有条件,可以做一下有限元分析。
另外,在设计过程中,尽量把电机等较重的元器件靠近基座。可以考到,在许多工业机械臂中,为了将电机靠近记作,中间关节通常采用皮带传动方法传递动力。
传感器:
大部分的机械臂仅仅有内部传感器,如编码器等。但是,随着机器人的发展,现在越来越多的视频、图像、触觉等传感器被应用于机械臂中。
一个没有视觉传感器的机械臂就像一个闭着眼睛的艺术家。采用一些基本的视觉反馈,机械臂可以在任意两点之间移动而不用其固定的坐标系。
触觉传感器:触觉传感器往往在机械臂环路中有人的参与,触觉感知可以通过一种特殊的手套或者一个小型化的模型实现。手术机器人、助残机器人往往有触觉传感器的参与。
接触传感器:接触传感器可以通过检测接触传感器电流或者电压的大小判断机械臂是否已经成功拿到物体或者是否与物体接触过紧或者过松。
轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。
0 留言
不一定能即時回覆問題,有時間會盡量答覆。