【视觉机械臂抓取入门教程】(三连多的话加快更新进度)第一次课 :流程总览 (机器
邓世昌的座驾
编辑于 2024年12月22日 12:31

【视觉机械臂抓取入门教程】第一次课 :流程总览

一.控制方式

开环控制的成立前提,建立在掌握自身机械机械结构的参数下。比如每一个刚体的长度,每一个关节的弯曲度。

有这些参数做参考才能进行运动学结算。控制机械臂末端达到目标坐标。

否则只能依靠感知部分的传感器,实时汇报当前机械臂末端。

比如说一个病人说自己胃疼,事先对人体结构了解的医生可以第一时间摸到病发处。没有经验的人只能用手(传感器)从肚子一个接一个地方的触摸,根据病人的反应和提示(传感器收集反馈的信息)确定有没有摸到位置,需要向哪一侧移动。

二.综合示例分析

步骤1—4:

相机坐标系是一个相对的参照物坐标系,没有办法与其他世界坐标系下的坐标兼容,那是因为作为参照物的相机可以随着搭载在其上的机械臂在空间移动。

如果相机的世界坐标不确定,那么物体的相机坐标系坐标就只能是相对坐标;但是如果相机的世界坐标确定,那么物体的相机坐标系坐标就可以是绝对坐标(世界坐标)。

很简单的道理,比如B某声称自己住在A某(参照物)家往西114m,往北514m(相对位置,基于参照物坐标系下的信息,可以类比同样是基于参照物坐标系的物体目标姿态)

如果不知道A某住哪里,也就是经纬度(世界坐标),自然无法通过相对位置得知B某住宅的经纬度,这些都只能是相对的位置。反之如果A的住宅经纬度已知,那我们便可以推导出B住宅的经纬度。

步骤5:

想象一下:

1.对于机器人的某一截手臂/节肢来说,是不是可以将它抽象成一个圆柱体?

2.进一步的来说,是不是可以抽象成一截线段?

3.更进一步来说,是否可以以线段的中点(又或者是第一步圆柱的中心点),在运动分析时作为代表?

4.我们在进行完抽象的运动分析之后,需要将抽象的模型,一步步还原成原始的形态

5.我们又知道,经过一个点可以画无数条直线

6.所以如果我们仅仅知道一个刚体的位置点(XW,YW,ZW)(第三步得到的点模型),只能确定刚体的空间位置,但是无法向上还原成线段/圆柱模型,因为我们不知道这个“线段/圆柱”是从“什么方向”,“穿过”这个中心点的。

7.介于此我们引入了姿态参数(α,β,γ),姿态的物理含义为:这一节机械臂/节肢抽象出的线段模型分别与x轴,y轴,z轴的夹角。空间中穿过一个定点,且与三维坐标轴夹角确定,只对应单独的一条直线。

8.所以,为了能够在分析时可实现由抽象到具体的还原,刚体的姿态信息是必不可少的。

三、机械臂部分(步骤6)

概念扫盲:

再次强调:末端执行器上的电机不算是一个自由度(比如说,机械臂末端上,控制机械爪开合的电机不算是一个自由度,他无法影响机械臂运动)

{①f1(J)=Xw

②f2(J)=Yw

③f3(J)=Zw

④f4(J)=α

⑤f5(J)=β

⑥f6(J)=γ}

注:J,Xw,Yw,Zw,α,β,γ均为向量组,分别包含了各个电机的同一项参数

以上方程组,从左往右解为运动学正解,反之为运动学逆解。

其中,三自由度和六自由度(的机械臂)比较特殊:

6自由度:由于未知数方程有6个,所以求逆解,6个电机旋转角度为未知数时,应该至少能有1组解。

  • 未知数个数<方程个数:可能无解或唯一解。

  • 未知数个数=方程个数:可能有唯一解或无穷多解。

  • 未知数个数>方程个数:通常会有无穷多解。

3自由度:适用于无需计算姿态的三个参数的应用情景(比如机械臂整体只在三维坐标轴的某个坐标轴面运动)。实际求逆解时只需要利用①②③计算三个未知数,也至少能求出一组解。

变换矩阵T:

我们前面提到了,分析一个三维物体,既需要空间坐标,也需要姿态信息。

这两组信息,既是状态信息,也是运动信息(如果这两组信息的值为运动时的变化量的话)。

以坐标(a,b,c)为例,即代表物体在坐标系的(a,b,c)处,也可以理解为物体从原点(0,0,0)出发,在x轴运动长度为a的距离,再在y轴运动长度为b的距离,再在z轴运动长度为c的距离,最后到达目标空间位置

同理目标姿态(α1,β1,γ1)为例,既可以理解为物体当前在空间中的姿态(相对于三个轴的倾斜情况),假设原始姿态为(α0,β0,γ0),也可以理解为物体在原始姿态上,在x轴方向翻转α1-α0,在y轴方向翻转β1-β0,在z轴方向翻转γ1-γ0

综上,处理表述物体状态之外,在分析物体运动时,也广泛地使用了姿态和坐标,帮助我们计算物体运动之后的新坐标和新姿态。

先记结论(相关的数学导出会在后面课程介绍),变换矩阵T(上图左下角)内中元素包括:

①物体目标姿态矩阵R

②物体世界坐标系下的目标位置矩阵P

③T中的0元素和1元素是凑齐次矩阵用的,使得矩阵求解更容易

以下是推导出的结论:

①A(上标)B(下标)T为坐标系a(的原点)经过平移,旋转,成为坐标系B(的原点)的变换矩阵

②如果已知某物体/某点在A坐标系下的世界坐标PA,则与可以得到该物体随A坐标系原点共同运动,在B坐标系内的世界坐标PB

(见下图)

我们回到机械臂这一课题,就可以发现这一结论是很有用的。

我们知道,机械臂整体是由若干节肢组合,节肢之间存在可以转动的关节。由此每一段节肢的空间位置和姿态都是可变的。

同时又可以发现,从底部关节(机械臂)开始,我们可以给每一级关节都建立一个坐标系,这个关节往上的机械臂部分在分析时保持静止(假设)。(我们将一个整体的运动中,各节机械臂的运动独立开来,每次分析只让对应产生坐标系的那一节机械臂移动,其他关节静止)

这样,我们就可以把建立坐标系的关节坐标视作该坐标系的原点,该关节往上的机械臂部分静止不动,与该坐标系的相对位置和姿态保持不变,这样当该关节移动可知的距离和角度后,我们就可以套用转换矩阵T的公式PA·T=PB得到该关节往上各节静止的机械臂新的世界坐标。

依此类推,我们从最底部的一节机械臂开始,自下而上分析,就可以得到每一节机械臂最终的世界坐标

自然的,我们推导一个结论,机械臂整体运动后:

末端节肢(刚体)的位置信息可由“末端节肢的初始位置信息”,连乘“从最底部开始,由下到上每一个关节的变换矩阵”得到

又或者说,末端节肢在运动过程中整体的变换矩阵T,等于从最底部开始,由下到上每一个关节的变换矩阵的连乘

相邻关节的一些物理参数时固定的,可知的,以及机械臂各关节(节肢)初始的位置和姿态也是可知的,是我们可以利用的。

经过一些数学变换,上述变换矩阵T可以简化,矩阵内包含的参数转换为一些机械臂的物理参数,我们只需要带入这些参数,即可完成变换矩阵T的计算。

*:表格与图片中的机械臂无关

ai:两个关节之间的偏移量(可以先不管)

αi:相邻两个电机旋转轴的夹角(固定)

di两个关节之间的距离(固定)

θj/init:电机要转动的角度变化量(未知量,待求) / 初始未转动时的角度

我们把机械臂上每一对彼此相邻的机械臂物理参数集合起来,就形成了DH表。

简化之后的变换矩阵T如上图左下角所示,我们只需要将DH表中的参数一一带入即可

所以,对于一个6DOF机械臂,第六节末端节肢的在运动中整体的变换矩阵T,等于从下往上各个关节的DH表参数分别代入得到的变换矩阵T连乘。

四、感知部分(获取末端节肢位置信息的传感器)

简单看看就好,详细内容后面再学

Oc:相机坐标系

Ow:世界坐标系