机械臂杆长与偏置参数对工作空间及操控灵活性的影响分析

探讨了机械臂连杆长度对工作空间及操控灵活性的影响,通过MATLAB代码实现不同参数下的工作空间体积与操作度计算,为机械臂构型设计提供优化依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器人工作空间收到机械臂连杆长度的影响,而工作空间的大小与机械臂的操控灵活性又非正相关。基于优化理论,考虑不同杆长因素对工作空间和操控灵活性之间的关系。为构型的设计提供一定参考依据。文章初步实现这一思想,后续进行继续改进优化。

matlab代码:
clc;clear all;

d4min=0.3; d4max=1.5; d4Num=10; 
d5min=0.3; d5max=1.5; d5Num=10; 
a2min=0.3; a2max=1.5; a2Num=10; 

deltad4=(d4max-d4min)/d4Num;
deltad5=(d5max-d5min)/d5Num;
deltaa2=(a2max-a2min)/a2Num;
[d4]=d4min:deltad4:d4max;
[d5]=d5min:deltad5:d5max;
[a2]=a2min:deltaa2:a2max;

for i=1:1:d4Num
    for j=1:1:d5Num
        for k=1:1:a2Num
            [v,m]=myVolum(d4(i),d5(j),a2(k));
            if v==0||m==0
                break ;
            end            
            Resu(i*j*k,:)=[v,m,d4(i),d5(j),a2(k)];        
        end
    end
end
Resu(all(Resu==0,2),:)=[];  %去除全为零的行
fprintf('输出计算结果:\r\n')
fprintf('------------------------------------\r\n    Volum      m          d4        d5         a2')
Resu         
              
