fbpx
Wikipedia

Planificación de movimiento

El término planificación de movimiento (del inglés motion planning) es aplicado para describir un conjunto de problemas que están relacionados con mover un objeto (robot) de un punto inicial a un punto final evitando colisionar con los posibles obstáculos del entorno.[1]

Para el análisis de estos problemas suele utilizarse el espacio euclidiano en dos dimensiones y en ocasiones se considera que la colisión con un obstáculo sólo ocurre con los puntos internos de este (asumiendo a los obstáculos como polígonos simples) y no con la frontera, aunque en términos prácticos puede no resultar seguro que un robot pase tan cerca de un obstáculo.

Algoritmos editar

Basados en trayectoria editar

Grafo de visibilidad editar

Este algoritmo se apoya en el uso del grafo de visibilidad para obtener todas las trayectorias posibles que pasan por los vértices de los polígonos (obstáculos). Una vez que se tiene el grafo de visibilidad se aplica un algoritmo para encontrar el camino más corto, dicho algoritmo puede ser el de Dijkstra.[2]

Algoritmo ObtenerCamino ( )
//  Conjunto de polígonos disjuntos
//  Punto de partida del robot
//  Punto de llegada del robot
  ← CalcularGrafoVisibilidad( )
Asignar como peso de cada arista de   la distancia euclidiana entre los vértices de la arista.
  ← DijkstraShortestPath( )
return  
Complejidad editar

La complejidad de calcular el grafo de visibilidad es  ,[2]​ y la complejidad del algoritmo de Dijkstra es  , por lo tanto la complejidad del algoritmo ObtenerCamino queda acotada por  .

Basados en celdas editar

Descomposición en celdas exactas editar

La descomposición en celdas exactas es utilizada para representar el espacio libre de obstáculos, una vez que se conoce basta con calcular una ruta a través de este espacio. Para generar las celdas se usa un mapa trapezoidal. La construcción de un mapa trapezoidal se realiza tomando un conjunto de polígonos disjuntos, estos son encerrados en una caja para delimitar el espacio en que se crearán los trapezoides. A continuación se trazan líneas verticales en los vértices de cada polígono hasta que la línea alcanza algún obstáculo, ya sea la frontera de algún polígono o la «caja». Una vez que se tiene el mapa trapezoidal se deben calcular las celdas que representan al espacio libre, esto se puede hacer simplemente removiendo los trapezoides que se encuentran en el interior de los polígonos.

 
Descomposición en celdas exactas usando mapa trapezoidal

Para encontrar una trayectoria libre de obstáculos desde el punto inicial del robot hasta la meta se construye un grafo de trayectoria utilizando como nodos los puntos ubicados en los centros de los trapezoides y de las líneas verticales que constituyen el mapa, las aristas serán las semirrectas que conecten tales puntos únicamente en los casos en que un punto esté en el centro de un trapezoide y el otro en el centro de una línea vertical que constituya la frontera de dicho trapezoide.

Una vez que se tiene el grafo descrito anteriormente la construcción de un camino libre de obstáculos se puede hacer de acuerdo al siguiente algoritmo.

Algoritmo ObtenerCamino ( )
//  Mapa trapezoidal del espacio libre de obstáculos
//  Grafo de trayectoria calculado a partir del mapa trapezoidal
//  Punto de partida del robot
//  Punto de llegada del robot
Encontrar los trapezoides   que contienen a los puntos  
if   no existen
return "camino inexistente"
Obtener los vértices   que corresponden al centro de los trapezoides  
 BreadFirstSearch( )
if   no existe
return "camino inexistente"
return  

Descomposición en celdas aproximadas editar

En este algoritmo las celdas corresponden a los elementos formados por una rejilla de tamaño fijo, en este caso los obstáculos son representados como celdas completamente ocupadas.

Dependiendo del tamaño de la rejilla puede pasar que algunos caminos libres sean marcados como ocupados, en estos casos una opción puede ser disminuir el tamaño de las celdas de la rejilla para aumentar la precisión.

Referencias editar

  1. O'Rourke, Joseph (1998). Computational Geometry in C (en inglés). Cambridge, UK: Cambridge University Press. 
  2. de Berg, Mark (2000). Computational geometry (en inglés). Berlin: Springer. 
  •   Datos: Q366872
  •   Multimedia: Motion planning / Q366872

