Académique Documents
Professionnel Documents
Culture Documents
$ 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.
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.
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.
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 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
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
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.
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.
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
DEFINICIN DE SACRO
Como estamos creando un archivo xacro se debe mencionar el nombre del espacio a
utilizar para poder analizar el archivo.
USO DE CONSTANTES
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:
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:
La siguiente grafica muestra como los joints del gripper estn conectadas en
gripper_roll_link:
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.
Nosotros podemos interactuar con el robot utilizando la barra del joint y para
desplazar los joints.
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.
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:
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:
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:
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:
PREGUNTAS
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.
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.
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?
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.
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.
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).