mbedロボットの制御システム

June 13, 2016

さて、やっとmbedロボットができたので、次はこれをコントロールするシステムを作っていきます。ここからはソフトウエアの開発が中心になります。今考えているシステム構成は下記の通りです。


システム構成
mbedロボットをコントロールする実態はサーバ上のボットとして実装する。iPodはBLEのセントラルとしてボットからmbedに送るデータを中継したり、ユーザーからボットにメッセージを送るための中継機として用いる。将来的にはユーザーの発話をサーバ側で認識してテキストにしてそれをボットに送る予定。サーバとiPod間の通信にはSocket.ioを使う予定。サーバのボットはクラウドの情報を活用しながらロボットを制御する。今のところ、hubotを使ってボットを作成する予定。以上をまとめた図が下記です。

 


こんな感じです。io.socketはサーバ、クライアント間の通信を双方向で行えます。つまり、接続されていれば、サーバからクライアントにいつでもデータを送ることができます。iOS側の実装についてはここがいろいろ参考になりそうです(ちなみに、Socket.ioはWebsocketやロングポーリングなど、幾つかの方式を採用した、シンプルなAPIでリアルタイムWebを実現する為のモジュール)。サーバのボットはhubotで実装するつもりです。hubotはGitHub社が開発しているチャットbotの開発、実行フレームワークです。node.jsを使っているみたいで、開発言語は基本coffeescriptです。

肝心の「何をどう喋らせるか」はまだ考え中ですが、最近はやりのディープラーニングを使ってみようかな、と思ってます。全く詳しくないんですが、勉強も兼ねてトライしてみるつもりです。

今はロボットに一方的にデータを送ることしかできません。これではロボットとコミュニケーションとれないので、iPodを使ってコミュニケーションを取れるようにすることにしました。mbedに人感センサーとかつけようかとも思ったのですが、消費電力が増えるのが嫌なので今回はパスです。あと、前の記事の写真にあるように、ブレッドボードに実装しているので、持ち運びがしにくく、置ける場所も限られているというのもセンサーを付けたくない理由の一つです。