FurnitureBench 8종 가운데 cabinet과 chair가 남아 있었다.
experiments/furniture_bench_franka/solution/solve.py, 고정본 solution_ch16)tmp/chair/REPORT.md)
_ScrewView로 재사용했다. 고친 것:
pick_along 0: 원래 위치에서는 stud를 집었다.roll_tight=False: 굴려도 여유가 생기지 않았다.stand 대신 seat를 쓴다._stand_up과 _push_in을 쓴다.

solution_cb37)| 태스크 / 배치 | 결과 | 수치 |
|---|---|---|
| chair ch16 s3 | 성공 5/5 | 다리 0.5/0.5, 등받이 1.2, 너트 1.8/1.9 mm |
| chair ch14 s3 | 성공 5/5 | 너트 2.3/2.0 mm |
| chair ch16 s4 | 4/5 | 너트 3.0/4.6 mm, 나머지 한 pair 실패 |
| chair ch15 (6 seed) | 0/6 | 다리 pick 실패 1, 다리 넘어짐 2, 좌판 덜 섬 1 (s2 cos 0.888) |
| cabinet cb36 / cb37 | 1/6, 1/6 | 성공 seed는 배치마다 다름 (s0, s2, s3, s4) |


남은 실패는 대부분 접촉 이벤트의 seed 간 편차다. 다리가 넘어지거나, 문이 열리거나, 그립이 미끄러진다.
그래서 단계마다 실패를 감지하고 복구하는 루프를 넣는 쪽이, 파라미터를 튜닝하는 것보다 효과가 클 것이다.