planificación, movimiento, término, planificación, movimiento, inglés, motion, planning, aplicado, para, describir, conjunto, problemas, están, relacionados, mover, objeto, robot, punto, inicial, punto, final, evitando, colisionar, posibles, obstáculos, entorn. El termino planificacion de movimiento del ingles motion planning es aplicado para describir un conjunto de problemas que estan relacionados con mover un objeto robot de un punto inicial a un punto final evitando colisionar con los posibles obstaculos del entorno 1 Para el analisis de estos problemas suele utilizarse el espacio euclidiano en dos dimensiones y en ocasiones se considera que la colision con un obstaculo solo ocurre con los puntos internos de este asumiendo a los obstaculos como poligonos simples y no con la frontera aunque en terminos practicos puede no resultar seguro que un robot pase tan cerca de un obstaculo Indice 1 Algoritmos 1 1 Basados en trayectoria 1 1 1 Grafo de visibilidad 1 1 1 1 Complejidad 1 2 Basados en celdas 1 2 1 Descomposicion en celdas exactas 1 2 2 Descomposicion en celdas aproximadas 2 ReferenciasAlgoritmos editarBasados en trayectoria editar Grafo de visibilidad editar Este algoritmo se apoya en el uso del grafo de visibilidad para obtener todas las trayectorias posibles que pasan por los vertices de los poligonos obstaculos Una vez que se tiene el grafo de visibilidad se aplica un algoritmo para encontrar el camino mas corto dicho algoritmo puede ser el de Dijkstra 2 Algoritmo ObtenerCamino S pinicio pfinal displaystyle S p inicio p fina l nbsp S displaystyle S nbsp Conjunto de poligonos disjuntos pinicio displaystyle p inicio nbsp Punto de partida del robot pfinal displaystyle p final nbsp Punto de llegada del robot G displaystyle G nbsp CalcularGrafoVisibilidad S pinicio pfinal displaystyle S p inicio p final nbsp Asignar como peso de cada arista de G displaystyle G nbsp la distancia euclidiana entre los vertices de la arista ShortestPath displaystyle ShortestPath nbsp DijkstraShortestPath G pinicio pfinal displaystyle G p inicio p final nbsp return ShortestPath displaystyle ShortestPath nbsp Complejidad editar La complejidad de calcular el grafo de visibilidad es O n2log n displaystyle O n 2 log n nbsp 2 y la complejidad del algoritmo de Dijkstra es O n2 displaystyle O n 2 nbsp por lo tanto la complejidad del algoritmo ObtenerCamino queda acotada por O n2log n displaystyle O n 2 log n nbsp Basados en celdas editar Descomposicion en celdas exactas editar La descomposicion en celdas exactas es utilizada para representar el espacio libre de obstaculos una vez que se conoce basta con calcular una ruta a traves de este espacio Para generar las celdas se usa un mapa trapezoidal La construccion de un mapa trapezoidal se realiza tomando un conjunto de poligonos disjuntos estos son encerrados en una caja para delimitar el espacio en que se crearan los trapezoides A continuacion se trazan lineas verticales en los vertices de cada poligono hasta que la linea alcanza algun obstaculo ya sea la frontera de algun poligono o la caja Una vez que se tiene el mapa trapezoidal se deben calcular las celdas que representan al espacio libre esto se puede hacer simplemente removiendo los trapezoides que se encuentran en el interior de los poligonos nbsp Descomposicion en celdas exactas usando mapa trapezoidalPara encontrar una trayectoria libre de obstaculos desde el punto inicial del robot hasta la meta se construye un grafo de trayectoria utilizando como nodos los puntos ubicados en los centros de los trapezoides y de las lineas verticales que constituyen el mapa las aristas seran las semirrectas que conecten tales puntos unicamente en los casos en que un punto este en el centro de un trapezoide y el otro en el centro de una linea vertical que constituya la frontera de dicho trapezoide Una vez que se tiene el grafo descrito anteriormente la construccion de un camino libre de obstaculos se puede hacer de acuerdo al siguiente algoritmo Algoritmo ObtenerCamino Mt G pinicio pfinal displaystyle M t G p inicio p final nbsp Mt displaystyle M t nbsp Mapa trapezoidal del espacio libre de obstaculos G displaystyle G nbsp Grafo de trayectoria calculado a partir del mapa trapezoidal pinicio displaystyle p inicio nbsp Punto de partida del robot pfinal displaystyle p final nbsp Punto de llegada del robot Encontrar los trapezoides ti tf displaystyle t i t f nbsp que contienen a los puntos pi pf displaystyle p i p f nbsp if ti tf displaystyle t i t f nbsp no existenreturn camino inexistente dd Obtener los vertices vi vf displaystyle v i v f nbsp que corresponden al centro de los trapezoides ti tf displaystyle t i t f nbsp Path displaystyle Path nbsp BreadFirstSearch G pinicio pfinal displaystyle G p inicio p final nbsp if Path displaystyle Path nbsp no existereturn camino inexistente dd return piniciovi Path vfpfinal displaystyle overline p inicio v i cup Path cup overline v f p final nbsp Descomposicion en celdas aproximadas editar En este algoritmo las celdas corresponden a los elementos formados por una rejilla de tamano fijo en este caso los obstaculos son representados como celdas completamente ocupadas Dependiendo del tamano de la rejilla puede pasar que algunos caminos libres sean marcados como ocupados en estos casos una opcion puede ser disminuir el tamano de las celdas de la rejilla para aumentar la precision Referencias editar O Rourke Joseph 1998 Computational Geometry in C en ingles Cambridge UK Cambridge University Press a b de Berg Mark 2000 Computational geometry en ingles Berlin Springer nbsp Datos Q366872 nbsp Multimedia Motion planning Q366872 Obtenido de https es wikipedia org w index php title Planificacion de movimiento amp oldid 139853290, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos