赞
踩
在机械工程中,Denavit-Hartenberg 参数(也称为 DH 参数)是与一个特定约定相关联的四个参数,用于将参考坐标系附加到空间运动链或机器人操作臂的连杆上。
“Jacques Denavit and Richard Hartenberg introduced this convention in 1955 in order to standardize the coordinate frames for spatial linkages.”
目录
在机器人技术应用中,一个常用的选择参考框架的惯例是由雅克 · 德纳维特和理查德 · s · 哈滕伯格提出的 Denavit 和哈滕伯格(d-h)公约。在这个惯例中,坐标框架被连接到两个连杆之间的连杆上,这样一个变换与连杆[ z ]相关,而第二个变换与连杆[ x ]相关。由 n 个连杆组成的串联机器人的坐标变换形成了机器人的运动学方程,
where [T] is the transformation locating the end-link.
MATLAB Robotics Toolbox : https://www.mathworks.com/help/robotics/ug/check-for-environmental-collisions-with-manipulators.html
- clear all;
- clc;
- %Link 类函数
- % d_i连杆偏距:ai与ai-1两轴线公垂线之间的距离
- % a_i连杆长度:ai-1与ai两关节轴线的公垂线方向上的距离
- % alpha_i连杆转角:ai-1与ai两关节轴线投影的夹角
- % theta_i关节角:ai关节动角度
-
- L1 = Link('d', 1, 'a', 1, 'alpha', pi/2);
- L2 = Link('d', 0, 'a', 1, 'alpha', 0,'offset',pi/2);
- L3 = Link('d', 1, 'a', 0, 'alpha', pi/2,'offset',pi/4);
- L4 = Link('d', 2, 'a', 0, 'alpha', -pi/2);
- L5 = Link('d', 0, 'a', 0, 'alpha', pi/2);
- L6 = Link('d', 1, 'a', 0, 'alpha', 0);
- b=isrevolute(L1); %Link 类函数
- robot=SerialLink([L1,L2,L3,L4,L5,L6]); %SerialLink 类函数
- robot.name='带球形腕的拟人臂'; %SerialLink 属性值
- robot.display(); %Link 类函数
- theta=[0 0 0 0 0 0];
- robot.plot(theta); %SerialLink 类函数
-
- theta1=[pi/4,-pi/3,pi/6,pi/4,-pi/3,pi/6];
- p0=robot.fkine(theta);
- p1=robot.fkine(theta1);
- s=robot.A([4 5 6],theta);
- cchain=robot.trchain;
- q=robot.getpos();
-
- q2=robot.ikine(p1); %逆运动学
- j0=robot.jacob0(q2); %雅可比矩阵
可以看出,逆解和原始的角度并不相同。
机器人工具箱中的比运动学函数并不精确,同时机器人通常有多组逆解,而ikine函数智能求出一组。
对满足pieper条件的机器人,最好自己求出他的解析解,利用解析解来求得多组逆解,不仅速度快,而且更精确。
参考:
Wiki 百科: https://en.wikipedia.org/wiki/Denavit%E2%80%93Hartenberg_parameters
MATLAB D-H : https://blog.csdn.net/xuehuafeiwu123/article/details/52668916
D-H及运动学https://blog.csdn.net/qq_26565435/article/details/91460988
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。