宇树 G1 机器人开发入门:有线 & 无线连接完整指南

宇树 G1 机器人开发入门:有线 & 无线连接完整指南
适用读者:机器人二次开发者、科研人员
开发环境:Ubuntu 20.04(推荐)
机器人型号:Unitree G1 EDU+

前言

宇树 G1 是一款面向科研与商业应用的高性能人形机器人,支持丰富的二次开发接口。在正式进行算法调试与功能开发之前,首要任务是建立稳定的开发连接。本文将详细介绍两种主流连接方式:有线(网线直连)无线(WiFi + SSH),并附上完整的配置流程,帮助开发者快速上手。


一、有线连接(推荐新手优先使用)

有线连接通过网线直接将开发电脑与 G1 机器人相连,具有延迟低、稳定性高、不依赖外部网络的优势,是新手入门和底层调试的首选方式。

1.1 前置条件

所需物品说明
开发电脑推荐安装 Ubuntu 20.04,或在 Windows 上使用虚拟机
宇树 G1 机器人确保已开机且处于正常状态
网线(Cat5e 及以上)用于直连机器人与开发电脑
⚠️ 注意:目前 unitree_sdk2 暂不支持 macOS 和 Windows 原生环境,请务必在 Linux 环境下进行开发。

1.2 SDK 安装

在进行连接配置之前,需要先完成 SDK 的安装。以 unitree_sdk2 为例,安装步骤如下:

可参考:SDK安装方法


1.3 网络配置

用网线连接机器人和开发电脑后,需要手动配置 IP 地址,使两者处于同一网段

在这里插入图片描述

G1 机器人默认 IP 地址:

节点IP 地址
机载主控电脑192.168.123.161
二次开发板192.168.123.164

配置步骤(Ubuntu 图形界面):

  1. 打开 SettingsNetwork
  2. 找到有线连接对应的网卡,点击设置图标
  3. 切换到 IPv4 选项卡,将模式改为 Manual(手动)
  4. 点击 Apply 保存配置

填写以下信息:

IP Address : 192.168.123.99 # 推荐,或选择同网段其他未占用地址 Subnet Mask: 255.255.255.0 Gateway : (可留空) 

1.4 连接验证

打开终端,执行 ping 命令验证连通性:

ping192.168.123.161 

若看到如下输出,则表示连接成功:

在这里插入图片描述

