增加high lever,待测试,待全部转换为C++版本加速,待接口与官方同步

This commit is contained in:
cyy_mac
2026-06-20 20:31:12 +08:00
parent 0e6c90a868
commit 96db3f40f4
12 changed files with 677 additions and 5 deletions

View File

@@ -1,5 +1,35 @@
# Examples
## 高层 (HighLevel) — 通过 sportMode + MQTT, 不需停 Pi 进程
适合: 走/跳/姿态/表演动作. 跟 lowlevel 控制方式互不兼容, 同时只用一种.
### example_highlevel_walk.py — 走一圈
```bash
python examples/example_highlevel_walk.py
```
起立 → walk 模式 → 前进 2 秒 → 转向 2 秒 → 趴下.
### example_highlevel_pose.py — 姿态变化
```bash
python examples/example_highlevel_pose.py
```
stand 模式下做各种姿态: 倾斜/扭转/抬头/低头/蹲下/撑直.
### example_highlevel_dance.py — 跳舞 + 头灯
```bash
python examples/example_highlevel_dance.py
```
dance_1 + 头灯炫彩切换.
## 低层 (LowLevel) — 直接控制 12 电机, 必须停 sportMode
每个示例都假定:
- 你已经从狗上提取了 `blowfish_state.bin` (或用包内置的)
- 已经停掉 Pi 上的 keep_sport_alive + Legged_sport + appTransit

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env python3
"""高层表演: 跳舞 1 + 头灯炫彩."""
import sys
import time
from go1_pro_sdk import Go1, LED
def main():
print('🐕 高层示例: 跳舞 + 头灯')
with Go1() as dog:
# 头灯橙黄
dog.set_led(LED(255, 128, 0))
print('stand_up...')
dog.stand_up()
time.sleep(3)
print('dance_1!')
dog.dance_1()
# 跳舞期间循环换色
colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255)]
for r, g, b in colors:
dog.set_led(LED(r, g, b))
time.sleep(2)
print('stand_down...')
dog.stand_down()
time.sleep(3)
dog.set_led(LED(0, 0, 0))
print('✅ 结束')
if __name__ == '__main__':
sys.exit(main() or 0)

View File

@@ -0,0 +1,46 @@
#!/usr/bin/env python3
"""高层姿态控制: 站立 + 各方向倾斜/扭转."""
import sys
import time
from go1_pro_sdk import Go1, Pose
def main():
print('🐕 高层示例: 站立姿态变化')
with Go1() as dog:
print('stand_up...')
dog.stand_up()
time.sleep(3)
print('进入 stand 模式...')
dog.set_stand_mode()
time.sleep(1)
poses = [
('左倾', Pose(lean_left_right=-0.5)),
('右倾', Pose(lean_left_right=+0.5)),
('扭头左', Pose(twist_left_right=-0.5)),
('扭头右', Pose(twist_left_right=+0.5)),
('低头', Pose(look_up_down=-0.5)),
('抬头', Pose(look_up_down=+0.5)),
('蹲下', Pose(extend_squat=-0.5)),
('撑直', Pose(extend_squat=+0.5)),
('归位', Pose()),
]
for name, pose in poses:
print(f'{name}')
for _ in range(15):
dog.pose(pose)
time.sleep(0.1)
print('stand_down...')
dog.stand_down()
time.sleep(3)
print('✅ 结束')
if __name__ == '__main__':
sys.exit(main() or 0)

View File

@@ -0,0 +1,47 @@
#!/usr/bin/env python3
"""高层走动示例 — 站起来 → 走一圈 → 趴下.
跟 lowlevel 控制不同, 高层走的是 sportMode 系统, 不需要 stop_sportmode.
"""
import sys
import time
from go1_pro_sdk import Go1, Velocity, Pose
def main():
print('🐕 高层控制示例: stand_up → walk → 转向 → 趴下')
print(' 通过 MQTT 控制 Pi 上的 sportMode')
with Go1() as dog:
print('\n[1/5] stand_up (起立)...')
dog.stand_up()
time.sleep(3)
print('[2/5] 进入 walk 模式...')
dog.set_walk_mode()
time.sleep(1)
print('[3/5] 前进 2 秒 (vx=0.2)...')
for _ in range(20):
dog.walk(Velocity(vx=0.2))
time.sleep(0.1)
print('[4/5] 原地转向 2 秒 (vz=0.3)...')
for _ in range(20):
dog.walk(Velocity(vz=0.3))
time.sleep(0.1)
print(' 停止 1 秒...')
dog.stop()
time.sleep(1)
print('[5/5] stand_down (趴下)...')
dog.stand_down()
time.sleep(3)
print('✅ 结束')
if __name__ == '__main__':
sys.exit(main() or 0)