COZMO SDK:Tutorials Basics 04,05

4つめのチュートリアルは、四角く進む。「進んで曲がって」をループで4回繰り返します。

/examples/tutorials/01_basics/04_drive_square.py

今回のポイントは、ループ命令の「for」の後のアンダーバー。

for _ in range(4):

チュートリアル3では、ループカウンタの値を使用しましたが、値が必要ない場合は “_” でいいとのこと。このへん、Pythonの文法説明ですね。

robot.drive_straight(distance_mm(150), speed_mmps(50)).wait_for_completed()
robot.turn_in_place(degrees(90)).wait_for_completed()

進んで曲がって。これを4回繰り返します。


5つ目のチュートリアル。

/examples/tutorials/01_basics/05_motors.py

顔の上下、アームの上下、左右のホイールの動きを直接指定します。

使うAPIは以下のものです。

頭部を動かす。

move_head(speed)

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

腕を動かす。

move_lift(speed)

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

左右のホイールを回転させる。

drive_wheels(l_wheel_speed, r_wheel_speed, l_wheel_acc=None, r_wheel_acc=None, duration=None)

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

プログラムでは、動作させる内容を順に記述しています。

robot.move_head(-5)

顔を1秒に5ラジアンずつ下に。(5ラジアン=286.5度なので、ほぼすぐ下段MAXになる。)

robot.move_lift(-5)

腕を1秒に5ラジアンずつ下に。(ほぼすぐ下段MAXになる。)

robot.drive_wheels(25, 50)

左ホイールを1秒間に25mm進む速さで回転。右ホイールを1秒間に50mm進む速さで回転。
→その結果、左に曲がりながら前に進む。

time.sleep(3)

そのまま3秒待つ。つまり、上で指定している動作を3秒間続けます。Pythonのtimeクラスの関数です。

robot.move_head(5)

顔を1秒に5ラジアンずつ上に。(ほぼすぐ上段MAXになる。)

robot.move_lift(5)

腕を1秒に5ラジアンずつ上に。(ほぼすぐ上段MAXになる。)

robot.drive_wheels(50, -50)

左ホイールを1秒間に50mm進む速さで回転。右ホイールを1秒間に50mm進む速さで逆回転。
→その結果、その場で右にターンする。

time.sleep(3)

そのまま3秒待つ。上で指定している動作を3秒間続けます。

プログラムの終了で、全モータ停止。