Post

Ejercicio FollowLine coche Ackerman funcional en O3DE, comienzo integración de ejercicio en Robotics Academy e investigación de HumanWorker Gem

Ejercicio FollowLine coche Ackerman funcional en O3DE

Esta semana he logrado por fin arreglar todos los problemas en O3DE relacionados con el vehículo, tanto la fuerza de los motores como la motricidad de las ruedas delanteras.

El problema de la motricidad de las ruedas delanteras era debido a que las ruedas de delante necesitan un HingeJoint conectado a una entidad que será la encargada de poder girar la rueda para un lado u otro y esta entidad estar conectado a la base del coche que vaya a tener los componentes ROS2 sobre Ackerman, sino no funcionará el coche.

Y conectando las ruedas directamente al vehículo, el coche será capaz de mantenerse y funcionar correctamente, sin caerse al suelo o no poderse mover por el peso.

Al final he podido también lograrlo gracias a este proyecto subido a github sobre un coche ackerman en O3DE

Aquí un video en funcionamiento el coche dentro de O3DE:

Comienzo integración de ejercicio en Robotics Academy

Una vez sabiendo que todo funciona en O3DE, ahora debo pasar este ejercicio a RAX(Robotics Academy especial con O3DE integrado), ya que no sirve con solo subir el level a RAX como con el ejercicio laser mapping que ya aprovechamos el DemoLevel del warehouse.

En este caso encontré dos problemas claros:

  • Visión del mundo: El VNC carga correctamente pero solo se ve el entorno y no el coche ni el circuito, esto es debido a que los modelos, materiales, colliders personalizados y texturas no se encuentran dentro del proyecto que está en RAX lo que provoca que parezca que no carga correctamente o que la cámara está mirando a otro lado.

  • Integración de Ackerman en el .HAL: En Robotics Academy prácticamente todos los ejercicios usan Twist y no Ackerman lo que provoca que no funcione correctamente nada de lo que está programado con el level de O3DE.

Para poder arreglar lo primero se debería pasar a Assets del proyecto de RAX de O3DE los archivos externos que se usan en el ejercicio de FollowLine en O3DE.

Para el otro problema, debería poder modificar el .HAL para que cuando detecte cuando necesita usar Twist() o cuando usar Ackerman()

Investigación de HumanWorker

También he estado investigando sobre cómo poder integrar humanos en O3DE y no solo poder hacer que se muevan de forma autonoma, sino que además poder controlarlo.

Para lo primero he encontrado que O3DE tiene una gem llamada HumanWorker

HumanWorker

Descargue la gem desde el github del proyecto pero hay un problema relacionado a la versión de la gem ROS2, para usar HumanWorker se debe usar una versión 3.14 de gem ROS2, pero la que se está usando actualmente con O3DE es 2.0.0 que es la compatible con la versión de O3DE.

Igualmente, a partir del uso de scripts de O3DE y usando algún modelo humano con animación se podría replicar lo mismo, pero aun estoy investigando sobre el tema.

La otra alternativa para poder usar humanos es descargar otra version de o3de con una version del gem de ROS que cumpla con la dependencia de HumanWorker.

This post is licensed under CC BY 4.0 by the author.

Trending Tags