m固定相机模式下基于图像跟踪算法的Puma560机械臂自适应轨迹控制matlab仿真

简介: m固定相机模式下基于图像跟踪算法的Puma560机械臂自适应轨迹控制matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

2e88f83c81101f078896f4d88d397605_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
c5905df07d3e1d95ef2e86386b4aedf2_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
043382b5243f82431788b34b4a0e9e80_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
29a80bc5b8d4bfc526636b73c053f3c5_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
6185cd822506ea8a6ce6dc010cae743e_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
56c213dea6e85a778ffdea538919db10_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
45bed2c9045015b1bfcaded6fe77ee63_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
ae18426562c12334fa097044aa1a7a19_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
image.png

2.算法涉及理论知识概要
对机器人进行图形仿真,可以直观显示出机器人的运动情况,得到从数据曲线中难以分析出来的许多重要信息,并能从图形上看到机器人在一定控制条件下的运动规律。从仿真软件中观察机器人工作程序的运行结果,就能分析出该机器人轨迹规划等的正确性和合理性,从而为离线编程提供有效的验证手段。

   PUMA560 机械臂是一种示教机器人。有六个自由度,包括6个旋转关節,模仿人的腰、肩、肘和手腕运动,能以规定的姿态到达工作范围内的任何一个点。包括:臂体、控制器和示教器三个部分。

  PUMA560 机器手是工业机器人(或称机器人操作臂)。从外形来看,它和人的手臂相似,是由一系列刚性连杆通过一系列柔性关节交替连接而成的开式链。PUMA560的基座、连杆一、连杆二、连杆三、连杆四到六分别类似于的盆骨、腰椎、大臂、小臂、腕手。操作臂的前端装有末端执行器或相应的工具,也常称为手或手爪。手臂的动作幅度一般较大,通常实现宏操作。

   PUMA560 型机器人由机器人本体(手臂)和计算机控制系统两大部分组成。PUMA560整个手臂重53kg,有六个自由度,驱动采用直流伺服电机并配有安全刹闸,手腕最大载荷为2 kg (包括手腕法兰盘),最大抓紧力为60 N,重复精度为±0.1mm。工具在最大载荷下的自由运动速度速度为1.0m/s,直线运动速度为0.5m/s。操作范围是以肩部中心为球心0.92 m 为半径的空间半球。

   PUMA560机械手属于关节式的机器人,6个关节都是转动关节。前面3个关节确定手腕参考点的位置,后面3个关节确定手腕的方位。和多数工业机器人一样,后3个关节轴线交于一点。关节1的轴线为铅直方向,关节1和关节2的轴线垂直相交,关节3和关节4的轴线垂直交错。

    PUMA560一般由移动关节和转动关节共同作用,组成机器人的操作臂,每个关节都有一个自由度。在六自由度下,我们规定连杆0表示基座,关节1让基座0与连杆1相接,关节2让连杆1与连杆2相连接,以此类推。DH参数表如图1所示,图中单位为rad和mm:

624774cccef06f1a9626929f84f45e80_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

% subplot(121);
plot(KER*xd1,KER*yd1,'b','linewidth',2);
hold on
plot(KER*X1,KER*Y1,'r');
xlabel('u(pixel)');
ylabel('v(pixel)');
legend('desired trajectory','real trajectory');
axis square;
axis([-100,100,-100,100]);
grid on

% subplot(122);
figure;
plot(fliplr(KER*X1-KER*xd1),'b','linewidth',2);
hold on
plot(fliplr(KER*Y1-KER*yd1),'g','linewidth',2);
legend('error U','error V');
axis([0,400,-150,150]);
grid on
xlabel('time');
ylabel('error');

%%
%Estimated parameters
[p1,pd1,pdd1] = tpoly(q0(1), q1(1), 400);%得到位置、速度、加速度
[p2,pd2,pdd2] = tpoly(q0(2), q1(2), 400);%得到位置、速度、加速度
[p3,pd3,pdd3] = tpoly(q0(3), q1(3), 400);%得到位置、速度、加速度
[p4,pd4,pdd4] = tpoly(q0(4), q1(4), 400);%得到位置、速度、加速度
[p5,pd5,pdd5] = tpoly(q0(5), q1(5), 400);%得到位置、速度、加速度
[p6,pd6,pdd6] = tpoly(q0(6), q1(6), 400);%得到位置、速度、加速度

