「勉強会に行ってみた!」第32回「NAOのトレーニングを受けてみた」
event

「勉強会に行ってみた!」
第32回「NAOのトレーニングを受けてみた」

2016.08.18

男の夢のひとつ、ロボット。日本で有名なロボットといえばPepperですが、実はそのPepperに兄弟機がいたことをご存じでしょうか? Pepperの元となった「NAO」が、その兄弟ロボットです。今回は、そのNAOのプログラム開発トレーニングを受けました。関係者以外は入れないトレーニングを特別に記事にする許可が得られましたので、その様子をお届けいたします。

(鯉渕 哲也)

■Pepperの元となったNAO

NAOは、ソフトバンクロボティクス社が開発した最初の人型ロボットです。Pepperと同じ NAOqi OSを搭載しています。Pepperは、1.2mほどの比較的大型の人型ロボットですが、NAOは身長が52cm程度の小型ロボットです。重量も5.4kgほどで、持ち運んで運用することができる大きさです。Pepperとの違いは、Pepperはオムニホイールを使って移動しますが、NAOは、人間のような二足歩行で移動するところです。

このように、とても可愛らしい外見です。関節が25箇所あり、細やかな動きも可能です。

踊りだって踊れちゃいます。

■開発方法

開発方法はPepperと同様に、Choregrapheという開発環境で行います。GUIベースなので、わりとプログラミングは簡単です。 エミュレーターも搭載しているので、実機がなくてもある程度の動作確認をすることができます。(一部、実機でなければ再現できない機能があります)
Choregrapheのプログラムは、Pythonに変換されます。

こちらがChoregrapheの開発画面です。 左下のボックスにNAOを動作させるためのライブラリが集められています。右下のロボットビューがエミュレーターです。 これを中央のエリアにドラッグアンドドロップすると、

このようにボックスが作られます。さらに、これをダブルクリックすると、

スクリプトエディタが表示されます。Pythonのコードが生成されていることがわかりますね。
処理の大枠はこのボックスで作り、細かい部分やパラメータの設定はスクリプトエディタを使い、自分で記述して開発をしていきます。

処理は左にある「?」ボタンのonStart処理からボックスのinputとoutputを繋いでプログラムを作成します。 上のプログラムは、日本語環境にセットアップしてNAOに”「はい」か「いいえ」を言ってね”と、喋らせるプログラムの例です。プログラムを実行すると、右下のエミュレーターのロボットが動きを再現してくれます。喋らせた言葉はダイアログに表示されます。 基本的な条件分岐なども書けるので、いろいろな行動や処理を組み合わせ、さまざまなことをNAOにやらせることも可能です。 ボックスライブラリには、モーション、聞く、温度や距離の検知、写真や動画の撮影、音楽を流す、人の顔を見る、通信するなど多くのライブラリがデフォルトで用意されています。 もちろんPythonのコードを自分で直接書いて、オリジナルの処理を作ることも可能ですよ。

今回のトレーニングでは、最終的に人の声による掛け算の指示を聞き取り、その結果を喋って回答するプログラムを作りました。コツさえ掴めば、数分でこれくらいのプログラムは作ることができます。

■今後のNAOの活用方法

NAOのCPUは、ATOM Z530 1.6GHz、メモリも1GB程度とスペックは決して高くありません。 そのため、NAOにスタンドアロンでいろいろな処理をさせるよりも、サーバーとの通信を前提としてプログラムを組んだほうができることの幅が広がると思いました。 例えば、NAOが見た人の画像をサーバーに送信して顔を認証し、その結果を使用してDBのデータを確認、応答を返すなど、です。また、ディープラーニングを使うとさらに面白いことができそうです。

今回のトレーニングを受けて僕が感じたことは、ロボットはデバイスだということです。
これまで、webのデバイスと言えば、PCやタブレット、スマホでした。これらは人がアクセスしなければ機能を提供できませんが、ロボットの場合は能動的に機能を提供することができます。また、今までのデバイスは画面に何かを表示することしかできませんでしたが、ロボットをデバイスとして使えば、会話やアクションなど表現が広がります。今後はNAOをデバイスとしてシステムを組むと面白いものができそうだなと考えています。

これから、トレーニングを受けた経験を生かして、NAOにいろいろなことをやらせてみたいと思います。

原稿:鯉渕 哲也
株式会社DeNAでゲーム開発&mobageプラットフォーム開発を担当。2015年7月、フリーランスのエンジニアとして独立。現在は、さまざまな会社と関わりながらサービスの開発を行う。得意分野はRubyによるバックエンドシステムの開発。

http://dosukoikoi.com/

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW