Skip to content

misarmientoc/Robotica_lab3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

Robotica_lab3

Laboratorio 3 de robótica 2023-2

Integrantes

  • Norma Lorena Martinez Zavala
  • Miguel Angel Sarmiento Cabarcas
  • Jaime Andres Sanchez Peralta

Metodología

##Comunicación con matlab:

En primer momento se realiza la comunicación con Matlab con el código propuesto en la guía, donde se logra mover la tortuga cada vez que es ejecutada la tercera sección del código.

image

Escribir un código que permita operar una tortuga del paquete turtlesim con el teclado, cumpliendo con las siguientes especificaciones:
• Movimiento hacia adelante y hacia atrás con las teclas W y S.
• Giros en sentido horario y antihorario con las teclas D y A.
• Retornar a la posición y orientación centrales con la tecla R.
• Giro de 180° con la tecla ESPACIO.

image


rosrun turtlesim turtlesim node

#Código

La primera parte del código se tomó del ejemplo que incluye la guía y esta en el sitio Python For Fun: Get Key Press in Python http://python4fun.blogspot.com/2008/06/get-key-press-in-python.html

image

Para mover la tortuga en el simulador de ROS, se implementa una función que lee las teclas presionadas por el usuario y envía comandos de velocidad al topic cmd_vel. Además, se crean dos objetos de tipo ServiceProxy que se conectan con los servicios TeleportAbsolute y TeleportRelative, que permiten cambiar la posición y la orientación de la tortuga respectivamente. La función main se encarga de inicializar el nodo de ROS y llamar a la función que detecta las teclas del teclado.

image

El siguiente código muestra cómo controlar el movimiento de una tortuga en ROS usando las teclas del teclado. Se define un objeto de tipo ServiceProxy para llamar a los servicios de reset y rotate de la tortuga. Luego se crea un objeto de tipo Publisher para publicar mensajes de tipo Twist en el tópico /turtle1/cmd_vel. Después se inicializa el nodo y se configura la frecuencia de publicación. Dentro del ciclo while con condicional de siempre que ROS esté activo, se crea una función que guarda el valor actual de la tecla presionada como un número binario de 8 bits, se reinician los valores del mensaje a 0 para que las iteraciones anteriores no afecten el funcionamiento, mediante una serie de condicionales se compara cuál tecla fue presionada y en caso de ser 'w' o 's' se cambia la velocidad en x por 1 o -1 respectivamente, en caso de ser 'a' o 'd' se cambia la velocidad angular en z por 1 o -1 respectivamente, pero en caso de ser 'r' o ' ' se ejecuta el ServiceProxy definido al inicio del código con los valores para reiniciar la posición de la tortuga en caso de haber presionado 'r' o con una rotación relativa de pi en caso de haber presionado la barra espaciadora. Finalmente se publica el mensaje y se espera hasta la siguiente iteración.

image

Resultados

El movimiento realizado se puede ver en el siguiente video

https://youtu.be/7X1kx9yWbPY

Screenshot 2023-10-27 190341

Análisis

• Para hacer uso de la función catkin y sus derivados como catkin_make, debe tenerse instalado el paquete, ya que no es una función nativa del entorno de trabajo, ni viene previamente instalada en ROS, sin embargo, puede instalarse a través de este.

• Para abrirse el archivo de python MyTeleopKey, se debe realizar un catkin build previo para actualizar los archivos cargados en la carpeta creada por el catkin_make, de otra manera, el sistema no lo detectará.

•Para la realización de la conexión con MATLAB, en caso de que se requiera, se puede realizar mediante una comunicación SSH, se debe revisar si la máquina virtual, tiene el protocolo de comunicación habilitado.

Conclusiones

Como se mostro en el video, e el código funciona de manera efectiva y permite al usuario interactuar con la tortuga de forma bastante sencilla. Este tipo de control es útil en aplicaciones de robótica donde se requiere una interacción en tiempo real con un robot en un entorno de simulación.

Si bien tuvimos varias complicaciones con el programa ROS y el manejo de Linux, la practica se implemento con éxito, pues se logro el control de una tortuga en ROS a través del teclado, lo que demuestra la flexibilidad y potencia de las herramientas en ROS para el desarrollo y la experimentación en la materia. Esta practica fue bastante interesante pues consideramos que la implementación de control de tortuga a través del teclado en ROS es un paso importante en la comprensión de la programación de robots y la simulación en robótica y nos permitira avanzar en futuros laboratorios.

About

Laboratorio 3 de robótica 2023-2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages