# 手描きの見取り図から店の形を自動で起こした記録

入力は `sketch.jpg`（寸法なし）、標準の家具の大きさ、図から読めるキッチンまわりの点だけ。店の人への質問や人の手直しはしていない。
起こし方のコードは `/home/claude/blind/work/build.py`（画素で読んだ値をメートルに直し、v0 と final を書き出す）。

- `auto_v0.json`：図を読んで最初に起こしたもの。違反7件（`check_v0/`）
- `auto_final.json`：違反を直したもの。違反0件（`check_final/`）

## 1. 縮尺の決め方

- 写真の上で、標準の大きさが決まっている家具の、描かれた大きさを画素で測った
  - 4人の角テーブル（1.2m四方）：横の平均 106px、縦の平均 95px（下の段の4つは壁で切れているので縦は除いた）
  - 4人の丸テーブル（1.1m四方）：横 103px、縦 84px
  - 6人の長テーブル（外形 3.2m×1.94m）：横 285px、縦 154px
- 3種類とも、横は約 89px/m、縦は約 79px/m でそろった。図は横に1割ほど引き伸ばされて描かれている（手描きのくせか、写真の傾き）ので、横と縦で別の縮尺を使った
  - 横 89px/m、縦 79px/m。原点（外壁の内側の左下）は画素 (32, 1070)
- 外壁は 横 1463px × 縦 955px → **16.4m × 12.1m**
- 確かめ：入口の幅 1.85m、カウンターの丸椅子の間隔 0.72m、長テーブルの丸椅子の間隔 1.18m。どれもファミレスとしてふつうの値
- 家具は、図の箱の真ん中に標準の大きさで置いた。壁に付けて描かれている家具（左の壁のL字席、下の壁の4人席、右の壁の8人席）は壁に付けた
- L字席は種類に標準の大きさがないので、4つとも図の外形の大きさをそのまま使った（0.05m に丸めた）

## 2. 図面から読めたこと

### 卓と席（図に書かれた数字のとおり）

| 図の数字・形 | 数 | 種類 | 席 |
|---|---|---|---|
| 「6」のL字（左の壁ぞい） | 4 | booth6L | 24 |
| 「4」の四角 | 10 | t4 | 40 |
| 「4」の丸 | 2 | r4 | 8 |
| 丸椅子が上下に3つずつの長いテーブル（数字なし） | 1 | long6 | 6 |
| 「8」のU字（右下・左が開いている） | 1 | booth（ベンチが上下・右は壁）、席数8 | 8 |
| **合計** | **18卓** | | **86席** |
| 「カウンタ」と丸椅子5つ | 置いていない（5章） | | （5席） |

L字席の向き：左上と仕切りの下の2つは「帯が上・縦の列が左」なので、開いた角（テーブルのある所）は右下（flip=true）。左の真ん中と左下の2つは「縦の列が左・帯が下」なので、開いた角は右上（flip なし）。

### 部屋・壁・入口

- 入口：下の辺の点線、x=7.6〜9.5m
- 仕切り：斜線の帯。左の壁から x=6.55m まで、y=5.86〜6.24m。仕切りの右端からパントリーの壁までの 0.98m は、上の線だけで斜線がないので通り道（上と下の客席をつなぐ）と読んだ
- パントリーの壁：斜線の縦の帯、x=7.53〜8.07m、y=3.11〜10.1m
- パントリー：パントリーの壁とキッチンの受け渡し台の間。下の端（y≒3.5m）が客席に開いている
- キッチン（冷蔵庫・こおり・斜線の調理台を含む）、冷凍庫・保存庫（右の壁ぞい）、洗い場（上の壁ぞい）、倉庫（右上）は、すべて客が入らない裏の部屋にまとめた
- キッチンの下の壁：斜線の横の帯、x=9.91m〜右の壁、y=2.91〜3.52m
- トイレ：上の壁ぞい、x=6.27〜7.71m、y=11.33〜12.1m（図の箱のとおり）
- レジ：入口のすぐ内側の箱（x=7.62〜9.42m、y=1.14〜1.80m、長さ1.8m）
- 右の壁の外の縦書き（矢印つき）は読み取れなかった。「ウォークイン」に近く見えるので、指している斜線の所（保存庫の下）はウォークインの冷蔵庫と読み、裏の部屋に含めた

### キッチンまわりの点

