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仿真
|
17天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程
该课题在MATLAB2022a中建立了车辆行驶控制运动学模型并进行仿真,展示车辆动态行驶过程。系统仿真结果包含四张图像,显示了车辆在不同时间点的位置和轨迹。核心程序定义了车辆参数和初始条件,使用ode45求解器模拟车辆运动。车辆运动学模型基于几何学,研究车辆空间位姿、速度随时间变化,假设车辆在平面运动且轮胎无滑动。运动学方程描述位置、速度和加速度关系,模型预测控制用于优化轨迹跟踪,考虑道路曲率影响,提升弯道跟踪性能。
|
5月前
|
机器学习/深度学习 数据采集 算法
m基于Googlenet深度学习的运动项目识别系统matlab仿真,包括GUI界面
**摘要:** 在MATLAB 2022a中,基于GoogLeNet的运动识别系统展示优秀性能。GoogLeNet,又称Inception网络,通过结合不同尺寸卷积核的Inception模块实现深度和宽度扩展,有效识别复杂视觉模式。系统流程包括数据预处理、特征提取(前端层学习基础特征,深层学习运动模式)、池化、Dropout及全连接层分类。MATLAB程序示例展示了选择图像、预处理后进行分类的交互过程。当按下按钮,图像被读取、调整大小并输入网络,最终通过classify函数得到预测标签。
37 0
|
机器学习/深度学习 传感器 算法
【图像复原】基于维纳滤波+最小二乘+RC运动模糊图像复原附Matlab代码
【图像复原】基于维纳滤波+最小二乘+RC运动模糊图像复原附Matlab代码
|
机器学习/深度学习 传感器 安全
【运动学】基于matlab模拟鱼雷航行附Matlab代码
【运动学】基于matlab模拟鱼雷航行附Matlab代码
|
人工智能 算法 机器人
【目标识别】自适应多机器人编队,可在运动和能见度约束下包围和跟踪目标(Matlab代码实现)
【目标识别】自适应多机器人编队,可在运动和能见度约束下包围和跟踪目标(Matlab代码实现)
|
6月前
|
算法 计算机视觉
基于傅里叶变换的运动模糊图像恢复算法matlab仿真
基于傅里叶变换的运动模糊图像恢复算法matlab仿真
|
机器学习/深度学习 传感器 算法
【运动学】基于CV、CA、CT三种运动模型轨迹附Matlab代码
【运动学】基于CV、CA、CT三种运动模型轨迹附Matlab代码
|
传感器 算法 机器人
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
110 0