ロボット【Pepper】簡易操作アプリ(簡易版)緊急操作用?

こんばんわ〜♪

今日は、簡単なPepperコントローラーというか、緊急用のPepper基本操作アプリを作ってみたので興味のある人は見ていってくださいね( ´ ▽ ` )ノ

Pepperを操作していて突然切断されて、コレグラフからも直接naoqiAPI叩こうが、ssh接続してコマンド使おうが一切応答無しの時ってたまぁ〜にありますよね??

ネットワークが不安定とか色々あるとは思いますが、再起動したいとか、チェストボタンを2回押したらレストならウェイクアップ、ウェイクアップ状態ならレストになる、3秒長押ししたらシャットダウンで、8秒長押ししたら・・・とかなんとかかんとか・・・

そんなの覚えて無い人でも手軽に操作したい時とかに使える?アプリを起動して、任意のボタンを押すだけでいいというインタラクティブアプリです。

qimessagingを使ってnaoqiAPIを使ってるだけなので、qimessagingの使い方ならもういいよって人には役に立た無いかもしれないです(/ _ ; )

とりあえず、使うボックスと繋ぎ方はこんな感じです。

簡易操作アプリ

見ての通りShowAppボックスしか使ってません(笑)

あとは、自作のメモリイベント1つだけですね。

ボックスのソースは特に何も変えてないので、ShowAppで使用しているindex.htmlに記述したソースを載せて終わりたいと思います。


 
<!DOCTYPE html>
<html lang="ja">
<head>
   <meta charset="UTF-8">
   <title>systra_emergency</title>
   <script src="/libs/qimessaging/1.0/qimessaging.js"></script>
   <script>
   var session = new QiSession();
   function rebootButtonClicked(){
      hideWebView();
      session.service("ALTextToSpeech").done(
         function (ALTextToSpeech){
            ALTextToSpeech.say("メンテナンスします。");
         }
      );
      session.service("ALSystem").done(
         function (ALSystem){
            ALSystem.reboot();
         }
      ); 
   }
   function shutdownButtonClicked(){
      hideWebView();
      session.service("ALTextToSpeech").done(
         function (ALTextToSpeech){
            ALTextToSpeech.say("おやすみなさい。");
         }
      );
      session.service("ALSystem").done(
         function (ALSystem){
         ALSystem.shutdown();
         }
      );
   }
   function restButtonClicked(){
      session.service("ALTextToSpeech").done(
         function (ALTextToSpeech){
            ALTextToSpeech.say("休憩します。");
         }
      );
      session.service("ALMotion").done(
         function (ALMotion){
            ALMotion.rest();
         }
      );
   }
   function wakeUpButtonClicked(){
      session.service("ALTextToSpeech").done(
         function (ALTextToSpeech){
            ALTextToSpeech.say("おはようございます。");
         }
      );
      session.service("ALMotion").done(
         function (ALMotion){
            ALMotion.wakeUp();
         }
      );
   }
   function hideWebView(){
      session.service("ALTabletService").done(
         function (ALTabletService){
            ALTabletService.hideWebview();
         }
      );
   }
   function end(){
      session.service("ALTextToSpeech").done(
         function (ALTextToSpeech){
            ALTextToSpeech.say("終了します。");
         }
      );
      session.service("ALMemory").done(
         function (ALMemory){
            ALMemory.raiseEvent("myMemory/end","end");
         }
      );
      hideWebView();
   }
   </script>
</head>
<body>
   <button style="font-size: 70px; width: 50%; height: 425px;" type="button" onclick="rebootButtonClicked();">再起動</button>
   <button style="font-size: 70px; width: 50%; height: 425px; position: absolute; left: 49.5%;" type="button" onclick="shutdownButtonClicked();">シャットダウン</button>
   <button style="font-size: 70px; width: 50%; height: 425px;" type="button" onclick="restButtonClicked();">休憩</button>
   <button style="font-size: 70px; width: 50%; height: 425px; position: absolute; left: 49.5%;" type="button" onclick="wakeUpButtonClicked();">起こす</button>
   <button style="font-size: 60px; width: 100%; height: 200px" type="button" onclick="end();">終了</button>
</body>
</html>
 



以上です。

<script src="/libs/qimesaging/1.0/qimessaging.js"></script>


の部分で、タブレットにqimessaging.jsをダウンロードして実行しています。

var session = new QiSession();


でQiSessionオブジェクトを生成して初期化しています。
このオブジェクトを介する事でJavaScriptはNAOqiAPIにアクセスしています。

session.service("ALTextToSpeech").done(
   function (ALTextToSpeech){
      ALTextToSpeech.say("終了します。");
   }
);


QiSessionからservice関数がALTextToSpeechを取得してきたら、ALTextToSpeech.sayを呼び出して、上記の場合は”終了します。”という文字列を喋ります。

ALTextToSpeechの部分を他のAPIに置き換える事で様々なAPIを使用する事ができます。
say()メソッドは、ALTextToSpeechに対するメソッドなので、他のAPIに置き換える場合は、目的にあったメソッドに置き換える必要があります。

今回の場合で言えば、restやwakeUpはALMemory、shutdownやrebootはALSystemという風に使っています。

もちろん、今まで紹介してきたAPIも使えるので、作りたいものに合わせて使ってみてくださいねっ♪

最後に今回使ってるメモリイベントですが、このソース通りに作ってる人は、メモリイベントも”myMemory/end”で自作して繋いで下さいね♪
変更しちゃってる人は、変更した名称で追加して下さい。

では、今日はこの辺で( ´ ▽ ` )ノバイバイ

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です