2. 脚の動き

PiDogの脚の動きは、以下の関数によって実装されています。

Pidog.legs_move(target_angles, immediately=True, speed=50)
  • target_angles: 8つのサーボ角度の配列(角度グループと呼ばれる)からなる二次元配列です。これらの角度グループは、8つの足サーボの角度を制御するために使用されます。複数の角度グループが書かれている場合、実行されていない角度グループはキャッシュに保存されます。

  • immediately: 関数を呼び出すとき、このパラメータを True に設定すると、キャッシュはすぐにクリアされて新しく書かれた角度グループが実行されます。パラメータを``False``に設定すると、新しく書かれた角度グループが実行キューに追加されます。

  • speed: 角度グループの実行速度。

いくつかの一般的な使用方法を以下に示します:

  1. 即座に行動をとる。

from pidog import Pidog
import time

my_dog = Pidog()

# 半立ち
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)
  1. 実行キューにいくつかの角度グループを追加する。

from pidog import Pidog
import time

my_dog = Pidog()

# 半立ち
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)

# 複数のアクション
my_dog.legs_move([[45, 35, -45, -35, 80, 70, -80, -70],
                    [90, -30, -90, 30, 80, 70, -80, -70],
                    [45, 35, -45, -35, 80, 70, -80, -70]],  immediately=False, speed=30)
  1. 10秒以内に繰り返し行う。

from pidog import Pidog
import time

my_dog = Pidog()

# 半立ち
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)

# 腕立て伏せの準備
my_dog.legs_move([[45, 35, -45, -35, 80, 70, -80, -70]], immediately=False, speed=20)

# 腕立て伏せ
for _ in range(99):
    my_dog.legs_move([[90, -30, -90, 30, 80, 70, -80, -70],
                        [45, 35, -45, -35, 80, 70, -80, -70]],  immediately=False, speed=30)

# 10秒間維持
time.sleep(10)

# 停止して半立ち
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], immediately=True, speed=50)

PiDogの脚制御には、以下の関数も使用できます

Pidog.is_legs_done()

この関数は、キャッシュ内の角度グループが実行されたかどうかを判断するために使用されます。実行された場合は True を返し、そうでない場合は False を返します。

Pidog.wait_legs_done()

キャッシュ内の角度グループが実行されるまでプログラムを一時停止します。

Pidog.legs_stop()

キャッシュ内の角度グループを空にします。