Tabla de contenidos

Turtlesim, simulador 2D para robots diferenciales en ROS

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.

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.

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información