在Linux环境下使用Nao机器人(通常指基于Naoqi操作系统的SoftBank Robotics Nao机器人)主要涉及软件开发、远程控制、行为编程等任务,适用于机器人研究、教育及二次开发场景,以下是详细操作步骤和注意事项,涵盖环境搭建、连接配置、基础编程及问题排查等内容。

环境准备与依赖安装
首先需确保Linux系统满足Naoqi SDK的运行要求,推荐使用Ubuntu 18.04 LTS或20.04 LTS 64位系统,内存至少4GB,硬盘预留10GB以上空间,安装必要的依赖包,打开终端执行以下命令:
sudo apt update sudo apt install -y build-essential cmake git python3-dev python3-pip libboost-all-dev
这些依赖包括编译工具、Python开发库及Boost库,用于后续SDK安装和代码编译。
安装Naoqi SDK
Naoqi SDK是开发Nao应用的核心工具包,需从SoftBank Robotics官网(或开源社区)下载对应版本的SDK,以Naoqi OS 6.0为例,下载完成后解压至指定目录(如~/naoqi),并配置环境变量。  
SDK版本与系统兼容性参考
| Naoqi OS 版本 | SDK 版本 | 推荐Linux发行版 | 下载路径(示例) | 
|---|---|---|---|
| 0+ | 8 | Ubuntu 20.04 | /opt/naoqi-sdk | 
| 0 | 5 | Ubuntu 18.04 | /home/user/naoqi | 
配置环境变量:编辑~/.bashrc文件,添加以下内容:  
export PATH=$PATH:~/naoqi/bin export PYTHONPATH=$PYTHONPATH:~/naoqi/lib/python3.8/site-packages # 根据Python版本调整路径
保存后执行source ~/.bashrc使配置生效,验证安装是否成功,运行naoqi-shell --version,若显示SDK版本号则表示安装成功。
连接Nao机器人
Linux设备与Nao机器人需通过同一局域网连接(支持WiFi或以太网),首先获取Nao的IP地址:通过Nao机器人眼睛显示的IP(开机时滚动显示),或登录Nao的Web界面(默认地址http://Nao_IP:8080)查看。  

网络连通性测试
在Linux终端执行ping Nao_IP(如ping 192.168.1.100),若收到回复则网络连通,若超时,检查:  
- Nao和Linux设备是否在同一网段;
 - Nao的防火墙设置(可通过Nao的Web界面关闭防火墙);
 - Linux设备的网络配置(确保未禁用目标端口)。
 
建立Naoqi连接
使用naoqi-shell工具测试与Nao的通信,执行以下命令:  
naoqi-shell Nao_IP 9559
成功连接后,输入systeminfo可查看Nao的系统信息(如OS版本、内存状态),若提示“Connection refused”,需确认Naoqi服务是否运行(在Nao上可通过SSH登录,执行ps aux | grep naoqi检查进程)。
基础编程示例
Naoqi SDK支持Python、C++等语言,Python因语法简洁常用于快速开发,以下示例实现让Nao说话和控制头部运动。
文本转语音(TTS)
创建Python脚本(如say_hello.py):  
from naoqi import ALProxy
# 连接Nao(替换为实际IP)
tts = ALProxy("ALTextToSpeech", "192.168.1.100", 9559)
tts.setLanguage("English")  # 设置语言
tts.say("Hello from Linux!")  # 播放文本
执行脚本前需安装Python SDK依赖:pip3 install pynaoqi(若SDK自带则无需安装),运行python3 say_hello.py,Nao将播放语音。  

控制关节运动
创建move_head.py脚本:  
from naoqi import ALProxy
import time
motion = ALProxy("ALMotion", "192.168.1.100", 9559)
# 设置头部关节为刚性(允许运动)
motion.setStiffnesses("Head", 1.0)
# 控制头部左右转动(角度范围:-1.0到1.0弧度)
motion.setAngles("HeadYaw", 0.5, 0.1)  # 0.1为运动时间(秒)
time.sleep(2)
motion.setAngles("HeadYaw", -0.5, 0.1)
time.sleep(2)
# 恢复头部为柔性(停止运动)
motion.setStiffnesses("Head", 0.0)
运行脚本后,Nao头部将左右转动,需注意关节角度范围和运动时间,避免机械结构损坏。
常见问题与解决方案
- 连接超时:检查Nao和Linux设备的网络是否互通,确认Naoqi服务未关闭(在Nao上执行
naoqi &重启服务)。 - Python导入naoqi失败:确认
PYTHONPATH环境变量配置正确,指向SDK的Python库路径;检查是否安装了对应版本的Python SDK。 - 权限问题:若执行SDK命令提示权限不足,可通过
sudo运行或添加用户到sudo组。 
相关问答FAQs
Q1:Linux下连接Nao机器人时提示“Connection refused”,如何解决?
A:可能原因包括Naoqi服务未启动、端口9559被占用或防火墙阻止,解决方法:  
- 在Nao上通过SSH登录,执行
naoqi &手动启动服务; - 在Linux上运行
netstat -tuln | grep 9559检查端口占用,若被占用则关闭相关进程; - 在Nao的Web界面(或通过SSH执行
sudo ufw disable)临时关闭防火墙,再次尝试连接。 
Q2:如何在Linux下使用Choregraphe编辑Nao行为?
A:Choregraphe是Nao的图形化编程工具,支持Linux系统,操作步骤:  
- 从官网下载Linux版Choregraphe(如
Choregraphe_Linux_2.8.tar.gz),解压后进入目录; - 执行
./Choregraphe启动程序(若提示缺少依赖,安装libxcb-cursor0等库); - 在Choregraphe中选择“连接”-“机器人”,输入Nao的IP地址和端口(默认9559),连接成功后可通过拖拽行为框图(如TTS、运动)设计复杂行为,完成后点击“上传至机器人”运行。
 
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/25476.html