- 受け渡し口：パントリーの下の端（x=8.07〜9.35m、y=3.5〜3.9m）。キッチンから受け渡し台ごしに料理がパントリーへ出て、パントリーの下の口から客席へ出る形と読んだ。ロボットの出発点は道具が決めて (8.71, 2.95)
- 店員の出入り口：パントリーの下の口（扉なし）、パントリーの上の端（上の小部屋に開いている・扉なし）、上の小部屋から洗い場へ入る点線（扉あり）
- 洗い場：上の壁ぞい（図の「洗い場」）

## 3. 図面に描かれておらず、仮に置いたこと

- **ドリンクバー**：トイレの右の、上の壁に付いた細長い箱（x=7.8〜9.84m、y=11.52〜12.1m）をドリンクバーと読んだ。箱の前の小部屋は、左の点線（開いた境目）から客が入れる所とした
- **トイレの大きさと入口**：大きさは図の箱のまま（1.44m×0.77m・1室）。入口は下の辺（客席の側）の真ん中、幅0.84m。左右の辺に厚さ0.3mの壁を置いた
- **レジの店員が立つ所（レジ内）**：パントリーの側（上）とした。パントリーから出てすぐの所で、客は入口の側（下）から会計する形
- **待合**：入口の右、下の壁ぞいに長椅子（x=9.55〜10.1m、y=0〜1.2m）
- **ロボットの待機・充電の場所**：1台分（0.8m×0.8m）を、8人席の上のすき間（x=15.6〜16.4m、y=2.0〜2.8m）に置いた。受け渡し口の近くはパントリーの壁・レジ・キッチンの壁の間が狭く、0.8m四方を置くとロボットの通り道がふさがるため。台数は1台
- **扉**：入口は扉ありとして扱い（点線）、店員の出入り口の扉の有無は上のとおり。洗い場への点線は扉ありにした
- **8人席**：U字のソファは種類にないので、ボックス席（ベンチが上下、右は壁）の6人の大きさ 1.8m×1.85m で置き、席数は図の8にした（5章）
- 店の形は四角とした（トイレの箱が上の壁の線から少しはみ出して描かれているが、描き方のずれとみなした）

## 4. 決まりの違反と、直したこと（v0 → final）

v0 の違反7件：

1. 仕切りの下のL字席（T09）と左下のL字席（T13）が重なる（図の上でも重なって描かれている）
2. T09 と長テーブル（T12）が重なる（T09 の上の帯が長テーブルの上にかぶさって描かれている）
3. レジが入口から1.5m以内にある
4. 上の段の右の4人席（T03）がトイレから0.21m で、目隠しの壁がない
5. レジが2.5mより短い（1.8m）
6. T09 の座る側がすべてふさがっている
7. T13 の座る側がすべてふさがっている

直したこと（図の意図からなるべく離れない最小の動かし方。ほかの卓・部屋は v0 のまま）：

| 直した所 | v0 | final | 理由 |
|---|---|---|---|
| T13（左下のL字席）の奥行き | 3.3m | 2.9m | 1・7。下の2つのL字席を背中合わせに接して、仕切りの下（y=5.86m）に収めるため。T13 は4つのL字席の中で一番大きく描かれていた |
| T09（仕切りの下のL字席） | y=2.55m・幅3.0m | y=2.9m・幅2.65m | 1・2・6。T13 の上に接して置き、幅を T13 と同じにした |
| T12（長テーブル） | x=2.84m | x=3.15m（右へ0.31m） | 2・6・7。L字席の右の辺との間を、人が通れる 0.5m にした |
| トイレの目隠しの壁 | なし | x=6.27〜6.57m、y=10.13〜11.33m（入口の前の空ける所の左に接して） | 4。T03 の右の辺の両端から入口の両端への4本の線が、すべてこの壁かトイレの左の壁に当たる |
| レジ | x=7.62〜9.42m、y=1.14〜1.80m（長さ1.8m） | x=6.6〜9.1m、y=1.5〜1.9m（長さ2.5m） | 3・5。入口から1.5m先へ上げ、2.5mに伸ばした |
| レジ内（店員の立つ所） | y=1.80〜2.30m（0.5m） | y=1.9〜2.3m（0.4m） | 3・5。下の2つを守るために、カウンター0.4m・店員の立つ所0.4m に薄くした |

レジの置き方の考え方（ここが一番、図の形と決まりがぶつかった所）：

