运动学参数部分

MDH建模图(modify改进)

python六轴机器人逆运动 6轴机器人编程_文件下载

图一

机器人的尺寸如图二

python六轴机器人逆运动 6轴机器人编程_python六轴机器人逆运动_02

图二

对每个关节建立坐标系,以六轴机器人来说有第0个坐标系(基座坐标系),第1~6个坐标系(6个关节坐标系),第7个坐标系(执行端坐标系)

坐标系建立步骤

1)获取关节轴线交点:将每个关节的轴线延长,获取关节轴线交点。

2)确定基座标的原点位置和Z0轴的方向(一般选取垂直地面向上)

3)确定关节坐标系原点位置:根据关节轴线交代确定6个关节轴坐标系原点。确定i关节的坐标系原点就要找关节i的轴线与关节i+1的轴线的交点。

关节轴线相交:如图一,可以看到关节1的轴线和关节2的轴线相交,那么坐标系1的原点就定在交点处。

关节轴线平行:如图一,遇到关节2轴线和关节3轴线平行,那么关节2的坐标系原点就在关节2自身原点处就可以了。

4)确定Z轴:找到每个坐标系的原点后就需要确定每个关节的转向(右手定则),那么就可以确定每个关节轴的z轴指向。(默认z轴方向都是沿着轴线方向的)

5)确定X轴:Xi轴始终垂直于Zi轴和Zi+1轴所形成的平面

Z轴平行:Xi轴指向Zi+1轴的方向

Z轴相交:保证Xi轴垂直于Zi轴和Zi+1轴所形成的平面

6)确定Y轴:已知坐标系原点,X轴,Z轴(右手定则)。基座标的X轴和Y轴我随便取的,末端坐标系默认和关节6坐标系一样。

MDH参数辨识

顺序是由α和a再到d和θ

这是因为α和a是围绕X轴进行的,d和θ是围绕着Z轴进行的,这就符合MDH由X到Z的顺序。(SDH是由Z到X的顺序)

###我觉得这是重点(我自己理解错误卡了一段时间)

αi:绕着Xi-1轴,Zi-1轴旋转到Zi轴(根据右手定则确定正负)

ai:沿着Xi-1轴,Zi-1轴偏移到Zi轴(根据Xi-1轴方向确定正负)

di:沿着Zi轴,Xi-1轴偏移到Xi轴(根据Zi轴方向确定正负)

θi:绕着Zi轴,Xi-1轴旋转到Xi轴(根据右手定则确定正负)

MDH参数辨识如表一

i

αi

ai

di

θi

1

0

0

445.2

pi/2

2

pi/2

50

0

-pi/2

3

0

750

0

0

4

-pi/2

0

-748

0

5

pi/2

0

0

0

6

-pi/2

0

0

0

表一

matlab部分

下载好机器人工具箱,配置好相关设置。
1、将机器人工具箱文件下载

2、在“设置路径”这里“添加并包含子文件”,选择机器人工具箱文件,完成配置,参考图三

python六轴机器人逆运动 6轴机器人编程_机械臂_03

图三

输入代码需要注意的是输入顺序要按照θ,d,a,α的顺序进行输入

θ是没有任何用处的,如果有初始θ旋转要在offset处添加初始偏移量

代码如图四

clear;
clc;
%绕x关节角theta; 沿x连杆偏距d; 沿z连杆长度a; 绕z连杆转角alpha; sigma:0转动关节,1旋转关节 
L1=Link([0   445.2    0       0        0], 'modified'); 
L2=Link([0   0        50      -pi/2    0], 'modified');
L3=Link([0   0        750     0        0], 'modified');
L4=Link([0  -748      0       -pi/2    0], 'modified');
L5=Link([0   0        0       pi/2     0], 'modified');
L6=Link([0  -124.5    0       pi/2     0], 'modified');
%将六个轴组合起来
robot = SerialLink([L1, L2, L3, L4, L5, L6]); 
%机器人命名
robot.name='ChanHe';
robot.display();
%3维展示
view(3);
%机械臂显示初始位置
theta = [0, 0, 0, 0, 0, 0];
robot.plot(theta);
%示教模式
robot.teach;

图四