宇树Go2机器狗Python控制库
Project description
ezgo - 宇树Go2机器狗Python控制库
这是一个用于控制宇树Go2机器狗的Python库,提供了简单易用的API接口。支持运动控制、视频流获取、声光控制等功能。
功能特性
- 🚶 基础运动控制: 支持阻尼、站立、坐下、行走等基本动作
- 🏃 高级运动模式: 支持灵动、并腿跑、跳跃跑、交叉步等多种步态
- 🤸 特技动作: 支持空翻、倒立、舞蹈等表演动作
- 📷 摄像头控制: 支持图片获取和视频流处理
- 🔊 声光控制: 支持LED灯光和音量控制
- 🎮 UI界面: 提供图形化控制界面
- 🔧 易于使用: 简洁的API设计,支持懒加载
- 📦 可选依赖: 核心功能轻量,按需安装依赖
安装
基础安装(仅核心库,无强制依赖)
pip install ezgo
完整功能安装(包含所有可选依赖)
pip install ezgo[full]
n```
### 仅基础功能(图像处理相关依赖)
```bash
pip install ezgo[basic]
注意:
ezgo核心库本身没有任何强制依赖。所有依赖都是可选的,您可以根据需要手动安装:
unitree-sdk2py: 机器人通信必需opencv-python: 摄像头功能必需numpy: 数值计算支持Pillow: 图像处理支持netifaces: �络接口检测
快速开始
基本运动控制
import ezgo
# 创建Go2控制对象
robot = ezgo.Go2()
# 初始化连接
if robot.init():
print("连接成功!")
# 基本动作
robot.Damp() # 进入阻尼状态
robot.BalanceStand() # 平衡站立
robot.StopMove() # 停止移动
摄像头控制
import ezgo
# 方法1: 通过Go2对象获取摄像头
robot = ezgo.Go2()
camera = robot.get_camera()
# 方法2: 直接使用摄像头类
camera = ezgo.Go2Camera()
# 初始化摄像头
if camera.init():
# 获取单张图片
image = camera.capture_image("photo.jpg")
# 打开视频流
if camera.open_video_stream():
frame = camera.read_frame()
声光控制
import ezgo
# 方法1: 通过Go2对象获取VUI控制
robot = ezgo.Go2()
vui = robot.get_vui()
# 方法2: 直接使用VUI类
vui = ezgo.Go2VUI()
# 初始化VUI
if vui.init():
# 设置LED亮度 (0-10)
vui.set_brightness(5)
# 获取当前亮度
success, brightness = vui.get_brightness()
# 设置音量 (0-10)
vui.set_volume(3)
高级运动模式
import ezgo
robot = ezgo.Go2()
if robot.init():
# 步态模式切换
robot.FreeWalk(True) # 开启灵动模式
robot.FreeWalk(False) # 关闭灵动模式
# 特殊步态(自动演示后关闭)
robot.FreeBound(True) # 并腿跑模式(2秒后自动关闭)
robot.FreeJump(True) # 跳跃模式(4秒后自动关闭)
robot.FreeAvoid(True) # 闪避模式(2秒后自动关闭)
robot.WalkUpright(True) # 后腿直立模式(4秒后自动关闭)
robot.CrossStep(True) # 交叉步模式(4秒后自动关闭)
# 常规运动模式
robot.TrotRun() # 进入常规跑步模式
robot.StaticWalk() # 进入常规行走模式
robot.EconomicGait() # 进入常规续航模式
robot.ClassicWalk(True) # 开启经典步态
robot.ClassicWalk(False) # 关闭经典步态
特技动作
import ezgo
robot = ezgo.Go2()
if robot.init():
# 表演动作
robot.Hello() # 打招呼
robot.Stretch() # 伸懒腰
robot.Content() # 开心
robot.Heart() # 比心
robot.Scrape() # 拜年作揖
robot.Dance1() # 舞蹈段落1
robot.Dance2() # 舞蹈段落2
# 特技动作
robot.FrontJump() # 前跳
robot.FrontPounce() # 向前扑人
robot.LeftFlip() # 左空翻
robot.BackFlip() # 后空翻
robot.HandStand(True) # 倒立(4秒后自动关闭)
自动翻身功能
import ezgo
robot = ezgo.Go2()
if robot.init():
# 设置自动翻身
success = robot.AutoRecoverSet(True)
if success:
print("自动翻身已开启")
# 查询自动翻身状态
is_enabled = robot.AutoRecoverGet()
print(f"自动翻身状态: {'开启' if is_enabled else '关闭'}")
# 关闭自动翻身
robot.AutoRecoverSet(False)
API 参考
Go2 类
主要的机器狗控制类,提供运动控制和状态管理功能。
主要方法
基础控制:
init(): 初始化与Go2的连接Damp(): 进入阻尼状态BalanceStand(): 平衡站立StopMove(): 停止所有移动动作StandUp(): 关节锁定,站高StandDown(): 关节锁定,站低Sit(): 坐下RiseSit(): 站起(相对于坐下)
移动控制:
Move(vx, vy, vyaw): 移动(速度范围:vx, vy: -11, vyaw: -22)MoveForDuration(vx, vy, vyaw, duration): 持续移动指定时间StartMove(vx, vy, vyaw): 开始持续移动Forward(speed=0.3, duration=2.0): 向前移动Backward(speed=0.3, duration=2.0): 向后移动Left(speed=0.3, duration=2.0): 向左移动Right(speed=0.3, duration=2.0): 向右移动TurnLeft(speed=0.5, duration=2.0): 左转TurnRight(speed=0.5, duration=2.0): 右转
步态模式:
FreeWalk(flag=None): 灵动模式(默认步态)FreeBound(flag): 并腿跑模式FreeJump(flag): 跳跃模式FreeAvoid(flag): 闪避模式WalkUpright(flag): 后腿直立模式CrossStep(flag): 交叉步模式ClassicWalk(flag): 经典步态TrotRun(): 进入常规跑步模式StaticWalk(): 进入常规行走模式EconomicGait(): 进入常规续航模式
表演动作:
Hello(): 打招呼Stretch(): 伸懒腰Content(): 开心Heart(): 比心Scrape(): 拜年作揖Dance1(): 舞蹈段落1Dance2(): 舞蹈段落2
特技动作:
FrontJump(): 前跳FrontPounce(): 向前扑人LeftFlip(): 左空翻BackFlip(): 后空翻HandStand(flag): 倒立行走
自动功能:
AutoRecoverSet(flag): 设置自动翻身是否生效AutoRecoverGet(): 查询自动翻身是否生效SwitchAvoidMode(): 闪避模式下,关闭摇杆未推时前方障碍物的闪避
便利方法:
get_camera(): 获取摄像头控制对象get_vui(): 获取声光控制对象capture_image(save_path=None): 获取一张图片start_video_stream(width=480, height=320): 开始视频流get_video_frame(): 获取最新视频帧stop_video_stream(): 停止视频流cleanup(): 清理资源
Go2Camera 类
摄像头控制类,提供图片获取和视频流功能。
主要方法
init(): 初始化摄像头连接capture_image(save_path=None): 获取单张图片open_video_stream(width=480, height=320): 打开视频流read_frame(): 从视频流读取一帧start_stream(width=480, height=320): 开始后台视频流
Go2VUI 类
声光控制类,提供LED灯光和音量控制功能。
主要方法
init(): 初始化VUI客户端set_brightness(level): 设置LED亮度 (0-10)get_brightness(): 获取当前LED亮度set_volume(level): 设置音量 (0-10)get_volume(): 获取当前音量
依赖要求
核心依赖
- Python >= 3.7
可选依赖
基础功能:
- opencv-python >= 4.5.0
- numpy >= 1.19.0
- Pillow >= 8.0.0
完整功能:
- netifaces >= 0.10.0
- unitree-sdk2py (需要从官方源安装)
注意事项
- 网络连接: 确保计算机与Go2机器狗在同一网络中
- 权限要求: 某些功能可能需要管理员权限
- 依赖安装:
unitree-sdk2py需要从宇树官方源安装 - 接口检测: 库会自动检测网络接口,也可手动指定
故障排除
常见问题
- 导入错误: 确保已安装所有必需的依赖包
- 连接失败: 检查网络连接和防火墙设置
- 摄像头问题: 确保GStreamer正确安装
- 权限问题: 在某些系统上可能需要管理员权限
依赖安装
# 安装基础依赖
pip install opencv-python numpy Pillow netifaces
# unitree-sdk2py 需要从官方源安装
# 请参考宇树官方文档
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
贡献
欢迎提交 Issue 和 Pull Request!
更新日志
v0.0.5 (2025-12-04)
新增功能:
- ✨ 新增15种高级运动模式和特技动作
- ✨ 支持灵动模式、并腿跑、跳跃跑、交叉步等多种步态
- ✨ 新增空翻、倒立、舞蹈等表演动作
- ✨ 增加自动翻身功能设置和查询
- ✨ 完善移动控制API,支持持续移动和定时移动
改进:
- 🔧 优化网络连接检查,支持非sudo ping
- 🔧 改进初始化流程,连接失败时仅显示警告
- 🔧 增强错误处理,对不支持的SDK版本提供友好提示
- 🔧 所有新函数都包含适当的异常处理
修复:
- 🐛 修复包构建问题,确保源代码正确包含
- 🐛 修复依赖配置,核心库无强制依赖
v0.0.4 (2025-12-04)
修复:
- 🐛 修复包结构问题,源代码未正确包含在PyPI包中
- 🔧 重新组织包结构,确保所有模块正确打包
v0.0.3 (2025-12-04)
改进:
- 🔧 优化依赖配置,移除强制依赖
- 📦 所有依赖改为可选依赖,支持按需安装
- 📚 更新安装说明和依赖文档
v0.0.2 (2025-12-04)
新增功能:
- ✨ 集成go2_vui声光控制模块
- ✨ 集成go2_camera摄像头控制模块
- ✨ 优化模块导入结构,使用相对导入
改进:
- 🔧 修复get_camera方法路径配置
- 🔧 添加get_vui方法支持声光控制
- 🔧 完善懒加载机制
v0.0.1 (2025-12-04)
初始发布:
- 🎉 基础运动控制功能
- 📷 摄像头基础支持
- 🔊 声光控制基础支持
- 📦 PyPI包发布
v0.0.2
- 添加了 Go2Camera 摄像头控制类
- 添加了 Go2VUI 声光控制类
- 优化了导入和错误处理
- 改进了文档和示例
v0.0.1
- 初始版本发布
- 基本运动控制功能
- UI界面支持
链接
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ezgo-0.0.6.tar.gz
(24.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ezgo-0.0.6-py3-none-any.whl
(21.4 kB
view details)
File details
Details for the file ezgo-0.0.6.tar.gz.
File metadata
- Download URL: ezgo-0.0.6.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d045eb91d9a67be96b94bcbe7bbfb872c0ed191d2975c57fcc169522fd1bd33
|
|
| MD5 |
0e5c96c2dc6ec59925fed3dfa187bc32
|
|
| BLAKE2b-256 |
93d781f6d85e93d12074ac09661bf3d107a9943e77858da1a2ce6f6244a6ca1a
|
File details
Details for the file ezgo-0.0.6-py3-none-any.whl.
File metadata
- Download URL: ezgo-0.0.6-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c278dc98516ed7984c13945b825b7c0dd7e5f4eaa5b6f882ecae2cd4da51b669
|
|
| MD5 |
3cfe0b23bea7866eaf7b59d2b49e3222
|
|
| BLAKE2b-256 |
d18c28e0bbe7e5157fe15ec597564376d6af64808a94a8461bd6e19a1864abf1
|