如何实现nao机器人远程连接?

99ANYc3cd6 机器人 1

核心概念:Nao的网络身份

在连接之前,你需要先了解Nao机器人有两个关键的“网络身份”:

如何实现nao机器人远程连接?-第1张图片-广州国自机器人
(图片来源网络,侵删)
  1. 机器人IP地址 (Robot's IP Address):这是Nao在局域网内的唯一地址,当你和Nao在同一个Wi-Fi下时,你需要通过这个IP地址来访问它。
  2. 机器人名称 (Robot's Name):"nao.local",这是一个更友好的地址,它依赖于 Bonjour/Avahi 服务(一种零配置网络协议),如果你的电脑支持(macOS和Linux原生支持,Windows可能需要安装Bonjour Print Services),你可以直接使用 nao.local 来访问,而无需记住复杂的IP地址。

第一步:准备工作

在开始连接之前,请确保以下条件都已满足:

Nao机器人端设置

  • 电源和网络:确保Nao机器人已开机,并通过以太网网线或Wi-Fi连接到你的局域网。
  • 获取IP地址
    • 方法A (推荐):查看Nao的眼睛,Nao的眼睛会显示其IP地址,开机后,眼睛会滚动显示类似 168.1.100 这样的地址。
    • 方法B:使用Naoqi OS的设置界面,如果Nao连接了屏幕和鼠标,可以在设置中查看网络信息。
    • 方法C:通过路由器管理后台,登录你的路由器管理页面,查看连接设备的列表,找到名为 "NAO" 或类似名称的设备及其IP地址。
  • 开启SSH服务:SSH是远程命令行连接的基础。
    • 通过Nao的屏幕和鼠标:进入 "Settings" -> "Network" -> "Remote control",确保 "SSH" 选项是开启的。
    • 通过 Choregraphe:在连接Nao后,在工具栏的连接菜单中也可以找到SSH开关。
  • 开启Naoqi服务:Naoqi是Nao的操作系统和核心软件,远程API、Choregraphe连接等都需要Naoqi在后台运行,它通常会随机器人启动而自动运行。

你的电脑端设置

  • 网络:确保你的电脑与Nao在同一个局域网内,都连接到 "MyHomeWiFi" 这个网络。
  • 软件安装
    • SSH客户端:用于远程命令行连接。
      • Windows: 推荐使用 PuTTY 或 Windows 10/11 自带的 "Windows Terminal" / PowerShell。
      • macOS / Linux: 自带终端,直接使用 ssh 命令。
    • Naoqi SDK:如果你打算进行编程开发,需要从 SoftBank Robotics官网 下载并安装Naoqi SDK(包含Python、C++等API和工具)。
    • Choregraphe:这是Nao的图形化编程和监控软件,强烈推荐,它也包含在Naoqi SDK中。

第二步:连接方法

这里介绍三种最常用的远程连接方式,从简单到复杂。

使用SSH进行命令行连接(最基础)

这是直接与Nao的Linux系统交互的方式,适合高级用户进行系统管理、文件传输等。

  1. 打开你电脑的终端(Windows下是PuTTY或PowerShell)。
  2. 输入连接命令:
    # 格式: ssh nao@<机器人IP地址>
    # 
    ssh nao@192.168.1.100

    如果你使用了机器人名称,可以更方便:

    如何实现nao机器人远程连接?-第2张图片-广州国自机器人
    (图片来源网络,侵删)
    ssh nao@nao.local
  3. 首次连接时,系统会提示你确认主机的真实性,输入 yes
  4. 输入密码。默认的SSH密码通常是 "nao"。(注意:出于安全考虑,强烈建议你首次连接后立即修改密码!)。
  5. 连接成功!你会看到Nao的Linux命令行提示符,现在你可以输入命令来管理Nao,
    • ls:列出文件。
    • top:查看系统资源占用。
    • reboot:重启机器人。

使用Choregraphe进行图形化连接(最推荐)

Choregraphe是Nao的官方图形化编程工具,通过它可以轻松地连接、监控、编程和调试Nao。

  1. 打开Choregraphe软件。
  2. 在顶部工具栏,点击 "连接" (Connect) 按钮。
  3. 在弹出的窗口中,选择 "新建连接"。
  4. 输入机器人信息
    • 机器人类型:选择 "Nao" 或 "Pepper"。
    • IP地址/主机名:输入Nao的IP地址(如 168.1.100)或机器人名称(nao.local)。
    • 端口:默认为 9559(这是Naoqi服务的默认端口)。
    • 用户名:通常为 nao
    • 密码:默认为 nao
  5. 点击 "连接"。

连接成功后,你会看到Choregraphe界面上出现Nao的3D模型,并且可以实时看到机器人的摄像头画面、电池电量、关节角度等信息,你可以:

  • 拖拽行为图表到时间线上,让Nao执行动作。
  • 查看和修改Nao的传感器数据。
  • 上传和下载文件(如声音、图片、行为文件等)。

通过Python SDK进行编程连接(用于开发)

如果你想用Python代码来控制Nao,需要使用Naoqi SDK。

  1. 确保已安装Naoqi SDK,并将其 bin 目录添加到系统的环境变量 PATH 中,这样你才能在终端中使用 pip 安装NAOqi库。
  2. 在你的Python代码中,创建一个连接对象。
from naoqi import ALProxy
# Nao的IP地址和端口
robot_ip = "192.168.1.100"  # 或者 "nao.local"
port = 9559
try:
    # 创建一个代理来连接Naoqi服务
    # 连接到文本转语音服务
    tts = ALProxy("ALTextToSpeech", robot_ip, port)
    # 调用服务的方法
    tts.say("Hello, I am Nao. I am connected remotely!")
    # 再连接到运动服务
    motion = ALProxy("ALMotion", robot_ip, port)
    # 让Nao说 "Hello World" 并挥手
    tts.say("Hello World")
    motion.setAngles("RShoulderPitch", -1.5, 0.1) # 抬起右臂
    motion.setAngles("RShoulderRoll", 1.5, 0.1)   # 外展右臂
    # ... 其他动作代码
except Exception as e:
    print("Could not create proxy to ALTextToSpeech")
    print("Error was: ", e)

运行这段Python脚本,如果连接成功,Nao就会说出 "Hello World" 并做出相应的动作。


第三步:高级主题 - 通过互联网远程连接

如果你需要从外部网络(从公司或另一个城市)连接你的Nao,这会复杂一些,因为家庭/公司路由器通常有一个外部公网IP和内部局域网IP,你需要进行端口转发

警告:将Nao暴露在公网上存在巨大的安全风险,请务必确保你的网络足够安全,并且只在必要时进行操作。

步骤:

  1. 获取Nao的局域网IP:按照第一步的方法,找到Nao在家庭网络中的IP地址(168.1.100)。
  2. 配置端口转发
    • 登录你的路由器管理后台
    • 找到 "端口转发" 或 "虚拟服务器" 设置。
    • 你需要为Nao的两个主要服务设置转发规则:
      • Naoqi服务 (端口 9559):将外部访问的TCP端口 9559 转发到Nao的局域网IP 168.1.1009559 端口。
      • SSH服务 (端口 22):将外部访问的TCP端口 22 转发到Nao的局域网IP 168.1.10022 端口。
  3. 获取路由器的公网IP:在百度或Google搜索 "what is my ip",你会看到你路由器的公网IP地址。
  4. 连接
    • SSH连接ssh nao@<你的公网IP>
    • Choregraphe连接:在IP地址栏填入 <你的公网IP>
    • Python SDK连接:将代码中的 robot_ip 设置为 <你的公网IP>

更安全的替代方案:使用 VPN (Virtual Private Network),你可以设置一个VPN服务器(例如在你的家庭路由器或一台始终开机的电脑上),然后从任何地方先连接到VPN,这样你的电脑就会像在局域网内一样,可以直接使用Nao的局域网IP(如 168.1.100)进行连接,这比直接端口转发要安全得多。


常见问题与排查

  • 连接超时/无法连接
    • 检查Nao和电脑是否在同一个Wi-Fi下。
    • 检查Nao的IP地址是否正确。
    • 检查Nao的SSH和Naoqi服务是否已开启。
    • 检查防火墙是否阻止了连接(尝试暂时关闭电脑或路由器的防火墙进行测试)。
  • 连接后没有反应/Choregraphe显示未连接
    • 检查Naoqi服务是否在运行,可以通过SSH登录后,输入 ps aux | grep naoqi 来查看进程。
    • 尝试重启Nao的Naoqi服务:sudo /etc/init.d/naoqi restart
  • 忘记密码

    这是个棘手的问题,你可能需要通过物理方式访问Nao,进行系统恢复或重置,请查阅Nao的官方手册。

希望这份详细的指南能帮助你成功连接你的Nao机器人!

标签: nao机器人远程连接教程 nao机器人远程控制方法 nao机器人远程访问设置

抱歉,评论功能暂时关闭!