robot_control_web — 众擎ロボットPM01関節制御Webインターフェース
概要
众擎机器人PM01向けのWebベース関節制御インターフェースです。ユーザーはブラウザから24軸の関節を直感的に操作でき、現在の関節位置をリアルタイムに可視化します。操作はバックエンドで受け取りROS2トピックへ橋渡しする構成で、軌跡の録画・保存・平滑な補間による再生や、設定可能な帰零(初期姿勢への戻し)機能を備えます。systemdユニット定義が含まれ、ロボットシステムへの容易なデプロイと自動起動が可能です。開発はPython(Flask等)を中心に行われ、フロントはVue.js想定の構成図が示されています。(約300字)
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 3
- ファイル数: 6
- メインの言語: Python
主な特徴
- ブラウザ上で24関節をリアルタイムに制御・調整可能
- 現在値の可視化と関節間の接続線表示によるフィードバック
- 動作の軌跡を録画・保存し、平滑補間で再生できるトレース機能
- ROS2との連携とsystemdユニット(robot_web.service)による運用対応
技術的なポイント
このプロジェクトは典型的な三層アーキテクチャ(フロントエンド ⇄ バックエンド ⇄ ROS2ハードウェア)で構成されています。フロントはVue.js等のモダンWeb技術を想定したUIで、ユーザー操作やスライダーの入力をHTTPまたはWebSocketでバックエンドに送信します。バックエンドはPython(Flaskを想定)で実装され、受け取った目標関節値をROS2トピックにブリッジしてハードウェアノードへ配信します。リアルタイム性確保のため、位置フィードバックは定期的にフロントへプッシュされ、可視化と状態監視が行われます。
軌跡録画は時間付きの関節値シーケンスとして保存され、再生時には線形補間やスムージング処理を介して連続的なモーションを生成します。帰零機能は指定時間内で現在値から初期姿勢へ補間移行する仕組みで、安全な速度制御とタイムアウトが実装されることが望ましい設計です。ROS2統合により既存のハードウェアインターフェース(/hardwareノード等)へシームレスに接続でき、トピック名やメッセージ型を合わせれば他機種への流用も容易です。
運用面ではrobot_web.serviceが含まれ、systemdによりサーバ起動時の自動起動や再起動ポリシーを設定できます。軽量構成のためラズパイ等の組込みLinuxでも動作可能ですが、ネットワーク遅延・QoS設定・セキュリティ(認証・CORS)等は実運用での考慮点です。今後の拡張としては、WebSocketでの双方向低遅延通信、認証付きUI、モーションプランナー連携、より高度な補間(スプライン)実装などが挙げられます。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- License: file
- README.md: file
- backend: dir
- frontend: dir
- robot_web.service: file
…他 1 ファイル
まとめ
軽量で実用的なWebベースの関節制御UI。プロトタイプやデバッグに最適。
リポジトリ情報:
- 名前: robot_control_web
- 説明: 众擎机器人PM01关节控制 Web 界面
- スター数: 1
- 言語: Python
- URL: https://github.com/changchunfenghuolun/robot_control_web
- オーナー: changchunfenghuolun
- アバター: https://avatars.githubusercontent.com/u/255779032?v=4
READMEの抜粋:
🤖 众擎机器人PM01关节控制 Web 界面
基于 Web 的人形机器人关节控制界面,支持实时可视化、轨迹录制和回放功能。
✨ 功能特性
- 🎮 实时关节控制 - 通过直观的界面调节 24 个机器人关节
- 📊 可视化反馈 - 实时位置监控,带连接线显示
- 🎬 轨迹录制 - 记录并保存机器人动作
- ▶️ 轨迹回放 - 平滑插值回放已保存的轨迹
- 🏠 归零功能 - 可配置时长返回初始位置
- 🔄 ROS2 集成 - 与 ROS2 硬件接口无缝集成
🏗️ 系统架构
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ 前端界面 │ ◄─────► │ 后端服务 │ ◄─────► │ ROS2 节点 │
│ (Vue.js) │ HTTP │ (Flask) │ Topic │ /hardware │
└─────────────┘ └────...