机械臂——D-H参数标定

最近重新学习机器人方面的知识,想到一年以前在学校选修《机器人学技术基础》这门课的时候,老师虽然讲机器人的各个方面的知识都讲到了,但只是浮光绿影的的提到,并没有真正讲到深处,我的理解也没有更加深入,导致总是知道有这个知识点,但总是用起来不顺手,有时候还会完全迷惑。最近重新看了Graig的《机器人学导论》导论的中文版,里面对D-H参数的讲解比较详细,更重要的是举出了详细的案例。

  其实D—H参数是有两种标定方式的,一种是标准的D-H参数法,还有一种是改进的D—H参数法,大部分书上现在都用到的是改进的D-H法,但也有一些书上用的是标准的D-H法,但是D-H法只是一种对连杆的坐标描述,最后的结果往往相同的参数就会有相同的物理含义在里面。不同的书上使用不同表示方法往往会给看书的人带来不小的迷惑,我就有一段时间非常迷茫,自己后来干脆就不管什么标准的D-H法,就按照大部分书上使用的改进的D-H方法去标定,只要掌握一种方法并清楚里面参数的含义就能方便地列写参数表,进而写出机器人操作臂的运动变换方程。

  首先对连杆做一简单介绍,在机器人运动学中,所谓连杆就是具有一定运动学功能的刚性杆,这和《机械原理》中的构件有相似的性质,就是它是运动的最小单元,而且由于它本身的形状和大小会对运动有影响。至于刚性,就是在运动学阶段我们认为连杆受力不会发生变形(事实上机器人在操作臂在运动过程中受力情况复杂,一定会发生变形)。在机器人操作臂中,研究的内容主要是一系列连杆通过关节连接起来而组成的空间开式运动链。这是最早的现代机器人的模型,也是在工业中应用最广泛的机器人,就是我们常说的工业机械臂。另一个重要的概念就是关节,在这里关节就是将两个机械臂连接起来的部分,而这个连接不是固定连接,而是两个连杆之间只能发生有限的相对运动。比如一个连杆绕一个连杆的转动,或者一个连杆沿着另一个连杆的某一个方向平动,在常见的工业机器人中转动平动是最基本的也是最常见的运动,基本到基本上没有其它形式的运动了。

  好了,现在开始来研究我们的第一个研究对象---连杆,描述的连杆参数有两个,无论形状多么复杂的连杆,其实它在运动的能提供的运动学功能是可以用两个参数确定的,一个是连杆的长度a,另一个是连杆的转角α,下图为我们详细地解释了这两个参数的意义:

图片来源于《机器人学导论》,如图中所示,一个连杆两端连接着有两个关节,为了描述起来方便,我们规定连杆i左端的关节是i,这样做的好处是从基座为连杆0,而基座和连杆1之间的关节就是关节1,而确实关节1就是机器人的第一个关节,这样描述起来就会方便很多,一个n自由度的机械臂就有n个关节和n+1个连杆,算上基座0,就像我们在《机械原理》中将大地也作为一个构件一样的道理。对于图中的连杆i-1,其左边对应的关节轴i-1,右边对应的是关节轴i,两个关节轴之间的关系便由这个连杆确定,在三维空间中,描述两个关节轴线之间的位置关系用他们之间的距离和角度就可以了,图中ai-1就是两条空间直线的公垂线,在三维空间中总是可以找到两条直线之间的公垂线,如果他们平行则有无数条,如果他们异面,则有一条,如果他们相交,则公垂线就是一个点了,总之,关节轴线i-1和关节轴线i的距离是由连杆i-1来确定的。除了描述两条轴线之间的距离,我们还需要描述这两条轴线之间的夹角,夹角的定义是关节轴i-1绕着公垂线ai-1转动到和关节轴i平行是所转过的角度αi-1按照右手法则转动,公垂线ai-1方向定义为从轴i-1指向轴i。注意到在这种描述中,连杆长度a和连杆转角α都是下标为i-1的,这是因为我们连杆也是第i-1根连杆,是一致的。

  上面我使用了两个参数完全地将一个连杆的运动学特殊性描述出来了,接下来就需要思考如何描述相邻两个连杆之间的关系,两个连杆之间是通过一个关节连接的,我们很容易想到描述连杆之间的关系实际上反映的是这个关节轴的一些特性。继续看图说话:

