ロボット同士のテレパシー

人と人、人とロボットの間のテレパシー機能は、脳波などを使えば実現できるのかもしれない。実際、実現できるだろう。私も経済実験で脳波計を使ったことがあり、研究室には数十台の1極脳波計が役目を終えて眠っている。実験では、人々が他者を出し抜こうとしている時と、協調しているときの脳波のフーリエ解析をやって、α波やβ波などの違いを検出していた。1極ではとても心もとなく、使えない。もっと高品質で手軽な脳波計があれば、すでにやられているが、ロボットと人とのテレパシー会話が実現するだろう。これはやってみたいが、ハードウェアに金がかかりすぎる。
一方、ロボットとロボットのテレパシーはそう難しくない。ロボット同士がネットワークに繋がっていれば、socket通信で、パケットをやり取りすればいい。
実際、人と人との会話を、ロボット同士の会話でシミュレーションしようとすると、こうしたテレパシー機能が不可欠だ。アルデバランロボットの対話は、ALDialogというモジュールで実現している。これは基本的に相手の話を聞いて、それで語り出す。相手の話の認識に時間がかかったり、聞き間違ったり、聞きそびれたり、いろいろ起こる。
ロボット同士の軽妙な会話を実現するためには、ALDialogの機能だけでは不十分だと私は思っている。こちらがある話をしている途中に、相手に信号を送って、次の会話を始めたり、相手がどの会話を終えたのかを、話ではなく、信号として受け取ってこちらのロボットが話をしたり。こういうことができるようになって初めて、人と人との軽妙な会話を、ロボットとロボットがシミュレートできると考える。
こうした、実際に耳で聞こえる会話の裏で、それとは別のやり取りをロボットにテレパシーでやらせて、会話をコントロールさせたいと考えているのだ。
原理としてはこうだ。ALDialogのtopicファイルの文章の途中に、変数をはめ込んで、なんらかの値を入力させる。すると、ALMemoryのイベントが発生するので、そのイベントを、ロボットに組み込まれたローカルモジュールに読み込ませて、指定のIPアドレスの指定ポートに、TCPないしはUDPのパケットを送る(TCPパケットのほうがいいだろう)。それを相手のロボットは、モジュールで受け取って、ALDialogのメソッドで、指定のプロポーザルを会話として挟み込む。
こうすれば、あたかも、おしゃべりな二人の人間が、激しく会話している状況もシミュレートできるはずだ。iBotモジュールにこの機能を組み込みたいと考えている。パーツはで作り済みなので、それをうまく組み上げることだけだから、そう難しくはないのではないかと思う。いつも、こういう予想は甘くなるのだが。