- 入口から1.5mは空ける決まりなので、レジは y=1.5m より上にしか置けない。上には受け渡し口の前（1.2m）とパントリーの壁の下の端（y=3.11m）がある
- レジの上（店員の立つ所の上）を、ロボットがパントリーから左の客席へ抜ける。ここを 0.8m 以上残すために、カウンターと店員の立つ所を合わせて 0.8m にした（残りは 0.81m で、ロボットは「狭い道なら通れる」）
- 右の端は、キッチンの壁の左下の角から 1m 離した（x=9.1m）。これでキッチンの壁の下を右の客席へ行く道は、ふだん走らせる幅 1.0m のまま残った。左へは 2.5m に足りるまで伸ばした（長テーブルとの間 0.25m）

## 5. 図面と家具の種類が合わなかった所

- **カウンター席（丸椅子5つ）**：種類にない。近い長テーブル（3.2m×1.94m・両側に丸椅子）は、キッチンの壁（y=2.91m）と下の段の4人席（上の端 y=1.2m）の間の 1.71m に入らないので、置かなかった。席数86 にカウンターの5席は入っていない。カウンターの場所は通路として空いている
- **8人のU字席**：ボックス席（6人の大きさ）で代わりにした。右の壁ぞいのベンチ（U字の底）は形に入っていない。座る側は左だけで、図と同じ
- **L字席の大きさ**：種類に標準の大きさがないので、図の外形から決めた（final で 左上 2.3×2.65、左の真ん中 1.85×2.55、仕切りの下 2.65×2.95、左下 2.65×2.9m）。左上と左の真ん中の間は 0.45m しかないが、左の真ん中の幅が 1.85m と狭いので、左上の座る側（下）の右の端には人が立てる。L字席の形は外形の四角で扱うので、図で長テーブルの上にかぶさっていた T09 の上の帯は表せず、幅を縮めた
- **下の段の4人席**：図では壁に押されて縦 0.9m ほどに描かれているが、標準の 1.2m 四方で置いた。そのぶん、その上の長テーブル・カウンターとの間が図より狭い

## 6. 結果（final）

- 違反 0、18卓・86席、マス目 2.5cm と 1.25cm で卓の分け方が同じ
- まとめ：ロボットが届く 3卓・16席／狭い道なら届く 8卓・36席／人が運ぶ 7卓・34席。受け渡し口の前から止まる位置まで 平均6.6m・最長11.08m。人が運ぶ分の歩く距離 合計47.7m・最長11.22m
- ふだんの幅（1.0m）で届くのは、キッチンの壁の下を右へ行った3卓（右下の4人席2つと8人席）だけ
- 左半分（上の客席と仕切りの下の客席）は、レジの店員の立つ所とパントリーの壁の間（0.81m）を通るので、届いても「狭い道」になる。どの道も一番狭い所が 0.78〜0.79m
- 人が運ぶ7卓：L字席4つのうち3つ（T01・T09・T13）、T03（トイレの横）、T10、下の段の左の4人席2つ（T14・T15）

## 7. 店の人に聞けば確かになること

1. 店の外形の実際の幅と奥行きは何mですか（いまは家具の大きさから 16.4m×12.1m と決めた）
2. レジの店員はカウンターのどちら側に立ちますか。パントリーから左の客席へ料理を運ぶとき、レジの裏を通りますか
3. パントリーの壁の下の端と、レジの間は何mありますか（ここがロボットの左の客席への通り道で、いまは 0.81m）
4. 仕切りの右端とパントリーの壁の間は通れますか（いまは通れる幅 0.98m と読んだ）。上の客席へは、ほかに道がありますか
5. トイレの右の細長い箱はドリンクバーですか。違うなら、ドリンクバーはどこにありますか
6. トイレの入口はどちら向きですか。トイレは男女別に2室ありますか、大きさはどのくらいですか
7. 右の壁の外に書かれた言葉（矢印で保存庫の下の斜線の所を指している）は何ですか
8. カウンターは何席ですか。カウンターとキッチンの壁の間は、店員が入る所ですか
9. 8人席はU字のソファですか。右の壁ぞいにもベンチがありますか
10. 待合の長椅子はどこにありますか
11. 下の2つのL字席は、背中合わせに付いていますか
12. 配膳ロボットを入れるなら、待機・充電はどこに置けますか（受け渡し口の近くには 0.8m 四方を置く余地がない）
