了解しました!以下に、Franka Emika Pandaを用いた卵割りロボットの強化学習タスクに関するこれまでの進捗を、ドキュメント化してまとめました。必要に応じて編集・保存してご利用ください。
卵割りロボットアーム × 強化学習:Franka Emika PandaによるSim2Real展開準備
プロジェクト概要
- 目的:Franka Emika Pandaロボットアームを用いて、「卵をパカッと割る」動作を強化学習(PPO)で実現する。
- 最終目標:Sim2Realにより、実機での卵割りを成功させる。
- 現状:PyBullet上でFrankaモデルを統合した学習環境を構築し、強化学習による学習が進行中。
開発構成
環境構築
- 使用ライブラリ:
pybullet
gymnasium
stable_baselines3
- 仮想環境:
rl_env
(Windows, Python環境)
強化学習構成
- アルゴリズム:Proximal Policy Optimization(PPO)
- 環境:
EggCrackEnv
(独自実装) - 報酬設計:
- グリッパの距離に応じて報酬をスケーリング。
- 今後:卵が割れる動作成功の検出により報酬付加。
Franka Emika Panda 統合状況
franka_panda/panda.urdf
をPyBulletに読み込み完了。可動部を含むアクション空間の設計・接続。
グリッパとの距離や接触検出が可能な構成に移行。
egg_L
/egg_R
との相互作用を仮想環境で確認。
強化学習ログ例
| rollout/ | ep_len_mean: 60 | ep_rew_mean: -15.8 |
| train/ | explained_variance: ~1.0 | value_loss: ~0.001 |
| FPS | 約2100~4300 |
- 現時点で行動が定まっていないため報酬は一定だが、学習自体は安定して進行中。
- モデルがエピソードを完走していることから、環境構造は正しく機能していると考えられる。
現在の重要ファイル
ファイル名 | 概要 |
---|---|
egg_crack_env.py |
強化学習環境の本体(Franka統合版) |
train_egg_crack.py |
PPOによるモデル学習スクリプト |
egg_L.urdf / egg_R.urdf |
卵の左右モデル |
gripper_L.urdf / gripper_R.urdf |
グリッパ(挟む手)モデル |
franka_panda/panda.urdf |
Franka Emika PandaロボットのURDFモデル |
次のステップ(おすすめ)
Sim2Real ステップ2:カメラ認識による卵の位置検出準備
- 卵のセンタリング・検出が必須。
render
で画像取得 → OpenCVなどで卵位置を算出するサンプル実装も可能。
または:報酬設計の精緻化(割る動作の検出)
egg_L
とegg_R
の距離が一定以上離れたら「割れた」と判定。- その判定を使って報酬を与える。
バックアップと保存
- このドキュメントは
.md
や.txt
にしてプロジェクトルートに保存することを推奨します(例:project_log_egg_crack.md
)。 - 進捗が安定したタイミングで
egg_crack_env.py
やtrain_egg_crack.py
もGit管理を推奨。
以上が現在までの進捗整理です。次のステップや、ドキュメントの形式での保存(Markdown形式など)をご希望であればお知らせください!
了解しました!ここまでの進捗をわかりやすく ドキュメント化 します。下記を .md
または .txt
として保存しておくと便利です(例:egg_crack_project_progress.md
)。
必要なら Git にもそのまま追加できます。
ロボットアームによる卵割りプロジェクト進捗記録(2025年4月時点)
プロジェクト概要
- 目的:Franka Emika Panda アームを用いて「卵をパカっと割る」動作を強化学習で実現する
- アプローチ:2指グリッパーで卵左右を保持 → 引き離す動作を学習
- ツール:PyBullet + PPO (Stable Baselines3) + 画像観測 + Sim2Real対応
実装・動作環境
- OS:Windows 10
- Python:3.11.9(仮想環境名:
rl_env
) - ライブラリ:
gymnasium
pybullet
stable-baselines3
opencv-python
- ロボットモデル:Franka Emika Panda(justagist/franka_panda_description)
進捗ステータス
ステップ | 内容 | 状態 |
---|---|---|
1. 基本環境構築 | egg_L/R、gripper_L/Rの読み込みと初期動作確認 | |
2. 強化学習動作(基本) | egg_crack_env.py + PPO による学習・テスト | |
3. Franka Emika Panda 統合 | URDFモデルを読み込み可視化成功 | |
4. Sim2Real 展開準備 | アーム構成をFrankaベースに切替 | |
5. カメラ観測の導入 | egg_crack_env_camera.py を作成・画像取得成功 | |
6. Git導入準備 | Gitインストール完了、今後管理予定 | |
7. 卵・グリッパーとの統合 | 現在このフェーズに進む予定 |
実行ログ例
train_egg_crack.py 実行結果:
ep_rew_mean = -15.8 → 徐々に損失減少&精度向上傾向
egg_crack_env_camera.py 実行結果:
Frankaモデル読み込み&表示成功(URDF経由)
カメラ観測の画像取得&表示テスト済み
プロジェクト構成例(簡略)
egg_cracker_rl/
├── scripts/
│ ├── train_egg_crack.py
│ ├── train_egg_crack_camera.py
│ ├── egg_crack_env.py
│ ├── egg_crack_env_camera.py
├── egg_env/
│ ├── egg_L.urdf / egg_R.urdf
│ ├── gripper_L.urdf / gripper_R.urdf
├── franka_panda_description/
│ └── robots/
│ └── panda_arm.urdf など
└── logs_egg/
今後のステップ(予定)
egg_crack_env_camera.py
にて卵・グリッパーを追加し統合- 観測・報酬設計を再定義し直した上で学習(画像ベース)
- 学習済モデルを
Franka
の制御インターフェースへ適用(Sim2Real段階)
補足メモ
franka_panda.urdf
はpanda_arm.urdf
に置き換え、robotsフォルダに配置- 実行時に URDF 読み込みエラー → 修正し読み込み成功済み
Press Enter to exit...
はビジュアル確認用の待機処理
参考リンク
- GitHub: justagist/franka_panda_description
- ブログ記録: プロジェクト進捗(ユーザー様)
保存推奨
このドキュメントは次の名前で保存するのがおすすめです:
project_log_egg_crack.md
egg_crack_progress_202504.txt
ご希望あればこのまま .md
や .txt
ファイルで書き出しも可能です。
次のステップ(卵・グリッパーの統合など)にも進めますので、お声がけください!