113話 カフェでのテスト
俺はいま、猫型配膳ロボットの実証実験という、けっこう大きなミッションをこなそうとしている。
夜21時。営業を終えたレストランは照明を少し落として、テーブルの上だけが淡く光っている。厨房からはカチャカチャと片付けの音が聞こえる。床は乾拭きされたばかりで、通路のテープだけが細長く伸びていた。
事前に桐原の技術部が通路構造をデータ化し、通行可能な経路を定義してくれた。俺はそれに合わせて移動制御、センサー入力、到着処理をした。
「では、いきます」
「はい、お願いします」
猫ロボットが静かに動き出す。起動音とともに、ディスプレイの猫が瞬きをした。ローカルマップ上の現在位置が青点、目的地テーブルが黄色の旗。予定では、通路をなめらかな曲線でなぞっていく――はず、だった。
……違和感。
曲がり角の手前で、一瞬ためらい、ぎこちなく方向転換。次の瞬間、左側の木壁にコツンとボディが触れて、急停止。非常停止は作動していないが、自己判断で減速停止したようだ。
「……あれ?」
「角ですね……」
客席へ折れるポイントで、ロボはそれ以上前に進まない。ディスプレイの猫が「うーん」と考え込む顔になった。
可愛い……いや、今はそれどころじゃない。
「ん~、この部分がうまくいきませんね」
――そう、ここからが問題だ。
最初から上手くいくことは、あり得ない。むしろ“想定外”が出るのが普通で、現場で潰していくしかない。だから俺は、この場でコードを書き直さなきゃいけない。しかも、手早く、静かに。
ただ――ChatGPTを使っているとバレないようにしないといけない。
桐原の技術部は足回りとセンサーに強い“機械のプロ”ばかりだが、純粋なソフトの専門家は今はいない。
視線も皆、ロボの車輪やセンサーの数値に集まっていて、俺のノートPCの画面までは誰も見ていない。
今なら、いける。
……でも、もし覗かれたらアウトだ。画面を少し伏せ、別の画面を開いてカモフラージュ。
指先が汗ばんでいるのがわかった。
「さあ、どこの部分が誤作動を起こしてるのかな~」
わざと大きめの独り言。キーボードはふつうに叩く。タブを切り替えて、ChatGPTの画面を開く。入力する。
>最初のマッピング時のルートデータAのA1地点が上手くいかない。角に入る直前で誤停止する。
返ってくる返答は速い。
【ChatGPT】
「照明や壁の装飾で赤外線が反射し、“角の内側が広い”と誤認している可能性があります。対策はシンプルに三つです。
① 角の内側に5〜10cm程度の“仮想壁”を足して、通れる幅をわざと狭く見せる
② 角の手前で“低速回頭モード”に……」
なるほど。じゃあこの角の部分、仮想的に“少し狭く”して再定義すればいいのか……
>このA1地点の角を、内側に仮想壁を10cmだけ設定したいんだけど、具体的なコードってどう書けばいい?
そしたら、スラスラと改善コードが出てくる。
よし、このままコピペしたらいい感じになるだろう。
「よし!」
小さくつぶやいた。ChatGPTが出してくれた修正版のコードは、自分の考えと驚くほど一致していた。いや、それ以上の最適解だ。角の処理ロジック、回頭速度の調整、障害物回避アルゴリズム――全部的確。これならいける。
「すいませーん、コードを書き直しました。もう一度お願いします!」
声をかけると、岡村さんたちがこちらに振り返った。
「お、こんなに早く書いたんか」
「すごいですね。さすが“ラマヌジャン”といわれるだけありますよ」
「いえいえ……」
――ラマヌジャン? 心の中でつぶやいた。天才数学者の名前だよな? つまり“天才”って意味か。おいおい、そんなあだ名つけないでくれよ、プレッシャーになるだろ。
とはいえ、今は照れ笑いしている場合じゃない。プログラムをロボットにアップデートし、再び試運転を開始した。
低速で動き出した猫型配膳ロボットは、さっきまでつまずいていた角の手前でも迷わず進む。椅子の脚に近づくとセンサーが反応して、ほんのわずかに避ける動きを見せる。ぎこちないものの、停止はしない。
「おっ……」
「これ、通ったんじゃないか?」
周囲の技術部員が声を漏らす。だが、油断してはいけない。次の角を抜けた瞬間、センサーの一瞬の誤検知で急停止した。
「……またか」
深いため息が出る。だが、誰も諦める様子はない。
エラー原因を洗い出し、コードを再調整。何度も何度もテストを繰り返した。
時計の針が十一時を回ったころ、ついにロボットは10回連続でエラーなく稼働した。通路の全ルートを通過し、仮想的に設定した各テーブルまで辿り着く。
「最後に、本当に食器を載せてやってみましょうか」
提案があり、スタッフがトレーの上に少量の水を入れた皿を置く。わざと中心からずらし、あえて不安定な条件にした。
「では、スタート!」
ロボットが通路を滑るように進み、角を抜け、椅子を避け、テーブルの手前で静かに停止した。皿の中の水はこぼれていない。
「おおっ!」
「上手くいったぞ!」
スタッフと技術部の間から拍手と歓声が上がった。
俺は思わずその場で深く息を吐き出した。肩に力が入っていたのが一気に抜け、足の力が抜けそうになる。
緊張で汗ばんでいた手のひらをズボンで拭いながら、胸の奥がじんわりと熱くなるのを感じた。
「……よかった……」
「これなら実用化にできますね」
近くにいたスタッフの一人が、興奮を隠しきれない表情でそう言った。
責任者が、落ち着いた口調で言った。
「そうですね……あとは何回もテストを重ねるだけです」
確かにこの1回成功しただけでは、お客さんの前には出せないだろう。
ピークタイムではお客さんが動き回るし、椅子もずれるし、想定外の障害物がいくらでも現れるだろうから。
責任者は続けた。
「ということで、今後は毎日閉店後に一週間、動作テストを重ねます。安定稼働を確認してからでないと、営業中には使えません」
「わかりました」
俺もそのテストには毎回立ち会う予定だ。修正点は必ず出るだろうし、その場でコードを書き直して反映する必要がある。自分にしかできない作業だ。
帰り支度をしながら、肩の力が抜ける。今日だけでも相当疲れた。だが、不思議と嫌な疲労感じゃない。
「忙しくなるな……でも、面白くなってきた」




