Refactored kick

This commit is contained in:
2018-06-15 15:20:22 +02:00
parent 2683974147
commit 81c9c174dc
2 changed files with 45 additions and 96 deletions

View File

@@ -1,99 +1,9 @@
import time from .utils import read_config
import argparse from .movements import NaoMover
from naoqi import ALProxy
from math import radians
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
motionProxy.setStiffnesses("Head", 1.0)
motionProxy.setStiffnesses("LShoulderRoll",0.9)
motionProxy.setStiffnesses("LHipPitch",0.9)
# Example showing how to set angles, using a fraction of max speed
#names = ["HeadYaw", "HeadPitch"]
#angles = [0.2, -0.2]
fractionMaxSpeed = 0.5
names=["RShoulderRoll",]
angles=[radians(-76)]
motionProxy.setAngles(names,angles,fractionMaxSpeed)
time.sleep(3)
fractionMaxSpeed = 0.05
motionProxy.setStiffnesses("RAnkleRoll",0.9)
#names=["LHipRoll","RHipRoll","RAnkleRoll","LAnkleRoll"]
names=["RAnkleRoll","LAnkleRoll"]
#names=["LHipRoll","RHipRoll","LHipPitch","RAnkleRoll","LAnklePitch"]
angles=[radians(-10),radians(-10)]
# angles=[radians(-20),radians(-20),radians(-10),radians(-10)]
# angles=[radians(-20),radians(-20),radians(-15),radians(-5),radians(0)]
motionProxy.setAngles(names, angles, fractionMaxSpeed)
time.sleep(3)
fractionMaxSpeed=0.2
names=["LKneePitch","LAnklePitch"]
angles=[radians(90),radians(-40)]
motionProxy.setAngles(names,angles,fractionMaxSpeed)
time.sleep(3)
names=["LHipPitch"]
angles=[radians(-45)]
fractionMaxSpeed=0.01
motionProxy.setAngles(names,angles,fractionMaxSpeed)
names=["LKneePitch","LAnklePitch"]
angles=[radians(20),radians(-5)]
fractionMaxSpeed=0.05
motionProxy.setAngles(names,angles,fractionMaxSpeed)
'''
time.sleep(3)
names=["LShoulderRoll"]
angles=[radians(76)]
motionProxy.setAngles(names,angles,fractionMaxSpeed)
'''
'''
time.sleep(0.5)
names=["LAnklePitch"]
angles=[radians(-20)]
motionProxy.setAngles(names,angles,fractionMaxSpeed)
'''
# time.sleep(4)
# print("kick")
# names=["LKneePitch","LAnklePitch"]
# angles=[radians(10),radians(0)]
# motionProxy.setAngles(names,angles,fractionMaxSpeed)
'''
#motionProxy.waitUntilMoveIsFinished()
time.sleep(6)
motionProxy.setStiffnesses("RAnklePitch",0.9)
names=["RKneePitch","RHipPitch","LAnklePitch"]
angles=[radians(45),radians(-50),radians(-45)]
motionProxy.setAngles(names, angles, fractionMaxSpeed)
'''
#time.sleep(3.0)
#motionProxy.setStiffnesses("Head", 0.0)
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() cfg = read_config()
parser.add_argument("--ip", type=str, default="192.168.0.11", mover = NaoMover(cfg['ip'])
help="Robot ip address") mover.stand_up()
parser.add_argument("--port", type=int, default=9559, mover.kick()
help="Robot port number")
args = parser.parse_args()
main(args.ip, args.port)

View File

@@ -1,8 +1,25 @@
from time import sleep
from math import radians
from naoqi import ALProxy from naoqi import ALProxy
class NaoMover(object): class NaoMover(object):
KICK_SEQUENCE = [
(0, 'ShoulderRoll', -45, 0.5),
'wait',
(0, 'AnkleRoll', -10, 0.1),
(1, 'AnkleRoll', -10, 0.1),
'wait',
(1, 'KneePitch', 90, 0.2),
(1, 'AnklePitch', -40, 0.2),
'wait',
(1, 'HipPitch', -45, 0.03),
(1, 'KneePitch', 10, 0.05),
(1, 'AnklePitch', 20, 0.03)
]
def __init__(self, nao_ip, nao_port=9559): def __init__(self, nao_ip, nao_port=9559):
nao_ip = bytes(nao_ip) nao_ip = bytes(nao_ip)
self.mp = ALProxy('ALMotion', nao_ip, nao_port) self.mp = ALProxy('ALMotion', nao_ip, nao_port)
@@ -18,6 +35,28 @@ class NaoMover(object):
self.set_ankle_stiffness() self.set_ankle_stiffness()
self.ready_to_move = False self.ready_to_move = False
def kick(self, foot='L'):
self.set_arm_stiffness(0.8)
self.set_hip_stiffness(0.8)
self.set_knee_stiffness(0.8)
self.set_ankle_stiffness(0.8)
multiplier = 1
if foot == 'L':
sides = ['R', 'L']
elif foot == 'R':
sides = ['R', 'L']
reverse = []
for motion in self.KICK_SEQUENCE:
if motion == 'wait':
sleep(3)
else:
print(motion)
side, joint, angle, speed = motion
reverse.extend(self.mp.getAngles([sides[side] + joint])
self.mp.setAngles(
[sides[side] + joint], [radians(angle)], speed * multiplier
)
def stand_up(self): def stand_up(self):
self.set_arm_stiffness(0.9) self.set_arm_stiffness(0.9)
self.set_hand_stiffness(0.9) self.set_hand_stiffness(0.9)