(base) shimazueiichi@shimadzueiichinoMacBook-Pro ~ % ssh -i ~/.ssh/id_rsa_pi ubuntu@192.168.2.1 "setsid nohup python3 /home/ubuntu/mecharm_daemon.py </dev/null >>/home/ubuntu/daemon.log 2>&1 &"; sleep 8; ssh -i ~/.ssh/id_rsa_pi ubuntu@192.168.2.1 'tail -3 ~/daemon.log; ss -ltn | grep 5555'
[DAEMON 14:36:57] ✓ MyCobot 初期化完了
[DAEMON 14:36:57] startup_warmup angles=[1.14, 94.04, 9.05, -0.7, -104.5, -29.53]
[DAEMON 14:36:57] ポート 5555 で待ち受け中...
LISTEN0      1                                 0.0.0.0:5555        0.0.0.0:*    
(base) shimazueiichi@shimadzueiichinoMacBook-Pro ~ % cd ~/r2r2r-scripts/dynamic_tracking_limits/drag_teaching
python3 record_teach_demo.py measure --log 359
[RTD   ] 到達許容差は本線 run_pick_place.py の stage 値を使います（区間ごと。一律 8.0° は 2026-10-19 にやめた）:
[RTD   ]   HOME                       2.5°  ← rpp.TOL_HOME（stage1_to_home / HOME 復帰）
[RTD   ]   APPROACH_PICK              2.0°  ← rpp.TOL_APPROACH（approach 系）
[RTD   ]   PICK                       3.0°  ← rpp.TOL_PICK_PLACE（stage4_pick）
[RTD   ]   APPROACH_PICK (lift)       3.0°  ← rpp.TOL_LIFT_BACK（lift の残差 2.19° を吸収）
[RTD   ]   APPROACH_PLACE             3.0°  ← rpp.TOL_APPROACH_PLACE（stage7）
[RTD   ]   PLACE                      3.0°  ← rpp.TOL_PICK_PLACE（stage8_place）
[RTD   ]   APPROACH_PLACE (retreat)   3.0°  ← rpp.TOL_LIFT_BACK（stage10_lift_back）
[RTD   ] 到達を待つ最大時間 = clamp(2.0 + max|Δ|/20*3.0, 8.0, 30.0) 秒（本線と同じ wr._compute_arrival_timeout）
[RTD   ] measure: 上カメラで検出します（repeat=5 interval=0.3s）
[CAM] 接続中カメラ一覧:
  index=0  name=FaceTime HDカメラ
  index=1  name=Iriun Camera
  index=2  name=‎iPhone14 Pro MAXのカメラ
[CAM] 上カメラ(iPhone)  index=2
[CAM] 横カメラ(Iriun)   index=1
[DETECT] resolved top index: 2
[Mac] マット四隅検出中... (10フレーム)
[Mac] ✓ マット四隅検出: 10/10 フレーム成功
[Mac] ✓ 動的homography計算完了
[Mac] ✓ マット範囲: X=[270, 1717] Y=[0, 949]
[06f] TEMPLATES_DIR overridden to: /Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/place/templates
[06f] ROTATION_ANGLES_DEG overridden to: [0, 15, 30, 45, 60, 75]
[06f] SCALES overridden to: [0.85, 1.0, 1.15]
[テンプレ] loading white box templates from: /Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/place/templates
[テンプレ] glob '/Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/place/templates/*.png' → 8 file(s)
[テンプレ]   - white_box_20260520_163829_004.png
[テンプレ]   - white_box_20260520_163838_005.png
[テンプレ]   - white_box_20260520_163846_006.png
[テンプレ]   - white_box_20260520_163905_009.png
[テンプレ]   - white_box_20260520_163912_010.png
[テンプレ]   - white_box_20260520_163918_011.png
[テンプレ]   - white_box_20260520_163923_012.png
[テンプレ]   - white_box_20260520_163929_013.png
[テンプレ] 計 8 枚 (day165=8, auto=0)
[06f] WARN: 輪郭中心とテンプレ中心の距離が閾値超 |Δ|=101.2px > 60px → 輪郭捨てて fallback
[06f] DETECT: center=(1488,558) source=template_fallback score=0.654 angle=0° scale=1.15 size=(226x211) template=white_box_20260520_163838_005.png (eval 6.62s)
[DETECT][1/5] box Unity=(-0.214,+0.178) score=0.6539450883865356
  赤ブロック pixel=(698, 640) → Unity=(0.1276, 0.2168)
