跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

NAO 机器人运动控制与指令操作指南

NAO 机器人通过 Python SDK 进行控制,涉及 ALProxy 初始化及多个核心模块。主要功能包括唤醒与休眠电机、设置身体刚度、语音播报、行走控制及姿势切换。代码示例展示了如何连接机器人 IP、调用运动代理获取状态、配置运动参数以及管理自主生活模式。掌握这些基础指令是完成复杂任务的前提。

乱七八糟发布于 2026/4/10更新于 2026/7/2034 浏览

NAO 机器人指令操作

常用模块介绍

模块名称中文翻译方法
ALProxy初始化代理ALProxy("模块名称", "<机器人的 IP 地址>", 9559)
ALMotion运动模块唤醒、休息、设置刚度、设置角度、获取刚度
ALRobotPosture姿势模块goToPosture
ALPhotoCapture相机模块getCameraID()、setResolution(分辨率)、setPictureFormat("jpg")、takePictures(拍摄数量,文件夹,文件名)
ALTextToSpeech说话模块say()
ALMemory内存模块subscribeToEvent() 订阅事件
ALSpeechRecognition语音识别模块setVocabulary() 设置可识别字典,subscribe() 订阅事件

启动与休息

机器人的运动都是通过代码控制。导入端口模块:

from naoqi import ALProxy

完整测试程序:

# -*- encoding: UTF-8 -*-
import time
from naoqi import ALProxy

IP = "YOUR_IP"  # 替换为你的 IP
PORT = 9559

motionProxy = ALProxy("ALMotion", IP, PORT)

def wakeUp():
    print("我被唤醒了")
    motionProxy.wakeUp()

def rest():
    print("我休息了")
    motionProxy.rest()

def main(robotIP, PORT=9559):
    (motionProxy.getSummary())
    time.sleep()

 __name__ == :
     :
        op = (())
         op == :
            wakeUp()
         op == :
            rest()
        :
            
print
4.0
if
"__main__"
while
True
int
input
"输入你的操作数吧,0 表示休息 1 表示唤醒电机\n"
if
1
elif
0
else
break

状态判断

如果机器人处于唤醒状态,则为 true。

import time
from naoqi import ALProxy

IP = "YOUR_IP"
PORT = 9559

motionProxy = ALProxy("ALMotion", IP, PORT)

def wakeUp():
    motionProxy.wakeUp()
    print("我被唤醒了")

def rest():
    motionProxy.rest()
    print("我休息了")

def judgeAwake(motionProxy):
    if motionProxy.robotIsWakeUp():
        print("我醒着呢")
    else:
        print("机器人正在休眠,请不要打扰他")

if __name__ == "__main__":
    while True:
        op = int(input("输入你的操作数吧,0 表示休息 1 表示唤醒电机\n"))
        if op == 1:
            wakeUp()
        elif op == 0:
            rest()
        else:
            break
        judgeAwake(motionProxy)

自主生活开启与关闭

开启自主生活:

def beginAutonomousLife():
    autonomousLife.setState("solitary")

关闭自主生活:

def stopAutonomousLife():
    # 停止自主生活他会蹲下来
    autonomousLife.setState("disabled")

关闭自主生活且运动:

def wakeUp():
    motionProxy.wakeUp()

def stopAutonomousLife():
    autonomousLife.setState("disabled")

def stopLifeAndRunning():
    stopAutonomousLife()
    wakeUp()

要达到这个效果,我们需要先关闭其自主生活再给他唤醒。

刚度设置

使用 motionProxy.setStiffnesses((str) 部位名称,(int) 刚度)。 可以在设置完刚度后调用 motionProxy.getSummary() 来查看参数,不过记得 sleep(1) 来让系统记录。

测试代码:

stiffnesses = 1
motionProxy.setStiffnesses("HeadPitch", stiffnesses)
motionProxy.setStiffnesses("HeadYaw", stiffnesses)
time.sleep(1)
print(motionProxy.getSummary())

也可以使用 motionProxy.getStiffnesses(name) 来获取某个部位的刚度。

语音输出

tts = ALProxy("ALTextToSpeech", IP, 9559)
tts.say("I can speak English!")

移动控制

motionProxy = ALProxy("ALMotion", IP, PORT)

def move_to(motionProxy):
    moveConfig = [
        ["MaxStepX", 0.08],
        ["MaxStepY", 0.16],
        ["MaxStepTheta", 1.0],
        ["MaxStepFrequency", 0.7],
        ["StepHeight", 0.02],
        ["TorsoWx", 0.0],
        ["TorsoWy", 0.01]
    ]
    motionProxy.moveTo(5.5, 0, 0, moveConfig)

move_to(motionProxy)

姿势管理

获取机器人所有姿势:

posture = ALProxy("ALRobotPosture", IP, PORT)
print(posture.getPostureList())
姿势英文中文名称
Crouch下蹲
LyingBack扑地
LyingBelly朝天
Sit坐
SitOnChair坐在椅子上 (10cm)
SitRelax放松坐下
Stand站立
StandInit预备站立
StandZero平举双手站立

设置机器人的姿势:

def setPoseStand():
    robotPostureProxy.goToPosture("StandInit", 1)

部位信息

获取机器人 26 个部位的信息:

motionProxy.getSummary()
BodyName中文名称
HeadYaw头部左右转动
HeadPitch头部上下转动
LShoulderPitch...
LShoulderRoll...
LElbowYaw...
LElbowRoll...
LWristYaw...
LHipYawPitch...
LHipRoll...
LHipPitch...
LKneePitch...
LAnklePitch...
LAnkleRoll...
RHipYawPitch...
RHipRoll...
RHipPitch...
RKneePitch...
RAnklePitch...
RAnkleRoll...
RShoulderPitch...
RShoulderRoll...
RElbowYaw...
RElbowRoll...
RWristYaw...
LHand...
RHand...

目录

  1. NAO 机器人指令操作
  2. 常用模块介绍
  3. 启动与休息
  4. -- encoding: UTF-8 --
  5. 状态判断
  6. 自主生活开启与关闭
  7. 刚度设置
  8. 语音输出
  9. 移动控制
  10. 姿势管理
  11. 部位信息
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • LeetCode 707:设计链表
  • Web SSTI 模板注入漏洞利用与绕过技巧详解
  • Elasticsearch 中查询 Top10 数据的两种实现方式
  • Spring AI 实战:Java 原生接入大模型快速上手
  • Claude Code 跨平台安装指南:Windows、Linux 与 macOS 实战配置
  • Spring Boot 基于 WebClient 实现 SSE 流式接口实战
  • MySQL 8.4 Windows 压缩包安装配置教程
  • LightRAG 详解:基于图结构的检索增强生成系统实践
  • 即梦 AI 基础操作指南:快速上手绘画与视频生成
  • Python 教学方案管理系统设计与实现
  • STM32F103RC TFT-LCD 电子相册开发:图片解码算法详解
  • 利用腾讯云 HAI 与 DeepSeek 快速搭建响应式个人网页
  • 数组与哈希表(Map/Object)核心区别及实战
  • Word2Vec 原理与实现详解
  • 电商系统高并发库存设计与扣减策略
  • 前端国际化开发最佳实践
  • GLM-4.6V-Flash-WEB 食品包装识别准确性验证
  • 网络安全行业前景深度解析与入行路径建议
  • 10 款主流 AIGC 降重工具免费与付费版对比评测
  • 基于 Spark 与机器学习的电影票房预测及推荐系统

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online