Я хотел бы поместить Пеппер в определенную позицию (немного как при использовании приложения «Удар и поза». Я использую этот минимальный код:
import qi
session = qi.Session()
session.connect("tcp://YOUR_IP:9559")
almotion = session.service("ALMotion")
almotion.setStiffnesses("RArm", 0.0)
- Я запускаю приведенный выше фрагмент кода (теперь переместите правую руку)
- Я держу правую руку в нужном мне положении
- Я запускаю тот же код выше с жесткостью 1.0.
Однако это не фиксирует руку в том положении, в котором я ее держал. Рука опускается, а затем устанавливается жесткость 1,0.
Когда я делаю то же самое с «Head» вместо «RArm», это работает нормально, как будто двигатели не исправляются, когда мы их держим. Как мне поступить?
РЕДАКТИРОВАТЬ 1: после отключения автономных способностей у меня все еще возникает проблема, заключающаяся в том, что руки не блокируются в том положении, которое я держу. Мой код в настоящее время:
import sys
import qi
stiffness = 1.0
if len(sys.argv) > 1: stiffness = float(sys.argv[1])
session = qi.Session()
session.connect("tcp://YOUR_IP:9559")
almotion = session.service("ALMotion")
almotion.setBreathEnabled("Body", False) # Also tried True
almotion.setIdlePostureEnabled("Body", False) # Also tried True
allife = session.service("ALAutonomousLife")
allife.setAutonomousAbilityEnabled("BackgroundMovement", False)
allife.setAutonomousAbilityEnabled("BasicAwareness", False)
allife.setAutonomousAbilityEnabled("ListeningMovement", False)
allife.setAutonomousAbilityEnabled("SpeakingMovement", False)
almotion.stiffnessInterpolation("LArm", stiffness, 1.0)
Проверить это с помощью
python code.py 0.0 # To free the left arm
# Move the left arm how you wish
python code.py 1.0 # To fix the arm