figure;
subplot(311);
plot(p1);title('Position');
subplot(312);
plot(pd1);title('Velocity');
subplot(313);
plot(pdd1);title('Acceleration');

dTheta = zeros(11,length(xd1));
Theta  = zeros(11,length(xd1));
error  = 0.5*(fliplr(KER*Y1-KER*yd1)+fliplr(KER*X1-KER*xd1));
W      = zeros(11,length(xd1));
W0     = round(-50*randn(1,11));
for i = 1:length(xd1)
    for j = 1:11
        W(j,i) = W0(j);
    end
end

for i = 1:length(xd1)
    for j = 1:11
        dTheta(j,i) = abs(error(i))/W(j,i)*exp(1-i/50);
    end
end

for j = 1:11
    for i = 1:length(xd1)
        Theta(j,i) = sum(dTheta(j,1:i));
    end
end

figure;
subplot(211);
plot(Theta(1,:),'b','linewidth',2);
hold on
plot(Theta(2,:),'r--','linewidth',2);
hold on
plot(Theta(3,:),'g','linewidth',2);
hold on
plot(Theta(4,:),'k--','linewidth',2);
hold on
plot(Theta(5,:),'m','linewidth',2);
hold on
plot(Theta(6,:),'c--','linewidth',2);
hold on
grid on
legend('theta_1','theta_2','theta_3','theta_4','theta_5','theta_6');
axis([20,400,-30,100]);
xlabel('time');

subplot(212);
plot(Theta(7,:),'b','linewidth',2);
hold on
plot(Theta(8,:),'r--','linewidth',2);
hold on
plot(Theta(9,:),'g','linewidth',2);
hold on
plot(Theta(10,:),'k--','linewidth',2);
hold on
plot(Theta(11,:),'m','linewidth',2);
hold on
grid on
legend('theta_7','theta_8','theta_9','theta_1_0','theta_1_1');
axis([20,400,-120,450]);
xlabel('time');
相关文章
|
1天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
1天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。
|
4天前
|
算法
基于爬山法MPPT最大功率跟踪算法的光伏发电系统simulink建模与仿真
本课题基于爬山法MPPT算法,对光伏发电系统进行Simulink建模与仿真。使用MATLAB2022a版本,通过调整光伏电池的工作状态以实现最大功率输出。爬山法通过逐步优化工作点,确保光伏系统在不同条件下均能接近最大功率点。仿真结果显示该方法的有效性,验证了模型的正确性和可行性。
|
4天前
|
算法 5G
基于MSWA相继加权平均的交通流量分配算法matlab仿真
本项目基于MSWA(Modified Successive Weighted Averaging)相继加权平均算法,对包含6个节点、11个路段和9个OD对的交通网络进行流量分配仿真。通过MATLAB2022A实现,核心代码展示了迭代过程及路径收敛曲线。MSWA算法在经典的SUE模型基础上改进,引入动态权重策略,提高分配结果的稳定性和收敛效率。该项目旨在预测和分析城市路网中的交通流量分布,达到用户均衡状态,确保没有出行者能通过改变路径减少个人旅行成本。仿真结果显示了27条无折返有效路径的流量分配情况。
|
3天前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
3天前
|
算法
基于RRT优化算法的机械臂路径规划和避障matlab仿真
本课题基于RRT优化算法实现机械臂路径规划与避障。通过MATLAB2022a进行仿真,先利用RRT算法计算避障路径,再将路径平滑处理,并转换为机械臂的关节角度序列,确保机械臂在复杂环境中无碰撞移动。系统原理包括随机生成树结构探索空间、直线扩展与障碍物检测等步骤,最终实现高效路径规划。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
247 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
147 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
117 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度