Está en la página 1de 6

Revista UIS Ingenierías

Página de la revista: revistas.uis.edu.co/index.php/revistauisingenierias

GENERACION DE TRAYECTORIA PARA ROBOT SCARA POR


MEDIO DEL METODO DE CAMPOS POTENCIALES

GENERATION OF PATH FOR ROBOT SCARA BY MEANS OF


THE POTENTIAL FIELD METHOD
Braian Steven Rocha Padilla, Miguel Ángel Rincón Salamanca, Daniel Morales Herrera

Resumen

El articulo consiste en la simulación y estudio del algoritmo campos potenciales para la generación de trayectorias de
un robot SCARA. Uno de los problemas más importantes de la robótica se da en la generación de trayectorias, que
ejerce una tarea fundamental en el movimiento autónomo del robot. Se realiza una interfaz en Matlab para simular los
algoritmos, esta simulación permita crear un mapa en el que se pueden colocar las posiciones de inicio y final del
robot, así como las posiciones de los obstáculos a través de los cuales el robot debe encontrar y mostrar la ruta más
optima.

Palabras clave: scara, generación de trayectorias, Matlab, interfaz, simulación.

Abstract

The article consists in the simulation and study of the algorithm potential fields for the trajectories generation of a
SCARA robot. One of the most important problems of robotics is in the generation of trajectories, which exercises a
fundamental task in the autonomous movement of the robot. An interface is made in Matlab to simulate the algorithms,
this simulation allows to create a map in which you can place the start and end positions of the robot, as well as the
positions of the obstacles through which the robot must find and show the most optimal route.

Keywords: scara, trajectory generation, Matlab, interface, simulation.

1. Introducción
Debido al continuo crecimiento de la robótica en la
En la actualidad los robots industriales tienen como industria, se hace cada vez más necesario que los
principal objetivo aumentar la productividad y calidad de estudiantes afines a esta ciencia adquieran mayor
los trabajos realizados por el ser humano en las diversas conocimiento sobre los distintos robots y sus
tareas complejas, en las cuales se pueden desempeñar de aplicaciones que rigen actualmente la industria con la
mejor manera; dichas tareas requieren de movimientos finalidad de obtener buenos resultados eficientes, seguros
coordinados y precisos del robot para poder llevarlas a y de baja carga computacional.
cabo de forma eficiente; por lo cual es de suma
importancia entender la cinemática y dinámica de los Algunas ventajas y desventajas que presenta el algoritmo
robots, para así comprender y analizar su capacidad de de campos potenciales frente a otros son los siguientes:
movimiento proyectado hacia la planificación y
generación de trayectorias en la elaboración de cualquier Ventajas
actividad.
 Se pueden generar trayectorias en tiempo real a
El algoritmo de campos potenciales se va a implementar partir del campo de fuerzas
en la simulación de trayectoria del robot scara en la  Las trayectorias generadas son suaves
evasión de posibles obstáculos que se le presente dentro
del área de trabajo.
2

 Facilita acoplar los aspectos de planeación y Matrices de transformación homogénea


control

Desventajas

 La principal desventaja de este método es que


en su forma simplificada el robot caiga en
mínimos locales como se aprecia en la figura 1.

Articulación 0-1

Figura 1. Problema de un mínimo local en campos potenciales.


Tomado de: Robótica inteligente. L. Enrique Sacar, Marco Articulación 1-2
López

2. Modelo

2.1 Cinemática directa del robot scara

Articulación 2-3

Tabla de parámetros de denavit-hartenberg(DH) Matriz del robot


3

2.2 Cinemática inversa del robot scara  El robot se ve como una partícula con carga
eléctrica
 El espacio libre se considera como un campo
potencial
 Los obstáculos tienen una carga eléctrica del
mismo signo del robot (se repelen)
 La meta tiene una carga eléctrica de signo
opuesto al robot (se atraen)

3. Sistema de generacion de trayectoria

3.1 Campos potenciales

El método de campo de potencial es conocido como un


método local, ya que sólo calcula el movimiento para una
configuración inicial-final dada. Se comienza en la inicial
y se intenta mover el robot hacia el objetivo en pequeños Figura 3. Robótica Probabilista, L. E. Sucar
pasos. Este método esencialmente trata el ambiente de
trabajo como un campo de fuerzas, dando un valor
diferente a cada objeto sobre el área de trabajo. El
objetivo o punto de llegada se considera como un imán
de polaridad contraria a la del móvil, es decir que tiene
fuerza de atracción mientras que los obstáculos se
comportan como imanes de igual polaridad generando
fuerzas repulsivas.

La figura 2 ejemplifica una superficie y los campos


