テレパシーモジュールの機能

テレパシー機能は、ALmemoryのイベント機能と、ネットワークを結びつけるのが最も単純で、プリミティブな機能として実現することができる。

テレパシー機能
テレパシー機能

図で説明しよう。左のロボットから右のロボットに伝える場合である。
いま、作成予定のモジュールをWSTelepathyとしよう。受け持つ機能部分は、四角の枠で囲まれている。 続きを読む テレパシーモジュールの機能

アイボットサイトのユーザー登録できます

iBotサイトのユーザー登録をオープンにしました(アイボットサイト)。それによって、スクリプトをユーザーエリアに保存することが可能になり、同時に公開される対話ライブラリも、ユーザー領域に組み込むことができ再編集も含めて利用できるようになりました。

公開自由ライブラリ
公開自由ライブラリ

続きを読む アイボットサイトのユーザー登録できます

白ロム、赤ロム androidスマホ

携帯電話は、PHSのガラケー、その他の携帯端末は、ipod touch、ipad、android Nexsus 7、で、やり過ごしている。ピノキオは、Nexsusでは、ほぼ予定通り機能する。スマホにも対応させたいと、今日アキバで白ロムandroidスマホを1台買ってきた(電話機能なし、wifiで使う)。2年前に発売された中古だ。白ロムが欲しいとジャンバラの兄さんに言ったら、赤ロムもあるよって言われた。赤ロムとは、その携帯を売った人がまだ本体ローンを払い続けているものだと言う。なるほど、ローンは残っているのに新しいのが欲しくなったわけである。赤ロムを買っても肩代わりをするわけではないので、私には問題ないが、simを新たに入れたりするときなどに問題があるのだろう。赤ロムは保証を付けるらしいが、白ロムを買ってきた。
この調子だと、青ロムも黒ロムもあるのかもしれない。

SOCKET問題、revisited

先に、chrome app for android cordovaでは、socketの古いものしか動かないと書いた(ここ)が、数日前に、socketsが組込まれた新しいバージョンが発表されたようだ。これを変更すると、ftp.jsを書き換えなければならない。当面、機能に不都合は発生しないだろうから、変更しない。いずれやらなければならないかもしれない。

タブレットコントローラーがほぼできたので

衣装の紹介も兼ねてなのだけど。本当は赤のドレスの予定ですが、青が先に出来上がったのでそれを着せています。

タブレットでほとんどの作業ができるコントローラーピノキオの機能はすべて組み込みました。
(1)動作を管理できる
(2)対話を管理できる
(3)対話スクリプトを編集保存(端末内に)ができる
(4)ロボットステータスの取得、休み、起きる、停止、再起動などの管理システム
(5)アイボットモジュールのインストール機能
を備えています。(NAOでテストしていますが、pepperでも動くはずです)

ピノキオのFTP機能

ロボットコントロール用のモバイル端末(ピノキオ)で、iBotモジュールをジュールをサーバーからロボットに転送し、同時にautoload.iniを書き換えるための、FTP機能がほぼできた。苦労した。基本は、javascript用のftpプログラムになってこれがややこしい。
ピノキオはandroidアプリだが、cordova上で、html5でプログラミングする。そもそもjavascriptというのはクライアントサイドのプログラムであり、これが、ftp機能持つというのは普通あり得ない。明らかにセキュリティを犯してしまうからだ。chrome apps API for Mobileは、それでは困るので、独自のバークレーsocket機能を持たしている。それを使って、ftpを実現したのだが、そもそも普段はやらないところのなので、ネットにも情報がほとんどない。
あとは、プログレスバーをつけたり、インターフェイスを若干改良してこの機能については終わりにしよう。他の機能については、ほぼ、同様のjavascriptを作成済みなのでそれほど手がかからないはずである。
ただ、ロボットのビデオカメラの映像を、なんとか、ピノキオ端末上に映し出せないかと考えているので、そこがまたやっかい、というよりも、できないかもしれない。ただ、Choregrapheでは、できているので何とかなるのではないかと思っている。

ピノキオ、Socket問題

iBotコントローラー、ピノキオに、FTPクライアント機能を持たせようとしている。iBotのサーバーから、モジュールをダウンロードして、ロボット(NAOなりPepperなり)の指定場所に置いて、autoload.iniというモジュールインストール設定ファイルを書き換えなければならない。
iBotのサーバーからモジュールをダウンロードするのは、httpプロトコルレベルでできる。しかし、android端末から、ロボットまでは、FTPで送るしかない。そこで、chromeアプリにネットワーク通信のためのsocketプロトコルを入れる必要がある。そこで、android chromeのAPIページに従って、socketを入れようとした。するとそこに、chrome.socketは古いから、chrome.sockets.tcpを使いなさいと書いてあった、そこで、その通りにした。それは確かに、通常のchrome appsの場合はその通りに動くのだが、android cordovaの場合は、古いものしか動かないことがわかった。
これに日曜日の半日を費やした。腹立たしさはあるがどうしようもない。失った時間は取り返せない。人生とはこんな無駄の塊なのだ。

タブレット端末用アプリ:ピノキオ (動作編)

NAO用に開発した(Pepperでも動くはず)iBotモジュールのコントローラーで、タブレット端末用(現時点では、android端末Nexus7)用のアプリを作成した。一応、ピノキオという名前にしておく。まだ、動作制御しか組み込んでいないが、わっしーで試してみた。以下がそのビデオである。

ピノキオは確かにアンドロイドアプリなのだが、細かく言えば、Chrome Apps for Mobile Using Apache Cordovaである。つまり、CordovaというandroidあるいはiOS端末のバーチャルマシンの上で動く、HTML5アプリである。詳しくは、ここに、たいへん、わかりやすい説明(特に、アプリの作成手続きのわかりやすさが他に例をみない程よい)が書かれている。アプリなので、アンドロイドのPlay Store とかiOSのApp Storeに登録も可能である。
すべての機能が組み込まれれば、アンドロイドのストアには登録する予定だが、iOSのストアに登録する努力はしないと思う。無駄な時間と経費がかかる。
ピノキオスクリーン
なにしろ、HTML5なので、開発が簡単である。今回のピノキオの動作機能も、数時間で基本的なところをつくることができた。
このあと、対話機能のコントロール、対話スクリプトの編集機能、ロボットの基礎管理機能、iBotモジュールのインストール機能を、すなわちクラウド上でやろうとしていることのほとんどをここでできるようにするつもりだ。(すでにアイボットのクラウドサイトはHTML5で作成済みなので、移植は簡単のはず)JAVAのjiBotには、スクリプトの編集機能は載せなかったが、このタブレット端末版には、それも含める。
今回作成してみて、実際ロボットのコントロールをモバイル端末からおここなうことは、ロボットという性質上必須だと感じている。
今回の動作モジュールでは、JAVAのjiBotのプログラムをそのままjavascripにt移植したが、全く異質な言語であるのに、やりやすかった。