開発ブログ

第22回 怒るモーションを作ってみた

投稿日時:2019年8月9日 14:08

こんにちは。ピャペロンです。
今回はコミュニケーションロボットとして、よりパフォーマンスを高めるための怒るモーションを考えてみました。
集客効果や愛着を持たせるためにもモーションは重要な要素なのでこだわっていきましょう!

使用するハード
・PaPeRo i実機

使用するソフト
・Windows 10
・テキストエディタ(Visual Studio Code
・Python 3.4(PaPeRo i)


パペロの顔が正面の場合を基準として作成しました。
今回は怒りを表現するモーションの紹介です。シミュレーターでの動作も確認しました。
モーションパターンの詳細はリファレンス | PaPeRo i [非公式] Developer Forumを参照してください。

 

怒る その1
怒りがこみ上げてきて震えるイメージ

  1. def angry(papero, brightness="2"):
  2.     """Papero makes a angry move
  3.     
  4.     Arguments:
  5.         papero {class} -- papero class
  6.     
  7.     Keyword Arguments:
  8.         brightness {str} -- LED brightness (default: {"2"})
  9.     """
  10.     vertical = "R0T1400L".split(",")
  11.     horizontal = "R-7T120L,R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,"\
  12.                  "R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-7T120L".format(14, 240).split(",")
  13.     forehead = "R0,{0},N,{0}".format(4).split(",")
  14.     mouth = "NR0R0NR0NR0R0N,{0}".format(7).split(",")
  15.     chest = "R0,{0},N,{0}".format(4).split(",")
  16.     papero.send_set_default_status_led(brightness)
  17.     papero.send_move_head(vertical=vertical, horizontal=horizontal, repeat=True)
  18.     papero.send_turn_led_on(part="forehead", pattern=forehead, repeat=True)
  19.     papero.send_turn_led_on(part="mouth", pattern=mouth, repeat=True)
  20.     papero.send_turn_led_on(part="chest", pattern=chest, repeat=True)

怒る その2
怒りが爆発して説教しているイメージ

  1. def angry2(papero, brightness="2"):
  2.     """Papero makes a angry move
  3.     
  4.     Arguments:
  5.         papero {class} -- papero class
  6.     
  7.     Keyword Arguments:
  8.         brightness {str} -- LED brightness (default: {"2"})
  9.     """
  10.     vertical = "R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R0T500L,"\
  11.                 "R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R0T500L,"\
  12.                 "R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R0T500L,"\
  13.                 "R{0}T{1}L,R-{0}T{1}L,R{0}T{1}L,R-{0}T{1}L,R0T500L".format(30, 400).split(",")
  14.     horizontal = "R0T{2}L,R{0}T{1}L,R0T{2}L,R-{0}T{1}L,"\
  15.                  "R0T{2}L,R-{0}T{1}L,R0T{2}L,R{0}T{1}L".format(30, 500, 1500).split(",")
  16.     forehead = "R0,{0},N,{0}".format(3).split(",")
  17.     mouth = "R0R0NNNNNR0R0,{0},NR0R0NNNR0R0N,{0},NNR0R0NR0R0NN,{0},NNNR0R0R0NNN,{0},"\
  18.             "NNR0R0NR0R0NN,{0},NNR0R0NR0R0NN,{0},NR0R0NNNR0R0N,{0},R0R0NNNNNR0R0,{0}".format(3).split(",")
  19.     chest = "R0,{0},N,{0}".format(3).split(",")
  20.     papero.send_set_default_status_led(brightness)
  21.     papero.send_move_head(vertical=vertical, horizontal=horizontal, repeat=True)
  22.     papero.send_turn_led_on(part="forehead", pattern=forehead, repeat=True)
  23.     papero.send_turn_led_on(part="mouth", pattern=mouth, repeat=True)
  24.     papero.send_turn_led_on(part="chest", pattern=chest, repeat=True)

次回は哀しむモーションを紹介する予定です。


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 管理者

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