第28話 再始動する新生アズールドラゴン!

「――ではこれよりオープンカップ京都大会の反省会を開始する!」


 水曜日の部室にて、わたしたちはアズールドラゴン2号を囲んで座っている。神崎くんが反省会の開会を宣言すると、無駄に神妙な空気が部室を覆った。

 部屋の端の方には鉄道研究会のメンバーが途中まで作ったNゲージの鉄道模型を片付けて、狭いスペースで活動してくれている。――ほんと、ごめんね。

 今日、先に場所をとっていたのは鉄道研究会だったのだけれど、遅れてやってきた神崎くんが「ごめん、今日は重要な日なんだ、藤堂さん。中央のテーブルを使わせてもらえるかな?」って藤堂さんに至近距離からお願いしたら一撃だった。顔を茹でダコにした藤堂さんは神崎くんの言いなりになって、他の鉄道研究会部員はしぶしぶ従っていた。――ほんと、ごめんね。


「俺たちはオープンカップ京都大会では敗北した。……それは認めよう!」

「おお、男らしいお! 神崎氏〜!」


 悔しいけれど、現状を認めるところからすべては始まるのだ。どん底からの再挑戦。つまり、わたしたちの今の状況はそういうことなのだ。


「――でも! そんなに悲観することはないと思うの! オープンカップ京都大会で最下位だったからってアズールドラゴン2号の持っているポテンシャルは決してそうじゃないって、わたしは思うの!」


 ジョシュアくんも言っていた。全国大会に進むチャンスは二位になった京都未来国際中学よりも青龍中学の方あるって。だから悲観的になってほしくないの!


「ん? 何を言っているんだアスカリーナ?」

「……え? いや、だから悲観する必要はないなって。……ん?」

「いや、そんなことは言われなくてもわかっているんだが?」

「え? そうなの?」


 倉持くんの反応もうかがうと、真顔で「うん」と頷いた。


「大体、後の三チームでまともに戦いに来ていたのは首位になった洛央中学くらいだろうが。まったくジョシュアのやつも初参加のメンバーを連れてくるからといっても既製品のマイクロマウスはやりすぎだろうが。まぁ、それで2位をかっさらっていくんだから、さすがといえばさすがなんだが」

「まー、ジョシュア氏もぎりぎりの戦いだったんだろーねー。チームの新入生たちも喜んでいたみたいだし、よかったんでない?」

「何故に上から目線……。負けたのはこっちなのに……」


 本当にこの二人は、どこまで自信家なのだろうか。


「ん? アスカリーナ。貴様は大切なことを見誤っているぞ? オープンカップ京都大会はあくまでも練習試合。夏のジュニアAI選手権の勝利こそが俺たちの目標。その意味ではこの前のバトルは通過点に過ぎないのさ。たしかにジョシュアのチームに負けたのは悔しかった。しかーーーーし、京都未来国際中学とうちじゃ決定的な違いがある。わかるか? アスカリーナ?」

「……決定的な違い?」

「ああ、それは夏のジュニアAI選手権に向けたロボットを作って挑んだのか、それともそれと全く関係のないオープンカップ京都大会のためだけのロボットで挑んだかの違いさ」

「それってつまり――」

「そうだお。順位は負けていても、本戦用とは違うロボットで挑んだジョシュアたちのチームの順位は仮初めの順位なんだお。ボクたちは本戦に向けたロボットを投入したんだお。だからその意味では、先に走り出しているってことになるんだお」

「まぁ、その結果、トラブル起こして負けちまったけどな」


 そう言って神崎くんは肩をすくめて、倉持くんは頭を掻いた。

 なんだ。わたしが一人であたふたしていたけれど、二人はちゃんと状況を理解して、納得していたのだ。ジョシュアくんの言っていたとおりだ。恥ずかしくなるとともに、少しほっとした。


「しかし、プラクティスの時に動かなかったトラブルは原因もわかったが、本番の時に自己位置推定が狂った原因はわからないままか。本来ならばすぐにでも解決すべきだったが、疲れてしまったのと、風邪を引いたので一週間も先送りにしてしまったな。クラヌンティウス」

「ま〜、仕方ないお! 一週間休むのは予定通りだから、今日振り返りを兼ねてデバッグするので、問題ないと思うお」

「うむ、そうだな。ではクラヌンティウス、早速オープンカップの時の状況の再現だっ!」

「そうなると思って、もう準備はできているお!」


 部室のテーブルの隣、部屋の中央の床には十分なスペースがあけられて、ロボット用のコースが部分的に用意されていた。準備がいいよ、倉持くん! そして、そのせいもあって部屋の端へとますます追いやられている鉄道研究会のみなさん。――本当にすみません。ご協力、御礼申し上げます。

 倉持くんがコースのスタート位置にアズールドラゴン2号を置く。神崎くんは机の上の液晶ディスプレイにプログラムが記述されたファイルと、コマンドや実行結果が表示される画面を表示する。

 わたしの頭の中には、先々週土曜日のあの日の出来事が蘇る。わたしが押したボタン。そして動き出したアズールドラゴン2号。でもロボットの自己位置を表す矢印マークはロボットの位置を表さずに迷路いっぱいに広がったのだ。自己位置の消失。


