jiBotがWindowsでも動くようになった。ただし、32ビットバージョンである。問い合わせに回答があった。
"The only two dependencies that you may not have are MSVCP100.DLL and MSVCR100.DLL. These two dll should be provided by http://www.microsoft.com/en-us/download/details.aspx?id=5555 , try installing that"
ということで、いわれとおりインストールしたら動いた。なんで、visual c++ 2010のdllが必要なのか、不思議だな。
カテゴリー: iBotシステム
iBotのモバイル端末アプリ
jiBotと同様の、iBotコントロールアプリをモバイル端末用にも作ることにした。いまさら、Androidを作るのが面倒だと思っていたが、いま、Chromeアプリをそのまま、モバイル端末に持っていけるようになっていた。Chromeアプリは以前に二つばっかり作って、Chromeウェッブストアにアップしてある。こちらとこちら。
Chromeアプリは、ブラウザで動くというよりも、単体で普通のアプリのように動くのだが、基本的にHTML5で作成されている。もちろん、OSに依存しない。
iBotサイト、まだ公開していないが、ロボットにか関わる部分はHtml5で作成してある。html, javascript,sccで作ってあるのだ。だから、それほど手をかけずに、Chromeアプリにできるし、従ってモバイル端末アプリ、さしあたってはAndroid端末のものを作ろうと思う。
jiBotを使って細かく「わっしー」の動作を制御
先に示した、JAVAを使ったiBotモジュールのコントローラーであるjiBotを使って、動作や対話管理などのビデオを作成した。特に、わっしーを微細に制御することができることを示す。
javaによるibotコントローラー jiBot
java用のqimessaging.jarを使って、対話管理(スクリプトの開始や表示)、動作制御(5cm〜90cmの移動、10度〜180度の回転)、状態把握(バッテリ、ディスク、メモリ、休息、起床、停止、再起動など)、ibotのインストール(モジュールのロボットへの組込み)などをこなす、jiBotのチェックが終わった。
※ このjiBotは、Pepperにたいしても使えるはずである。使用しているすべてのAPIがNAOとPepperとの共用のものだから。
予定通り稼働した。先にビデオで示した、口頭による動作プログラム(長い距離:0.5m〜10m程度まで移動制御できる)とあわせれば、ほぼ、指定場所に、リモートでロボットをセットでき、対話の制御、また、ibotクラウドにつながらなくても、ibotモジュールの制御ができるようになった。
※ クリックすると原寸表示
(ロボットを含むローカルネットへの接続は必須:macとlinuxでは問題なく動く。Windowsについては、32ビットバージョンで稼働する。)
ロボットに口述でコマンドを与えて実行させる
久しぶりにビデオを撮った。
この間、iBotの機能として作成した、口述でロボットにコマンドを与え、削除や追加などの編集をし、歩行、回転、スピーチ、さらに対話をさせる機能の一部をビデオで撮った。私の研究室のような狭い部屋では、ロボットの基礎検知機能、衝突防止機能が自動で働いて、そのままではほとんど動かない。これらは、自動生命機能の配下で動いているから、自動生命機能そのものを止めても良いのだが、それは非常に危険である。そうすることで、何度か失敗したので。最低限上記の二つの部分機能を止めれば良い。それらを動かしておくと何が起こるかはご自身で確かめると良い。
途中で方向が少しずれたので足を触ったら、一部けいれんするような歩行になった。ロボットの不明な仕様である。
このあたりがわかるまで、アルデバランの英語サイトフォーラムに何度も問い合わせた。そこでの討論を参考にすると良いだろう。
javaコントローラーの作成
先日大学のネットワークが不調になって、iBotのサイトにつながらなくなって、はたと気づいた。ネットワークが不調のときにロボットが使えないというのはあまりに理不尽。iBotのクラウドシステムは、目の前にあるロボットのコントロールがインターネット上のiBotのサイトに依存してしまう。
そこで、トピックファイルの編集ダウンロード、設定ファイルの管理等、それら以外の、直接的なロボット管理は、インターネットがだめでも、ロボットとパソコンがローカルにつながっていればできるようにすべきだ。
java用のqimessaging.jarというjavaSDKがAldebaranから提供されている。最初は、android端末で使おうかと思ったが、やはり慣れていないので、javaアプリとして作ることにした。私はプログラマーではない。androidアプリはプログラマーに依頼することにして、私が必要とする機能を実現するのは、パソコンの使い慣れたjavaアプリで良いと判断した。qimessaging.jarを使うと、ローカルのロボット管理は、javascriptとほぼ同じ簡便さで実現してしまう。
iBotの一区切りと課題
iBotシステムは、予定していた以上の内容を伴って出来上がった。8月中に作るつもりだったが、1ヶ月余計にかかった。最後に組み込んだ、言葉で一連のコマンドを与えてるというシステムもできている(一連のコマンドの編集、再生、削除もロボットとの対話で実現できる)。いずれにしても、対話を中心としたロボットシステムという形は予定通りで来たと思う。ただ、ロボットがなければ、アカウント登録して使っても、実際の役には立たないので、公開はもう少し考えてからにする。
課題として残っているものは次のようなもの。
(1)口頭コマンドで、トピックのアクティベイションをコントロールする。
(2)商用トピックの暗号化と、サンプルの作成。
(3)moveToコマンド(naoqi API ALMotionのメソッド)によるロボットの動きの厳密な制御が確認できていない。(※ 現在、英語版のForumページに問い合わせ中)
(4)iBotサイトにつなげないときの、ロボットコントロール。これは、引き続き作業する。
(※ 2014年10月6日段階で、第2項目以外は全て作業を予定通り終了している)
コマンドモジュールの作成
いったんロボットとiBotを立ちあげたらあとはすべて対話で命令を与えられるようにしたい。しかも、ひと連なりの命令群を言葉で与えるとそれを忠実に実行するシステムだ。
会話アニメーションを組み込まれるようにした
iBotで、60種類の会話アニメーションを簡単に貼込めるようにした。お辞儀なんかも、自分でつくる必要があるかと思っていたが、きちんと作ってある。自分でコレグラフで作ろうとしたら、バランスが悪くて倒れそうになった。
全部試していないが、いろいろある。
あと、首を左右それぞれに傾ける動作が欲しいが、これくらいは自分で作ろうと思う。
言葉による一連の命令の逐次実行
ブラウザでロボット対話と動作を制御することはできるようになった。次にやるべきことだ。
NAOに、一連の命令をあたえて、それを実行させたいと思った。QiChatのトピックファイルの中にそれを書き込んで、やらせることはもちろんできる。が、その場で臨機応変にさせたい。
「ここから、3メートル歩いて、右に90度回転し、「こんにちわ」とあいさつをしなさい。そこにいる人の顔を覚えなさい。次に左に向いて、1メートル歩いて座りなさい。「たちなさい」と言われたら、たって、会話を始めなさい。・・・・等々」
と、その場で「人の言葉で」一連の命令を与えるとその通り実行を始めるようにしたいのだ。QiChatでは、命令の受け取りの部分だけを書いて、その流れの記憶と実行は、iBotでする。モジュールの中に新たにC++のクラスを加えよう。
「こういわれたらこう答えなさい」と言った感じで、対話そのものもその場で教えるようにすることもできるはずだ。QiChatスクリプトをその場で作るようなものだ。
対話を軸にしたロボットの管理、というiBotの精神にぴったりである。
かなり役に立つはずである。