開発ブログ

第24回 楽しむモーションを作ってみた

投稿日時:2019年9月10日 09:09

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

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

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


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

 

楽しむ その1
はしゃいでいるイメージ

  1. def fun(papero, brightness="2"):
  2.     """Papero makes fun 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,R0T3000L,R-{0}T{1}L".format(60, 400).split(",")
  11.     horizontal = "R0T300L,R{0}T{1}L,R-250T900L,R250T900L,R-{0}T{1}L,R0T300L".format(125, 600).split(",")
  12.     ear = "W0N,{0},NW0,{0}".format(4).split(",")
  13.     forehead = "G0,{0},N,{0}".format(4).split(",")
  14.     cheek = "R0N,{0},NR0,{0}".format(4).split(",")
  15.     mouth = "G0G0NG0NG0NG0G0,{0}".format(4).split(",")
  16.     chest = "R0,{0},G0,{0},B0,{0},W0,{0}".format(4).split(",")
  17.     papero.send_set_default_status_led(brightness)
  18.     papero.send_move_head(vertical=vertical, horizontal=horizontal, repeat=True)
  19.     papero.send_turn_led_on(part="ear", pattern=ear, repeat=True)
  20.     papero.send_turn_led_on(part="forehead", pattern=forehead, repeat=True)
  21.     papero.send_turn_led_on(part="cheek", pattern=cheek, repeat=True)
  22.     papero.send_turn_led_on(part="mouth", pattern=mouth, repeat=True)
  23.     papero.send_turn_led_on(part="chest", pattern=chest, repeat=True)

楽しむ その2
ウキウキしているイメージ

  1. def enjoy(papero, brightness="2"):
  2.     """Papero makes a enjoy 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,R0T{2}L,R-{0}T{1}L,R0T{2}L,R{0}T{1}L,R0T{2}L,R-{0}T{1}L,R0T{2}L,"\
  11.                     "R{0}T{1}L,R0T{2}L,R-{0}T{1}L,R0T{2}L,R{0}T{1}L,R0T{2}L,R-{0}T{1}L,R0T{2}L"\
  12.                     .format(30, 700, 50).split(",")
  13.     horizontal = "R-{0}T{1}L,R0T{2}L,R60T700L,R0T{2}L,R-60T700L,R0T{2}L,R60T700L,R0T{2}L,R-{0}T{1}L,"\
  14.                     "R{0}T{1}L,R0T{2}L,R-60T700L,R0T{2}L,R60T700L,R0T{2}L,R-60T700L,R0T{2}L,R{0}T{1}L"\
  15.                     .format(30, 350, 50).split(",")
  16.     ear = "W0N,{0},NW0,{0}".format(4).split(",")
  17.     forehead = "G0,{0},N,{0}".format(4).split(",")
  18.     cheek = "R0R0,{0}".format(4).split(",")
  19.     mouth = "G0NNNNNNNN,{0},G0NG0NNNNNN,{0},G0NG0NG0NNNN,{0},G0NG0NG0NG0NN,{0},G0NG0NG0NG0NG0,{0},"\
  20.             "G0NG0NG0NG0G0G0,{0},G0NG0NG0G0G0G0G0,{0},G0NG0G0G0G0G0G0G0,{0},G0G0G0G0G0G0G0G0G0,4,"\
  21.             "G0NG0G0G0G0G0G0G0,{0},G0NG0NG0G0G0G0G0,{0},G0NG0NG0NG0G0G0,{0},G0NG0NG0NG0NG0,{0},"\
  22.             "G0NG0NG0NG0NN,{0},G0NG0NG0NNNN,{0},G0NG0NNNNNN,{0},G0NNNNNNNN,{0},NNNNNNNNN,4".format(3).split(",")
  23.     chest = "R0,{0},G0,{0},B0,{0},W0,{0}".format(4).split(",")
  24.     papero.send_set_default_status_led(brightness)
  25.     papero.send_move_head(vertical=vertical, horizontal=horizontal, repeat=True)
  26.     papero.send_turn_led_on(part="ear", pattern=ear, repeat=True)
  27.     papero.send_turn_led_on(part="forehead", pattern=forehead, repeat=True)
  28.     papero.send_turn_led_on(part="cheek", pattern=cheek, repeat=True)
  29.     papero.send_turn_led_on(part="mouth", pattern=mouth, repeat=True)
  30.     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 管理者

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