Spaces:
Running
Running
Download scripts/verify_sdk_motion.py from BravoRobots/lexia: direct link, hf CLI and curl.
- Browser
- Download file 1.72 kB
-
https://huggingface.co/spaces/BravoRobots/lexia/resolve/main/scripts/verify_sdk_motion.py
- Command line
-
hf download hf://spaces/BravoRobots/lexia/scripts/verify_sdk_motion.py
-
curl -L -o verify_sdk_motion.py https://huggingface.co/spaces/BravoRobots/lexia/resolve/main/scripts/verify_sdk_motion.py
1.72 kB
| """Comprueba las firmas de movimiento contra el SDK realmente instalado. | |
| Ejecutar en el PC con el robot ANTES de mover nada: | |
| python -m scripts.verify_sdk_motion | |
| No mueve el robot: solo introspecciona. Si algo no coincide con lo que espera | |
| `lexia/robot/driver.py`, lo dice y se corrige ahí y en ningún otro sitio. | |
| """ | |
| from __future__ import annotations | |
| import inspect | |
| import sys | |
| ESPERADO = { | |
| "set_target": {"head", "antennas", "body_yaw"}, | |
| "goto_target": {"head", "antennas", "duration", "method", "body_yaw"}, | |
| } | |
| def main() -> int: | |
| try: | |
| from reachy_mini import ReachyMini | |
| except ImportError: | |
| print("El SDK reachy_mini no está instalado en este entorno.") | |
| return 2 | |
| problemas = 0 | |
| for nombre, esperados in ESPERADO.items(): | |
| metodo = getattr(ReachyMini, nombre, None) | |
| if metodo is None: | |
| print(f"FALTA {nombre}: el SDK instalado no lo expone") | |
| problemas += 1 | |
| continue | |
| firma = inspect.signature(metodo) | |
| reales = set(firma.parameters) - {"self"} | |
| print(f"OK {nombre}{firma}") | |
| ausentes = esperados - reales | |
| if ausentes: | |
| print(f" aviso: faltan parámetros esperados: {sorted(ausentes)}") | |
| problemas += 1 | |
| try: | |
| from reachy_mini.utils import create_head_pose | |
| print(f"OK create_head_pose{inspect.signature(create_head_pose)}") | |
| except ImportError: | |
| print("AVISO no hay create_head_pose; driver.py construye la matriz por su cuenta") | |
| print("\nSin problemas." if not problemas else f"\n{problemas} punto(s) a revisar.") | |
| return 1 if problemas else 0 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |