NaoPath: Planificació de Trajectòries Utilitzant Mètodes de Camps Potencials AUTOR: Lucas Salvador Mingacho DIRECTOR: Dr. Domènec Puig Valls CO-DIRECTOR: Sr. Tomás González Sánchez Adreça electrònica: [email protected] Resum TITULACIÓ: Enginyeria Tècnica en Informàtica de Sistemes DATA: 11 de Febrer de 2010 Resum del projecte Durant la història de la robòtica, un dels problemes més importants que s’han hagut d’afrontar ha estat aconseguir que un robot, de forma autònoma, es pugui moure d’un punt a un altre en l’espai sense cap tipus d’intervenció humana i sense col·lisionar amb cap obstacle que hi hagi en l’entorn. En aquest projecte s’implementa una de les diferents formes de resoldre el que s’anomena “mover’s problem”. Per fer-ho, s’ha implementat un algorisme de planificació de moviment basat en camps potencials en un entorn tancat. L’entorn escollit ha estat el de la RoboCup, que es tracta d’una competició de robots amb diverses competicions, però l’escollida ha estat la lliga de futbol estàndard. Així doncs, la implementació es basa en construir un camí que va des d’una posició inicial (on es troba el robot) fins a una posició final (on es troba la pilota) evitant els diferents obstacles (altres robots) que es col·loquen en un entorn tancat (el camp de futbol reglamentari de la RoboCup). L’entorn es subdivideix en diferents cel·les depenent de la resolució escollida, es tria una posició d’inici i una de final i l’algorisme calcula per cada cel·la el vector de força corresponent amb una suma dels vectors repulsius i atraients. Si estem a prop d’un obstacle, el vector de força serà més repulsiu, en canvi, si estem a prop de la posició de final, el vector serà molt atraient. Un cop calculats els vectors s’ha de trobar el camí més curt i sense obstacles, per això s’utilitza un algorisme de cerca. En aquest cas, l’algorisme de cerca escollit ha estat l’A* que troba el camí mitjançant la informació proporcionada pels vectors de força de forma ràpida i eficient. Tot això implementat en codi JAVA i sobre una interfície gràfica totalment parametritzable per l’usuari. Resumen del proyecto Durante la historia de la robótica, uno de los problemas más importantes que se han tenido que afrontar ha sido conseguir que un robot, de forma autónoma, se pueda mover de un punto a otro en el espacio sin ningún tipo de intervención humana y sin chocar conn ningún obstáculo que haya en el entorno. En este proyecto se implementa una de las diferentes formas de resolver el que se llama “mover’s problem”. Para hacerlo, se ha implementado un algoritmo de planificación de movimiento basado en campos potenciales en un entorno cerrado. El entorno escogido ha sido el de la RoboCup, que se trata de una competición de robots con diferentes categorías, pero la escogida ha sido la liga de futbol estándar. Así pues, la implementación se basa en construir un camino que va desde una posición de inicio (donde se encuentra el robot) hasta una posición final (donde se encuentra la pelota) evitando los diferentes obstáculos (los otros robots) que hay por el entorno cerrado (el campo reglamentario de la RoboCup). El entorno de divide en diferentes celdas dependiendo de la resolución escogida, se fija una posición de inicio, una de final i el algoritmo calcula por cada celda el vector de fuerza correspondiente con una suma de los vectores repulsivos i atrayentes. Si estamos cerca de un obstáculo, el vector de fuerza será más repulsivo, en cambio, si estamos cerca de la posición final, el vector será muy atrayente. Una vez calculados los vectores se tiene que encontrar el camino más corto i libre de colisiones, para eso, se utiliza un algoritmo de búsqueda. En este caso, se ha escogido el algoritmo de búsqueda A* que encuentra el camino mediante la información proporcionada por los vectores de fuerza de forma rápida y eficiente. Todo esto, implementado en código JAVA i sobre una interfaz gráfica totalmente parametrizable por el usuario. Project summary During robotics’ history, one of the most important problems that had to be faced up to has been achieving a robot, in an autonomous way, to move from a point in the space to another point without any human intervention and without colliding any obstacle in the environment. In this project one of the different ways of resolving the called mover’s problem is implemented. To do that, a motion planning algorithm based on potential fields has been implemented to work in a closed environment. The chosen environment has been the one from the RoboCup. RoboCup is a robot competition with lots of challenges, but the chosen one has been standard platform football league. So, the implementation is based on building a path that goes from an initial position (where the robot is) to an ending position (where the ball is) avoiding the different obstacles (the other robots) that has been put in a closed environment (the legal football field of the RoboCup). The environment is divided in different cells depending on the chosen resolution. Then you choose the initial point and the ending point and the algorithm calculates for every cell the corresponding sum of the repulsive vectors plus the appealing ones. If we are near an obstacle the force vector will be more repulsive, and if we are near the goal the vector will be very appealing instead. When the vectors are calculated, the shortest and the most efficient path has to be found, so a search algorithm is needed to do that. In this case, the chosen algorithm has been A*. It finds the best path using the information given by the force vectors in a fast way. All together implemented in JAVA code and with a graphic interface where the user can change all the parameters.