「よし、クラヌンティウス、準備はOKだ。アズールドラゴン2号を起動してくれ」


 眉をキリリと寄せて司令官っぽく指示を出す神崎くん。倉持くんは武術家のようなポーズを取ると、大げさに右腕を振りかぶった。


「アズールドラゴン2号! パワー……オンだおーーー!!」


 電源ボタンが押されてアズールドラゴン2号のセンサ系とモータ系に通電が始まる。キュキュッと音がなり、アズールドラゴン2号は待機モードに入った。


「さて……ここからだ。プログラムが作動して、ロボットの距離センサ情報と、オドメトリ情報を確率モデルが統合してアズールドラゴン2号が迷路上での自己位置推定を始める――」


 わたしは神崎くんの肩口から液晶画面を覗き込む。その画面のプログラムや実行内容を見逃さないように。もうお客さんでいることはやめた。わたしもチームの一員。アズールドラゴン2号を動けなくしている犯人を一緒に見つけるんだ。ミステリー研究会はなくなっちゃったけれど、名探偵ヒメミヤアスカは健在なのよっ!

 神崎くんがカタカタと何度かスペースキーを押す。ロボットに入ってきている情報を逐一確認しているのだ。その横に相変わらずWarningワーニングと書かれた文字列が何行も何行も表示されては流れていく。


「オドメトリ情報って?」

「ん? ああ、オドメトリ情報っていうのは、ロボットが自分でどれだけ進んだと思っているかって情報さ。まあ簡単に言えば車輪が何回転したか、みたいな? ロボットが自分の位置を理解しようとするときに頼れる情報は大体二つ。距離センサで測る壁までの距離、あと、自分が前の時間からどれだけ前に進んだと自分が思っているかって情報。その両方を計算に入れることで精度良く自分の位置を推定し続けられるのさ」

「ふーん。……なるほど」


 難しい。でも神崎くんが神崎くんなりに説明しようとしてくれているのはわかる。それが嬉しかった。なんだか仲間の一員と認めてもらえているみたいで。


「うーん、センサ情報はちゃんと入ってきているよなぁ。だったら何なんだろうなぁ?」


 神崎くんは顎に手を当てて首を捻る。相変わらずもう一つのウィンドウに流れるWarningワーニング(警告)と書かれた文字列には見向きもしない。


「ねえ、神崎くん。この横に流れているWarningワーニングの中身は確認しなくていいの?」

「ん? ああ、警告はあってもコンパイルも通るし、ロボットは動くからなぁ。あと警告には予防みたいな意味で流れているやつもあるし、デフォルトで流れるようなやつもあるから、そんな英文をいちいち全部見ていたら前に進まないんだよ」


 そうなの? と倉持くんの方を見ると、太っちょくんは肩をすくめた。彼にはよくわからないらしい。神崎くんは画面を見ながら、こちらの方は見ない。その横顔をわたしはどこか不自然に思った。目が少しだけ泳いでいるように感じたのだ。いつもの絶対的な自信の光が見えない。ふと、ジョシュアくんの言っていたことを思い出す。――神崎くんは英語が苦手なのだと。

 神崎くんの言う「Warningワーニング(警告)は重要ではない」も間違っていないのかもしれない。それでももし、その神崎くんの判断に彼が「英語が苦手」ということがこっそり影響を与えているとしたら。つまり、神崎くんがWarningワーニング(警告)を読まないのは、ただそれが「重要でないから」というよりも、「英語が苦手だから後回しにしたい」という理由だったとしたら。わたしの脳が犯人を探し始める。これはきっと名探偵に与えられた――謎解きだ。


「うーん。やっぱり自己位置が吹っ飛んじゃう~。数ステップ進んだところで推定している自己位置がバラバラのところに飛んでいってしまうお〜」


 倉持くんが頭を抱えた。画面の中でアズールドラゴン2号の位置を表す矢印マークはフィールドのバラバラの位置に散らばってあらぬ方向を向いている。


「何故だ……。しかし、数ステップの間はちゃんと進むのだよな。自己位置だってちゃんとアップデートされている。ということは基本的にはアルゴリズムは上手く動いているはずなんだが。それなのにあるタイミングで自己位置推定の結果が吹っ飛んでしまうのか。しかも、そのタイミングが毎回違う――」


 神崎くんが顎に手を当てて悩ましげにプログラムの画面をスクロールさせる。

 わたしはその横で数十項目ある英語で書かれたWarningワーニング(警告)文に目を走らせた。


「――まるで何かのタイミングでセンサ情報に依存して数学的にやってはいけない計算が生じているみたいじゃないか……」


 神崎くんはそう独り言を言いながら、ため息を吐いた。このデバッグは長丁場になる――とでも言うように。

 その時、数十項目ある英語で書かれたWarningワーニング(警告)文の一つにわたしの目が止まった。頭の中で響いていた神崎くんの「数学的にやってはいけない計算」という言葉と、そのWarningワーニング(警告)文がシンクロする。


 ――見つけた! きっとこいつが犯人!


 わたしは神崎くんがマウスを持つ右手に、そっと左手を重ねた。どうしたのかと怪訝な表情を浮かべる神崎くん。

 わたしは画面から目をそらさずにそっと告げる。名探偵ヒメミヤアスカの声色で。


「――localization.pyローカライゼーション・ドット・パイの254行目。数値をゼロで割ってしまう可能性があるわ」


 神崎くんと倉持くんが弾かれたようにわたしの方を振り向いた。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る