NAOqi Motion - Overview | API
The robot wakes up: sets Motor on and, if needed, goes to initial position. For example, H25 or H21 sets the Stiffness on and keeps is current position.
# -*- encoding: UTF-8 -*-
'''Wake up: sets Motor on and, if needed, goes to initial position'''
import time
import argparse
from naoqi import ALProxy
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
motionProxy.wakeUp()
# print motion state
print motionProxy.getSummary()
time.sleep(4.0)
# Go to rest position
motionProxy.rest()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
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)
The robot rests: goes to a relaxed and safe position and sets Motor off. For example, H25 or H21 goes to the Crouch posture and sets the Stiffness off.
# -*- encoding: UTF-8 -*-
'''Rest: goes to a relaxed and safe position and sets Motor off'''
import argparse
from naoqi import ALProxy
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
postureProxy = ALProxy("ALRobotPosture", robotIP, PORT)
# Wake up robot
motionProxy.wakeUp()
# Send robot to Pose Init
postureProxy.goToPosture("StandInit", 0.5)
# Go to rest position
motionProxy.rest()
# print motion state
print motionProxy.getSummary()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
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)
Interpolates one or multiple joints to a targeted stiffness or along timed trajectories of stiffness. This is a blocking call.
Parameters: |
|
---|
almotion_stiffnessInterpolation.py
# -*- encoding: UTF-8 -*-
import time
import argparse
from naoqi import ALProxy
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
# Example showing how to interpolate to maximum stiffness in 1 second
names = 'Body'
stiffnessLists = 0.0
timeLists = 1.0
motionProxy.stiffnessInterpolation(names, stiffnessLists, timeLists)
time.sleep(1.0)
# Example showing a stiffness trajectory for a single joint
names = ['HeadYaw']
stiffnessLists = [0.25, 0.5, 1.0, 0.0]
timeLists = [1.0, 2.0, 3.0, 4.0]
motionProxy.stiffnessInterpolation(names, stiffnessLists, timeLists)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
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)
Sets the stiffness of one or more joints. This is a non-blocking call.
Parameters: |
|
---|
#include <iostream>
#include <alproxies/almotionproxy.h>
int main(int argc, char **argv)
{
std::string robotIp = "127.0.0.1";
if (argc < 2) {
std::cerr << "Usage: almotion_setstiffnesses robotIp "
<< "(optional default \"127.0.0.1\")."<< std::endl;
}
else {
robotIp = argv[1];
}
AL::ALMotionProxy motion(robotIp);
// Example showing how to set the stiffness to 1.0.
// Beware, doing this could be dangerous, it is safer to use the
// stiffnessInterpolation method which takes a duration parameter.
std::string names = "Body";
// If only one parameter is received, this is applied to all joints
float stiffnesses = 1.0f;
motion.setStiffnesses(names, stiffnesses);
return 0;
}
# -*- encoding: UTF-8 -*-
import argparse
from naoqi import ALProxy
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
# Example showing how to set the stiffness to 1.0.
# Beware, doing this could be dangerous, it is safer to use the
# stiffnessInterpolation method which takes a duration parameter.
names = 'Body'
# If only one parameter is received, this is applied to all joints
stiffnesses = 1.0
motionProxy.setStiffnesses(names, stiffnesses)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
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)
Gets stiffness of a joint or group of joints
Parameters: |
|
---|---|
Returns: | One or more stiffnesses. 1.0 indicates maximum stiffness. 0.0 indicated minimum stiffness |
#include <iostream>
#include <alproxies/almotionproxy.h>
int main(int argc, char **argv)
{
std::string robotIp = "127.0.0.1";
if (argc < 2) {
std::cerr << "Usage: almotion_getstiffnesses robotIp "
<< "(optional default \"127.0.0.1\")."<< std::endl;
}
else {
robotIp = argv[1];
}
AL::ALMotionProxy motion(robotIp);
// Example showing how to get the Body stiffnesses
std::string jointName = "Body";
std::vector<float> stiffnesses = motion.getStiffnesses(jointName);
std::cout << jointName << "stiffnesses: " << stiffnesses << std::endl;
return 0;
}
# -*- encoding: UTF-8 -*-
import argparse
from naoqi import ALProxy
def main(robotIP, PORT=9559):
motionProxy = ALProxy("ALMotion", robotIP, PORT)
# Example showing how to get the Body stiffnesses
jointName = "Body"
stiffnesses = motionProxy.getStiffnesses(jointName)
print "Body Stiffnesses:"
print stiffnesses
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
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)
Raised when the awake status of the robot changes.
Parameters: |
|
---|
Raised at ALMotionProxy::wakeUp() start.
Parameters: |
|
---|
Raised at ALMotionProxy::wakeUp() finish.
Parameters: |
|
---|
Raised at ALMotionProxy::rest() start.
Parameters: |
|
---|
Raised at ALMotionProxy::rest() finish.
Parameters: |
|
---|
Raised when devices availability changed. When a device is not available the stiffness and movement on this device are prohibited.
The ALValue format is: [[std::string deviceName, bool disabled],...] deviceName could be a chainName or “Body”. In “Body” case ( [[“Body”, true]] ) ALMotionProxy::wakeUp() are prohibited.
Parameters: |
|
---|