Vous êtes sur la page 1sur 13

LABORATORIO DE SIMULACIN EN ROS

RICARDO MAYORGA GUEVARA

UNIVERSIDAD AUTNOMA DE OCCIDENTE


FACULTAD DE INGENIERAS
DEPARTAMENTO DE AUTOMATICA
ROBOTICA
SANTIAGO DE CALI
2017

CREACIN DEL PAQUETE DE ROS PARA LA DESCRIPCIN DEL ROBOT

En primera instancia creamos el Word spice, que es nuestro espacio de trabajo.

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ catkin_create_pkg mastering_ros_robot_description_pkg roscpp tf geometry_msgs
urdf rviz xacro

Este segmento se utiliza para crear las caractersticas del robot manualmente,
cuando lo editamos en ros, nos muestra un error porque no encuentra las carpetas.

Por esta razn se utiliza

$ git clone https://github.com/qboticslabs/mastering_ros_robot_description_pkg.git

Antes de crear el archivo urdf para el robot, se crean 3 carpetas (urdf, meshes,
launch), la carpeta urdf es utilizada para guardar los archivos urdf y xacro que
se van a crear, en la carpeta meshes donde se guardan los meshes de la geometra
del robot que se necesitan en el archivo urdf, en la carpeta lauch se tienen los
archivos de ejecucin de ROS.

CREAMOS EL PRIMER MODELO

El primer modelo que vamos a crear es un robot llamado pant and tilt, el cual est
compuesto por tres enlaces (links) y dos articulaciones (joints), la base es
esttica (base link) y es donde estn montados los links y los joints.

Par visualizar el cdigo urdf del robot se toma la siguiente ruta


Mastering_ros_robot_description_pkg / urdf y abrir pan_tilt.urdf.

EXPLICACIN DEL CDIGO URDF

En la siguiente figura, nos muestra toda la geometra que tendr el robot, el


cual consta de enlaces o eslabones llamados (links) y las uniones de rotacin
llamadas joints. Las etiquetas <visual> nos describen la apariencia del link el
cual nos muestra la geometra loa ubicacin del punto de origen, la forma, el
material y color.
Los comandos mencionados estn dispuestos para el usuario si desea cambiar la
geometra del robot o sus caractersticas se utilizan esta etiqueta.
Esta etiqueta <robot> define el nombre del robot, para este caso tendr el nombre
de pan_tilt.

En esta parte del cdigo definimos la base link donde se especifica la geometra,
la forma, el material y color. Es donde se soporta la estructura conformada por los
links y los joints, esto se hace posible con la etiqueta <visual>.

Luego se define una articulacin o joint con el nombre de pan_join, especificamos


el tipo de articulacin para este caso es revolute, tambin se muestra la conexin
que tiene con la base link y el eslabn link, el origen tambin es definido por
esta etiqueta.

Luego de ver las especificaciones del robot, se procede a guardar el cdigo con el
nombre de pan_tilt.urdf, seguido a esto se reviza que el cdigo no tenga errores de
compilacin con el siguiente comando: $ check_urdf pan_tilt.urdf

Como no hay errores el mensaje que se muestra en la figura comprueba un buen


funcionamiento.

Si se desea visualizar la estructura del robot, de los links y los joints de una
manera grfica podemos usar el siguiente comando: $ urdf_to_graphiz pan_tilt.urdf

Este comando crea dos archivos como se muestra en la siguiente figura:

Para visualizar la estructura del robot utilizamos el siguiente comando: $ evince


pan_tilt.pdf
El cual nos muestra la estructura del robot en un formato pdf como se muestra a
continuacin:

VISUALIZACIN 3D DEL ROBOT EN RVIZ

Despus de disear URDF, podemos visualizar el diseo del robot en RViz. Podemos
crear un archivo ejecutable que nos permita la visualizacin con el comando:
view_demo.launch.
Para compilar el cdigo y correr el programa se utiliza:

$ roslaunchmastering_ros_robot_description_pkg view_demo.launch

Luego utilizamos a catkin make para que nos permita realizar un nodo y poder
ejecutar el comando de simulacin.

Para indicarle a Ros que en nuestro espacio de trabajo se encuentran archivos


ejecutables digitamos source devel_setup.bash., el cual los habilita.

Para finalizar utilizamos: $ roslaunch mastering_ros_robot_description_pkg


view_demo.launch para ejecutar el programa.

Como resultado obtenemos la siguiente interfaz grfica que nos permite la


interaccin y visualizacin del robot en RViz.

INTERACTUANDO CON EL ROBOT

El joint_state_publishers, nos permite la interaccin con el robot donde se puede


observar los desplazamientos del link y el joint, como tambin los grados de
libertad que tiene el robot.

PROPIEDADES DE LOS MODELOS URDF

