6轴机器人DH建模、仿真、正逆解代码 | 您所在的位置:网站首页 › 机械臂三维建模实验原理是什么意思 › 6轴机器人DH建模、仿真、正逆解代码 |
一.模型
二.MDH模型
使用修改DH模型、改进DH模型与标准DH模型主要区别在于末端,改进DH并没有建到工具坐标系,这里将4、5、6轴的坐标系都建在同一点,因此机器人连杆的参数只需要4个值a1、a2、a3、d4。a2、d4分别代表大臂与小臂的长度。要完全得到末端或者工具尖点的位姿还需要再右成一个工具坐标系6Te DH图 1604040111741.jpgDH参数表 θ d a α 0 0 0 0 0 0 109 -90 0 0 250.5 0 0 239.5 115.5 -90 0 0 0 90 0 0 0 -90MATLAB仿真效果 image.pngMATLAB代码 clear; clc; %建立机器人模型 % theta d a alpha offset ML1=Link([0 0 0 0 0 ],'modified'); ML2=Link([0 0 109 -pi/2 0 ],'modified'); ML3=Link([0 0 250.5 0 0 ],'modified'); ML4=Link([0 239.5 115.5 -pi/2 0 ],'modified'); ML5=Link([0 0 0 pi/2 0 ],'modified'); ML6=Link([0 0 0 -pi/2 0 ],'modified'); modrobot=SerialLink([ML1 ML2 ML3 ML4 ML5 ML6],'name','6axis'); teach(modrobot) 一般6轴机器人初始状态为大臂垂直与地面,主要是通过给2轴一个初始角度-90°来实现,下图第一个模型为各轴0°时的姿态,第二图模型为一般回零后机器人保持的姿态。 1 2 三.6轴机器人运动学正解 代码 #include /* 正解函数 * @joint 6轴各关节值结构体,单位弧度 * @return 返回一个4*4的位姿矩阵 */ Eigen::Matrix4d IFKinematics::fKine(const Joint & joint) { double j1 = joint.j1, j2 = joint.j2, j3 = joint.j3, j4 = joint.j4, j5 = joint.j5, j6 = joint.j6; double s1 = sin(j1), c1 = cos(j1), s2 = sin(j2), c2 = cos(j2), s3 = sin(j3), c3 = cos(j3), s4 = sin(j4), c4 = cos(j4), s5 = sin(j5), c5 = cos(j5), s6 = sin(j6), c6 = cos(j6); Eigen::Matrix4d T01, T12, T23, T34, T45, T56, T0_6; T01 |
CopyRight 2018-2019 实验室设备网 版权所有 |