added move_robot.py
This commit is contained in:
150
scripts/move_robot.py
Normal file
150
scripts/move_robot.py
Normal file
@@ -0,0 +1,150 @@
|
||||
# -*- encoding: UTF-8 -*-
|
||||
|
||||
''' PoseInit: Small example to make Nao go to an initial position. '''
|
||||
|
||||
import argparse
|
||||
from naoqi import ALProxy
|
||||
import time
|
||||
import math
|
||||
import almath
|
||||
#include <alproxies/alnavigationproxy.h>
|
||||
|
||||
|
||||
def main(robotIP, PORT=9559):
|
||||
|
||||
motionProxy = ALProxy("ALMotion", robotIP, PORT)
|
||||
postureProxy = ALProxy("ALRobotPosture", robotIP, PORT)
|
||||
|
||||
# Wake up robot
|
||||
motionProxy.wakeUp()
|
||||
|
||||
# set the stiffnes
|
||||
motionProxy.setStiffnesses("Head", 1.0)
|
||||
motionProxy.setStiffnesses("RHand", 1.0)
|
||||
motionProxy.setStiffnesses("LHand", 1.0)
|
||||
motionProxy.setStiffnesses("LShoulderPitch", 1.0)
|
||||
motionProxy.setStiffnesses("LShoulderRoll", 1.0)
|
||||
motionProxy.setStiffnesses("LElbowRoll", 1.0)
|
||||
motionProxy.setStiffnesses("LWristYaw", 1.0)
|
||||
motionProxy.setStiffnesses("LElbowYaw", 1.0)
|
||||
motionProxy.setStiffnesses("LHipYawPitch", 1.0)
|
||||
motionProxy.setStiffnesses("LHipPitch", 1.0)
|
||||
motionProxy.setStiffnesses("LKneePitch", 1.0)
|
||||
motionProxy.setStiffnesses("LAnklePitch", 1.0)
|
||||
motionProxy.setStiffnesses("LHipRoll", 1.0)
|
||||
motionProxy.setStiffnesses("LAnkleRoll", 1.0)
|
||||
|
||||
motionProxy.setStiffnesses("RShoulderPitch", 1.0)
|
||||
motionProxy.setStiffnesses("RShoulderRoll", 1.0)
|
||||
motionProxy.setStiffnesses("RElbowRoll", 1.0)
|
||||
motionProxy.setStiffnesses("RWristYaw", 1.0)
|
||||
motionProxy.setStiffnesses("RElbowYaw", 1.0)
|
||||
motionProxy.setStiffnesses("RHipYawPitch", 1.0)
|
||||
motionProxy.setStiffnesses("RHipPitch", 1.0)
|
||||
motionProxy.setStiffnesses("RKneePitch", 1.0)
|
||||
motionProxy.setStiffnesses("RAnklePitch", 1.0)
|
||||
motionProxy.setStiffnesses("RHipRoll", 1.0)
|
||||
motionProxy.setStiffnesses("RAnkleRoll", 1.0)
|
||||
|
||||
# Send robot to Stand Init
|
||||
postureProxy.goToPosture("StandInit", 0.5)
|
||||
|
||||
# Initialize the move
|
||||
motionProxy.moveInit()
|
||||
|
||||
# First call of move API
|
||||
# with post prefix to not be bloquing here.
|
||||
motionProxy.post.moveTo(-0.3, 0.0, 0)
|
||||
|
||||
# wait that the move process start running
|
||||
time.sleep(0.1)
|
||||
|
||||
# get robotPosition and nextRobotPosition
|
||||
useSensors = False
|
||||
robotPosition = almath.Pose2D(motionProxy.getRobotPosition(useSensors))
|
||||
nextRobotPosition = almath.Pose2D(motionProxy.getNextRobotPosition())
|
||||
|
||||
# get the first foot steps vector
|
||||
# (footPosition, unChangeable and changeable steps)
|
||||
|
||||
footSteps1 = []
|
||||
try:
|
||||
footSteps1 = motionProxy.getFootSteps()
|
||||
except Exception, errorMsg:
|
||||
print str(errorMsg)
|
||||
PLOT_ALLOW = False
|
||||
|
||||
# Second call of move API
|
||||
motionProxy.post.moveTo(0.3, 0.0, 0)
|
||||
|
||||
# get the second foot steps vector
|
||||
footSteps2 = []
|
||||
try:
|
||||
footSteps2 = motionProxy.getFootSteps()
|
||||
except Exception, errorMsg:
|
||||
print str(errorMsg)
|
||||
PLOT_ALLOW = False
|
||||
|
||||
# end experiment, begin compute
|
||||
|
||||
# here we wait until the move process is over
|
||||
motionProxy.waitUntilMoveIsFinished()
|
||||
# then we get the final robot position
|
||||
robotPositionFinal = almath.Pose2D(motionProxy.getRobotPosition(False))
|
||||
|
||||
# compute robot Move with the second call of move API
|
||||
# so between nextRobotPosition and robotPositionFinal
|
||||
robotMove = almath.pose2DInverse(nextRobotPosition)*robotPositionFinal
|
||||
print "Robot Move:", robotMove
|
||||
|
||||
# get robotPosition and nextRobotPosition
|
||||
useSensors = False
|
||||
robotPosition = almath.Pose2D(motionProxy.getRobotPosition(useSensors))
|
||||
nextRobotPosition = almath.Pose2D(motionProxy.getNextRobotPosition())
|
||||
|
||||
# get the first foot steps vector
|
||||
# (footPosition, unChangeable and changeable steps)
|
||||
|
||||
footSteps1 = []
|
||||
try:
|
||||
footSteps1 = motionProxy.getFootSteps()
|
||||
except Exception, errorMsg:
|
||||
print str(errorMsg)
|
||||
PLOT_ALLOW = False
|
||||
|
||||
# Second call of move API
|
||||
motionProxy.post.moveTo(-0.3, 0.0, 0)
|
||||
|
||||
# get the second foot steps vector
|
||||
footSteps2 = []
|
||||
try:
|
||||
footSteps2 = motionProxy.getFootSteps()
|
||||
except Exception, errorMsg:
|
||||
print str(errorMsg)
|
||||
PLOT_ALLOW = False
|
||||
|
||||
# end experiment, begin compute
|
||||
|
||||
# here we wait until the move process is over
|
||||
motionProxy.waitUntilMoveIsFinished()
|
||||
# then we get the final robot position
|
||||
robotPositionFinal = almath.Pose2D(motionProxy.getRobotPosition(False))
|
||||
|
||||
# compute robot Move with the second call of move API
|
||||
# so between nextRobotPosition and robotPositionFinal
|
||||
robotMove = almath.pose2DInverse(nextRobotPosition)*robotPositionFinal
|
||||
print "Robot Move:", robotMove
|
||||
|
||||
|
||||
# Go to rest position
|
||||
motionProxy.rest()
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--ip", type=str, default="192.168.0.11",
|
||||
help="Robot ip address")
|
||||
parser.add_argument("--port", type=int, default=9559,
|
||||
help="Robot port number")
|
||||
|
||||
args = parser.parse_args()
|
||||
main(args.ip, args.port)
|
||||
Reference in New Issue
Block a user