Adicin de propiedades fsicas y de colisin a un modelo URDF.


Para el desarrollo de u robot es de suma importancia sus propiedades fsicas, tales
como; su geometra, el color, la masa y la inercia de igual manera las propiedades
de colisin de los links,

Slo se obtendrn buenos resultados de simulacin si definimos todas estas


propiedades dentro del
Modelo de robot. El URDF proporciona etiquetas para incluir todos estos parmetros
y fragmentos de cdigo.

Esta es una muestra de las propiedades para la base_link:

Aqu se define la geometra de colisin como cilindro y la masa como 1 Kg, y


tambin se establece la matriz inercial del enlace. Los parmetros de colisin e
inercia son requeridos en cada enlace.

MODELADO DE ROBOTS USANDO SACRO

La flexibilidad de URDF se reduce cuando trabajamos con modelos complejos de


robots. Algunos de
Las principales caractersticas que le faltan a URDF son la sencillez, la
reutilizacin, la modularidad, y programabilidad.

El URDF es archivo nico y no podemos incluir otros archivos de URDF dentro de l.


Esto reduce la naturaleza modular del cdigo. Todo el cdigo debe estar en un nico
archivo, lo que reduce la simplicidad del cdigo tambin.

Adems, si hay alguna programacin, como agregar variables, constantes, expresiones


matemticas, sentencia condicional, etc., en la descripcin del lenguaje, ser ms
fcil de usar. El modelado de robots utilizando xacro cumple todas estas
condiciones.

CONVERSIN DE XACRO A URDF

Despus de disear un archivo xacro podemos convertirlo a urdf utilizando el


siguiente comando:

$ rosrun xacro xacro.py pan_tilt.xacro > pan_tilt_generated.urdf

En nuestra carpeta de URDF tendremos un nuevo archivo generado con el nombre de


pan_tilt_generated.irf

CREACIN DE LA DESCRIPCIN DE UN ROBOT DE 7 GRADOS DE LIBERTAD

Ahora, con la ayuda de URGF y Xacro, podemos crear un robot ms complejo. Para eta
parte del laboratorio se creara un robot con 7 grados de libertad, el cual ser de
tipo manipulador con mltiples links.

EL brazo de 7 grados de libertad es cinematicamente redundante, lo cual significa


que tiene ms joints de los que requiere para cumplir con esta operacin. La
ventaja de los manipuladores redundantes, es que podemos tener ms joints y
configurarlos para una particular posicin y orientacin. Esto mejora la
flexibilidad y versatilidad del movimiento del robot y puede implementar una
colisin efectiva de libre movimiento en un espacio de trabajo del robot.
Especificacin del brazo

Aqu est la especificacin del brazo del robot con 7 grados de libertad:

Grados de libertad: 7
Longitud del brazo: 50 cm
Alcance del brazo: 35 cm
Nmero de enlaces: 12
Nmero de juntas: 11

Tipo de juntas o joints

Con estas especificaciones creamos el archivo xacro

Explicando el modelo xacro del brazo de siete grados de libertad

Para este robot se definen 10 links y 9 joints y 2 links y 2 joinst en el elemento


final (griper).

DEFINICIN DE SACRO

De esta manera definimos a xacro en el cdigo.

Como estamos creando un archivo xacro se debe mencionar el nombre del espacio a
utilizar para poder analizar el archivo.

USO DE CONSTANTES

Dentro de xacro se utilizan constantes para hacer descripciones ms cortas y


legibles. Aqu se define el grado del factor de conversin en radianes, el valor
PI, la longitud, la altura y el ancho de cada uno de los enlaces:

USO DE MACROS

Definimos macros en este cdigo para evitar la repetitividad y para hacer el cdigo
ms corto.
Aqu estn los macros que hemos utilizado en este cdigo:

Esta es la definicin de la matriz de inercial en la que podemos utilizar la masa


como su parmetro:
En la seccin del cdigo, podemos ver la definicin usando la etiqueta de
transmisin.

La etiqueta transmisin relaciona al joint como un actuador. Esto define el tipo de


transmisin que nosotros estamos usando en un joint particular y el tipo de motor y
sus parmetros. Esto tambin define el tipo de interface de hardware que nosotros
usamos cuando interactuamos con los controles de ROS.

INCLUYENDO OTROS ARCHIVOS XACRO

Las capacidades del robot en xacro pueden extenderse incluyendo la definicin de


los sensores usando la etiqueta xacro:include tag. El siguiente cdigo muestra como
incluir un sensor en el archivo xacro del robot:

Usando $ (find mastering_ros_robot_description_pkg)


/urdf/sensors/xtion_pro_live.urdf.xacro, se puede acceder a la definicin xacro
del sensor, el cual estar localizado en el paquete actual de
mastering_ros_robot_description_pkg.
Trabajando con el gripper del robot

