Skip to content

Codigos de ejemplo utilizados en el texto: "Una aproximacion a ROS"

Notifications You must be signed in to change notification settings

CDonosoK/tutorial_ros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TUTORIAL ROS

Made by Clemente Donoso, 📍 Chile 🇨🇱

If you want to contribute monetarily to the creation of the project, you can do so via PayPal: https://paypal.me/cdonosok

Si quieres saber más sobre ROS, la instalación y sus paquetes puedes hacer click aquí

Corresponde a un breve ejemplo de como construir un nodo de escritura y lectura bajo el paradigma de comunicación: Publisher/Subscriber

  • El nodoEscritura.py escribe en el tópico "tutorial01" un mensaje.
  • El nodoLectura.py lee dicho tópico y recibe la información enviada.

Para su utilización se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun tutorial-ros nodoEscritura.py
  • Termianl N°3: rosrun tutorial-ros nodoLectura.py

Corresponde a un breve ejemplo de como enviar mensajes personalizados a partir de un nodo de escritura y lectura bajo el paradigma de comunicación: Publisher/Subscriber (El mensaje personalizado se define en el archivo msg/mensajeCustomizado.msg)

  • El escritorPersonalizado.py escribe en el tópico "tutorial02" un mensaje personalizado.
  • El lectorPersonalizado.py lee dicho tópico y recibe la información enviada.

Para su utilización se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun tutorial-ros escritorPersonalizado.py
  • Termianl N°3: rosrun tutorial-ros lectorPersonalizado.py

Corresponde a un breve ejemplo de como utilizar un servicio implementado en un servidor, y así el nodo cliente utiliza la información enviada de vuelta a partir del paradigma de comunicación : Cliente/Servidor (El servicio personalizado se define en el archivo srv/servicioPersonalizado.srv).

  • El servidorPersonalizado.py es un servidor que recibe un mensaje personalizado y realiza alguna tarea, es importante que el servidor esté corriendo antes del cliente.

  • El clientePersonalizado.py es un cliente que utiliza el servicio personalizado para enviar datos

  • Terminal N°1: roscore

  • Terminal N°2: rosrun tutorial-ros servidorPersonalizado.py

  • Terminal N°3: rosrun tutorial-ros clientePersonalizado.py


Corresponde al primer ejemplo para la creación de un robot aspiradora básico, dónde se utiliza el simulador turtlesim para la simulación de un robot en 2 dimensiones.

Las siguientes líneas de comando corresponden a como mover el robot en línea recta, para ello se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun turtlesim turtlesim_node
  • Terminal N°3: rosrun tutorial-ros movimientoLineal.py

Las siguientes líneas de comando corresponden a como hacer que el robot gire en el punto, para ello se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun turtlesim turtlesim_node
  • Terminal N°3: rosrun tutorial-ros movimientoGiro.py

Las siguientes líneas de comando corresponden a como hacer que el robot se diriga a un objetivo, para ello se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun turtlesim turtlesim_node
  • Terminal N°3: rosrun tutorial-ros movimientoObjetivo.py

Las siguientes líneas de comando corresponden a como hacer que el robot aparezca inicialmente en una orientación determinada, para ello se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun turtlesim turtlesim_node
  • Terminal N°3: rosrun tutorial-ros definirOrientacion.py

Las siguientes líneas de comando corresponden a la combinación de las funciones anteriores para realizar un robot que se mueva por toda la cuadrilla, para ello se debe ejecutar los siguientes comandos:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun turtlesim turtlesim_node
  • Terminal N°3: rosrun tutorial-ros robotLimpiador2D.py

Corresponde a la creación de un archivo para ejecutar múltiples nodos al mismo tiempo (sin la necesidad de ejecutar roscore), este caso, se utilizará para ejecutar el enterno visual de turtlesim y también los comandos de movimiento del robot.

  • Terminal N°1: roslaunch tutorial_ros aspiradora2D.launch

Corresponde a la lectura de una imagen mediante la librería de python OpenCV (no se utilizará ROS en este tutorial) y así la verificación de que la instalación de OpenCV esté correcta. Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

El archivo lecturaArchivo.py corresponde a la lectura de una imagen guardada en memoria.

  • Terminal N°1: python lecturaArchivo.py

El siguiente archivo corresponde a verificar si se puede analizar una imagen en diversas codificaciones, para ello se debe ejecutar el siguiente comando:

  • Terminal N°1: python lecturaImagen_Color.py

El siguiente archivo corresponde a la observación de un video (ya sea en memoria o stream) y mostrar ciertas funcionalidades de OpenCV como lo es cambiar a escala de grises.

  • Terminal N°1: python lecturaCamara.py

El siguiente archivo corresponde a dibujar elementos o figuras en una imagen o video:

  • Terminal N°1: python dibujarElementos.py

Corresponde a la integración de OpenCV con ROS mediante CvBridge:

  • Terminal N°1: roscore
  • Terminal N°2: rosrun usb_cam usb_cam_node
  • Terminal N°3: rosrun tutorial_ros cameraROS.py

Corresponde a la utilización de la técnica de Thresholding para la segmentación de una imagen. Se probará la técnica Thresholding Básica y Thresholding Adaptada.

Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

  • Terminal N°1: python ejemploThresholding.py

Corresponde a la utilización del formato HSV para detectar un color en específico dentro de una imagen, y luego utilizar una máscara para resaltarlo.

Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

  • Terminal N°1: python filtrarColor.py

Corresponde a la utilización de la técnica de detección de contornos en una imagen a través de un threshold adaptado o básico. Luego también se cuenta con una función auxiliar para el procesamiento de los contornos, por ejemplo, calcular el área de la figura.

Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

  • Terminal N°1: python contornoImagen.py

Corresponde a la unión de los últimos 3 tópicos, para identificar una pelota dentro de la imagen, detectar sus contornos y resaltar el centro de esta misma.

Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

  • Terminal N°1: python resaltarPelota.py

Luego con el siguiente comando, se puede traquear la pelota dentro de un video.

  • Terminal N°2: python traquearPelota.py

Corresponde a la unión de los últimos 3 tópicos, para identificar una pelota dentro de la imagen, detectar sus contornos y resaltar el centro de esta misma.

Además es necesario ejecutar el archivo directamente desde la carpeta en donde se encuentra.

  • Terminal N°1: python procesarLidar.py

About

Codigos de ejemplo utilizados en el texto: "Una aproximacion a ROS"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published