Está en la página 1de 8

Planificación de Movimientos en Robótica

Proyecto Final
Gerrit Färber
15.07.2002

Programa de Doctorado: Automatización Avanzada y Robótica


Instituto de Organización y control de Sistemas Industriales

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
Simultaneous Path Planning and Free
Space Exploration with Skin Sensor:
M.Mehrandezh, University of Regina; Kamal K.Gupta, Simon Fraser University

1. Introducción
La planificación de movimientos se distingue entre dos tipos básicos. La planificación basada
en el modelo y la planificación basada en sensores. La diferencia entre las dos es que en la
primera el entorno tiene que ser completamente conocido y en la segunda el contorno no es
conocido o puede ser variable.
Esta publicación se dirige al problema general de planificación de movimientos “Path Planing”
y exploración del espacio no conocido.

2. Básicos
En el método con el entorno no conocido se utilizan normalmente sensores de sonar o de
visión. Los sensores de visión necesitan extensos cálculos, sin embargo es bastante difícil
obtener información de distancias a los obstáculos. Los sensores de sonar proveen la distancia
a los obstáculos, pero no tienen una buena resolución a los ángulos y también son susceptibles
a errores por distintas reflexiones a diferentes superficies.
En esta publicación se utiliza un robot de dos y luego de cuatro grados de libertad (dos-cuatro
bazos). Los obstáculos se identifican con sensores de piel, monteados en gran número. La
desventaja de este método es que el robot tiene que moverse lentamente para poder parar el
movimiento sin tocar el obstáculo con su mismo brazo. Si es seguro que el entorno no contiene
obstáculos que se mueven durante el procedimiento, los movimientos del robot pueden ser más
rápido en el espacio ya explorado.
El robot de métodos en espacio no conocidos tiene dos objetivos por conseguir. Primero
alcanzar el destino y segundo explorar el espacio libre. Además debe evitarse que el robot se
mueva mucho en el espacio conocido sin acercarse al destino. Si no se acerca al destino
solamente es ventajoso que se explore del espacio.
La idea fundamental de movimientos con sensores de piel es la siguiente:
El movimiento del robot se convierte en un “Sensor del espacio libre”.
Este espacio conocido entonces va a estar memorizado y será utilizado
para los próximos movimientos .

El algoritmo interno utilizado es el Lazy-PRM [1] (Lazy-Probabilistic-Roadmap), basado en


PRM [2]. La idea del nuevo algoritmo es en vez de encontrar un roadmap de caminos factibles,
encontrar un roadmap de caminos suponiendo que es factible. En [1] se muestra que el nuevo
algoritmo minimiza las pruebas de colisión y en total es más rápido.

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
3. Algoritmo

3.1 Opciones de Exploración


El algoritmo distingue entre dos modos de exploración. El primero es el “Biased”-Exploración
que significa que la forma de exploración del robot depende de un factor alpha. Este factor
tiene un valor entre “0” y “1”. El valor “0” es utilizado en el caso de evitar movimientos en el
espacio conocido. El valor “1” es utilizado en el caso de evitar la exploración. Se puede usar
cualquier valor entre 0-1. No tiene mucho sentido configurar alpha de uno u otro valor
extremo.
El segundo modo es la Exploración-Pura. Este modo resulta en un camino de mínima coste a la
cierta configuración final y permite caminos a través del camino no conocido.

3.2 Incrementar número de Nodos


En el caso de que el algoritmo no encuentre ningún camino de la configuración inicial a la
configuración final, el algoritmo para su exploración y reconfigura el número de nodos (Node
enhancement). De modo que el número de nodos se incrementa en todo el Espacio o solamente
en ciertas regiones, por ejemplo en caminos estrechos. Este modo puede ser aplicado varias
veces, depende de un máximo tiempo definido para la búsqueda.

3.3 Orden de Acontecimientos


Al principio el algoritmo supone que todo el espacio es libre. La calculación del primer camino
se base en esta suposición. El robot empieza a moverse en el camino directo a la configuración
final. El camino directo depende de unas configuraciones. Un factor ñ determina un ángulo de
caminos siguientes y el factor alpha del “Biased”-Exploración.
Cuando el Algoritmo encuentra un obstáculo lo añade al C-Space y recalcula el camino
próximo sin tocar este punto del obstáculo. La flexibilidad del algoritmo también permite
saltos entre la “Biased”-Exploración y la Exploración pura si encuentran problemas en la
búsqueda. Finalmente incrementa el número de nodos y vuelve a la búsqueda.

3.4 Terminación de la búsqueda


El algoritmo termina cuando no ha encontrado ningún camino libre y un máximo tiempo ha
terminado que no permite otro incremento de nodos.

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
4. Simulación y resultados
Mehrandezh y Gupta han implementado el algoritmo basado en Lasy-PRM en varias
simulaciones. Un buen ejemplo está mostrado en la grafica siguiente.