El elemento final o gripper del robot est diseado para recoger y ubicar bloques.
El gripper tiene 2 joints para y cada joint es de tipo prismtico. Aqu est la
definicin de uno de los 2 joints del gripper:

El primer joint del gripper est formado por gripper_roll_link y


gripper_finger_link1, y el segundo joint est formado por gripper_roll_link y
gripper_finger_link2.

La siguiente grafica muestra como los joints del gripper estn conectadas en
gripper_roll_link:

Visualizacin del brazo de siete grados de libertad en RVIz

Luego de analizar el modelo del robot, nosotros podemos ver el archivo xacro
diseado en Rviz y cada joint de control. Usando el joint state publisher nodo y
tambin publicar el estado del robot usando el robot state publisher.

Para ver el archivo ejecutable de lo anterior llamamos al comando view_arm.launch,


el cual se encuentra dentro de la carpeta launch del paquete. Corremos el URDF
usando el siguiente comando:

$ roslaunch mastering_ros_robot_description_pkg view_arm.launch

Nosotros podemos interactuar con el robot utilizando la barra del joint y para
desplazar los joints.

ENTENDIENDO JOINT STATE PUBLISHER

Joint state publisher es uno de los paquetes de ROS comnmente usado para
interactuar con cada joint del robot. El paquete contiene el nodo
joint_state_publisher, en el cual se buscara los joints no fijos del modelo URDF y
publicara los valores de estado para cada joint en el sensor_msgs/jointstate en un
formato de mensaje.

En el archivo ejecutable view_arm.launch, iniciamos el nodo de


joint_state_publisher y le damos para metros llamando a use_gui verdadero como
sigue:

COMPRENSIN DEL EDITOR DEL ESTADO DEL ROBOT

El comando robot state publisher ayuda a publicar el estado del robot a tf. Este
paquete subscribe los estados de los joint del robot y publica la postura de cada
link usando la representacin cinemtica del modelo URDF. El nodo robot state
publisher puede ser usando con la siguiente lnea de cdigo:

Se puede visualizar la transformacin del robot dando clic sobre la opcin tf en


Rviz:

CREACIN DE UN ROBOT MOBIL

Un robot de ruedas diferencial est compuesto por dos ruedas conectadas en lados
opuestos del chasis del robot que est soportado por una o dos bases giratorias o
ruedas de apoyo giratorio. La velocidad del robot se ajusta de manera individual.
Si los dos motores estn funcionando a la misma velocidad, se mover hacia adelante
o hacia atrs. Si una rueda est funcionando ms lenta que la otra, el robot girar
al lado de la velocidad ms baja. Para realizar giros hacia los lados (izquierda,
derecha) se reduce la velocidad de la rueda que pertenece al lado deseado.

Hay dos soportes de ruedas caster wheels llamadas ruedas de apoyo giratorio que
apoyarn al robot y girarn libremente segn el movimiento de las ruedas
principales. El modelo de UDRF de este robot est presente en el paquete clonado de
ROS. El modelo final del robot se muestra cmo sigue:

CREACIN DE UN ROBOT MOVIL


Este robot est compuesto por cinco articulaciones y cinco enlaces. Tiene dos
articulaciones principales las cuales son las articulaciones de las ruedas y tiene
tres joints fijos en las ruedas de apoyo (caster wheel) y una unin fija en el pie
de la base del link del robot.

GRAFICO DE CONEXIN DEL ROBOT


A continuacin se describe el cdigo en el archivo UDRF. El nombre de archivo UDRF
denominado diff_wheeled_robot.xacro se coloca dentro de la carpeta urdf del paquete
ROS clonado.
Aqu es donde se da la primera seccin del archivo URDF, el robot recibe el nombre
de differential_wheeled_robot y tambin incluye un archivo UDRF denominado
wheel.urdf. Xacro Este archivo xacro contiene la definicin de la rueda y su
transmisin; Si usamos este archivo xacro, se puede escribir una sola definicin
para las ruedas ya que son idnticas en forma y tamao.

La definicin de una rueda est dentro de wheel.urdf.xacro.Se puede mencionar la


posicin de la rueda, si la rueda tiene que ser colocada a la izquierda, o a la
derecha, al frente o en la parte posterior. Usando esta macro, podemos crear un
mximo de cuatro ruedas para esta prctica solo se utilizan dos:

Tambin mencionamos los parmetros Gazebo requeridos para la simulacin. Aqu se


mencionan los parmetros Gazebo asociados con una rueda. Podemos mencionar el
coeficiente de friccin y el coeficiente de rigidez usando la etiqueta de
referencia gazebo:

Los joints que definimos para una rueda son joints continuos porque no hay lmite
en la articulacin de la rueda. El enlace principal aqu es la base del robot y el
enlace secundario son las ruedas:
Tambin necesitamos mencionar la etiqueta de transmisin de cada rueda; La macro de
la rueda es la siguiente:

