Compendio para estudiantes: ejecucion de la simulacion del robot auto-balanceado

1. Proposito

Este documento explica como ejecutar las simulaciones del proyecto del robot auto-balanceado de dos ruedas. El objetivo es que cada estudiante pueda correr el modelo 2D, analizar el comportamiento del PID normal y del PID potenciado por IA, abrir las graficas, revisar el compendio interactivo y, si tiene Docker configurado, probar tambien la simulacion en Gazebo.

2. Que contiene el proyecto

El proyecto incluye:

3. Requisitos minimos

Para la simulacion 2D:

Para Gazebo/ROS 2:

La simulacion 2D no necesita ROS, Gazebo ni Docker.

4. Ubicacion del proyecto

En la computadora de trabajo, el proyecto se encuentra en:


D:\PercetptIA\Self_Balancing_Robot

Si el estudiante tiene el proyecto en otra carpeta, debe entrar a su propia ruta.

Ejemplo en PowerShell:


cd D:\PercetptIA\Self_Balancing_Robot

5. Ejecutar la simulacion 2D

Desde la carpeta raiz del proyecto:


python scripts\sim_2d_pid_ai.py

Este comando genera:


data\sim_2d\pid_vs_pid_ai_2d.csv
data\sim_2d\pid_vs_pid_ai_2d.html

El CSV contiene los datos numericos. El HTML contiene graficas del comportamiento del robot.

6. Abrir el compendio interactivo recomendado

La version recomendada para clase es el compendio en un solo HTML:


data\sim_2d\guia_compendio_pid_ia_2d.html

Para regenerarlo despues de ejecutar la simulacion:


python scripts\create_2d_compendium.py

Luego abrir el archivo HTML en el navegador.

Este compendio incluye:

7. Generar solo la animacion

Si se desea generar unicamente la animacion:


python scripts\create_2d_animation.py

Archivo generado:


data\sim_2d\pid_vs_pid_ai_2d_animation.html

La animacion muestra lado a lado:

8. Generar el PDF teorico

Para crear el PDF teorico:


python scripts\create_theoretical_pdf.py

Archivo generado:


docs\informe_teorico_pid_ia_robot_auto_balanceado.pdf

El PDF contiene fundamentos teoricos sobre:

9. Ejecutar escenarios personalizados

Se puede cambiar la inclinacion inicial:


python scripts\sim_2d_pid_ai.py --initial-tilt-deg 10
python scripts\create_2d_compendium.py

Se puede cambiar la perturbacion externa:


python scripts\sim_2d_pid_ai.py --impulse-accel -5.0
python scripts\create_2d_compendium.py

Se puede cambiar la duracion de la simulacion:


python scripts\sim_2d_pid_ai.py --duration 15
python scripts\create_2d_compendium.py

10. Interpretacion basica de resultados

Al abrir el compendio HTML, observar tres aspectos:

1. **Inclinacion maxima**

Indica cuanto se aleja el robot de la vertical. Menor valor significa mejor estabilidad.

2. **Error acumulado**

Indica cuanto tiempo pasa el robot lejos del angulo objetivo. Menor valor significa mejor control global.

3. **RPM maxima**

Indica el esfuerzo solicitado al motor. Una mejora en estabilidad puede requerir mas RPM.

La conclusion esperada es que el PID potenciado por IA puede reducir la inclinacion y el error acumulado, pero usando mayor esfuerzo de motor.

11. Ejecutar Gazebo con Docker

Primero verificar que Docker Desktop este abierto y funcionando.

Construir la imagen:


docker compose build

Ejecutar simulacion headless:


docker compose up sim

Ejecutar una terminal dentro del contenedor:


docker compose run --rm sim bash

Dentro del contenedor se pueden consultar topics de ROS 2:


ros2 topic list

12. Gazebo grafico

Para abrir Gazebo con interfaz grafica, lo mas recomendable en Windows es usar WSL2 con soporte grafico.

Desde Linux/WSL2:


./docker/run-gui-linux.sh

Si la computadora no tiene configuracion grafica correcta, usar primero la simulacion 2D y el modo headless.

13. Errores comunes

Error: Docker no conecta

Mensaje posible:


error during connect: dockerDesktopLinuxEngine

Solucion:

Error: python no se reconoce

Solucion:

No se abre el HTML

Solucion:

La simulacion parece no cambiar

Solucion:

14. Actividad para entregar

Cada estudiante debe entregar:

1. Captura del compendio HTML abierto.

2. Una tabla comparando PID normal y PID IA.

3. Respuesta breve a estas preguntas:

- Cual controlador tuvo menor inclinacion maxima?

- Cual tuvo menor error acumulado?

- Cual uso mas RPM?

- La mejora del PID IA fue gratuita o tuvo un costo?

- Que podria pasar al llevar este control a Gazebo o al robot fisico?

15. Comandos rapidos

Ejecutar todo lo principal:


cd D:\PercetptIA\Self_Balancing_Robot
python scripts\sim_2d_pid_ai.py
python scripts\create_2d_compendium.py
python scripts\create_theoretical_pdf.py

Abrir archivos principales:


data\sim_2d\guia_compendio_pid_ia_2d.html
docs\informe_teorico_pid_ia_robot_auto_balanceado.pdf