generados por los obstáculos presentes. Figura 4. Robótica Probabilista, L. E. Sucar

 El campo de potencial diferencial se construye


sumando el campo de la meta, Ug, y el campo
de los obstáculos, Uo:

 A partir de este campo se construye un campo


de fuerzas artificial:

Figura 2. Posibles campos potenciales generados por los


diferentes objetos de una superficie.
 Una vez construido el campo de fuerzas, el
robot se mueve en función de la fuerza local
3.2 Como funciona
(similar al caso de los valores en programación
dinámica).
Se basa en una analogía con campos potenciales
eléctricos[1]:  Con esto se tiene un esquema robusto que
implícitamente tiene un plan de cualquier punto
del espacio a la meta
4

sz = size(mapa);

path_found=true;

hold on;

% [XX,YY]=meshgrid(1:size(mapa,2),
1:size(mapa,1));
[Y,X]=meshgrid(0:1:sz(2)-1,
0:1:sz(1)-1);
for i = 1:sz(1)
Figura 5. Robótica Probabilista, L. E. Sucar for j = 1:sz(2)
rg = sqrt((i-yg)^2 +(j -
3.3 Algoritmo xg)^2);
U_att(i,j) = 0.5*rg^2;
Mapa del ejercicio end
end
% contour(U_att,40);

% Di = 20; % Distance of influence of


the object
% Compute for every pixel the
distance to the nearest obstacle(non
zero
% elements which after inversion
corespondent to the obstacles)
Figura 6. Mapa de obstáculos
[D,IDX] = bwdist(mapa);
max_sc=max(max(U_att));
Di=max_sc*10;
clear all, close all, clc
for i = 1:sz(1)
I=imread('mapa.png'); for j = 1:sz(2)
figure() rd = D(i,j);
subplot(1,2,1) if (rd <= Di)
imshow(I) U_rep(i,j) = 0.5*(rd -
mapa = im2bw(I,0.4); % convertir Di)^2;
imagen a binario else
% mapa=1-mapa; U_rep(i,j) = 0;
subplot(1,2,2) end
imshow(mapa), hold all end
%[xi,yi] = getpts() end
% contourf(U_rep,5);
xs = 67; ys= 500; % Punto
inicial
xg = 655; yg=37; % Punto % mesh(XX,YY, U_rep);
Final
U_att=U_att/max(U_att(:));
plot(xs ,ys,'sr', xg, yg,'*b') U_rep = (1- U_rep/max(U_rep(:)) );

[X, Y] =size(I) k_s = 2; % Scaling factor


5

U_sum =
U_rep/max(U_rep(:))+k_s*U_att/max(U_a subplot(2,2,4)
tt(:)); hold on

set(gcf, 'InvertHardCopy', 'off'); contourf(U_sum,15);


% Pose Matrix spy(pose,'*r');
pose = zeros(sz(1),sz(2)); title('Computed path');
pose(ys,xs) = 1;
pose(yg,xg) = 1; spy(pose,'.r');

x = xs; y = ys; 4. Resultados


last = U_sum(y-1,x-1);
counter=1;
try
while (x ~= xg) || (y ~= yg)
dis =[ U_sum(y-1,x-1), U_sum(y-
1,x), U_sum(y-1,x+1);
U_sum(y ,x-1), U_sum(y
,x), U_sum(y,x+1);
U_sum(y+1,x-1),
U_sum(y+1,x),U_sum(y+1,x+1)];
m = min(dis(:));

[r,c] = find(dis == m); Figura 7. Campo de atraccion


U_sum(y,x) = inf;
y = y-2+r;
x = x-2+c;
pose(y,x) = 1;

final_path(counter, (1:2)) = [ y,
x ];
counter = counter +1;
end
catch
end
Figura 8. Campo de repulsion

figure(2);
colormap('jet')

subplot(2,2,1)
image(mapa);
surf(X,Y,U_att)
title('Attraction field');

subplot(2,2,2)
image(mapa);
surf(X,Y,U_rep); Figura 9. Suma de campo de repulsion y atraccion
title('Repulsion field');
subplot(2,2,3)
surf(X,Y,U_sum);
title('Total field: rep + k *
att');
6

Figura 10. Trayectoria

5. Conclusiones

 La trayectoria presentada en la figura 10 se ve


como al ser un obstaculo muy grande presenta
la condicion mas facil de tomar un minimo local
lo que afecta la trayectoria desde el punto inicial
al punto final.
 Existen diferentes metodos de implementacion
de algoritmos para la generacion de trayectorias
por campos potenciales

6. Referencias

 http://ccc.inaoep.mx/~esucar/Clases-irob/ir8-
plan.pdf [1]