Este es mi copia del repositorio del submarino. Sirve para tener una idea de que hacer, como funciona y a donde ir. Sientete en confianza de clonar el repositorio y probarlo.
El repositorio ya es funcional. Contiene un modelo del submarino que es capaz de tomar decisiones de manera autonoma. Este busca los retos y navega hacia ellos.
Para correr la simulacion, se ocupan varias cosas.
- Ros 2 (humble)
- Gazebo 6 (Ignition)
Las librerias de python necesarias:
- Ultralytics
- Numpy (<2.0)
- websockets (No se, Yeina sabe)
- OpenCV
Una vez clonado el repositorio, para correrlo es sencillo. Los launchfiles se encuentran dentro del paquete uuv_master, ya que es donde este el nodo principal. Actualmente hay 2 launchfiles.
ros2 launch uuv_master gazebo_launch.pyEste corre el modo autonomo y mas avanzado del submarino.
ros2 launch uuv_master teleop_launch.pyEste corre el modo teleoperado del submarino. Sirve para tomar videos para vision.
Es posible que el gazebo no se despliegue correctamente cuando corras los launchfile. En ese caso el gazebo se vera negro y vas a tener que pararlo. En este caso es normal que se queden procesos secundarios corriendo. Por lo tanto tendras que pararlos.
pkill -9 ruby && pkill -9 parameter_brid && pkill -9 static_transformPor default se corre con el mission file 2. Estos archivos se encuentran en uuv_mission, y son algoritmos que marcan pasos que seguirá el sub en misiones específicas. Por ahora son sólo pruebas, aunque en la simulación sí se pueden ver las estaciones de las misiones. Para correr la simulación con otro archivo:
ros2 launch uuv_navigation gazebo_launch.py mission_file:=mission_x.yamly sustituye x por el número de la misión del nombre del archivo.
Se agrego una adaptacion para gazebo. Esto para poder incluir la camara a los calculos. No funciona del todo bien pero de algo sirve. Para correrlo:
Si se desea abrir la terminal y ver mensajes dentro del gazebo:
export IGN_PARTITION=uuv_sim
ign topic -l
ign topic -e -t /topico
Ademas, es posible que necesites instalar varias librerias como "eigen3" solo que no me acuerdo de los comandos, nomas hazle caso a lo que la terminal te diga. Si lo haces, dime que librerias ocupas instalar para anotarlas aqui pls.
Esto aun es un work in progress. Por lo tanto, hay varias cosas que deben de cambiar.
- Primero es que bezier agarra puntos aleatorios. En realidad el mission_handler gracias a las misiones, seran las que manden el waypoint a ir.
- El siguiente, es que el sub se ve fatal volando
- Debo de anadir formas a los waypoints
- Agregar un mission_handler y misiones
- Vision
- No se que mas poner, pero muchas cosas mas.