增加high lever,待测试,待全部转换为C++版本加速,待接口与官方同步
This commit is contained in:
@@ -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
|
||||
|
||||
38
examples/example_highlevel_dance.py
Normal file
38
examples/example_highlevel_dance.py
Normal 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)
|
||||
46
examples/example_highlevel_pose.py
Normal file
46
examples/example_highlevel_pose.py
Normal 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)
|
||||
47
examples/example_highlevel_walk.py
Normal file
47
examples/example_highlevel_walk.py
Normal 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)
|
||||
Reference in New Issue
Block a user