COZMO SDK:Tutorials Basics 07,08

7つめのチュートリアルは、背中のLED点灯制御です。

/examples/tutorials/01_basics/07_backpack_lights.py

使用するAPIはこちら。

set_all_backpack_lights(light)

http://cozmosdk.anki.com/docs/generated/cozmo.robot.html#cozmo.robot.Robot.set_all_backpack_lights

パラメータは、cozmo.lights で定義されています。チュートリアルでは、以下の順に光り方を切り替えています。

cozmo.lights.red_light
cozmo.lights.green_light
cozmo.lights.blue_light
cozmo.lights.white_light
cozmo.lights.off_light

赤→緑→青→白→OFF です。

チュートリアル紹介ビデオは、ちょっと違うバージョンみたいで、赤→緑→青→OFFで指定してます。

SDK の cozmo/lights.py の仕組みを見てみると、もっと細かい色指定とか、光り方指定もできるみたいですね。


8つめのチュートリアルは、COZMOにアクション(Animation)をさせる方法です。

/examples/tutorials/01_basics/08_animation.py

使用するAPIは、動作を Trigger クラスで指定する方法の「play_anim_trigger」

play_anim_trigger(trigger, loop_count=1, in_parallel=False, num_retries=0, use_lift_safe=False, ignore_body_track=False, ignore_head_track=False, ignore_lift_track=False)

http://cozmosdk.anki.com/docs/generated/cozmo.robot.html#cozmo.robot.Robot.play_anim_trigger

Triggerとしてどのようなものがあるかは、下記の cozmo.anim.Triggers を参照してください、とのこと。

http://cozmosdk.anki.com/docs/generated/cozmo.anim.html#cozmo.anim.Triggers

いっぱいあります。英語の定数名しか情報が無いので、そこから動作を類推するしかないですね。実際に指定して動かしてみないとわからないので、いろいろやってみましょう。

APIもうひとつ。動作を名称文字列で指定する方法の「play_anim」

play_anim(name, loop_count=1, in_parallel=False, num_retries=0)

http://cozmosdk.anki.com/docs/generated/cozmo.robot.html#cozmo.robot.Robot.play_anim


実際のサンプルプログラム中の記載です。

print("Playing Animation Trigger 1:")
robot.play_anim_trigger(cozmo.anim.Triggers.CubePounceLoseSession).wait_for_completed()

「cozmo.anim.Triggers.CubePounceLoseSession」のAnimation動作を実行します。

2つめ。

print("Playing Animation Trigger 2: (Ignoring the body track)")
robot.play_anim_trigger(cozmo.anim.Triggers.CubePounceLoseSession, ignore_body_track=True).wait_for_completed()

同じAnimationですが、igonore_body_track = True が指定されています。この指定があると、本体は動かずに、顔のみの動作になります。

3つめ。

print("Playing Animation 3:")
robot.play_anim(name="id_poked_giggle").wait_for_completed()

name で「id_poked_giggle」を指定しています。play_anim で指定する動作名称は、今後のバージョンアップで変わるかもしれないので、play_anim よりも play_anim_trigger の使用をオススメします、とのこと。

「Cube Pounce Lose Session(キューブを奪い損ねたときのリアクション)」→「Cube Pounce Lose Session(同じく、顔のみ)」→「Poked Giggle(つつかれてクスクス笑う)」の順に動きます。

ちなみに、指定可能なAnimationは、/examples/apps/remote_control_cozmo.py を使うと、簡単に確認できるとのことなので、次回、やってみます。