机器人学——机械臂运动轨迹规划实例
左式 = 右式,372c1- 227s1 = 0 ,求出 θ1= 59°左式: T01逆矩阵 * T06 * T56逆矩阵:右式 = T12 连乘至 T45:求得θ1=59°。
·
栗子

Cragi DH
标准DH
逆解

via points

条件设定


求末端的旋转矩阵

由z-y-x顺序构建的旋转矩阵反推欧拉角
http://t.csdnimg.cn/9tnke
由z-y-z顺序构建的旋转矩阵反推欧拉角
http://t.csdnimg.cn/GmsBH
c++代码
#include <iostream>
#include <cmath>
using namespace std;
int main(){
//求z(α)y(β)z(γ)构建的旋转矩阵,求三个角度
double x,y,pi=3.1415926,alpha=0,Beta=0,Gama=0;
double r[4][4];
for(int i=1;i<=3;++i){
for(int j=1;j<=3;++j)
cin >> r[i][j];
}
Beta = atan2(sqrt(pow(r[3][1],2)+pow(r[3][2],2)),r[3][3]) * 180/pi;
//特殊情况
if(Beta==0){
alpha = 0;
Gama = round(atan2(-r[1][2],r[1][1]));
}
else if(Beta == 180){
alpha = 0;
Gama = round(atan2(r[1][2],-r[1][1]));
}
else {
alpha = round(atan2(r[2][3]/sin(Beta),r[1][3]/sin(Beta)) * 180/pi);
Gama = round(atan2(r[3][2]/sin(Beta),-r[3][1]/sin(Beta)) * 180/pi);
}
cout << "alpha:" << alpha << endl;
cout << "beta:" << round(Beta) << endl;
cout << "gama:" << Gama << endl;
return 0;
}
从末端旋转矩阵
笛卡尔空间下的欧拉角,需减去180°才与DH坐标系下的姿态相同
轨迹规划——方法1(笛卡尔空间)







欧拉角解法


DH定义法与欧拉角度的异同





逆解流程:建立坐标系——构建DH表——写出系列变换矩阵——利用变换矩阵之间的关系构建等式(代数法)——逐步求出各个关节角度(以P2轨迹点位姿求θ1举例)
左式 = 右式,372c1- 227s1 = 0 ,求出 θ1= 59°
左式: T01逆矩阵 * T06 * T56逆矩阵:
右式 = T12 连乘至 T45:

求得θ1=59°
参考:http://t.csdnimg.cn/zX5mY
轨迹规划——方法2(关节空间)









总结





DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)