開発ブログ

第6回 レスポンスを利用してパペロを制御してみた

投稿日時:2018年8月10日 09:08

こんにちは。ピャペロンです!
今回はレスポンスを利用してパペロを制御してみたよ。
レスポンスを理解すれば様々な動きができるようになるから頑張ろう!

あらかじめパペロシミュレーターを動かす環境を整えておこう。第2回 Windowsからパペロシミュレーターを動かしてみた

使用するソフト
・Windows 10
・テキストエディタ(Visual Studio Code
・Google Chrome
・Python 3(ver3.4推奨)
※推奨環境以外は不具合が起きる可能性があるので自己責任でお願いします。


下記のソースコードはレスポンスを利用して右を向いてから挨拶するプログラムだよ。
コピーペーストして動かしてみよう。※動かない場合は” -sim “オプションでシミュレータIDを指定してみよう。
リファレンスを確認しながら1行ずつ理解していこう。

# 右を向いて挨拶するプログラム

import sys    # コマンドラインの動作に深く関連する関数を定義しているsysモジュールを利用できるようにするよ。
import pypapero    # PaPeRo i 制御用ライブラリを利用できるようにするよ。

if __name__ == "__main__":    # コマンドラインからこのファイルを実行したら。

    # コマンドライン引数からそれぞれの値を変数に代入するよ。
    simulator_id, robot_name, ws_server_addr = pypapero.get_params_from_commandline(sys.argv)

    papero = pypapero.Papero(simulator_id, robot_name, ws_server_addr)    # Paperoオブジェクトをクラスから生成するよ。
    if papero.errOccurred == 0:    # エラーが発生しなければ実行するよ。
papero.send_move_head([""], ["A-45T1000"]) # 右に45度頭を動かすよ。 while True: # 繰り返し実行するよ。 papero.send_get_head_status() # getHeadStatusResレスポンスを取得するよ。 messages = papero.papero_robot_message_recv(1.0) # レスポンスを取得した順に取り出してmessagesに代入するよ。 # messagesの値がNone以外でかつ"Name"の値が"getHeadStatusRes"かつ"Horizontal"の値が"-45"の場合実行するよ。 if messages != None and messages[0]["Name"] == "getHeadStatusRes" and messages[0]["Horizontal"] == "-45": papero.send_start_speech("おはようございます。") # 挨拶するよ。 papero.send_move_head(["A-30T500", "A0T500", "A-30T500", "A0T500"], [""]) # 頭を上下に動かすよ。 break # 繰り返しから抜け出すよ。
papero.papero_cleanup() # paperoオブジェクトの使用を終了するよ。


 

レスポンスとは?
簡単に説明すると、パペロが何かしらの動作をしたときに生成される情報のまとまりのことだよ。
生成された情報のまとまりは、同じレスポンスでも上書きされずに保存されて積まれていくよ。
リファレンスを見ながら確認してみよう。

 

レスポンスを取り出す「 papero.papero_robot_message_recv(recvWait) 」メソッド
「 papero.papero_robot_message_recv(recvWait) 」はレスポンスを生成された順に取り出して削除するメソッドだよ。
取り出されるレスポンスは生成された順に取り出されるので、任意のレスポンスを取り出すには繰り返しを利用する必要があるので注意しよう。

 

今回はpapero.send_get_head_status()でレスポンスを取得してpapero.papero_robot_message_recv(1.0)でレスポンスを取り出す動作を繰り返して、getHeadStatusResレスポンスのHorizontalの値が-45の場合に挨拶するようにプログラムしてあるよ。
このレスポンスを使いこなせればいろんな動きを実現できるから頑張って覚えよう!


0

最新開発ブログ一覧  (一覧で確認
2020年8月19日 14:08
開発ブログ
第30回 パペロで赤外線アレイセンサを動かしてみよう!【中編:顔の表面温度を測ってみよう】
by 管理者
2020年7月22日 16:07
開発ブログ
第29回 パペロで赤外線アレイセンサを動かしてみよう!【前編:簡易サーモグラフィを作ろう】
by 管理者
2019年11月20日 17:11
開発ブログ
第28回 パペロでJulius4.5を実行してみた
by 管理者
2019年11月13日 09:11
開発ブログ
第27回 JuliusをPaPeRoi向けにクロスコンパイルしてみた
by 管理者
2019年9月19日 17:09
開発ブログ
第26回Linaro Toolchainでクロスコンパイルしてみた
by 管理者

コメントは受け付けていません。