[Robot de seis grados de libertad de Matlab] Comprensión del espacio de trabajo flexible y el espacio de trabajo accesible (con código de derivación de MATLAB)

Revisión pasada

[Robot de seis grados de libertad de Matlab]
1. Establecer modelo de robot
2. Solución positiva de cinemática
3. Construir espacio de trabajo basado en el método de Monte Carlo

prefacio

Este artículo presenta el robot sobreespacio de trabajo flexibleyespacio de trabajo accesible, cómo entender el espacio de trabajo flexible y el espacio de trabajo accesible, y use los ejemplos del artículo para ayudarlo a comprender.


El siguiente es el texto principal de este artículo, incluida la comprensión gráfica del espacio de trabajo flexible y el espacio de trabajo accesible y la comprensión auxiliar del código.

texto

1. La definición y diferencia de los dos espacios de trabajo

Definición: El análisis del espacio de trabajo es el primer paso en el diseño de un manipulador robótico. El espacio de trabajo del robot es el área de trabajo del manipulador del robot, que es un índice importante para medir el rendimiento del robot. De acuerdo con las características de la postura del manipulador cuando está trabajando, el espacio de trabajo se puede dividir en un espacio de trabajo accesible y un espacio de trabajo flexible.

1. Espacio de trabajo accesible

espacio de trabajo accesiblesignifica que, para un grado de libertadmayor que 1En lo que respecta a la estructura mecánica, ya sea una estructura de junta de traslación o una estructura de junta rotatoria (excepto las rótulas), tendrá un rango de trabajo. Durante el movimiento de esta articulación, los puntos que pueden ser barridos por el sistema de coordenadas al final pueden considerarse como los puntos que puede alcanzar el mecanismo mecánico 位置. El gesto no alcanzable, todas estas cosas que se pueden alcanzar 位置的点的集合, es el significado del espacio de trabajo accesible.

2. Espacio de trabajo flexible

espacio de trabajo flexiblesignifica que, para un grado de libertadmayor que 2estructura mecánica, y esHay más de 2 articulaciones giratorias en el mismo planoCada estructura puede llegar a una determinada posición con diferentes posturas (posturas). Durante el movimiento de la articulación giratoria, el origen del sistema de coordenadas al final está en este punto, pero llega a una actitud diferente. La misma posición, en otra postura, eso es diferente 位姿. Y todo esto se puede alcanzar en cualquier punto 位姿的点的集合, que es el significado del espacio de trabajo flexible.

小结:可达工作空间表示的是位置,灵活工作空间表示的是位姿。正是位置和位姿的两种不同表达方式将可达工作空间与灵活工作空间区分开。
Por lo tanto, también podemos ver que para los espacios de trabajo accesibles, las condiciones para realizar espacios de trabajo flexibles son más estrictas. Sin embargo, estos dos espacios de trabajo contienen un conjunto de puntos en la posición, y el conjunto de puntos en el espacio de trabajo flexible es obviamente el conjunto de puntos en el espacio de trabajo accesible debido a las duras condiciones.Subconjunto.
Conjunto de puntos en espacio flexible ⊆ Conjunto de puntos en espacio alcanzable Conjunto de puntos en espacio flexible ⊆ Conjunto de puntos en espacio alcanzableUna colección de puntos en un espacio flexibleconjunto de puntos en el espacio alcanzable

2. Ayudar a comprender el código del espacio de trabajo

Tome la estructura de enlace plano como ejemplo para profundizar la comprensión del espacio de trabajo. El siguiente es el mecanismo de enlace plano, la longitud del primer enlace es de 120 mm y la longitud del segundo enlace es de 60 mm .
Por favor agregue una descripción de la imagen
el código se muestra a continuación:

%连杆偏移
d1 = 0;d2 = 0;d3 = 0;
%连杆长度
a1 = 0;a2 = 120;a3 = 60;
%连杆扭角
alpha1 = 0;alpha2 = 0;alpha3 = 0;
%建立机器人模型
%       theta  d        a        alpha     offset(关节变量偏移量)
L1=Link([0     d1       a1       alpha1    0     ],'modified');
L2=Link([0     d2       a2       alpha2    0     ],'modified');
L3=Link([0     d3       a3       alpha3    0     ],'modified');
%限制机器人的关节空间
L1.qlim = [(-165/180)*pi,(165/180)*pi];
L2.qlim = [(-95/180)*pi, (70/180) *pi];
L3.qlim = [(-85/180)*pi, (95/180) *pi];
%连接连杆,机器人取名平面连杆
robot=SerialLink([L1 L2 L3],'name','平面连杆');
robot.plot([0,0,0]);
%输出机器人模型,后面的三个角为输出时的theta姿态
robot.teach()

1. Representación de código del espacio de trabajo accesible

El espacio de trabajo alcanzable expresa un conjunto de posiciones dadas, y al menos una dirección (solución) al final del manipulador puede alcanzar la posición en el conjunto, entonces el conjunto es el espacio alcanzable del manipulador.

Para el mecanismo de enlace plano mencionado anteriormente, su espacio de trabajo alcanzable es el siguiente:espacio de trabajo accesible
el código se muestra a continuación:

theta1min = -165;theta1max = 165;
theta2min = -95 ;theta2max = 70 ;
theta3min = -85 ;theta3max = 95 ;
n = 3000;
x = zeros;y = zeros;z = zeros;
for i = 1:n

    theta1 = theta1min*(pi/180) + (theta1max-theta1min)*(pi/180)*rand;
    theta2 = theta2min*(pi/180) + (theta2max-theta2min)*(pi/180)*rand;
    theta3 = theta3min*(pi/180) + (theta3max-theta3min)*(pi/180)*rand;
        
    Tws = robot.fkine([theta1,theta2,theta3]);
    x(i) = Tws.t(1,1);
    y(i) = Tws.t(2,1);
    z(i) = Tws.t(3,1);
