Robótica

Cómo planificar un robot simple usando Linux

Cómo planificar un robot simple usando Linux
Una vez que tenga ROS instalado, es posible que desee construir un robot. Una buena forma de tener éxito en este proyecto es planificar lo que quieres hacer. En este caso, ROS viene al rescate. Con ROS, puede configurar lo que ha construido y visualizar todo. Cuando trabaje con robots, habrá muchos escenarios que quizás deba considerar. El robot debe interactuar con el entorno, como evitar el sofá y encontrar el camino de regreso de la cocina. El robot también debe tener brazos y piernas si sus necesidades lo requieren. Puede simular todo esto usando ROS, y para la parte de codificación, también puede simular las partes internas de su sistema.

¿Cómo se construye un robot ROS??

Para que el sistema funcione bien y para que pueda seguir lo que hará el dispositivo en determinadas situaciones, necesita definiciones estándar para cada parte. En ROS, estos componentes son nodos, servicios y temas. En resumen, crea un nodo para cada necesidad principal. Por ejemplo, el movimiento es un nodo, la visión es otro nodo y la planificación es un tercer nodo. Los nodos contienen servicios que pueden enviar información a otros nodos, y los servicios también pueden manejar solicitudes y respuestas. Un tema puede transmitir valores a muchos otros nodos. Familiarizarse con estos términos y cómo debe usarlos es la primera clave para dominar el desarrollo de ROS2.

Emule la navegación con turtlesim

Al comenzar en ROS, probablemente comprará un robot que camine o ruede por su casa. Para hacer esto, el robot necesita tener una vista del área donde está navegando. Para hacer esto, puede usar una aplicación similar a un mapa para probar el comportamiento de su robot. Los diseñadores detrás de Turtlebot han creado una aplicación, llamada turtlesim, que puede hacer esto por ti. Al igual que con todas las demás partes de ROS2, puede iniciar estas herramientas con un subcomando desde la línea de comandos. Luego tienes actividades para diferentes funciones. La primera parte es iniciar la ventana donde puede ver la simulación, y esto se llama nodo.

$ ros2 ejecutar turtlesim turtlesimnode

Aparecerá una ventana con una tortuga en el centro. Para controlar la tortuga con tu teclado, debes ejecutar un segundo comando que permanece abierto y seguir presionando ciertas teclas. Este es un segundo nodo que se comunica con el primero.

$ ros2 ejecutar turtlesim turtleteleopkey

Ahora, puedes mover la tortuga y ver cómo se mueve. También puede obtener errores, como golpear la pared. Estos errores aparecen en la terminal donde se está ejecutando turtlesimnode. Este es el uso más simple del módulo de simulación. También puede ejecutar formas dadas, se proporciona un cuadrado y agregar más tortugas. Para agregar más tortugas, puede usar el comando rqt.

Definir servicios con rqt

El programa rqt brinda servicios para la simulación. La q significa Qt, que es para manejar la interfaz. En este ejemplo, generas una nueva tortuga.

$ rqt

La interfaz rqt es una larga lista de servicios para la simulación que está ejecutando. Para crear una nueva tortuga, elija el menú desplegable 'desovar', asigne un nuevo nombre a la tortuga y haga clic en 'llamar.'Inmediatamente verá una nueva tortuga junto a la primera. Si hace clic en el menú desplegable 'engendrar', también verá un nuevo grupo de entradas relacionadas con la tortuga recién engendrada.

También puede reasignar comandos para ejecutar la nueva tortuga. El comando para hacerlo es el siguiente:

$ ros2 ejecutar turtlesim turtleteleopkey -ros-args -remap turtle1 / cmdvel: = turtle2 / cmdvel

Establezca el nombre 'turtle2', de acuerdo con su elección anterior.

Visualización avanzada con Rviz

Para una visualización más avanzada y en 3D, use rviz. Este paquete simula todos los nodos de su diseño.

$ ros2 ejecutar rviz2 rviz2

En la interfaz gráfica, tiene tres paneles, con la vista en el centro. Puede crear entornos utilizando el panel 'Pantallas'. Puede agregar paredes, fuerzas del viento y otras propiedades físicas. Aquí también es donde agregas tus robots.

Tenga en cuenta que antes de llegar a este punto, deberá comprender cómo utilizar el formato URDF. El formato URDF define un robot, lo que le permite configurar el cuerpo, los brazos, las piernas y, sobre todo, las zonas de colisión. Las zonas de colisión están ahí para que la simulación pueda decidir si el robot ha chocado.

Aprender a crear un robot en formato URDF es un proyecto grande, así que use un código de fuente abierto existente para experimentar con los emuladores.

Simular física con Gazebo

En Gazebo, puede simular la física del entorno que rodea a su robot. Gazebo es un programa complementario que funciona bien junto con rviz. Con Gazebo, puede ver lo que realmente está sucediendo; con rviz, realiza un seguimiento de lo que detecta el robot. Cuando su software detecta un muro que no está allí, Gazebo se mostrará vacío y rviz mostrará en qué parte de su código se creó el muro.

Conclusión

La simulación de su robot y sus entornos es necesaria para encontrar errores y proporcionar las mejoras necesarias en el funcionamiento de su robot antes de ponerlo en libertad. Este es un proceso tedioso que continúa mucho después de comenzar a probar el bot, tanto en entornos controlados como en la vida real. Con un conocimiento adecuado de la infraestructura de los sistemas internos de su robot, puede entender lo que ha hecho bien y mal. Aprenda rápidamente a apreciar todas las fallas que encuentre, ya que pueden hacer que su sistema sea más robusto a largo plazo.

Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...