91 lines
2.6 KiB
Python
91 lines
2.6 KiB
Python
"""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, 小=自动丢弃积压
|