| 12 | |
| 13 | |
| 14 | def build_parser() -> argparse.ArgumentParser: |
| 15 | parser = argparse.ArgumentParser(description="Run a Revo3 ONNX policy through bc-stark-sdk.") |
| 16 | parser.add_argument("--onnx", required=True, help="Path to policy.onnx.") |
| 17 | parser.add_argument("--policy", required=True, help="Path to policy.yaml.") |
| 18 | parser.add_argument("--profile", default="config/revo3_right.yaml", help="Path to robot profile YAML.") |
| 19 | parser.add_argument("--port", default=None, help="Serial port. Omit for SDK auto-detect.") |
| 20 | parser.add_argument("--baudrate", type=int, default=None) |
| 21 | parser.add_argument("--slave-id", type=int, default=None) |
| 22 | parser.add_argument("--rate", type=float, default=None, help="Override policy rate in Hz.") |
| 23 | parser.add_argument("--kp", type=float, default=None) |
| 24 | parser.add_argument("--kd", type=float, default=None) |
| 25 | parser.add_argument("--effort-ma", type=float, default=None) |
| 26 | parser.add_argument("--use-gpu", action="store_true") |
| 27 | parser.add_argument("--dry-run", action="store_true", help="Run inference without sending commands.") |
| 28 | return parser |
| 29 | |
| 30 | |
| 31 | async def async_main(args: argparse.Namespace) -> int: |