Prefab混入との戦い
firefighter PrefabにRobotArmControllerが混入していた問題を特定・解決。Robot_0_0単体でのPickAndPlace動作確認に取り組んだ。
※注釈:デジタルツイン学習(R2R2R)の検証プロセス 本プロジェクトは、AIの判断を物理的動作へ変換する設計を検証するものです。現実空間をデジタルツイン化し、仮想空間での大量試行(Real-to-Render)から得た最適解を、実世界のモーター駆動(to-Real)へ還元する「R2R2Rパイプライン」の実装過程を記録・考察します。
解決済み
firefighter Prefab混入問題
全ロボット(Robot_0_0〜Robot_4_1)にRobotArmControllerが毎回復活する問題。
原因: firefighter PrefabにRobotArmControllerが含まれており、Apply Allのたびに全Robotに復元されていた
解決: firefighter Prefabを直接編集してRobotArmControllerを削除
Robot_0_0にのみ手動でAdd Component → Inspector設定を全再構築
Start()の初期化修正
再生直後にPLACEステートへ即遷移する問題を修正。currentAnglesをInspectorの初期値で初期化するよう変更。
currentAngles[0] = link1TargetAngle;
currentAngles[1] = link2TargetAngle;現在取り組み中
PLACEステートによる角度上書き問題
UpdatePlace()内でlink1TargetAngleとlink2TargetAngleを直接書き換えているため、再生後のInspectorが意図しない値(-20/55)になってしまう。
APPROACHとPLACEで目標角度を分離する設計に変更予定。次チャットでClineに指示する修正方針:
float targetL1 = (currentState == State.PLACE) ? placeLink1Angle : link1TargetAngle;
float targetL2 = (currentState == State.PLACE) ? placeLink2Angle : link2TargetAngle;ログ観察
[APPROACH] dist=0.131〜0.139で推移 → まだGrasp閾値0.06に届いていないLink1/Link2 targetが対称値から発散 → PLACEステートの早期遷移が原因
[START]全参照OK(graspTarget / handlePoint / placeTarget / EndEffector)
教訓
Prefab問題はOverridesドロップダウンで可視化できる
PLACEステートでlink1TargetAngleを直接書き換えるとcurrentAnglesの初期値にも波及する
ステートごとに目標角度を分離する設計が正しい
▶ LOG90へ
APPROACHとPLACEの目標角度をLateUpdate内でState判定して切り替え
UpdatePlace()内のlink1/link2TargetAngleへの直接代入を削除
APPROACH→GRASP→PLACE→APPROACHの完全ループ確認
デバッグログ削除
PlaceTargetの最終位置をコーヒーメーカー上に調整