[DETECT][1/5] block Unity=(+0.128,+0.217) score=null
[06f] WARN: 輪郭中心とテンプレ中心の距離が閾値超 |Δ|=101.2px > 60px → 輪郭捨てて fallback
[06f] DETECT: center=(1488,558) source=template_fallback score=0.654 angle=0° scale=1.15 size=(226x211) template=white_box_20260520_163838_005.png (eval 6.65s)
[DETECT][2/5] box Unity=(-0.214,+0.178) score=0.6543152928352356
  赤ブロック pixel=(698, 640) → Unity=(0.1276, 0.2168)
[DETECT][2/5] block Unity=(+0.128,+0.217) score=null
[06f] WARN: 輪郭中心とテンプレ中心の距離が閾値超 |Δ|=103.6px > 60px → 輪郭捨てて fallback
[06f] DETECT: center=(1489,556) source=template_fallback score=0.654 angle=0° scale=0.85 size=(158x158) template=white_box_20260520_163923_012.png (eval 6.66s)
[DETECT][3/5] box Unity=(-0.214,+0.177) score=0.6544483304023743
  赤ブロック pixel=(697, 640) → Unity=(0.1281, 0.2168)
[DETECT][3/5] block Unity=(+0.128,+0.217) score=null
[06f] WARN: 輪郭中心とテンプレ中心の距離が閾値超 |Δ|=101.2px > 60px → 輪郭捨てて fallback
[06f] DETECT: center=(1488,558) source=template_fallback score=0.654 angle=0° scale=1.15 size=(226x211) template=white_box_20260520_163838_005.png (eval 6.67s)
[DETECT][4/5] box Unity=(-0.214,+0.178) score=0.6536625623703003
  赤ブロック pixel=(698, 640) → Unity=(0.1276, 0.2168)
[DETECT][4/5] block Unity=(+0.128,+0.217) score=null
[06f] WARN: 輪郭中心とテンプレ中心の距離が閾値超 |Δ|=104.3px > 60px → 輪郭捨てて fallback
[06f] DETECT: center=(1489,555) source=template_fallback score=0.654 angle=0° scale=0.85 size=(158x158) template=white_box_20260520_163923_012.png (eval 6.91s)
[DETECT][5/5] box Unity=(-0.214,+0.177) score=0.6535261869430542
  赤ブロック pixel=(698, 640) → Unity=(0.1276, 0.2168)
[DETECT][5/5] block Unity=(+0.128,+0.217) score=null
[RTD   ] measure: block = (+127.6, +216.8) mm
[RTD   ] measure: box   = (-213.6, +178.2) mm  score=0.6539450883865356
[RTD   ] 確認画像: /Volumes/KIOXIA/r2r2r-data/mecharm_calibration/teach_poses_LOG359/measure_20261022_164406.jpg
[RTD   ] homography のもとになった四隅と、測り直した四隅の差: 最大 1.0px（上限 15.0px・やり直し 1 回）
[RTD   ] ブロックのばらつき: 0.0px = 0.00mm（5 枚・上限 4.0mm）
[RTD   ] 元の検出と測り直しの差: 0.00mm（上限 3.0mm）
[RTD   ] 保存しました: /Volumes/KIOXIA/r2r2r-data/mecharm_calibration/teach_poses_LOG359/measure_20261022_164406.json
[RTD   ] 次は Pi で教示 → daemon 起動 → recorder.py --top --no-side 常駐 → run --teach <file> --execute
