Beruflich Dokumente
Kultur Dokumente
Materia: Mecatrónica.
“BubbleRob en V-REP”
Grupo: 9AM
Sencillo de manejar
El desarrollador te proporciona un extensor manual en formato digital en el que vienen
detallados los temas necesarios para familiarizarse con el entorno. Hay ciertas temas que
no vienen explicados con la profundidad que se merece, pero que serán desarrollados en
este documento. Al ser una aplicación en alza, tiene una comunidad bastante grande detrás
en la que vienen resueltos la mayoría de problemas con los que te puedes encontrar.
Además, la propia empresa te responde en un periodo muy corto de respuesta. Desde mi
punto de vista cuesta hacerse con el entorno, principalmente a la hora de construir tu
propio robot.
Limitaciones
Es un simulador muy interesante, pero hay ciertos elementos que en primera instancia no
sabes muy bien qué estás modificando. El lenguaje de programación, LUA, es un lenguaje
de muy alto nivel con funciones prediseñadas con el que a veces te sientes atado de manos.
Otra limitación presente es que los algoritmos cálculo del jacobiano (Pseudoinversa y DLS)
están herméticamente cerrados y no puedes modificar nada.
Nuestro estudio en esta aplicación comenzará con un robot muy simple como es un robot
de dos grados de libertad que sólo se mueve en el plano XY para hacernos con el entorno.
Desarrollo
A continuación se mostrara el procedimiento para la creación del robot BubbleRob el cual
en este caso servirá para detectar objetos dentro del rango del sensor de visión.
Primero se debe agregar una forma primitiva desde el menú de un diámetro en X de 0.2:
Ahora se debe se debe habilitar las opciones habilitamos enable, collidable, measurable,
renderable y detectable en las propiedades comunes del objeto para esa forma, si aún no
está habilitada. Todo esto seleccionando la esfera y presionando la lupa de la parte superior
izquierda y seleccionando las opciones correspondientes dentro de common.
Ahora abrimos el diálogo de posición en la pestaña de traducción, seleccionamos la esfera
que representa el cuerpo de BubbleRob e ingresamos 0.02 para Along Z. Nos aseguramos
de que el elemento relativo esté configurado en World. Luego hacemos clic en Traducir
selección. Esto traduce todos los objetos seleccionados en 2 cm a lo largo del eje Z absoluto,
y efectivamente levantó un poco nuestra esfera. En la jerarquía de escenas, hacemos doble
clic en el nombre de la esfera, para poder editar su nombre. Entramos en bubbleRob y
presionamos enter.
A continuación, agregaremos un sensor de proximidad para que BubbleRob sepa cuándo se acerca
a los obstáculos: seleccionamos [Barra de menú -> Add --> Proximity sensor --> Cone type]. En el
diálogo de orientación en la pestaña de orientación, ingresamos 90 para Around de Y y Around de
Z, luego hacemos clic en Rotate selection.
En el diálogo de posición, en la pestaña de posición, ingresamos 0.1 para X-coord. Y 0.12
para Z-coord. El sensor de proximidad ahora está colocado correctamente en relación con
el cuerpo de BubbleRob.
Hacemos doble clic en el icono del sensor de proximidad en la jerarquía de la escena para
abrir su diálogo de propiedades. Hacemos clic en Show volumen parameters para abrir el
diálogo de volumen del sensor de proximidad. Ajustamos los elementos Offset a 0.005,
Angle a 30 y Range a 0.15.
Luego, en las propiedades del sensor de proximidad, hacemos clic en Mostrar parámetros
de detección. Esto abre el diálogo del parámetro de detección del sensor de proximidad.
Desmarcamos el elemento No permitir detecciones si la distancia es menor que la de cerrar
ese diálogo nuevamente. En la jerarquía de escenas, hacemos doble clic en el nombre del
sensor de proximidad, para poder editar su nombre. Ingresamos bubbleRob_sensor y
presionamos enter.
Ahora necesitamos agregar juntas (o motores) para las ruedas. Hacemos clic en [Barra de
menú -> Add -> Joint -> Revolute] para agregar una junta giratoria a la escena. La mayoría
de las veces, al agregar un nuevo objeto a la escena, el objeto aparecerá en el origen del
mundo. Mantenemos la junta seleccionada, luego control-select bubbleRob_leftWheel.
En el cuadro de diálogo de posición, en la pestaña de posición, hacemos clic en el botón
Aplicate a selection: esto coloca la junta en el centro de la rueda izquierda.
Luego, en el diálogo de orientación, en la pestaña de orientación, hacemos lo mismo:
orientamos la unión de la misma manera que la rueda izquierda. Cambiamos el nombre de
la articulación a bubbleRob_leftMotor.
Ahora hacemos doble clic en el icono de la unión en la jerarquía de la escena para abrir el
diálogo de propiedades de la unión. Luego, hacemos clic en Mostrar parámetros dinámicos
para abrir el cuadro de diálogo de propiedades de dinámica conjunta. Activamos el motor
y verificamos el elemento Bloquear motor cuando la velocidad objetivo es cero.
Ahora se requiere poder rastrear la distancia mínima entre BubbleRob y cualquier otro
objeto. Para eso, abrimos el diálogo de distancia con [Barra de menú -> Herramientas ->
Propiedades del módulo de cálculo]. En el diálogo de distancia, hacemos clic en Agregar
nuevo objeto de distancia y seleccionamos un par de distancia: [colección]
bubbleRob_collection - todos los demás objetos medibles en la escena. Esto acaba de
agregar un objeto de distancia que medirá la distancia más pequeña entre la colección
bubbleRob_collection (es decir, cualquier objeto medible en esa colección) y cualquier otro
objeto medible en la escena. Cambiamos el nombre del objeto de distancia a
bubbleRob_distance con un doble clic en su nombre. Cerramos el diálogo de distancia.
A continuación, agregaremos un sensor de visión, en la misma posición y orientación que el
sensor de proximidad de BubbleRob. Abrimos la jerarquía del modelo nuevamente, luego
hacemos clic en [Barra de menú -> Add -> Vision Sensor -> perspective type].
Luego abrimos el cuadro de diálogo del filtro del sensor de visión haciendo clic en Mostrar
cuadro de diálogo de filtro. Seleccionamos el componente Edge detection on work image y
hacemos clic en Agregar filtro. Colocamos el filtro recién agregado en la segunda posición
(una posición hacia arriba, usando el botón hacia arriba).
Hacemos doble clic en el componente de filtro recién agregado y ajustamos su elemento
Umbral a 0.2, luego hacemos clic en Aceptar.
Agregamos una vista flotante a la escena, y sobre la vista flotante recién agregada (nos
aseguramos de que el sensor de visión esté seleccionado durante ese proceso).
A continuación agregamos velocidad de 50 al BobbleRob_LeftMotor seleccionando con dos
click el icono y seleccionando “Show dynamic properties dialog” y habilitamos Motor
enabled y lock motor when target velocity is zero. La velocidad es agregada en Target
velocity (deg/s).
Finalmente se colocaron objetos y personas en la simulación para que BubbleRob los
detectara con el sensor de visión todo esto dentro del rango del sensor (Distancia).
En la simulación se muestra que el sensor detecta los efectos mientras BubbleRob hace
movimientos circulares a 360 grados debido a la velocidad colocada en uno de los motores
de las llantas.
Conclusión
Esta práctica final fue muy interesante y complicada, ya que en lo personal no tenía mucho
conocimiento o habilidad acerca del programa, por lo que me di a la tarea de investigar del
software y cada uno de los comandos y controles para realizar una simulación. Para poder
realizar este robot tuve que observar ejemplos y videos de otras personas realizando
simulaciones donde además observe que se puede hacer una simulación más sencilla por
ejemplo un carrito moviéndose hasta algo más complejo como un robot detectando objetos
en una banda transportadora y acomodándolos en una mesa por color del objeto. Pero es
algo más sofisticado ya que se necesita interfaces con programas como Matlab para realizar
los códigos.
Es muy importante recalcar que la simulación hoy en día y en futuro será primordial para
poder correr algún proceso de producción o una máquina y observar cómo se comportaría,
si sería fiable o eficiente llevarlo a cabo en la vida real. He ahí la gran ventaja de este tipo
de programas que te permite observar cada comportamiento de cualquier maquina o
simulación que se quiere llevar a cabo.
Referencias