puma560的运动学及matlab实现(正解+逆解)

简介: puma560的运动学及matlab实现(正解+逆解)

正解源码

DEG = pi/180;

cta1=-70.4385

cta2=182.6918

cta3=-90.0000

cta4=-82.4708

cta5=-19.7387

cta6=-97.9933

T01=[cosd(cta1),-sind(cta1),0,0;

sind(cta1), cosd(cta1),0,0;
0,0,1,0;
0,0,0,1];
复制代码

T02=T01*[cosd(cta2),-sind(cta2),0,0;

0,0,1, 149.09;
-sind(cta2),-cosd(cta2),0,0;
0,0,0,1] ;
复制代码

T03=T02*[cosd(cta3),-sind(cta3),0,431.8;

sind(cta3), cosd(cta3),0,0;
0,0,1,0;
0,0,0,1];
复制代码

T04=T03*[cosd(cta4),-sind(cta4),0,20.32;

0,0,1,433.07;
-sind(cta4),-cosd(cta4),0,0;
0,0,0,1];
复制代码

T05=T04*[cosd(cta5),-sind(cta5),0,0;

0,0,-1,0;
sind(cta5), cosd(cta5), 0,0;
0,0,0,1];
复制代码

T06=T05*[cosd(cta6),-sind(cta6),0,0;

0,0,1,0;
-sind(cta6),-cosd(cta6),0,0;
0,0,0,1];
复制代码

O=T06*[0;0;0;1];

=====================================================

逆解源码

fid = fopen('inverseout.txt','w');%逆解的保存文件 %赋初值 T06 =[0.0000    1.0000    0.0000 -149.0900; 0.0000   -0.0000    1.0000  864.8700; 1.0000         0   -0.0000   20.3200; 0         0         0    1.0000] ; a0=0;  a1=0;  a2=431.8;  a3=20.32;  a4=0;  a5=0; d1=0;  d2=149.09;  d3=0;  d4=433.07;  d5=0; d6=0; n_x=T06(1);   n_y=T06(2);  n_z=T06(3); o_x=T06(5);   o_y=T06(6);  o_z=T06(7); a_x=T06(9);   a_y=T06(10);  a_z=T06(11); p_x=T06(13);  p_y=T06(14);   p_z=T06(15); disp(['八组解分别是:']); for i=1:2 for j=1:2 for k=1:2 %求解theta1(为弧度) sqr1=[sqrt(p_x^2+p_y^2-d2^2),-sqrt(p_x^2+p_y^2-d2^2)]; ta1=atan2(p_y,p_x)-atan2(d2,sqr1(i)); %求解theta3(弧度表示) k1=(p_x^2+p_y^2+p_z^2-a2^2-a3^2-d2^2-d4^2)/(2a2); sqr3=[sqrt(a3^2+d4^2-k1^2),-sqrt(a3^2+d4^2-k1^2) ]; ta3=atan2(a3,d4)-atan2(k1,sqr3(j)); fs23=-((a3+a2cos(ta3))p_z)+(cos(ta1)p_x+sin(ta1)p_y)(a2sin(ta3)-d4); sc23=(-d4+a2sin(ta3))p_z+(cos(ta1)p_x+sin(ta1)p_y)(a2cos(ta3)+a3); ta23=atan2( fs23,sc23); %求解theta2 (弧度表示) ta2=ta23-ta3; %求解theta4 (弧度表示) fs4=[ -a_xsin(ta1)+a_ycos(ta1),a_xsin(ta1)-a_ycos(ta1)]; sc4=[ -a_xcos(ta1)cos(ta23)-a_ysin(ta1)cos(ta23)+a_zsin(ta23), a_xcos(ta1)cos(ta23)+a_ysin(ta1)cos(ta23)-a_zsin(ta23)]; fprintf(fid,'%d,',sc4(1,1)); fprintf(fid,'\t'); fprintf(fid,'%d,',sc4(2,1)); fprintf(fid,'\t'); fprintf(fid,'%d,',fs4(1,1)); fprintf(fid,'\t'); fprintf(fid,'%d,',fs4(1,2)); fprintf(fid,'\t'); fprintf(fid,'\n'); ta4=atan2(fs4(k),sc4(k)); %求解theta5 (弧度表示) fs5=-a_x(cos(ta1)*cos(ta23)*cos(ta4)+sin(ta1)sin(ta4))... -a_y(sin(ta1)*cos(ta23)cos(ta4)-cos(ta1)sin(ta4))... +a_z(sin(ta23)cos(ta4)); sc5=a_x(-cos(ta1)sin(ta23))+a_y(-sin(ta1)sin(ta23))+a_z(-cos(ta23)); ta5=atan2(fs5,sc5); %求解theta6 (弧度表示) fs6=-n_x(cos(ta1)*cos(ta23)*sin(ta4)-sin(ta1)cos(ta4))... -n_y(sin(ta1)*cos(ta23)*sin(ta4)+cos(ta1)cos(ta4))... +n_z(sin(ta23)*sin(ta4));

