💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
2DOF 机械臂在工业自动化、科研实验等领域有广泛应用。高效的路径规划可以确保机械臂准确、快速地完成特定任务,提高生产效率和操作精度。路径规划目标为机械臂找到一条从起始位置到目标位置的最优或可行路径,同时要考虑避免与障碍物发生碰撞、满足运动学和动力学约束等。 关节空间规划:直接在机械臂的关节角度空间中进行规划。常见方法有插值法,如线性插值、三次样条插值等,通过确定关节角度随时间的变化来生成路径。应用场景可应用于简单的物料搬运、装配作业、实验室操作等场景,能够提高生产的自动化程度和操作的准确性。 随着技术的不断进步,未来 2DOF 机械臂路径规划将更加智能化,结合人工智能算法和传感器技术,实现更高效、灵活和自适应的路径规划。
📚2 运行结果
主函数部分代码:
clc;
clear all;
close all;
%% creating circular obstacles and plotting in theta space
% circ1e 1
[c1, c2,c1_b,c2_b]=circle(-1.625,-0.3,0.25);
PLOT_theta(c1,c2,30,-110,180,0);
PLOT_theta(c1_b,c2_b,30,-110,180,0);
PLOT_theta(c1+360,c2,30,-110,180,0);
PLOT_theta(c1_b+360,c2_b,30,-110,180,0);
%circle 2
[c3, c4,c3_b,c4_b]=circle(0.75,0,0.125);
PLOT_theta(c3,c4,30,-110,180,0);
PLOT_theta(c3_b,c4_b,30,-110,180,0);
PLOT_theta(c3+360,c4,30,-110,180,0);
PLOT_theta(c3_b+360,c4_b,30,-110,180,0);
%circle 3
[c5, c6,c5_b,c6_b]=circle(1.125,0,0.125);
PLOT_theta(c5,c6,30,-110,180,0);
PLOT_theta(c5_b,c6_b,30,-110,180,0);
PLOT_theta(c5,c6,30,-110,180,0);
PLOT_theta(c5_b,c6_b,30,-110,180,0);
square(-1.25,0.625,0.4);
%% trajectory in theta space
figure(2)
axis([-270 270 -135 135])
hold on
x=[30 65 230];
y=[ -110 -121 -123 ];
hold on
x1=[180 200 230];
y1=[ 0 -55 -123 ];
cs=spline(x, y );
cs1=spline (x1,y1);
xx= linspace(30,230,101);
xx1= linspace (180,230,101);
plot(x,y,'o',xx,ppval(cs,xx),'-');
hold on
plot(x1,y1,'o',xx1,ppval(cs1,xx1),'-');
%% trajectory in cartesian space
robot();
%% getting the characterstics equation describing the position velocity and accleration of each joint
theta1_i=30;
theta1_f= 180;
vel1_i=0;
vel1_f=0;
acc1_f=0;
acc1_i=0;
t_i=0;
t_f=4;
time= t_i:t_f;
theta2_i=-110;
theta2_f=0;
vel2_i=0;
vel2_f=0;
acc2_f=0;
acc2_i=0;
k1=[theta1_i theta1_f vel1_i vel1_f acc1_i acc1_f]';
mat=[1 t_i t_i^2 t_i^3 t_i^4 t_i^5 ;...
1 t_f t_f^2 t_f^3 t_f^4 t_f^5 ;...
0 1 2*t_i 3*t_i^2 4*t_i^3 5*t_i^4;...
0 1 2*t_f 3*t_f^2 4*t_f^3 5*t_f^4;...
0 0 2 6*t_i 12*t_i^2 20*t_i^3;...
0 0 2 6*t_f 12*t_f^2 20*t_f^3];
coff1=(mat)\k1;
k2=[theta2_i theta2_f vel2_i vel2_f acc2_i acc2_f]';
mat=[1 t_i t_i^2 t_i^3 t_i^4 t_i^5 ;...
1 t_f t_f^2 t_f^3 t_f^4 t_f^5 ;...
0 1 2*t_i 3*t_i^2 4*t_i^3 5*t_i^4;...
0 1 2*t_f 3*t_f^2 4*t_f^3 5*t_f^4;...
0 0 2 6*t_i 12*t_i^2 20*t_i^3;...
0 0 2 6*t_f 12*t_f^2 20*t_f^3];
coff2=(mat)\k2;
r=fliplr(coff1');
coff1=r';
q=fliplr(coff2');
coff2=q';
% position, velocity and accleration equations
syms t;
theta1=poly2sym(coff1,t);
theta2=poly2sym(coff2,t);
vel1=diff(theta1);
vel2=diff(theta2);
acc1=diff(vel1);
acc2=diff(vel2);
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]葛超,张鑫源,王红,等.改进Informed-RRT*算法的移动机器人路径规划[J/OL].电光与控制:1-11[2024-09-26].http://kns.cnki.net/kcms/detail/41.1227.TN.20240925.1741.002.html.
[2]王一诺,郑焕祺,张根成,等.基于ICOA算法的三维无人机路径规划[J/OL].软件导刊:1-9[2024-09-26].http://kns.cnki.net/kcms/detail/42.1671.TP.20240924.1314.040.html.