El siguiente fragmento xacro usar la masa, el radio y la altura del cilindro y


calcular la inercia usando la siguiente ecuacin:

La definicin de archivo de lanzamiento para mostrar este modelo de raz en RViz se


da aqu. El archivo de lanzamiento se denomina view_mobile_robot.launch:

La nica diferencia entre el archivo UDRF del brazo y el del robot mvil, es el
cambio en el nombre; Las otras secciones son las mismas. Se puede visualizar el
robot mvil con el siguiente comando:

$ roslaunch mastering_ros_robot_description_pkg view_mobile_robot.launch

PREGUNTAS

1. Cules son los paquetes utilizados para el modelado de robots en ROS?

Robot_model: ROS tiene un paquete llamado robot_model, que contiene Importantes


paquetes que ayudan a construir los modelos de robot 3D. Podemos ver todos los
paquetes importantes dentro de este meta-paquete.

Urdf: Uno de los paquetes importantes dentro del paquete meta de robot_model es
urdf. El paquete URDF contiene un analizador de C ++ para el formato de descripcin
de robot unificado (URDF), que es un archivo XML para representar un modelo de
robot.

Joint_state_publisher: Esta herramienta es muy til al disear modelos de robots


utilizando URDF. Este paquete contiene un nodo denominado joint_state_publisher,
que lee la descripcin del modelo de robot, encuentra todas las articulaciones y
publica valores conjuntos para todas las juntas no fijas mediante deslizadores GUI

Kdl_parser: KDL (Kinematic and Dynamics Library) es un paquete ROS que contiene
herramientas de parser para construir un rbol KDL a partir de la representacin
URDF. El rbol cinemtico se puede utilizar para publicar los estados de la
articulacin y tambin para avanzar y realizar la cinemtica inversa del robot.

Robot_state_publisher: Este paquete lee los actuales estados conjuntos de robots y


publica las posiciones en 3D de cada enlace de robot usando la estructura de rbol
cinemtico de la URDF.

Xacro: Xacro significa (XML Macros) y podemos definir como xacro es igual a URDF y
add-ons. Contiene algunos complementos para hacer URDF ms corto, legible, y puede
ser utilizado para la construccin de complejas descripciones de robots
2. Cules son las etiquetas URDF importantes usadas para el modelado de robots?

Link: La etiqueta de enlace representa un solo enlace de un robot. Usando esta


etiqueta,
Puede modelar un enlace de robot y sus propiedades. El modelado incluye tamao,
forma,
Color e incluso puede importar una malla 3D para representar el enlace del robot.

Joint: La etiqueta conjunta representa una articulacin del robot. Podemos


especificar la cinemtica y la dinmica de la articulacin y tambin establecer los
lmites del movimiento de la articulacin y su velocidad. La etiqueta de junta
soporta los diferentes tipos de juntas tales como revoluta, continua, prismtica,
fija, flotante y planar.

Robot: Esta etiqueta encapsula todo el modelo de robot que se puede representar
utilizando URDF. Dentro de la etiqueta del robot, podemos definir el nombre del
robot, los enlaces, y las articulaciones del robot.

Gazebo: Esta etiqueta se utiliza cuando se incluyen los parmetros de simulacin


del simulador Gazebo dentro de URDF. Podemos usar esta etiqueta para incluir gazebo
Plugins.

3. Cules son las razones para usar xacro sobre URDF?

La flexibilidad de URDF se reduce cuando trabajamos con modelos complejos de


robots. Algunos delas principales caractersticas que falta a URDF son la
sencillez, la reutilizacin, la modularidad, y programabilidad.

Adems, si hay alguna programacin, como agregar variables, constantes, expresiones


matemticas, declaracin condicional, etc., en la descripcin de lenguaje, ser ms
fcil de usar. El robot de modelado que utiliza xacro cumple todas estas.

4. Cul es el uso del joint state Publisher y robot state publisher packages?

El joint state Publisher, es uno de los paquetes de ROS que se utiliza comnmente
para interactuar con cada joint del robot, permite encontrar las articulaciones no
fijadas del modelo URDF y publica los valores de estado conjuntos de cada
articulacin en el formato de mensaje.

El robot state publisher packages, ayuda a publicar el estado del robot a tf. Este
paquete se suscribe a estados conjuntos del robot y publica la posicin en 3D de
cada enlace usando en la representacin cinemtica del modelo URDF.

5. Cul es el uso de la etiqueta de transmisin en URDF?

Esta se utiliza para definir la potencia de los motores que permiten el giro de
las ruedas y es de suma importancia para el control de los movimientos del robot,
en especial cuando se van a realizar giros hacia un lado especfico (izquierda y
derecha).

Vous aimerez peut-être aussi