こんばんわ〜♪
みなさん、乾燥対策はしてますか〜?
保湿は大切ですよ?(笑)
それはそうと、今日はPepperが認識した人の身長を勝手に目測して言ってくれるアプリの試作版を作ったので載せたいと思います。
試作版なので、ちょっとしたバグというか対策不足の部分を見て見ぬ振りしてますので、気になる方は修正するなり、完成版を載せるまでスルーするなりしてくださいねっ( ´ ▽ ` )ノ
クレームは受け付けません(笑)
とりあえず、プロジェクトの全体図が下の画像です。
全体図のメモリイベントはHandBackLeftTouchedとHandBackRightTouchedの二つで、終了契機にしています。
ぶっちゃけ、なんでもOKです。
んで、更にpeopleHeightボックスの中身がコチラです。
中のメモリイベントは、PersonEnteredZoneの1~3です。
人が来たという契機にしてますが、もしかしたらもっと良いメモリイベントだったり方法があるかもしれませんが、まぁ、とりあえず試作品なので・・・
というか、むしろ良い方法があったら教えてください(笑)
では、メモリイベントの説明が終わった所で、ソースを書きたいと思います。
class MyClass(GeneratedClass): def __init__(self): GeneratedClass.__init__(self) def onLoad(self): self.memory = ALProxy("ALMemory") def onUnload(self): self.memory = None def onInput_onStart(self): ids = self.memory.getData("PeoplePerception/PeopleList") if len(ids) != 0: for id in ids: height = ALMemory.getData("PeoplePerception/Person/" + str(id) + "/RealHeight") self.onStopped(str("あなたの身長は、" + str(int(height * 100)) + "cmですよね?")) def onInput_onStop(self): self.onUnload() self.onStopped()
以上です。
Pepperの認識している人間のID一覧を取得してきて、1人以上一覧に格納されていれば、更に身長を取得してくるというだけのプログラムです。
ちなみに身長のところがstrやintでごちゃごちゃしてますが、これは、他のやり方でもOKです♪
個人的にはこれが一番手っ取り早いかなと思ったので、これで身長をcmにしてます。
これをしないとintで出力すれば1、floatにすれば数億数千うんたらかんたら言い始めますので、ちゃんと3桁くらいに直してあげて下さいねっ♪
当たり前ですよね??
私はやっちゃいましたけど・・・(笑)
Pepperらしく、数センチの誤差はあると思いますが、まぁまぁのニアピンで当ててくれますよね?
今回の見て見ぬ振りは、人数です。
そのうち、直して載せたいと思いますので、また見に来てねっ( ´ ▽ ` )ノバイバイ