PLACE / 動作フェーズと単体スクリプト

動かないコードを 6 本の単体スクリプトに分解し、1 本ずつ実機で通す

739 行のモノリシックな PLACE スクリプトを解体し、「検証する挙動が一つだけ」の単体スクリプトに分けた。各フェーズをタップすると、含まれるスクリプトと実機検証の結果が開く。

検証済み 進行中 未着手
▸ 各フェーズをタップして展開 ◂
1
daemon 起動Pi との TCP 接続を確立
DONE
+
01 / 02a
daemon プロセスの起動とソケット接続。解体フェーズで検証済み。
実機検証済み
2
プレビュー表示と白箱認識カメラ映像とテンプレートマッチ
DONE
+
03 / 05b / 06f / 07
カメラプレビュー、テンプレ撮影、白箱検出、テンプレ分類。解体フェーズで検証済み。
実機検証済み
3
HOME 姿勢確認 / Phase 0起点を確定させる足場
DONE
+
08_home_from_anywhere.py
どんな姿勢からでも HOME に戻す。タイムアウトを設けず、止めるのは人間。
81° → 1.23° 単調収束 / WARN 0 件
09_get_angles_test.py
静止アームに get_angles を 20 回連続呼び。空応答が起きないか数値化。
20 / 20 成功率 100% / warm-up 不要と判明
10_capture_test.py
上下カメラから各 5 枚保存。連続取得でカメラの安定性も同時に見る。
10 / 10 枚保存成功 / index 正常
4
APPROACH 移動 / Phase 2白箱の真上へ ─ 心臓部は検証完了
IN PROGRESS
+
11_fk_load_test.py
FK テーブル(512,087 点)が実機環境で読めるか、データが壊れていないか検証。
512,087 点 / 破損ゼロ / j1 は 125° まで保持
12_box_position.py
上カメラで白箱を検出し pixel → Unity 座標へ変換。位置を想像せず実測する。
白箱 4 か所すべて検出・変換成功
13_fk_lookup_test.py
実測 4 点から FK テーブルの 3D 最近傍を検索し APPROACH 姿勢を引く。
4 / 4 しきい値内かつ関節制限内
14_approach_move.py
実測座標と lookup 角度を初めて実機に送る。HOME から白箱の上空へ。
次の作業 / 物理動作のため外部レビュー対象
j5 は HOME 値 −30 に固定。j1 上限を 130° に設定したことで、過去に制限 100° で弾かれた姿勢が引けるようになった。中断の原因はデータ不足ではなく設定値だった。
5
DESCEND / Phase 3白箱の高さまで降ろす
TODO
+
降下高さの設計
グリッパー幾何の取り違えにより設計を保留中。実機の画像でグリッパーと赤ブロックの位置関係を確認してから再開する。
設計保留 / 実機画像待ち
FK 最近傍の誤差は点により 4〜55mm。APPROACH では許容範囲だが、接触ギリギリの DESCEND では無視できない。
6
赤ブロックの確認白箱に入っているか検証
TODO
+
未着手
リリース後、赤ブロックが白箱の中に収まっているかを確認する。
未着手
7
RELEASE / Phase 4グリッパーを開いて離す
TODO
+
未着手
白箱の上でグリッパーを開き、赤ブロックを箱の中へ落とす。
未着手
8
RETREAT / Phase 5HOME へ退避
TODO
+
未着手
リリース完了後、アームを HOME 姿勢へ戻して動作を終える。
未着手

全体進捗

1
2
3
4
5
6
7
8

8 フェーズ中、3 フェーズが検証済み。4 番目の APPROACH は心臓部の FK lookup まで通り、残るは実機移動スクリプト 1 本。動かす単位を一つに絞り、1 本ずつ実機で確かめる ── それを 6 回繰り返した結果。