%%
function [v,m]=myVolum(d4,d5,a2)
d1=0;d2=0;d3=0;d6=0;
% d4=0.5;d5=1;
% a2=.5;
a3=0;a4=0;
d=[d1,d2,d3,d4,d5,d6];
a=[0,0,a2,a3,a4,0];
alp=[0,pi/2,0,pi/2,pi/2,-pi/2];
q=[0,0,0,pi/2,0,0];
%       theta    d           a        alpha     offset
L1=Link([0     d(1)         a(1)      alp(1)      0     ],'modified');
L2=Link([0     d(2)         a(2)      alp(2)      0     ],'modified');
L3=Link([0     d(3)         a(3)      alp(3)      0     ],'modified');
L4=Link([0     d(4)         a(4)      alp(4)      0     ],'modified');
L5=Link([0     d(5)         a(5)      alp(5)      0     ],'modified');
L6=Link([0     d(6)         a(6)      alp(6)      0     ],'modified');
myrobot=SerialLink([L1 L2 L3 L4 L5 L6],'name','modified-6R');
% figure(1)
% myrobot.plot(q);
% myrobot.teach();hold on;
m=myrobot.maniplty(q,'yoshikawa');
% J=myrobot.jacob0(q);J=J(1:3,:); plot_ellipse(J*J');  %operateablity ellipse
if m<0.5 v=0;    %对于操作度小于0.5的直接舍去工作空间的计算
    return ;
end
la=[-pi/2,pi/2];
lb=[0,      pi];
lc=[0,      pi];
ld=[0,      pi];
le=[-pi,    pi];
lf=[-pi,    pi];

N=30000;
A=unifrnd(la(1),la(2),[1,N]);
B=unifrnd(lb(1),lb(2),[1,N]);
C=unifrnd(lc(1),lc(2),[1,N]);
D=unifrnd(ld(1),ld(2),[1,N]);
E=unifrnd(le(1),le(2),[1,N]);
F=unifrnd(lf(1),lf(2),[1,N]);
G= cell(N, 6);
for n = 1:N
    G{n} =[A(n) B(n) C(n) D(n) E(n) F(n)];
end
H1=cell2mat(G);
T=double(myrobot.fkine(H1));
% figure(2)
% subplot(1,2,1)
% scatter3(squeeze(T(1,4,:)),squeeze(T(2,4,:)),squeeze(T(3,4,:)));  %random points
% myrobot.plot(q)
% hold on
xx(:,1)=T(1,4,:);
yy(:,1)=T(2,4,:);
zz(:,1)=T(3,4,:);

% subplot(1,2,2)
alp = 0.2;  region = 0.75;        %hole = 1; region = 0.75;
shp = alphaShape(xx,yy,zz,alp);      %generate point cloud envelope datas
% plot(shp);                        %show
v= volume(shp);
% title(['v= ',num2str(v) ,'v']) %compute the envelope volume
end

%% 
%绘图显示4维曲面
datas=Resu;
x=datas(:,3);y=datas(:,4);z=datas(:,5);v=datas(:,1);
[xi,yi]=meshgrid(x,y);
[xi,yi,zi]=griddata(x,y,z,xi,yi,'v4');
[xi,yi,vi]=griddata(x,y,v,xi,yi,'v4');
figure
surf(xi,yi,zi,vi);
shading interp;
hold on
scatter(x,y,z,'ro');
plot3(x,y,z,'ro')
grid on;
% shading flat
% shading faceted
colorbar
axis tight

输出计算结果:

------------------------------------

    Volum       m              d4          d5          a2
Resu =

    8.5901    0.5036    1.2600    0.7800    0.3000
    8.8428    0.5130    1.1400    0.9000    0.3000
    9.1855    0.5105    1.0200    1.0200    0.3000
    9.4455    0.5515    1.3800    0.7800    0.3000
    9.6539    0.5670    1.2600    0.9000    0.3000
    9.9568    0.5705    1.1400    1.0200    0.3000
   10.3966    0.6210    1.3800    0.9000    0.3000
   10.8041    0.6306    1.2600    1.0200    0.3000
   11.2243    0.6281    1.1400    1.1400    0.3000
   11.5987    0.6906    1.3800    1.0200    0.3000
   11.9490    0.6942    1.2600    1.1400    0.3000
   12.8679    0.7604    1.3800    1.1400    0.3000
   13.3560    0.7580    1.2600    1.2600    0.3000
   14.2303    0.8302    1.3800    1.2600    0.3000
   12.7404    0.7649    1.1400    0.9000    0.4200
   13.2435    0.7560    1.0200    1.0200    0.4200
   15.5346    0.9001    1.3800    1.3800    0.3000
   13.9165    0.8455    1.2600    0.9000    0.4200
   14.4656    0.8449    1.1400    1.0200    0.4200
   15.1265    0.9260    1.3800    0.9000    0.4200
   15.4837    0.9339    1.2600    1.0200    0.4200
   16.2439    0.9251    1.1400    1.1400    0.4200
   16.4666    1.0432    1.2600    0.7800    0.5400
   16.7363    1.0228    1.3800    1.0200    0.4200
   17.2362    1.0225    1.2600    1.1400    0.4200
   17.5748    1.0266    1.0200    1.0200    0.5400
   17.9761    1.1426    1.3800    0.7800    0.5400
   18.4775    1.1199    1.3800    1.1400    0.4200
   19.4510    1.1113    1.2600    1.2600    0.4200
   18.9135    1.1474    1.1400    1.0200    0.5400
   20.3798    1.2172    1.3800    1.2600    0.4200
   20.4980    1.2682    1.2600    1.0200    0.5400
   21.1719    1.2498    1.1400    1.1400    0.5400
   21.9624    1.3231    1.0200    1.0200    0.6600
   22.5688    1.3146    1.3800    1.3800    0.4200
   21.9614    1.3890    1.3800    1.0200    0.5400
   22.8850    1.3814    1.2600    1.1400    0.5400
   23.5176    1.4788    1.1400    1.0200    0.6600
   24.6821    1.7141    1.2600    0.7800    0.7800
   24.2349    1.5130    1.3800    1.1400    0.5400
   25.2861    1.4950    1.2600    1.2600    0.5400
   26.1057    1.6460    1.0200    1.0200    0.7800
   26.9864    1.8774    1.3800    0.7800    0.7800
   25.1694    1.6344    1.2600    1.0200    0.6600
   26.2841    1.6031    1.1400    1.1400    0.6600
   26.6723    1.6373    1.3800    1.2600    0.5400
   27.4375    1.7901    1.3800    1.0200    0.6600
   28.2179    1.7718    1.2600    1.1400    0.6600
   30.4491    1.9958    1.0200    1.0200    0.9000
   29.6138    1.7620    1.3800    1.3800    0.5400
   30.3641    2.0333    1.2600    1.0200    0.7800
   29.9648    1.9406    1.3800    1.1400    0.6600
   31.4899    1.9098    1.2600    1.2600    0.6600
   32.7612    2.2306    1.1400    1.0200    0.9000
   34.9279    2.3729    1.0200    1.0200    1.0200
   32.6540    2.2270    1.3800    1.0200    0.7800
   32.9205    2.0917    1.3800    1.2600    0.6600
   35.4862    2.4655    1.2600    1.0200    0.9000
   36.5399    2.3977    1.1400    1.1400    0.9000
   37.3039    2.6521    1.1400    1.0200    1.0200
   36.2533    2.2432    1.3800    1.3800    0.6600
   36.9761    2.3565    1.2600    1.2600    0.7800
   37.8554    2.7003    1.3800    1.0200    0.9000
   38.8441    2.6501    1.2600    1.1400    0.9000
   40.2153    2.9313    1.2600    1.0200    1.0200
   41.5861    2.8400    1.1400    1.1400    1.0200
   38.9453    2.5809    1.3800    1.2600    0.7800
   41.4322    2.9025    1.3800    1.1400    0.9000
   42.3889    2.8357    1.2600    1.2600    0.9000
   42.4813    3.2104    1.3800    1.0200    1.0200
   42.5680    2.7590    1.3800    1.3800    0.7800
   43.8616    3.1389    1.2600    1.1400    1.0200
   46.4366    3.3128    1.1400    1.1400    1.1400
   45.0935    3.1058    1.3800    1.2600    0.9000
   46.8139    3.4379    1.3800    1.1400    1.0200
   48.0944    3.3479    1.2600    1.2600    1.0200
   49.1066    3.6616    1.2600    1.1400    1.1400
   48.9555    3.3101    1.3800    1.3800    0.9000
   49.9600    3.6668    1.3800    1.2600    1.0200
   51.5439    4.0103    1.3800    1.1400    1.1400
   53.3726    3.8936    1.2600    1.2600    1.1400
   54.6575    3.8969    1.3800    1.3800    1.0200
   55.4739    4.2644    1.3800    1.2600    1.1400
   58.0997    4.4730    1.2600    1.2600    1.2600
   60.1194    4.5200    1.3800    1.3800    1.1400
   59.9018    4.8990    1.3800    1.2600    1.2600
   65.1913    5.1798    1.3800    1.3800    1.2600
   69.3312    5.8765    1.3800    1.3800    1.3800

在这里插入图片描述

ABB 服务例行程序 ABB 机器人有一些服务例行程序, 可以执行一系列常用服 务,如常用的负载测试和保养信息确认等。 一、操作前提 1、程序必须停止且必须有程序指针。 2、在同步模式下无法调用例行程序。 3、如果服务例行程序包含必须在自动模式中执行的部分, 在启动服务例行程序之前必须不能手动移动程序指针。 程序指针应在程序流程停止的位置。 二、调用服务例行程序 1、通过【PP 移至例行程序】选择一个例行程序; 2、选择【调试】-【调用例行程序】 ,即可打开服务例行程 序,根据需要选定例行程序进行操作; 三、服务例行程序介绍 1、AxisCalibration 轴校准 2、Bat_Shutdown 电池关闭 对于使用双电极触点电池如 SMB 单元, 可以在运输或库 存期间关闭串行测量电路板的电池以节省电池电力。这就需 要用到 Bat_shutdown 服务例行程序。 系统重新开启时将重置该功能。转数计数器将丢失,需 要更新,但校准值将会保留下来。 注意: 在启动服务例行程序 Bat_shutdown 之前, 运行机 器人到其校准位置。这样在睡眠模式之后更容易恢复。 3、BrakeCheck 制动检查 此服务例行程序用于验证机械制动器是否运行正常。 在运行的同时, 连续测试制动器每次测试费时 10-15 秒。 4、CalPendulum 校准 CalPendulum 例行程序是 ABB 机器人校准的标准方法。 这是实现标准类型校准的最精确方法,也是取得正确性能的 首荐方法。 5、Commutation 6、LoadIdentify 载荷测定 LoadIdentify 服务例行程序用于自动识别安装于机器人 之上的载荷数据,可以测定工具载荷和有效载荷。可确认的 数据是质量、重心和转动惯量。 也可以手动输入数据,但所需信息可能难以计算。 当指定不正确的负载数据时,其常常会引起以下后果: 机械将不会用于其最大容量; 路径准确性受损,包括过度风险; 机械结构过载风险。 7、ManLoadIdentify 8、ServiceInfo 系统服务信息 ServiceInfo 是基于 Service Information System( SIS) 的 服务例行程序,该软件功能可以简化机器人系统的维护。它 对机器人操作时间和模式进行监控,并于维护活动来临时提 示操作员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

easy_R

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值