# 運用手順:ローカル制御からHTTPクライアントまで このページは提供された `DobotCtrl`、`DobotTcp`、`server_fastapi`、`Config`、`ese774_frame` の実装に基づきます。実機の移動を含む操作は、安全対策を確認した環境でのみ実行してください。 ## 1. 接続前に確認すること - MG400のIPアドレスを確認する(初期値 `192.168.1.6` は設定例)。 - 制御PCからDashboard(29999)、Motion(30003)、Feedback(30004)への通信経路を確認する。 - サーボ状態、動作領域、非常停止手順を確認する。 - まず状態読み取りのみで接続を検証する。 ## 2. ローカル制御 ```python from dobot.dobot_ctrl import DobotCtrl robot = DobotCtrl(dobot_ip="192.168.1.6", auto_connect=False) try: if not robot.connect(): raise RuntimeError("MG400 connection failed") print(robot.get_current_pose()) print(robot.get_current_angle()) finally: robot.disconnect() ``` `auto_connect=False` では明示的に `connect()` します。`DobotCtrl` は `DobotTcp` に処理を委譲します。 ## 3. FastAPIサーバー 提供された `src/dobot/server_fastapi/server.py` がサーバー本体です。プロジェクトルートから以下で起動します。 ```bash python -m dobot.server_fastapi.server ``` このモジュールは `FastApiServer(device_cls=DobotCtrl, router_cls=None, api_spec=None, object_name="dobot", ...)` を使用します。専用RouterとPydanticリクエストモデルを必須としない、`ese774_frame` の完全自動ディスパッチです。 サーバーの初期設定は `Config.SERVER_IP="127.0.0.1"`、`SERVER_PORT=8000`、`DOBOT_IP="192.168.1.6"` です。別ホストから接続するにはサーバーのbindアドレスとネットワーク設定の変更が必要です。 **注意:** `src/dobot/server.py` は公開クライアントのエクスポート用であり、サーバー起動モジュールではありません。 ## 4. 同期クライアント ```python from dobot.server_fastapi import SyncDobotClient client = SyncDobotClient(server_ip="127.0.0.1", server_port=8000) print(client.get_current_pose()) print(client.get_current_angle()) ``` 同期クライアントはHTTP要求の完了を待ちます。ロボット移動完了まで待つかどうかは別の契約であり、`move(..., is_async=...)` が制御します。 ## 5. 非同期クライアント `AsyncDobotClient` は `ese774_frame.clients.async_device_client.AsyncDeviceClient` を継承します。実際の呼び出し・後処理はクライアント実装に従ってください。ここでは動作未検証のイベントループ例を追加しません。 ## 6. 移動コマンドの同期契約 `DobotTcp.move()` の引数には `target`、`motion_mode`、`coord_type`、`path_blend`、`offset`、`pose`、`speed`、`accel`、`decel`、`is_async` があります。`is_async=True` は受付応答後に戻り、`is_async=False` は `Sync()` によって完了を待ちます。`pose` 指定は現実装では未対応として `False` を返します。 ## 7. 設定の読み込み `Config.load_yaml(path)` はクラス属性を書き換えます。`Config(yaml_path=path)` はインスタンス属性だけを更新します。サーバーの `Config` 利用形態に合わせて設定を反映してください。 ## 8. 参照先 - [アーキテクチャ](../manual/architecture.md) - [Framework](../reference/framework.md) - [公開メソッド一覧](../reference/method_signatures.md) - [自動生成API](../api/modules.html)