[EN]
This repository contains all the scripts used for simulations and real-world experiments in the Sim-to-real Risk-Aware Navigation for Quadruped Robots.
- Simulation Robot: Unitree Go1
- Real-world Robot: Unitree A1
- Location: Centre for Automation and Robotics (CAR), Universidad Politécnica de Madrid (UPM)
Below you can find all experiments organized by type and the scripts used in each.
Experiment 1: Controller evaluation based on obstacle density
- 1.1 Low density (Outdoor):
go1_outdoor_low.py;go1_inference.py - 1.2 Medium density (Outdoor):
go1_outdoor_medium.py;go1_inference.py - 1.3 High density (Outdoor):
go1_outdoor_high.py;go1_inference.py - 1.4 Low density (Indoor):
go1_indoor_low.py;go1_inference.py - 1.5 Medium density (Indoor):
go1_indoor_medium.py;go1_inference.py - 1.6 High density (Indoor):
go1_indoor_high.py;go1_inference.py
Experiment 2: Risk map analysis
-
2.1 Accuracy of risk maps in indoor environments
2.1.1:go1_indoor_low.py;go1_inference.py2.1.2:go1_indoor_medium.py;go1_inference.py2.1.3:go1_indoor_high.py;go1_inference.py
-
2.2 Mobility strategy to increase coverage
go1_indoor_high_zigzag.py;go1_inference_zigzag.py
Experiment 3: Influence of environmental parameters
-
3.1 Friction influence on stability:
go1_indoor_high_no_friction.py;go1_inference.py;go1_plotter.py -
3.2 Lighting intensity influence on detection:
go1_indoor_high_low_light.py;go1_inference.py;go1_plotter.py
Experiment 4: Learning policy analysis
-
4.1 Uninformed mobility (5 repetitions):
go1_indoor_high_room4.py;go1_inference_room4.py;go1_plotter.py -
4.2 Semi-informed mobility (N repetitions until completing route):
go1_indoor_high_room4_learning_fall.py;go1_inference_room4_learning_fall.py;go1_plotter.py -
4.3 Informed mobility (5 repetitions):
go1_indoor_high_room4_learning_realtime.py;go1_inference_room4_learning_realtime.py;go1_plotter.py
Notes:
- Differences between main scripts: obstacle density, friction use, lighting, start point, waypoints.
- Experiments 4.2 & 4.3 include more complex locomotion policies.
- All inference scripts have a similar structure; waypoint visualization may vary.
go1_graficador.pyvisualizes:- Robot pitch & roll angles
- Average difficulty of passage area
- Pressure on each leg
- Angles of 3 joints of each leg
Experiment 1: Risk map generation (manual control)
a1_inference_without_learning.py
Experiment 2: Locomotion policy with learning
a1_locomotion_policy_with_learning.pya1_inference_with_learning.py
⚠️ Tip: Use the collapsible sections above to navigate quickly between experiments. Each section lists the exact scripts used for reproducibility and reference.
[ES] Este repositorio contiene todos los scripts utilizados en las simulaciones y pruebas reales para el Sim-to-real Risk-Aware Navigation for Quadruped Robots.
Las simulaciones se han llevado a cabo utilizando el robot Go1 de Unitree, mientras que en las pruebas reales se ha empleado el robot A1, también de Unitree, disponible en el Centro de Automática y Robótica (CAR) de la Universidad Politécnica de Madrid (UPM).
A continuación, se describen las distintas pruebas realizadas, junto con los scripts utilizados en cada una de ellas.
Pruebas de simulación:
Prueba 1: Evaluación del controlador implementado en función de la densidad de obstáculos:
- Prueba 1.1: go1_exterior_baja.py; go1_inferencia.py
- Prueba 1.2: go1_exterior_media.py; go1_inferencia.py
- Prueba 1.3: go1_exterior_alta.py; go1_inferencia.py
- Prueba 1.4: go1_interior_baja.py; go1_inferencia.py
- Prueba 1.5: go1_interior_media.py; go1_inferencia.py
- Prueba 1.6: go1_interior_alta.py; go1_inferencia.py
Prueba 2: Análisis de los mapas de riesgo generados.
- Prueba 2.1: Precisión de los mapas de riesgo en el entorno interior:
- Prueba 2.1.1: go1_interior_baja.py; go1_inferencia.py
- Prueba 2.1.2: go1_interior_media.py; go1_inferencia.py
- Prueba 2.1.3: go1_interior_alta.py; go1_inferencia.py
- Prueba 2.2: Estrategia de movilidad para aumentar porcentaje de cobertura:
go1_interior_alta_zigzag.py; go1_inferencia_zigzag.py
Prueba 3: Análisis de la influencia de parámetros del entorno
- Prueba 3.1: Influencia del rozamiento en la estabilidad del robot:
go1_interior_alta_sin_friccion.py; go1_inferencia.py; go1_graficador.py
- Prueba 3.2 Influencia de la intensidad luminosa en detección de las imágenes:
go1_interior_alta_poca_luz.py; go1_inferencia.py; go1_graficador.py
Prueba 4: Análisis de la política de aprendizaje empleada.
- Prueba 4.1: Movilidad desinformada (5 repeticiones):
go1_interior_alta_sala4.py; go1_inferencia_sala4.py; go1_graficador.py
- Prueba 4.2: Movilidad semi-informada (N repeticiones hasta completar la ruta):
go1_interior_alta_sala4_aprendizaje_caida.py; go1_inferencia_sala4_aprendizaje_caida.py; go1_graficador.py
- Prueba 4.3: Movilidad informada (5 repeticiones):
go1_interior_alta_sala4_aprendizaje_tiempo_real.py; go1_inferencia_sala4_aprendizaje_tiempo_real.py; go1_graficador.py
Notas:
- La diferencia entre los scripts principales radica en las condiciones del entorno simuladas: densidad de obstáculos (baja, media o alta), uso o no de fricción en las texturas, intensidad luminosa, punto de partida del robot y los waypoints seguidos.
Además, en las pruebas 4.2 y 4.3 se incorporan políticas de locomoción más complejas.
- Todos los scripts de inferencia tienen una estructura muy similar pero varían ligeramente la visualización de los waypoints.
- Por último, el archivo graficador se ha utilizado en las pruebas 3 y 4 para visualizar:
- Los angulos pich y roll del robot.
- La dificultad media de la zona de paso en cada instante.
- La presión ejercida por cada una de las patas.
- Los ángulos de las 3 articulaciones de cada una de las patas.
Pruebas reales:
Prueba 1: Generación del mapa de riesto con control manual del robot:
a1_inferencia_sin_aprendizaje.py
Prueba 2: Política de locomoción con aprendizaje:
a1_politica_locomocion_con_aprendizaje.py; a1_inferencia_con_aprendizaje.py