Lenguajes de Programación

Turtlesim, simulador 2D para robots diferenciales en ROS

Os hablamos de Turtlesim, un simulador que permite aprender los conceptos básicos de ROS (Robotic Operating System) de una forma sencilla.

Publicado el 11 de Enero de 2018
Compartir
Tabla de contenidos

Turtlesim es un simulador que nos permite de forma simple aprender los conceptos básicos de ROS (Robotic Operating System) ya que es un paquete que forma parte de la instalación de ROS.
El simulador es una ventana gráfica que muestra un robot en forma de tortuga, los robots utilizados en Turtlesim se llaman turtlebots. Esta tortuga recibe mensajes del tipo “Twist” que es el tipo de mensajes estándar que se utiliza para controlar un robot.

Empezando

Para comenzar abrimos la terminal y escribimos:

roscore

presionamos Enter, esto lo hacemos para utilizar ROS, por lo que es necesario que esté corriendo el roscore.

Luego para abrir el simulador de turtlesim ejecutamos el siguiente comando:

rosrun turtlesim turtlesim_node

Se nos debe abrir el simulador con un turtlebot en la mitad de la pantalla del simulador.

Imagen 0 en Turtlesim, simulador 2D para robots diferenciales en ROS

Para ver los tópicos abiertos, se ejecuta en otra terminal el siguiente comando:

rostopic list –v

Por cada turtlebot que tiene el simulador hay tres tópicos distintos que son:

  • /turtle1/cmd_vel: recibe comandos de velocidad para mover el turtlebot.
  • /turtle1/color_sensor: componente RGB del fondo del simulador.
  • /turtle1/pose: posición que tiene en la imagen.

Tópicos

Los tópicos comienzan por el nombre del turtlebot que en este caso es turtle1.

A través del tópico cmd_vel pasamos el siguiente comando que enviará un mensaje de tipo Twist al turtlebot, de esta forma el turtlebot va a avanzar con un pequeño giro hacia la izquierda:

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0,0.0,0.0]' '[0.0,0.0,0.3]'

Para darle un movimiento continuo al turtlebot podemos ejecutar:

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0,0.0,0.0]' '[0.0,0.0,1.0]'

Como tiene una frecuencia de 1 el turtlebot no dejará de moverse.

Servicios de Turtlesim

Para obtener una lista de los servicios disponibles utilizamos el comando:

rosservice list

Para llamar los servicios utilizamos el comando:

rosservice call

Por ejemplo para llamar el servicio spawn pasándole como parámetros las coordenadas y un nombre podemos añadir un turtlebot adicional al simulador, escribiendo el siguiente comando:

rosservice call /spawn 2 2 0.5 "turtle2"

Para eliminar un turtlebot por su nombre podemos ejecutar el siguiente comando:

rosservice call /kill "turtle2"

Turtlesim tiene un nodo que permite mover el turtlebot con las flechas de dirección del teclado, para ello escribimos en la terminal el siguiente comando:

rosrun turtlesim turtle_teleop_key

Artículo desarrollado a partir del vídeo por Jhuly Acosta.


Compartir este post

También te puede interesar...

Tecnología

Qué es ROS (Robot Operating System)

21 Septiembre 2017 Daniel Ortego Delgado
Introducción a la programación en ROS

Curso de introducción a la programación en ROS

8 horas y 40 minutos · Curso

Introdúcete en el mundo de la robótica usando ROS: Robot Operating System. Aprenderás a programar tus propios robots con ROS.

  • Herramientas
Artículos
Ver todos