end
figure('color',[1 1 1]);
plot3(x,y,z,'b.','MarkerSize',0.5)
hold on
xlabel('x轴(millimeter)','color','k','fontsize',15);
ylabel('y轴(millimeter)','color','k','fontsize',15);
zlabel('z轴(millimeter)','color','k','fontsize',15);
grid on

2. Representación de código del espacio de trabajo flexible

El espacio de trabajo flexible expresa un conjunto dado de posiciones, y cualquier dirección (solución) al final del manipulador puede alcanzar la posición en el conjunto, entonces el conjunto es el espacio de trabajo secundario del manipulador.

Para el mecanismo de enlace plano anterior, para un cierto punto de posición [ x , y ] [x,y][ X ,y ] La fórmula del espacio de trabajo flexible se deriva de la siguiente manera:
Aviso:El punto de posición [ x , y ] [x,y][ X ,y ] En la ecuación lineal
{ L 1 = 120 L 2 = 60 x = L 1 cos Θ 1 + L 2 cos ( Θ 1 + Θ 2 ) y = L 1 sin Θ 1 + L 2 sin ( Θ 1 + Θ 2 ) \left\{ \begin{alineado} L_1&=120\\ L_2&=6 0\\ x&=L_1 cos\Theta_1+L_2cos(\Theta_1+\Theta_2)\\ y&=L_1sin\Theta_1+L_2sin(\Theta_1+\Theta_2) \end{alineado} \right.L1L2Xtu=1 2 0=6 0=L1c o s Θ1+L2c o s ( Th1+el2)=L1s i n Θ1+L2pecado ( Th _ _1+el2)
Para la fórmula anterior useresolverSe resuelve la función, y se obtienen los valores correspondientes a theta1 y theta2
el código se muestra a continuación:

syms theta1 theta2
l1 = 120;
l2 = 60;
eq1 = x == l1*cos(theta1)+l2*cos(theta1+theta2);
eq2 = y == l1*sin(theta1)+l2*sin(theta1+theta2);
s = solve(eq1,eq2,[theta1,theta2]);
s1 = [s.theta1(1) s.theta2(1)];
s2 = [s.theta1(2) s.theta2(2)];

Las soluciones tienen que:
s 1 = { theta 1 = 2 ∗ atan ( ( 240 ∗ y − ( 3600 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) + ( x 2 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) + ( y 2 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) ) / ( x 2 + 240 ∗ x + y 2 + 10800 ) ) theta 2 = − 2 ∗ atan ( ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) / ( x 2 + y 2 − 3600 ) ) s1=\left\{ \begin{alineado} theta1&=2*atan((240*y - (3600*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600) + (x^2*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600) + (y^2*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600))/(x^2 + 240* x + y^2 + 10800)) \\ theta2&=-2*atan((-(x^2 + y^2 - 3600)*(x^2 + y^2 -32400))^(1/2)/(x^2 + y^2 - 3600)) \end{alineado} \right.página 1={ la t a 1 _ _la t a 2 _ _=2a tan ( ( _ _ _ _ _y( 3 6 0 0( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 )+( X2( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 )+( y2( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 ) ) / ( x2+2 4 0X+y2+1 0 8 0 0 ) )=2un t un norte ( ( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2)/(x2+y23 6 0 0 ) )
s 2 = { theta 1 = 2 ∗ atan ( ( 240 ∗ y + ( 3600 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) − ( x 2 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) − ( y 2 ∗ ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) ) / ( x 2 + y 2 − 3600 ) ) / ( x 2 + 240 ∗ x + y 2 + 10800 ) ) theta 2 = 2 ∗ atan ( ( − ( x 2 + y 2 − 3600 ) ∗ ( x 2 + y 2 − 32400 ) ) ( 1 / 2 ) / ( x 2 + y 2 − 3600 ) ) s2=\left\{ \begin{alineado} theta1&=2*atan((240*y + (3600*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600) - (x^2*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600) - (y^2*(-(x^2 + y^2 - 3600)*(x^2 + y^2 - 32400))^(1/2))/(x^2 + y^2 - 3600))/(x^2 + 240*x + y^2 + 10800)) \\ theta2&=2*atan((-(x^2 + y^2 - 3600)*(x^2 + y^2 -32400))^(1/2)/(x^2 + y^2 - 3600)) \end{alineado} \right.s2 _={ la t a 1 _ _la t a 2 _ _=2a tan ( ( _ _ _ _ _y+( 3 6 0 0( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 )( X2( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 )( y2( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2))/(x2+y23 6 0 0 ) ) / ( x2+2 4 0X+y2+1 0 8 0 0 ) )=2un t un norte ( ( - ( X2+y23 6 0 0 )( X2+y23 2 4 0 0 ) )( 1/2)/(x2+y23 6 0 0 ) )


Resumir

Lo anterior trata sobre el contenido del espacio de trabajo flexible y el espacio de trabajo accesible. Este artículo presenta en detalle cómo comprender la definición y la diferencia del espacio de trabajo, y utiliza gráficos y códigos para ayudar a comprenderlo.

referencias

  1. Análisis del espacio de trabajo
  2. Espacio de trabajo principal y espacio de trabajo secundario
  3. Dos entendimientos del espacio de trabajo del brazo robótico
  4. Matlab resuelve ecuaciones resolver

Supongo que te gusta

Origin blog.csdn.net/AlbertDS/article/details/123861656
Recomendado
Clasificación