El grafo muestra la simulación de un robot de dos grados de libertad. En los imágenes del
espacio físico (a, c, f, i) se muestra el espacio desconocido en gris, espacio conocido en blanco.
En los imágenes del C-Space (b, d, e, g, h, j) se muestra todos los posibles caminos en líneas
rectas de color roja, el espacio desconocido en verde, el espacio conocido en blanco. Los
obstáculos aparecen en color azul y el camino calculado en línea recta de color negro.
Primero todo el espacio es desconocido (a, b). En el C-Space la configuración inicial está
conectada mediante dos líneas rectas con la configuración final. Luego en imagen-c el robot
tiene contacto con un obstáculo. Este obstáculo aparece en el C-Space, también cortando todos
los caminos no posibles por este punto de contacto. De allí el algoritmo busca otro camino en
el C-Space para evitar este obstáculo. El nuevo camino “directo” tiene un rodeo significante.
Otro punto de contacto de este mismo obstáculo esta añadido en el C-Space (g) y finalmente el
robot encuentra la configuración final. Por los sensores de piel el robot tiene que moverse muy
cerca de los obstáculos y los rodeos para evitar nuevo contacto son más grandes que en
soluciones con visión por ejemplo.

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
5. Conclusión y Comparaciones
Ventajas
El algoritmo Lazy-PRM tiene varias ventajas en comparación con otros algoritmos.
Es Rápido de calcular, también para robots con gran número de grados de libertad (DOF)
Obtiene el modelo del espacio que puede ser utilizado en otras tareas
Renovación incremental del espacio conocido. Uso del espacio conocido en cálculos.

Otros métodos:
Aparte del algoritmo Lazy-PRM otros algoritmos existen ya publicados.
- Cheung y Lumelsky explican el Algoritmo- BUG que busca el camino mas corto. En caso de
contacto, el robot sigue moviéndose por la superficie del obstáculo. La desventaja de este
algoritmo es que no utiliza la información del espacio conocido, el algoritmo es limitado a dos
grados de libertad (DOF) y no extensible a más dimensiones. Además se pueden encontrar
configuraciones singulares muy difíciles de terminar con este algoritmo.
- Choset utiliza un “Planar-rod-robot” con medición de la distancia. De este algoritmo no hay
información de uso con muchas dimensiones.
- Hay varios métodos de Eye-Type-Sensores de los cuales salen resultados razonables, pero no
se puede utilizar este tipo para sensores de piel porque para utilizar sensores de piel es
necesario integrar más la planificación y el sensado.

Referencias
[1] R.Bohin and L. E. Kavraki, “Path Planning Using Lazy PRM”, Proc. IEEE Int. Conf. on
Robotics and Automatin, 2000, pp. 521-528
[2] L.E. Kavraki, P.Svestka, J.C.Latombe, and M. Overmars. “Probabilistic roadmaps
for fast path planning in high dimensional configuratin spaces”.
IEEE Tr. On Rob Aut., 12:66-580, 1996

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
Efficient Nearest Neighbor
Searching for Motion Planning:
Anna Atramentov, Dept. Of Computer Science, Iowa State University, USA
Steven M. LaValle, Dept of Computer Science, University of Illinois, USA

1. Introducción
La búsqueda del vecino próximo es un problema fundamental utilizado en varias áreas. Por
ejemplo reconocimiento de patrones y estadística. En esta publicación se utiliza el método del
vecino próximo para Planificación de Movimientos.
El método utilizado es el Kd-tree basado en el Algoritmo ANN (Aproximate Nearest
Neighbor). Este Algoritmo está aplicado al PRM (Probabilistic RoadMaps) and RRT
(Rapidly-exploring Random Trees).
El Algoritmo ANN no sólo permite una aproximación del vecino próximo, sino también un
cálculo exacto. Muchas veces una aproximación en planificación de movimientos es suficiente,
que significa que el robot no se mueve a través del camino óptimo, pero un camino que resulta
en el mismo resultado, pero con mucho menos tiempo gastado en el cálculo del camino que es
muy importante en cálculos en línea.
Un Algoritmo como ANN se justifica en la planificación de movimientos si el espacio es
complicado y resulta en cálculos intensivos.

2. Básicos
2.1 Definición de distancias
Hay varias posibilidades de definir una distancia entre dos puntos, depende del objetivo. El
conjunto de distancias definido por Minkowski es el siguiente:

1/ k
 k 
υ k =  ∑ υi 
 0 ≤ i <d 
donde d es la dimensión. Con k se puede variar el método para determinar la distancia.
Con k=1 se calcula la “Distancia Manhattan” y con k=2 se calcula la “Distancia Euclidiana”.
En un plano R² se obtienen por ejemplo las siguientes ecuaciones:

k = 1: dist k =1 = x2 − x1 + y2 − y1 Distancia Manhattan

k = 2: dist k = 2 = ( x2 − x1 )2 + ( y 2 − y1 )2 Distancia Euclidiana