上图中,连杆i-1和连杆i通过关节轴i相互连接,我们规定,沿着关节轴i的轴向,将连杆i-1的长度ai-1移动到和连杆i的长度ai的距离叫做连杆偏距di ,这个参数反映了两个连杆沿着轴i的距离。同时,我们从图中看到连杆i-1和连杆i的长度线并不共线,这说明这两条线之间存在夹角,我们规定绕轴i将长度线ai-1的延长线转动到和长度线ai 转过的角度叫做关节角θi, 关节角反映了两个连杆在关节轴处的夹角。通过连杆偏距和关节角就可以将两个相邻连杆之间的相对位置描述清楚。因此,对于一个连杆,需要有四个参数对其进行描述,两个参数描述连杆本身的特性,另外两个参数描述该连杆和上一个连杆之间的关系。其中连杆偏距di关节角θi是由关节决定的,反映关节的运动学特性。如果关节i是一个转动关节,那么连杆i-1连杆i之间沿着关节轴线i距离di就是一个定值,在设计好机器人中该值不会再改变,而θi会发生改变,因此θi称为关节变量,意思就是机器人在运动过程中它会发生变化。同样的,如果关节i是一个移动关节,那么连杆i-1 和连杆i之间的夹角θi就是一个定值,变化的是两个连杆沿着关节轴线的距离di,此时di被称为关节变量

  为了在引入数学上的描述,我规定们给连杆上附件上坐标系,我们规定,在每个连杆上固连一个坐标系,对应于连杆i的坐标系就是{i},规定坐标系{i} 的Zi轴沿着关节轴线i,坐标原点在长度线ai和关节轴线的交点处,沿着长度线ai 由关节轴线i指向关节轴线i-1 是Xi的正方向。Yi按照右手螺旋定则确定。连杆坐标系表示在图中如下所示:

  当按照上述的要求定义好坐标系之后,四个连杆参数可以有在坐标系中的描述:

   ai = 沿着Xi 轴从Zi 移动到Zi+1的距离。

  αi = 绕着Xi轴从Zi转到Zi+1的角度。

  di = 沿着Zi轴从Xi-1到Xi的距离。

  θi = 绕着Zi轴从Xi-1到Xi的角度。

  现在,我们可以对一个机器人操作臂进行描述了,首先看一个平面三连杆机械臂。

  

                                           

  如上两图所示,对于一个平面三连杆机械臂,规定其Z轴垂直于纸面向外,可以得到如图的坐标表示方法。

  下面列写其D-H参数表:

  

  从上表就可以列写出机器人的运动学方程,可以说机器人(机械臂)的运动分析很大一部分工作是对机械臂进行参数标定。值得注意的是,参数标定方法不唯一,不同的人有不同的参数标定方式。

### 机械固定矩阵测量方法 对于机械的固定矩阵测量,通常涉及多个步骤来确保精确度和可靠性。此过程不仅用于校准还用于获取位置数据。 #### 使用多传感器融合提高定位精度 在抓取机械末端定位过程中,由于环境因素的影响,单纯依靠单一类型的传感器难以达到理想的定位效果[^1]。因此采用多种传感器的数据融合技术成为提升定位性能的有效手段。具体来说,可以建立基于运动学模型以及考虑末端位姿误差等因素在内的综合误差修正机制,利用遗传算法优化参数设置从而获得更精准的位置信息。 #### 手眼标定法确定相对姿态 针对带有视觉系统的机械而言,“手眼”标定一种常用的方法用来估计安装于外部的摄像机相对于机器人基座的具体方位关系[^2]。这一操作完成后便能借助前向运动学原理推导出末端执行部件对应整个装置底部参照框架下的确切状态描述——即所谓的均质变换矩阵\(TEndEffectorToBase\)。 #### 工具坐标系到工作台坐标的转换 当涉及到具体的作业任务时,则需进一步明确夹爪或其他工具所在的空间位置。这可通过构建并解析连接两者之间的几何关联—亦即是说要算得从工具坐标系\({T}\)至平台设定的标准参考体系\({S}\)间的映射表达式[^3]。一旦掌握了上述提到的各种转换关系之后,在实际应用场景下就可方便快捷地读取出所需的目标物体的确切坐标数值了。 ```matlab % 计算 TEndEffectorToBase 的 MATLAB 示例代码 function T = calculate_T_end_effector_to_base(joint_angles, dh_parameters) % joint_angles 是关节角度数组 % dh_parameters 是 D-H 参数表 num_joints = length(joint_angles); T = eye(4); % 初始化单位矩阵作为起始条件 for i = 1:num_joints alpha_i = dh_parameters(i, 1); a_i = dh_parameters(i, 2); d_i = dh_parameters(i, 3); theta_i = joint_angles(i) + dh_parameters(i, 4); A_i = [ cos(theta_i), -sin(theta_i)*cos(alpha_i), sin(theta_i)*sin(alpha_i), a_i*cos(theta_i); sin(theta_i), cos(theta_i)*cos(alpha_i), -cos(theta_i)*sin(alpha_i), a_i*sin(theta_i); 0 , sin(alpha_i) , cos(alpha_i) , d_i; 0 , 0 , 0 , 1]; T = T * A_i; % 更新总变换矩阵 end end ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值