若出现 Request timeout 或无响应,请检查:

  • 网线是否插紧
  • IP 地址是否配置在同一网段(192.168.123.X
  • 子网掩码是否为 255.255.255.0

至此,有线连接完成,可以开始开发工作。


二、无线连接(SSH 远程访问)

无线连接通过 WiFi 将机器人与开发电脑接入同一局域网,再通过 SSH 远程登录进行操作,适合需要机器人自由移动多人协作开发的场景。

2.1 前置条件

所需物品说明
开发电脑需安装 SSH 客户端软件,推荐 MobaXterm
宇树 G1 机器人
显示屏 + 键盘 + 鼠标用于机器人首次配网(仅首次需要)
无线网络或手机热点机器人与电脑需连接同一 WiFi
💡 推荐 SSH 工具MobaXterm,支持文件传输、多标签终端、X11 转发等功能,体验远优于原生 SSH 命令行。

2.2 Step 1:机器人配网

首次配置时,需借助外设将机器人连接到 WiFi:

  1. 将显示器、键盘、鼠标接入 G1 机器人的对应接口
  2. 开机后进入系统桌面(机器人内置 Ubuntu 系统)
  3. 点击右上角网络图标,选择目标 WiFi 并输入密码完成连接
在这里插入图片描述


在这里插入图片描述

2.3 Step 2:查看机器人局域网 IP

连接 WiFi 后,在机器人桌面终端中执行:

ifconfig# 或ip addr 

找到无线网卡(通常为 wlan0)对应的 IP 地址,例如 192.168.1.105,记录备用。


2.4 Step 3:开发电脑通过 SSH 连接

确保开发电脑已连接到相同 WiFi 后,打开 MobaXterm:

  1. 点击 OK,首次连接会提示确认主机指纹,选择 Accept

输入登录凭据:

Username : unitree Password : 123 

填写以下信息:

Remote host : <机器人局域网 IP,如 192.168.1.105> Port : 22 
在这里插入图片描述

点击左上角 SessionSSH

在这里插入图片描述

成功登录后,即可看到机器人系统的命令行界面,开始远程开发操作。

在这里插入图片描述

2.5 使用命令行 SSH(Linux / macOS)

若不使用图形客户端,也可直接在终端中连接:

ssh [email protected] # 提示输入密码时输入:123
⚠️ 安全提示:默认密码 123 安全性极低,生产环境中请及时修改密码并配置 SSH 密钥认证,避免未授权访问。

至此,无线连接完成,可以进行远程开发。


三、两种连接方式对比

对比维度有线连接无线连接(SSH)
稳定性⭐⭐⭐⭐⭐ 极佳⭐⭐⭐ 受信号影响
延迟⭐⭐⭐⭐⭐ 极低⭐⭐⭐ 相对较高
机器人活动范围❌ 受网线限制✅ 自由移动
配置难度⭐⭐ 较简单⭐⭐⭐ 需首次配网
适用场景底层调试、SDK 开发动态测试、远程协作

四、常见问题排查

Q1:ping 不通,怎么排查?

  1. 检查网线是否物理连接正常(指示灯是否亮起)
  2. 确认开发电脑 IP 在 192.168.123.X 网段,且未与机器人 IP 冲突
  3. 尝试关闭防火墙:sudo ufw disable
  4. 重新拔插网线并重新配置 IP

Q2:SSH 连接超时怎么办?

  1. 确认机器人与电脑连接的是同一个 WiFi
  2. 确认机器人局域网 IP 是否已发生变化(DHCP 环境下 IP 可能变化)
  3. 尝试在路由器管理页面为机器人绑定固定 IP(MAC 地址绑定)

Q3:查看通信网卡名称

运行 SDK 例程时需要指定网卡名称,通过以下命令查看:

ifconfig# 找到 IP 为 192.168.123.X 网段的网卡名,如 enp3s0、enxf8e43b808e06 等

五、总结

完成连接配置后,即可开始正式开发工作。推荐的后续步骤:

  • 📖 阅读 宇树科技官方文档中心
  • 🛠️ 编译并运行 SDK 自带例程(如 g1_ankle_swing_example
  • 🤖 探索 ROS 2 通信集成方案
  • 🔒 配置 SSH 密钥登录,提升远程访问安全性

备注:本文基于 Unitree G1 机器人实际操作整理,适用于 unitree_sdk2 开发环境。如有疑问,欢迎在评论区交流。

Read more

Visual C++运行库终极解决方案:AIO一键部署完整指南

Visual C++运行库终极解决方案:AIO一键部署完整指南 【免费下载链接】vcredistAIO Repack for latest Microsoft Visual C++ Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 还在为Windows应用程序频繁报错"缺少VC++运行库"而烦恼吗?VisualCppRedist AIO项目为您提供了微软Visual C++运行库的一站式管理方案,彻底告别繁琐的逐个安装过程。这个开源整合包涵盖了2005年至2022年所有主流版本,让系统环境配置变得前所未有的简单高效。🎯 问题根源与解决方案 传统安装的痛点:传统的VC++运行库安装需要下载多个独立的安装包,不仅过程复杂,还容易产生版本冲突和兼容性问题。 AIO方案的优势:通过整合所有版本到一个安装包中,实现了统一管理、智能检测和自动化部署,大幅提升了系统维护效率。 核心功能特性解析 全面版本兼容:支持VC++ 2005至2022所有版本,

By Ne0inhk
【c++中间件】cpp-httplib 介绍 && 使用

【c++中间件】cpp-httplib 介绍 && 使用

文章目录 * Ⅰ. cpp-httplib 介绍与安装 * Ⅱ. cpp-httplib 使用 * 测试样例 Ⅰ. cpp-httplib 介绍与安装 C++ HTTP 库(cpp-httplib)是一个轻量级的 C++ HTTP 客户端/服务器库,它提供了简单的 API 来创建 HTTP 服务器和客户端,支持同步和异步操作。 以下是一些关于 cpp-httplib 的主要特点: 1. 轻量级:cpp-httplib 的设计目标是简单和轻量,只需要一个头文件包含即可,不依赖于任何外部库。 2. 跨平台:它支持多种操作系统,包括 Windows、Linux 和 macOS。 3. 同步和异步操作:库提供了同步和异步两种操作方式,允许开发者根据需要选择。 4. 支持 HTTP/1.1:它实现了

By Ne0inhk
【C++】 —— 笔试刷题day_28

【C++】 —— 笔试刷题day_28

一、游游的重组偶数 题目解析 这道题,有q组数据,每一次输入一个正整数x,让我们将这个数进行重排,变成一个偶数,然后返回(如果x本身就是一个偶数那可以直接返回x); 如果不存在合法解,就是x通过重排后,无法变成一个偶数,就输出-1; 算法思路 这道题,总体来说还是比较简单的; 对于正整数x,我们可以把它当作一个字符串进行输入;(如果按照整数输入,我们还要将这个数x的每一位变换成对应数组) 我们知道,如果一个数是偶数,那最低位一定是一个偶数,这样我们只需判断字符串的最后一位即可知道这个数是否是偶数;如果这个数是偶数,那就直接输出即可;如果最后一位不是偶数,那就从第一位开始向后找,找到一位是偶数,然后把它交换到最后一位;然后输出即可;如果遍历完这个字符串,还没找到一位是偶数的,那就表示这个数x通过重拍无法变成偶数,输出-1即可。 题目解析 #include<iostream>usingnamespace std; string func(){ string str; cin >>

By Ne0inhk
【C++】priority_queue和deque的使用与实现

【C++】priority_queue和deque的使用与实现

priority_queue与deque的使用与模拟实现 ✨前言:在C++ STL中,priority_queue和deque是两个重要的容器适配器,它们分别基于堆和双端队列的概念,为不同的应用场景提供了高效的解决方案。本文将深入探讨它们的使用方法、底层实现原理以及在实际开发中的应用选择。 📖专栏:【C++成长之旅】 目录 * priority_queue与deque的使用与模拟实现 * 一、priority_queue * 1.1 介绍 * 1.2 使用 * 1.3 模拟实现 * 二、deque * 2.1 介绍 * 2.2 缺陷 * 三、STL标准库中对于stack和queue的模拟实现 * 3.1 为什么选择deque作为stack和queue的底层默认容器 * 3.2 stack的模拟实现 * 3.3 queue的模拟实现 一、priority_

By Ne0inhk