sc6= n_x*(cos(ta1)*cos(ta23)*cos(ta4)+sin(ta1)*sin(ta4))*cos(ta5)...
              -n_x*cos(ta1)*sin(ta23)*sin(ta5)...
              +n_y*(sin(ta1)*cos(ta23)*cos(ta4)+cos(ta1)*sin(ta4))*cos(ta5)...
              -n_y*sin(ta1)*sin(ta23)*sin(ta5)...
              -n_z*(sin(ta23)*cos(ta4)*cos(ta5)+cos(ta23)*sin(ta5));
            ta6=atan2(fs6,sc6);
            %save 
            %将其化为角度
            Theta=[ta1 ta2 ta3 ta4 ta5 ta6]./pi*180
      end
  end   
复制代码

end


相关文章
|
编解码 算法
基于自适应运动补偿的双向运动估计算法matlab仿真
基于自适应运动补偿的双向运动估计算法matlab仿真
|
4月前
|
机器学习/深度学习 算法 机器人
基于Qlearning强化学习的2DoF机械臂运动控制系统matlab仿真
本项目基于Q-learning强化学习算法,实现对二自由度机械臂的运动控制仿真。通过MATLAB 2022a平台,验证了算法在状态、动作与奖励机制下的学习效果,展示了机械臂自主学习达到目标位置的能力。内容涵盖理论模型、算法原理与核心代码实现。
156 7
|
5月前
|
机器学习/深度学习 存储 算法
基于Qlearning强化学习的1DoF机械臂运动控制系统matlab仿真
本项目基于Q-learning强化学习算法,实现对单自由度机械臂的运动控制仿真。通过MATLAB 2022a平台验证算法效果,包含完整代码与仿真图像,具备良好可视化效果,适用于机器人控制与强化学习研究入门。
224 8
|
5月前
|
存储 算法 数据安全/隐私保护
基于FPGA的图像退化算法verilog实现,分别实现横向和纵向运动模糊,包括tb和MATLAB辅助验证
本项目基于FPGA实现图像运动模糊算法,包含横向与纵向模糊处理流程。使用Vivado 2019.2与MATLAB 2022A,通过一维卷积模拟点扩散函数,完成图像退化处理,并可在MATLAB中预览效果。
|
9月前
|
算法 机器人 数据安全/隐私保护
四自由度SCARA机器人的运动学和动力学matlab建模与仿真
本课题深入研究SCARA机器人系统,提出其动力学与运动学模型,并基于MATLAB Robotics Toolbox建立四自由度SCARA机器人仿真对象。通过理论结合仿真实验,实现了运动学正解、逆解及轨迹规划等功能,完成系统实验和算法验证。SCARA机器人以其平面关节结构实现快速定位与装配,在自动生产线中广泛应用,尤其在电子和汽车行业表现优异。使用D-H参数法进行结构建模,推导末端执行器的位姿,建立了机器人的运动学方程。
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
机器学习/深度学习 传感器 算法
【图像复原】基于维纳滤波+最小二乘+RC运动模糊图像复原附Matlab代码
【图像复原】基于维纳滤波+最小二乘+RC运动模糊图像复原附Matlab代码
|
机器学习/深度学习 传感器 安全
【运动学】基于matlab模拟鱼雷航行附Matlab代码
【运动学】基于matlab模拟鱼雷航行附Matlab代码
|
人工智能 算法 机器人
【目标识别】自适应多机器人编队,可在运动和能见度约束下包围和跟踪目标(Matlab代码实现)
【目标识别】自适应多机器人编队,可在运动和能见度约束下包围和跟踪目标(Matlab代码实现)
263 0
车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程
该课题在MATLAB2022a中建立了车辆行驶控制运动学模型并进行仿真,展示车辆动态行驶过程。系统仿真结果包含四张图像,显示了车辆在不同时间点的位置和轨迹。核心程序定义了车辆参数和初始条件,使用ode45求解器模拟车辆运动。车辆运动学模型基于几何学,研究车辆空间位姿、速度随时间变化,假设车辆在平面运动且轮胎无滑动。运动学方程描述位置、速度和加速度关系,模型预测控制用于优化轨迹跟踪,考虑道路曲率影响,提升弯道跟踪性能。

热门文章

最新文章