Aplicando la Distancia Euclidiana normalmente no es necesario calcular la raíz cuadrada, sino


continuar con la distancia al cuadrado. Con la segunda intención de minimizar los cálculos y
también de usar variables del tipo “integer”.

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
2.2 Espacio de Configuraciones
Aplicando el algoritmo de ANN a planificación de movimientos, es necesario encontrar un
modelo que represente el espacio de configuraciones C. En el caso de 2D, para objeto en el
plano, C tiene tres dimensiones. Las dos direcciones y el ángulo del objeto en el espacio
(C=R²xS 1 ), S representa un circulo. En el caso de 3D se obtiene según las tres direcciones en el
espacio y los tres ángulos posibles C=R³xP³. También se encuentran configuraciones que
necesitan mas dimensiones. El algoritmo de ANN se puede utilizar hasta 20 dimensiones sin
exigir tiempo en los cálculos.

3. Kd-Tree y Algoritmo de ANN

3.1 Determinación del Kd-Tree basado en el Algoritmo de ANN


El Kd-Tree se obtiene mediante el espacio de Configuraciones con líneas rectas de tal manera
que en cada lado exista como mínimo un punto. Se sigue hasta que todo el espacio este
parcelado y en cada partición existe exactamente un punto.
Se obtiene el Kd-Tree de tal manera que los nodos sean las líneas rectas separando los
conjuntos de puntos y las hojas son los puntos que se encuentran al final en las particiones.

3.2 Fase de “Query”


En C++ existe una librería que tiene el Algoritmo de ANN implementado [1]. Se puede
configurar el algoritmo de diferentes maneras. Por ejemplo en vez de calcular la aproximación
del vecino próximo que resulta en una buena solución con un tiempo mínimo, se puede calcular
la solución exacta. Cuando se calcula aproximadamente, un error máximo puede ser
configurado. En planificación de movimientos no siempre es necesario que el camino perfecto
sea encontrado. La aproximación obtenida de este algoritmo encuentra los vecinos próximos en
un rango entre 94 y 99% [2].

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final
La idea de encontrar el vecino próximo mediante el Kd-Tree es primero encontrar la caja en el
espacio libre, dividido por líneas rectas según la explicación arriba, en la cual hay un solo
punto muy cerca. Este punto no necesariamente es el más próximo. La distancia entre este
punto y el punto en prueba es una primera aproximación. Luego se sube en el Kd-Tree y se
calcula la distancia a cajas cercanas. Si estas cajas tienen una distancia más pequeña que la
distancia de la primera aproximación, se calcula la distancia al punto en concreto que se
encuentra en esta caja. Depende si la calculación va a continuar hasta que sea seguro que no
haya cajas mas cerca o si se acerca a un cierto valor de error, definido en el caso de la
aproximación, el algoritmo termina y entrega el vecino próximo.

4. Experimentos
El grupo de Atramentov y LaValle implemento este algoritmo en C++ utilizando la librería de
ANN. Luego implementaron el algoritmo en proyectos de planificación basado en RRT y en
PRM con buenos resultados de reducción del tiempo de las calculaciones. Las diferencias son
significantes también en más dimensiones.

En la publicación también muestran tres ejemplos complejos de RRT y PRM entre 3 y 48


dimensiones con razonables reducciones del tiempo.

5. Conclusión
El algoritmo de Kd-Tree basado en ANN muestra varias ventajas. Con el método de
Aproximación de la búsqueda que normalmente es suficiente en la planificación de
movimientos para encontrar espacio libre, las calculaciones ganan tiempo con un factor entre
10 y 100 en comparación con el cálculo exacto.
Una ventaja que más tiene importancia en la economía, es que el algoritmo ya está
implementado en una librería de C++. Se puede configurar varios parámetros mientras se usa
esta librería.
Refiriendo a las posibles dimensiones, es posible utilizar más que 20 dimensiones que resulta
en significantes reducciones en el tiempo necesario para los cálculos.
En el área de la planificación de movimientos la búsqueda de vecinos próximos no es el único
cuello de botella (“Bottleneck”). También el tiempo necesario para “Sampling-Strategies” y
detección de colisión es crítica. Una implementación del algoritmo de ANN solamente se
justifica si el número de nodos es tan grande que un cálculo des vecinos próximos predomina.

Referencias
[1] D. M. Mount., “ANN programming manual. Technical report”, Dept. of Computer
Science, U. of Maryland, 1998
[2] K. Lin, C. Yang, “The ANN-tree: An index for efficient approximate nearest neighbor
search”, Dept. of Math. Science, U. of Memphis, 2002
[3] S. Arya et al., “An Optimal Algorithm for Approximate Nearest Neighbor Searching
in Fixed Dimensions”, Proc. of the 5th Annual ACM-SIAM Symposium on Discrete
Algorithms. ACM, New York, 1994, pp.573-582

Planificación de Movimientos en Robótica Gerrit Färber


Prog: Automatización Avanzada y Robótica Proyecto Final

También podría gustarte