在此先附上一串简单的机器人行走代码
此代码适于用做测量Nao的步态参数
# -*- coding:utf-8 -*-
from naoqi import ALProxy
import math
import argparse
import almath
def main(robotIP,PORT):
motion=ALProxy("ALMotion", robotIP,PORT)
posture=ALProxy("ALRobotPosture",robotIP,PORT)
tts=ALProxy("ALTextToSpeech",robotIP,PORT)
posture.goToPosture("StandInit",0.5)
motion.wakeUp()
motion.moveTo(2.5,0.0,0.0,config)
tts.say("左转")
motion.moveTo(0.0,0.0,math.pi/2,Config)
motion.moveTo(1.0,0.0,0.0,config)
tts.say("左转")
motion.moveTo(0.0,0.0,math.pi/2,Config)
motion.moveTo(2,5.0,0.0,config)
motion.rest()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", type=str, default="127.0.0.1",
help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.")
parser.add_argument("--port", type=int, default=9559,
help="Naoqi port number")
args = parser.parse_args()
#步态参数
config=[
["MaxStepX",0.045],
["MaxStepY",0.145],
["MaxStepFrequency",0.4],
["TorsoWx",5.0*almath.TO_RAD]#5度
]
config1=[
["MaxStepX",0.035],
["MaxStepY",0.145],
["MaxStepFrequency",0.3]
#["TorsoWx",-0.05]
#["TorsoWy",0.05]
]
robotIP=args.ip
PORT=args.port
步态参数(moveConfig)的介绍
操控机器人最基础的就是操控机器人走路,而想要让机器人可以平稳的行走就需要我们对moveConfig中的参数进行调试。其中不同的机器人对于不同的步态参数的适应力都不相同,也就是说相同的步态参数可以让这个机器人平稳行走,放在另一个机器人上就可能行不通,所以在每次运行不同机器人前都需要进行调试。
moveConfig中包含了以下这些参数及参数可调范围:
名称 | 作用 | 默认值 | 最低限度 | 最大值 | 可设置 |
---|---|---|---|---|---|
MaxStepX | 沿X(米)的最大向前平移 | 0.040 | 0.001 | 0.080 | 是 |
MinStepX | 沿X(米)的最大向后平移 | -0.040 | 没有 | ||
MaxStepY | 沿Y(米)的绝对最大横向平移 | 0.140 | 0.101 | 0.160 | 是 |
MaxStepTheta | Z(弧度)周围的绝对最大旋转 | 0.349 | 0.001 | 0.524 | 是 |
MaxStepFrequency | 最大步进频率(标准化,无单位) | 1. | 0. | 1. | 是 |
MinStepPeriod | 最小步长(秒) | 0.42 | 没有 | ||
MaxStepPeriod | 最大步长(秒) | 0.6 | 没有 | ||
梯状 | 沿Z(米)的峰值脚高 | 0.020 | 0.005 | 0.040 | 是 |
TorsoWx | X(弧度)周围的峰值躯干旋转 | 0.000 | -0.122 | 0.122 | 是 |
TorsoWy | y(弧度)周围的峰值躯干旋转 | 0.000 | -0.122 | 0.122 | 是 |
FootSeparation | 沿Y(米)改变双脚之间的距离 | 0.1 | 没有 | ||
MinFootSeparation | 沿Y的最小距离(米) | 0.088 | 没有 |