Files
go1_pro_sdk/go1_pro_sdk/utils/constants.py
2026-06-20 20:02:36 +08:00

91 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Go1 PRO 常量集中定义.
来源: tools/onboard/* 实测 + Unitree URDF + 官方电机规格.
"""
# ===== 网络 =====
MCU_IP = '192.168.123.10'
MCU_PORT = 8007
"""MCU UDP 端口 (从这里发/收 LowCmd/LowState)"""
# ===== 关节命名/索引 =====
JOINT_NAMES = [
'FR_0', 'FR_1', 'FR_2', # 0..2 右前 (髋/大腿/小腿)
'FL_0', 'FL_1', 'FL_2', # 3..5 左前
'RR_0', 'RR_1', 'RR_2', # 6..8 右后
'RL_0', 'RL_1', 'RL_2', # 9..11 左后
]
JOINT_TYPE = {i: ('hip' if i % 3 == 0 else 'thigh' if i % 3 == 1 else 'knee')
for i in range(12)}
# motorCmdArray 用命名属性 (FR_0, FR_1, ...) 而不是 list, 这个表用于 getattr 索引
JOINT_ATTR = JOINT_NAMES # 命名一致, 可直接 getattr
# ===== 关节限位 (rad) — 2026-06-20 实测校准 =====
JOINT_LIMITS = {
# 推荐安全范围 (实测极限 + 5° 余量)
'hip': (-0.78, 0.78), # _0 (实测 ~±0.85~0.89)
'thigh': (-0.60, 3.50), # _1 (实测 -0.69 ~ +3.95, 上限保守取 3.5)
'knee': (-2.70, -0.95), # _2 (实测 -2.79 ~ -0.88, 注意是负值)
}
JOINT_LIMITS_URDF = {
# Unitree 官方 URDF 标称值, 实际可能偏保守
'hip': (-0.863, 0.863),
'thigh': (-0.686, 4.501),
'knee': (-2.818, -0.888),
}
JOINT_LIMITS_MEASURED = {
# 前两条腿 (FR/FL) 完整转动 90s 实测 (2026-06-20)
'FR_0': (-0.8627, +0.8515),
'FR_1': (-0.6930, +3.9173),
'FR_2': (-2.7648, -0.8847),
'FL_0': (-0.8922, +0.8229),
'FL_1': (-0.6676, +3.9508),
'FL_2': (-2.7850, -0.9001),
# 后腿 (RR/RL) 实测时未充分转动, 参考 FR/FL 对称
}
# ===== 电机最大力矩 (N·m) — Unitree 官方规格 =====
TAU_MAX = {
'hip': 23.7,
'thigh': 23.7,
'knee': 35.55,
}
KT = 0.066 # 力矩常数 N·m/A, 用于 tau ↔ 电流 换算 (Go1 GO-M8010-6)
CRITICAL_FACTOR = 5.0 # 命令 tau > CRITICAL_FACTOR × TAU_MAX = 离谱, 触发紧急停机
# ===== 趴地 damping 姿态参考 (2026-06-20 实测, 4 腿对称) =====
DAMPING_POSE = {
'FR_0': -0.37, 'FR_1': +1.18, 'FR_2': -2.77,
'FL_0': +0.43, 'FL_1': +1.14, 'FL_2': -2.75,
'RR_0': -0.37, 'RR_1': +1.18, 'RR_2': -2.76,
'RL_0': +0.41, 'RL_1': +1.15, 'RL_2': -2.76,
}
# 半起立姿态 (example_position 用的 sin 中点, 不是真趴地)
HALF_STAND_POSE = {
'_0': 0.0, # hip 中位
'_1': 1.2, # thigh 前蹬
'_2': -2.0, # knee 半弯曲 (比 damping 的 -2.77 伸开 44°)
}
# ===== 控制相关 =====
DT_DEFAULT = 0.002 # 控制周期 (s), Mac 上可达 480Hz
SEND_DECIMATION = 1 # 发包降频比例 (1 = 全速发, 5 = 100Hz)
RCVBUF_SIZE = 4096 # socket RCVBUF, 小=自动丢弃积压