読者です 読者をやめる 読者になる 読者になる

株式会社ネクスト エンジニアBlog

不動産・住宅情報サイト HOME'Sを運営する株式会社ネクストのエンジニアが提供する技術ブログです。エンジニアに役立つ情報の発信や、弊社エンジニアの活動を中心にお届けします。

pepperくんをブラウザから動かすコントローラを作ろう

pepper JavaScript

f:id:nextdeveloper:20150219153239p:plain

こんにちは、上津原です。

前回はpepperくんをソケット通信を利用して遠隔で動かしました。今回はQimessaging.jsを利用して、ブラウザから動かせるようにしてみました。 Qimessaging.jsの最新版はこちらで入手する事ができます。

作るにあたって、こちらのQiita記事を参考にさせてもらいつつ、個人的に欲しいなって思っていた、オートノマスモードのON/OFFや、スリープのON/OFF、ビヘイビアの実行などを実装してみました。

作ったものは以下です。初めてBootstrapとか触ったので、すごくごちゃごちゃしてますが、ちゃんと動きます。

ペッパーコントロール:http://kuetsuhara.github.io/pepperConnect.html

pepperと同じLANにつなぎ、pepperのIPアドレスを入力して「接続」を押せば動くはずです。 ※「ハイタッチ」ボタンは、うちのペッパーの独自ビヘイビアなので他の人のペッパーでは動きません。

qimessaging.jsってなんじゃ?

qimessaging.jsは、平たく言えばJavaScriptからNaoqiのAPIを操作することが出来るものです。 なのでコレを使えば、pepperを歩かせたり喋らせたり動かしたりと好き勝手できちゃうわけですね。

pythonでももちろんNaoqiにアクセスすることが出来ますが、ブラウザから動かせるということは、ウェブサービスとのつながりなども想定に入れられたり、スマホから操作ができたりと色々と夢の広がる感じになります。

qimessaging.jsを使えばUI作成が楽!

動作に多少のラグがありますが、手軽にコントロール画面が作れるのは魅力的です。

pythonで作ろうもんなら、実装して〜、Qtいれて〜、その後exeにして〜とか考えてるとうざったくてしょうがないです。

そこをささっと「取りあえず動く状態」を作ることが出来るというのは大きな魅力だと思います。 最初はとりあえずってことでベタのHTMLで書いてましたが、途中からBootstrapを入れて多少見た目を作りつつスマホ対応をしつつ〜と、だんだんUIこだわっていけるのも魅力的なところですね。

JavaScript使いの人も「JSでロボット操作ができる」と聞けばとりあえずはワクワクっとするのではないでしょうか。

結構手軽にpepper乗っ取りできちゃうよねコレ

JSだからなのか、複数人同時におなじpepperにつないだり、同時に操作ができたりします。

例えば、ある人が喋らせてる時に、他の人が動き回らせたりできちゃうわけです。

そして、IPアドレスとネットワークさえわかってしまえばとってもお手軽にpepperに接続できちゃうわけなんですね。 ということは、pepperが複数いるところのネットワークにつなぎ、そのpepperのIPを掴んでしまえばpepperを横から操作できてしまう、ということにもつながります。

なので、もしpepperを使ったイベントなどでWifiネットワークをゲストに提供することなどがあるならば、pepperとゲスト用のWifiは別々にしておくのが良いと思います。

知ってる人がいれば、さくっと乗っ取られちゃう可能性があるわけですからね。うーん怖い。

ソースコードご自由にどうぞ

んで、この作ったコードですが、どうぞご自由に使ってもらえればと思います。 数年ぶりにhtmlやJSを書いているので汚なかったり、なんかルール無視してるのはご了承ください。

kuetsuhara/kuetsuhara.github.io · GitHub