Professional Documents
Culture Documents
Resumen
El objetivo del presente proyecto era realizar una plataforma que permitiera simular el comportamiento de un robot manipulador mvil en un
entorno con objetos que deber manipular y esquivar, utilizando el software
VREP (http://www.coppeliarobotics.com) en su versin gratuita PRO
EDU V3.2.1. Para ello, se ha creado el manipulador mvil a partir de dos
modelos del programa y se ha implementado un controlador para el robot
mvil y otro para el manipulador.
Este proyecto puede utilizarse para la prueba de distintos mdulos que
ofrece VREP, as como para modificar y aadir otros modelos de robots y
entornos diferentes donde realizar distintas pruebas.
ndice general
1. Introduccin
1.2. Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ndice general
ndice general
2.4.1.1. Planteamiento inicial . . . . . . . . . . . . . . 28
2.4.1.2. Clculo de trayectorias: Path Planning module 30
2.4.1.3. Scripts asociados . . . . . . . . . . . . . . . . 34
. . . . . . . . . . . . . 38
43
44
Apndices
46
47
ndice de figuras
2.1. Manipuladores mviles en diferentes reas de trabajo . . . . . 10
2.2. Software de simulacin robtica VREP . . . . . . . . . . . . . 11
2.3. Elementos de la interfaz de usuario . . . . . . . . . . . . . . . 13
2.4. Diferentes tipos de objetos y su representacin . . . . . . . . . 14
2.5. Scene Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6. Scene Hierarchy: unin manipulador y robot mvil . . . . . . . 18
2.7. Vista en VREP del cuadro Scene object propierties . . . . . . 19
2.8. Vista en VREP del cuadro Scene object propierties:joint . . . 21
2.9. Vista en VREP del cuadro Joint Dynamic Propierties . . . . . 22
2.10. Vista en VREP con configuracin de objetos realizada . . . . . 24
2.11. Vista en VREP del cuadro Object/item position/orientation . 25
2.12. Vista en VREP con configuracin de objetos realizada . . . . . 26
2.13. Vista en VREP con configuracin y ampliacin de objetos realizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.14. Modelo cinemtico configuracin diferencial de robot mvil . . 29
2.15. Vistas en VREP de Scene object propierties . . . . . . . . . . 32
2.16. Vista en VREP de la escena con todos los Paths Planning
configurados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4
ndice de figuras
ndice de figuras
38
Captulo 1
Introduccin
El objetivo del presente proyecto era realizar una plataforma que permitiera simular el comportamiento de un robot manipulador mvil. Este robot
ser duplicado y se crear un entorno con objetos que los dos robots debern
manipular de acuerdo a su programacin.
Por un lado como robot mvil, es decir, como base de nuestro manipulador
mvil, se ha elegido el robot Pioneer P3-DX de MobileRobots, del que ya
exista un modelo disponible en el software utilizado para la simulacin. Este
robot presenta una configuracin diferencial de movimiento, contiene ocho
sensores de ultrasonido en la parte delantera y soporta una carga til de 17
kg. Por otro lado, como robot manipulador se ha seleccionado el robot Mico
de Kinova, tambin disponible su modelo en el software utilizado. Se trata
de un manipulador ligero de 6 grados de libertad con una rotacin ilimitada
en cada eje, tiene un alcance de 70 centmetros y un peso de 5 kg. Tambin
cabe resaltar que su pinza es configurable pudiendo controlar cada uno de
sus dedos.
El entorno en el que se ha desarrollado la simulacin ha sido creado mediante el simulador V-REP.
Captulo 1. Introduccin
1.1.
Contenido de la memoria
1.2. Motivacin
1.2.
Captulo 1. Introduccin
Motivacin
Captulo 2
Desarrollo del proyecto
2.1.
Contexto
Este proyecto se sita dentro de la ingeniera automtica, ms concretamente en la robtica. Existen dos grandes grupos en los que se divide la
robtica: robots manipuladores y robots mviles. Los primeros estn implantados en la industria de forma muy importante, y aunque se investiga
sobre ellos en reas muy concretas, son los robots mviles los ms recientes y
con la investigacin mucho ms activa. Cuando se combinan estos dos tipos
de robots, se construyen los robots manipuladores mviles. Este sistema de
manipulacin mvil ofrece una doble ventaja, la movilidad que presenta la
plataforma o robot mvil y las mltiples funcionalidades que proporciona el
manipulador. Sin embargo, el funcionamiento de este sistema es complejo
debido a los muchos grados de libertad y al medio ambiente no estructurado
que realiza.
La manipulacin mvil es un tema de inters en entornos de desarrollo e investigacin. Los manipuladores mviles pueden ser autnomos o teleoperados
y se utilizan en muchas reas diferentes, como por ejemplo en:
Misiones espaciales de exploracin
Operaciones militares
9
(a) Robot Rover: misin exploracin (b) Robot Varan: utilizado para desa Marte
activar bombas
A pesar de la necesidad de automatizacin inteligente y flexible en el mbito industrial, la aplicacin e integracin de los manipuladores mviles ha
sido limitada. Una razn de esto es la forma tradicional en que actan las
industrias, sin asumir riesgos por la aplicacin de nuevas tecnologas.
2.2.
Herramientas utilizadas
2.2.1.
cliente, complementos (add-ons), nodo ROS y cliente/servidor personalizado. Adems cualquiera de estas formas que se elijan, es compatible con los
lenguajes de programacin ms extedidos actualmente, como por ejemplo
C/C++, Python, Java, Matlab, etc.
Tambin cuenta con otra ventaja muy importante, que es la gran cantidad
de informacin que aporta el propio programa y su pgina web oficial, mediante ejemplos, tutoriales y archivos con cdigo de control de los cuales uno
se puede apoyar para configurar lo que necesite.
Aparte de lo mencionado anteriormente VREP presenta otras caractersticas importantes a destacar en el proyecto como:
Software multiplataforma y portable para windows, Linux y MAC OS.
Tres motores fsicos diferentes para mayor velocidad en los clculos
dinmicos, como tambin permite simulaciones fsicas e interacciones
con objetos del mundo real.
Mecanismos importantes para la simulacin como la cinemtica directa/inversa, la deteccin de colisiones, el clculo de una distancia mnima, path/motion planning, etc.
Integracin, creacin y edicin de modelos y objetos.
Simulacin con sensores de proximidad y de visin.
Personalizacin de la interfaz de usuario.
2.2.1.1.
Al iniciar VREP, se abre por defecto una escena. Las escenas son el elemento principal del programa. stas estn formadas por subelementos llamados
modelos.
Se puede navegar por el entorno mediante el ratn. Para poder rotar la
escena se utiliza la barra de herramientas, que contiene adems todas las
funcionalidades de la simulacin: propiedades fsicas, manipulacin de los
12
2.2.1.2.
Los principales elementos que se usan en VREP para crear una escena
de simulacin son los objetos. Estos son visibles en la jerarqua de escenas
mediante un smbolo que distingue cada tipo; y en la escena de la vista
principal se representan en tres dimensiones.
Hay varios tipos de objetos y cada uno tiene sus opciones de configuracin.
Alguna vez interesa asignar a los objetos unas propiedades especiales que les
permiten interactuar con otros objetos mediante el clculo de mdulos (deteccin de colisiones, mnima distancia entre dos objetos, cinemtica inversa,
path/motion planning, etc)
2.2.1.4.
Captulo 2. Desarrollo...
2.3.
2.3.1.
17
Captulo 2. Desarrollo...
Una vez se han unido los componentes del manipulador mvil, se procedera
a orientar y colocar los objetos de manera que formen el robot tal y como
debera ser, por comodidad y por facilidad en los pasos siguientes, usando
los botones Object/item shift y Object/item rotate situados en la barra de
herramientas superior.
A continuacin se definira si los objetos que se van a configurar son estticos (Static) o no. Los objetos estticos son aquellos que no pueden ser
directamente actuados, si no que su posicin y orientacin dependen directamente de otros objetos. Los objetos que no sean estticos, sern dinmicos
y son los objetos que el motor de simulacin dinmica de VREP tratar.
18
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
20
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
Lo nico que falta para que el manipulador mvil est correctamente configurado, sera marcar en Object special propierties del men Scene Object
Propierties / Common las casillas Collidable, Renderable, Detectable y Measurable. Es un paso importante, ya que si no se marcaran el objeto no sera
detectado por los dems objetos del entorno, aparte de no poder correr en
la simulacin desapareciendo del espacio de trabajo al no considerarse un
objeto fsico. Tampoco podramos usar los modulos de clculo de distancia
mnima, deteccin de colisiones,etc, que nos ofrece VREP.
El paso ms importante para el correcto funcionamiento de la simulacin,
viene dado por las relaciones de parentesco que se establezcan entre los distintos objetos que componen el robot. Si no se hace correctamente este paso,
se provocaran anomalas en el funcionamiento de la simulaccin puesto que
no se movera como si fuera un solo ente.
Las relaciones de parentesco pues, implican una relacin de dependencia
de unos componentes a otros. Aunque en este proyecto, al utilizar un manipulador y un robot mvil ya diseados, estas relaciones ya estaban implcitas.
Pero a la hora de unir el manipulador y la base mvil si que hay que fijarse
que la relacin de padres e hijos sea la correcta.
Para explicarlo de otra manera, la relacin de parentesco influye en la
dependencia e independencia de los movimientos de unas articulaciones con
respecto a otras. Por ejemplo, que la pinza del manipulador se mueva no
afecta nada al resto de articulaciones. Sin embargo, si la primera articulacin
(base del manipulador) rota, el brazo entero rotar al estar ste unido a la
base.
23
Captulo 2. Desarrollo...
2.3.2.
Para terminar de configurar el entorno de simulacin virtual con el manipulador mvil que se ha creado anteriormente, necesitamos disear un escenario
de simulacin con diferentes objetos que proporciona VREP, los cuales nos
permitirn que el robot interactue y muestre su funcionalidad.
La primera parte sera orientar y colocar el manipulador mvil como queramos en el escenario. En nuestro caso el robot se situar centrado en el suelo
(ResizableFloor) del escenario, mientras que estar orientado exactamente
con los siguientes ngulos: = 0o , = 0o , = 180o .
Para poder modificar la orientacin y la posicin en plano de cualquier
objeto, debemos seleccionarlo y apretar a los botones Object/item shift para
la posicin, u Object/item rotate para la orientacin. Estos se encuentran en
la barra de herramientas superior y se puede cambiar el valor exacto de cada
eje de coordenadas, o bien arrastrando con el botn izquierdo del ratn el
objeto.
24
Captulo 2. Desarrollo...
El siguiente paso sera crear los objetos para nuestra escena de simulacin.
Se ha utilizado lo que en VREP se denomina Primitive shape, ms concretamente dos cubos (Cuboid) para simular las mesas o superfcies donde se
situarn los objetos que nuestro robot debe manipular. Para crear este tipo de
formas primitivas, simplemente clicamos con el botn derecho en la escena y
elegimos del desplegable Add >Primitive Shape >Cuboid. Despus podemos
escalar y posicionar el objeto como ya hemos explicado anteriormente.
Para finalizar hay que elegir algn tipo de objeto para la manipulacin de
nuestro robot. VREP ofrece mltiples posibilidades, incluso se puede disear
o importar. Aqu se ha elegido un objeto sencillo pero que a la vez requiere
cierta precisin a la hora de manipularlo: un vaso. De nuevo se ha seleccionado uno de los modelos que ofrece VREP. Vamos al men Model browser y
dentro de la carpeta household encontramos nuestro objeto Cup. Colocare25
Captulo 2. Desarrollo...
2.3.3.
Hasta ahora hemos creado un entorno de simulacin virtual con un robot manipulador mvil, el cual hemos configurado para su posterior control.
Tambin se han configurado los objetos restantes para simular la escena.
Profundizando ms, nuestro robot desempear una simple tarea, que consistir en llegar al objeto destino (vaso), agarrarlo y transportarlo a una
posicin objetivo.
Dada la simplicidad de esta simulacin, se ha pensado realizar una especie
de ampliacin de la idea principal. Esta consiste en duplicar el robot que
26
Captulo 2. Desarrollo...
27
Captulo 2. Desarrollo...
2.4.
Captulo 2. Desarrollo...
2.4.1.
2.4.1.1.
Planteamiento inicial
Captulo 2. Desarrollo...
Como ya se ha comentado anteriormente VREP ofrece potentes funcionalidades de clculo o como lo llaman calculation modules. Estos mdulos
no encapsulan directamente a un objeto de escena, si no que trabajan con
objetos de clculo definidos por el usuario. stos son diferentes que los de
escena, pero se relacionan indirectamente operando en ellos. Un detalle im30
Captulo 2. Desarrollo...
portante que se tendr en cuenta sobre los objetos de clculo es que al realizar
una operacin de copiar/pegar en un objeto de escena, tambin se duplica el
objeto de clculo que iba asociado.
El mdulo que se emplear es el de planificacin de trayectorias o Path
Planning. Permite realizar clculos de planificacin de caminos para objetos
de dos a seis dimensiones. Pero la funcin que interesa de este mdulo y se
va hacer uso de ella es la planificacin para robots no-holonmicos. Decimos
que un robot es holonmico si es capaz de modificar su direccin instantneamente (masa nula) y sin necesidad de rotar previamente.
Para trabajar con Path Planning se toman varios valores o parmetros de
entrada (objetos):
Una entidad robot: representa el dispositivo que debe evitar los obtculos, siendo nuestro manipulador mvil.
Start dummy: objeto especial que representa la configuracin inicial
del robot. Para crearlo clicamos con el botn derecho en la escena y
seleccionamos Add >dummy. Tenemos que asegurarnos que la posicin
y orientacin coinciden con el centro del robot. Dentro de Scene object
propierties/Dummy se marcar la casilla Follow parent path orientation(only indirect parent). Con esto el dummy no est directamente
relacionado con el camino, y sigue nicamente la orientacion de los
puntos del camino.
Goal dummy: representa la configuracin deseada del robot. Los algoritmos de planificacin se encargan de mover el Start dummy hacia
este objetivo evitando colisiones y obtculos. Lo situamos con una posicin y orientacin ptimas para que el manipulador pueda realizar sus
movimientos sin problemas. Se dejar sin marcar la casilla comentada
en Start dummy, ya que este objeto no tendr que seguir al camino.
Una entidad obstculo: representan los obtculos que hay que evitar.
Camino o Path: acta como un contenedor para una trayectoria calculada por el Path Planning. Para crear este objeto de clculo seguiremos el mismo procedimiento que en los dummies: Add >Path >Segment
31
Captulo 2. Desarrollo...
Type. Las propiedades que vienen por defecto al crearlo son las necesarias, aadiendo las tres casillas de Scene object propierties/ path/ Main
propierties, que nos ayudarn con la visualizacin del path en la escena.
En cuanto a las relaciones de parentesco de estos objetos en Scene hierarchy, los paths y end dummies se sitan al mismo nivel que la entidad
robot, descendiendo de la propia escena. Sin embargo, los start dummies
pasarn a ser padres de los dos robots.
Como hay cuatro trayectorias, dos por cada robot, el start dummy del
primer camino ser hijo del start dummy del segundo camino que tiene que
realizar ese robot. Tambin ser hijo el tercero del cuarto, que pertenecern
a las trayectorias del robot duplicado.
Con los objetos de entrada creados, slo faltara construir los propios Path
Planning. Para crear un Path Planning tenemos que clicar en la opcin calculation module propierties que encontramos en VREP en la barra de la parte
izquierda. Una vez en el men, seleccionamos la pestaa de Path Planning
y aadimos los objetos de entrada creados anteriormente. Primero pulsaremos Add new object donde aparecer un submen, en el cual indicaremos
non-holonomic y el start dummy correspondiente. Se nos crear un PathPlanningTask que podremos modificar su nombre como queramos.
A continuacin procederemos a rellenar cada campo con su objeto correspondiente. Por ejemplo en Associated objects indicaremos la configuracin
objetivo (end dummy) y el path. En el subapartado Illegal configuration check
configuramos nuestro robot para que no se le permita colisionar con ningn
objeto en toda la escena.
Un ltimo paso importante, es el de ajustar el rea en la que el mdulo Path
Planning es capaz de clcular la trayectoria. Para ello abrimos el submen
Adjust search parameters y modificamos el rango de bsqueda variando las
coordenadas hasta que encontremos la deseada. La casilla Visualize the search
area es de gran ayuda a la hora de concretar el rea. Las dos ltimas casillas
son opcionales, pero tambin se ha ido jugando con ellas para facilitar la
configuracin.
32
Captulo 2. Desarrollo...
(a) Dummy
(b) Path
33
Figura 2.15: Vistas en VREP de Scene object propierties
Captulo 2. Desarrollo...
Figura 2.16: Vista en VREP de la escena con todos los Paths Planning configurados
2.4.1.3.
Scripts asociados
Una vez configurados todos los objetos y el mdulo necesario para la programacin del robot mvil, falta asociar al objeto base el cdigo para el
funcionamiento del robot. Para conseguirlo hay que usar los scripts de los
que disponemos en VREP.
El botn para consultar los scripts aparece en la barra de herramientas
izquierda del programa, con un icono similar a una hoja de papel. Una vez
se accede al men se puede consultar la informacin de los scripts existentes
y se pueden crear nuevos.
Como ya hemos comentado brevemente en el apartado 2.2.1.4, existen dos
tipos de scripts los Main Scripts y los Child Scripts, dentro de estos ltimos
34
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
simSetObjectPosition(handle_objeto, -1, posicin): Fija la posicin del tercer parmetro (coordenadas x,y,z) a un objeto.
simSetJointTargetVelocity(handle_objeto,
velocidad_objetivo): fija la velocidad objetivo en una articulacin
(motor). Este comando se usa porque las dos articulaciones de nuestro
robot mvil son de tipo par/fuerza, adems de estar activado el motor
y el control por velocidad y no por posicin.
Aparte de estas funciones, se han utilizado otras dos que han permitido
la comunicacin entre el manipulador, la base mvil y el segundo robot duplicado para tener as una buena sincronizacin en la simulacin. Son las
siguientes:
simWaitForSignal(nombre_seal): bloquea y espera a una seal con el nombre que se le indica en el parmetro. Cuando la recibe
devuelve un valor entero.
simSetIntegerSignal(nombre_seal, valor_seal): se podra decir que es la funcin anloga a la anterior. sta crea una seal
con un valor entero (segundo parmetro) y su nombre (primer parmetro).
Primero de todo, se obtendra el handle de todos los objetos con los que
vamos a trabajar: los dos motores, el Path Planning, el robot, el path y el start
dummy. Tambin se definen dos variables importantes para el Path Planning,
una establecer la posicin a lo largo del path en referencia al robot, la otra
servir para calcular la distancia que hay desde el robot al punto del path.
A continuacin se crea un bucle que ser el encargado de que nuestro robot
siga el path calculado hasta que las velocidades lineales y angulares de ste
sean 0, es decir, hasta que lo detengamos porque hemos llegado a la posicin
objetivo.
Dentro del bucle es donde se realizar el movimiento del robot siguiendo
el path calculado. Primero se obtienen las posiciones absolutas del robot y
36
Captulo 2. Desarrollo...
37
Captulo 2. Desarrollo...
2.4.2.
2.4.2.1.
Planteamiento inicial
Para realizar una buena simulacin de manipulacin mvil, podemos plantearnos que nuestro manipulador debera manipular los objetos creados (vasos) con una precisin muy similar a como lo hara un humano, ya que existe
una gran semejanza entre un brazo manipulador con uno de anatoma humana.
Captulo 2. Desarrollo...
VREP nos ofrece la posibilidad de implementar todos estos tipos de control para nuestro manipulador, por ejemplo con los mdulos de clculo de
cinemtica directa/inversa o mediante Motion Planning. Pero en este caso se
ha decantado por un control de posicin ms sencillo, en el cual tendremos
que otorgar a cada articulacin el ngulo correcto para llevar al elemento
terminal a la posicin deseada.
39
Captulo 2. Desarrollo...
2.4.2.2.
Scripts asociados
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
Captulo 2. Desarrollo...
43
Captulo 3
Conclusiones
Al comienzo de esta memoria se establecieron unos objetivos que se han
conseguido cumplir. En primer lugar, se ha conseguido realizar un entorno
de simulacin virtual donde se muestra un ejemplo bsico de manipulacin
mvil, permitiendo la posibilidad de inclusin de ms mdulos y caractersticas que nos ofrece el programa VREP con diferentes diseos y modelos. Esto
significa que no solo se ha llegado a una solucin donde los dos manipuladores mviles son funcionales, sino que adems se pueden incluir ms tcnicas
de control o incluso modificaciones de los anteriores de una forma sencilla.
Puesto que la manipulacin mvil actualmente es un rea de investigacin en
la robtica, este proyecto favorece el diseo y la ceacin, ya que otra persona
puede empezar a trabajar desde el punto en que el autor ha terminado este
proyecto, valorando el intercambio de ideas y la comparticin de las mismas.
Personalmente, el proyecto me ha ayudado a familiarizarme con este tipo
de simuladores y aprender conceptos de robtica hasta ahora desconocidos.
Esto conlleva una motivacin extra para futuros estudios de esta rama de
informtica industrial y automatizacin.
Finalmente, se ha implementado una solucin bsica para el control del
brazo, pero con una buena funcionalidad en una simulacin.
44
Captulo 4
Mejoras y trabajos futuros
A lo largo de la realizacin de este proyecto, han surgido diferentes inconvenientes que se podran solventar llevando a cabo ciertas mejoras del
modelo propuesto en esta memoria. Estas exceden por muchos motivos los
objetivos principales que se establecieron al iniciar este proyecto, por lo que
las englobo en el marco de trabajos futuros. Podemos destacar las siguientes:
manipulador, imprimirlo en 3D y realizar su correspondiente montaje. Despus nos ayudaramos de una placa Arduino para el control de
servos.
46
Apndices
47
48
A. Cdigo...
Apndice A
Cdigo de los scripts
A.1.
49
Figura A.1:
Figura A.2:
50
A. Cdigo...
A. Cdigo...
Figura A.3:
51
Figura A.4:
52
A. Cdigo...
A. Cdigo...
A.2.
Figura A.5:
53
Figura A.6:
54
A. Cdigo...
A. Cdigo...
Figura A.7:
55
A.2.1.
A. Cdigo...
Figura A.8:
56
A. Cdigo...
A.3.
Figura A.9:
57
Figura A.10:
58
A. Cdigo...
A. Cdigo...
Figura A.11:
59
Figura A.12:
60
A. Cdigo...
A. Cdigo...
A.4.
Figura A.13:
61
Figura A.14:
62
A. Cdigo...
A. Cdigo...
A.4.1.
Figura A.15:
63
Bibliografa
[1] Tutorial Coppelia Robotics: tutorial de la empresa desarrolladora de
VREP donde se puede consultar cualquier informacin relativa a su programa.
http://www.coppeliarobotics.com/helpFiles/
[2] MobileRobots: pgina oficial del modelo de robot mvil utilizado.
http://www.mobilerobots.com/ResearchRobots/PioneerP3DX.aspx
[3] Foro Coppelia Robotics: foro oficial de VREP para consultar cualquier
tipo de duda relacionada con el programa.
http://www.forum.coppeliarobotics.com/
[4] Robots Industriales: pequeo documento introductorio a la manipulacin industrial.
http://platea.pntic.mec.es/vgonzale/cyr_0708/archivos/_15/
Tema_5.4.htm
[5] Valera, A., Tema 4: control de robots mviles. Mecatrnica
64