Skip to content

ncb27/robot_warehouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

robot_warehouse

En este proyecto se trabajará en programar y simular un robot diferencial el cual se busca sea una representación de un robot real que seria utilizado dentro de un pequeño almacén, el robot busca volver más eficientes los procesos, incrementando así la producción y reduciendo los tiempos permitiendo también que los trabajadores ya no sean asignados a tareas repetitivas o peligrosas y puedan ser aprovechados en tareas con mayor relevancia y que no pongan en riesgo su salud física.

requerimientos

Para poder realizar este proyecto fue necesario:

funcionamiento

solidworks

Para el diseño de este robot fue necesario dividirlo en varias partes, la primera fue la base ya que con esta pieza tomamos medidas para poder tener el resto de las piezas a esa escala, luego diseñamos una tapa para la base ya que era necesario dejar un espacio para todo el circuito y las tarjetas que nuestro robot necesita para su funcionamiento, luego diseñamos una cinta transportadora para lanzar las cajas y por último las ruedas y la rueda loca.

URDF

Para las partes en URDF se simplificó el cuerpo para un rectángulo de 80mx60cm, ponemos las inercias y los parámetros de colisión a la descripción del urdf,Las ruedas son solo cilindros unidos a la carrocería con una junta continua, para el sensor se utilizó una cámara, que consiste en una pequeña caja unida a la carrocería, para la función del sensor pondremos un código en la sección de simulación, para el transportador se utilizó una articulación prismática, que tiene el cuerpo de un rectángulo.

Gazebo

Después de lanzar el robot en gazebo, podemos interactuar con las articulaciones y empezar a moverse alrededor del robot en el mundo, también podríamos poner cajas de cartón de los objetos de gazebo que ya se descargan cuando se instala gazebo, podemos interactuar con la cámara dentro del mundo de gazebo y no solo en rviz

image

Para mover un robot en simulación, éste debe tener un controlador que publique las posiciones de sus articulaciones. Para el control del movimiento de las ruedas se utiliza un controlador ya existente en el plugin de gazebo, diff-controller.

image

Con este comando se puede mover el robot en todas las direcciones que se necesiten.

image

Utilizando el comando se está controlando la velocidad en todas las direcciones con las teclas de nuestro teclado, esto facilita el control del robot, y hace más fácil la simulación.

Controlador de articulación: Para la articulación del transportador, se necesita un controlador, usamos ros control para esta instancia, necesitamos crear un archivo roslaunch en el cual lanzamos el controlador de la articulación, el tipo que usamos fue transmisión de esfuerzo. Para ello primero declaramos la transmisión de la articulación que queremos mover.

image image

En este archivo. yaml se ponen todos los parámetros del controlador, como la tasa de publicación, el nombre del publicador que vamos a publicar o suscribir y qué articulación queremos controlar, también las ganancias del control PID, ponemos 1 en la ganancia porque no queremos cambiar el código y afectar a la simulación Para la última parte se necesita lanzar el controlador, porque si no lo hacemos el control no será capaz de publicar datos en el nodo.

image

Este comando va dentro del archivo de lanzamiento que se puede ver en el apéndice de archivos, Este comando toma los parámetros del archivo. yaml y deja que el controlador se lance con todos los archivos que necesitamos lanzar al mismo tiempo, con el comando roslaunch.

image

RVIZ

Para simular el robot en rviz, en nuestro archivo de lanzamiento tenemos que haber especificado que necesitamos mostrar el robot en rviz, este programa nos permite mostrar el modelo del robot, los sensores, y también puede suscribirse a un nodo y hacer un gui para controlar las articulaciones. Esta es la forma más fácil de simular en gazebo, pero también podríamos hacer archivos que hagan un gui para controlar las articulaciones, como este ejemplo.

image

Para la cámara necesitamos hacer un controlador para obtener la imagen que la cámara está publicando, este controlador va dentro del archivo de descripción del gazebo, y el controlador se lanza en el archivo de lanzamiento

image

Resultados

Las siguientes imágenes muestran lo obtenido en Gazeboo:

image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors