212 lines
6.5 KiB
Python
212 lines
6.5 KiB
Python
from __future__ import annotations
|
||
|
||
import isaaclab.sim as sim_utils
|
||
from isaaclab.actuators import ImplicitActuatorCfg
|
||
from isaaclab.assets import ArticulationCfg
|
||
from isaaclab.managers import SceneEntityCfg
|
||
|
||
from engineai_lab.assets import (
|
||
GEN2_ASSET_DIR,
|
||
GEN2_ORIGINAL_URDF_PATH,
|
||
GEN2_SIMPLIFIED_COLLISION_URDF_PATH,
|
||
)
|
||
|
||
# 训练物理必须固定使用简化碰撞 URDF。禁止文件缺失时静默回退到高精度碰撞,
|
||
# 否则同一份配置会因安装方式不同而产生不同的接触行为。
|
||
GEN2_URDF_PATH = GEN2_SIMPLIFIED_COLLISION_URDF_PATH
|
||
if not GEN2_URDF_PATH.is_file():
|
||
raise FileNotFoundError(
|
||
f"Gen2 training URDF is missing: {GEN2_URDF_PATH}. "
|
||
"Reinstall the package with engineai_lab/assets/gen2 included."
|
||
)
|
||
|
||
GEN2_LEG_JOINT_NAMES = [
|
||
"left_leg_J1",
|
||
"left_leg_J2",
|
||
"left_leg_J3",
|
||
"left_leg_J4",
|
||
"left_leg_J5",
|
||
"left_leg_J6",
|
||
"right_leg_J1",
|
||
"right_leg_J2",
|
||
"right_leg_J3",
|
||
"right_leg_J4",
|
||
"right_leg_J5",
|
||
"right_leg_J6",
|
||
]
|
||
|
||
GEN2_WAIST_JOINT_NAMES = ["waist_J1", "waist_J2"]
|
||
|
||
GEN2_ARM_JOINT_NAMES = [
|
||
"left_arm_J1",
|
||
"left_arm_J2",
|
||
"left_arm_J3",
|
||
"left_arm_J4",
|
||
"left_arm_J5",
|
||
"left_arm_J6",
|
||
"left_arm_J7",
|
||
"right_arm_J1",
|
||
"right_arm_J2",
|
||
"right_arm_J3",
|
||
"right_arm_J4",
|
||
"right_arm_J5",
|
||
"right_arm_J6",
|
||
"right_arm_J7",
|
||
]
|
||
|
||
GEN2_DFS_JOINT_NAMES = GEN2_LEG_JOINT_NAMES + GEN2_WAIST_JOINT_NAMES + GEN2_ARM_JOINT_NAMES
|
||
GEN2_DFS_JOINT_ORDER_ASSET_CFG = SceneEntityCfg("robot", joint_names=GEN2_DFS_JOINT_NAMES, preserve_order=True)
|
||
|
||
GEN2_FEET_BODY_NAMES = ["left_leg_link_6", "right_leg_link_6"]
|
||
|
||
|
||
GEN2_CFG = ArticulationCfg(
|
||
spawn=sim_utils.UrdfFileCfg(
|
||
asset_path=str(GEN2_URDF_PATH),
|
||
activate_contact_sensors=True,
|
||
fix_base=False,
|
||
replace_cylinders_with_capsules=True,
|
||
rigid_props=sim_utils.RigidBodyPropertiesCfg(
|
||
disable_gravity=False,
|
||
retain_accelerations=False,
|
||
linear_damping=0.0,
|
||
angular_damping=0.0,
|
||
max_linear_velocity=1000.0,
|
||
max_angular_velocity=1000.0,
|
||
max_depenetration_velocity=1.0,
|
||
),
|
||
articulation_props=sim_utils.ArticulationRootPropertiesCfg(
|
||
enabled_self_collisions=False,
|
||
solver_position_iteration_count=8,
|
||
solver_velocity_iteration_count=4,
|
||
),
|
||
joint_drive=sim_utils.UrdfConverterCfg.JointDriveCfg(
|
||
gains=sim_utils.UrdfConverterCfg.JointDriveCfg.PDGainsCfg(stiffness=0, damping=0)
|
||
),
|
||
),
|
||
init_state=ArticulationCfg.InitialStateCfg(
|
||
pos=(0.0, 0.0, 1.282),
|
||
joint_pos={
|
||
"left_leg_J1": 0.0,
|
||
"left_leg_J2": 0.0,
|
||
"left_leg_J3": 0.0,
|
||
"left_leg_J4": 0.0,
|
||
"left_leg_J5": 0.0,
|
||
"left_leg_J6": 0.0,
|
||
"right_leg_J1": 0.0,
|
||
"right_leg_J2": 0.0,
|
||
"right_leg_J3": 0.0,
|
||
"right_leg_J4": 0.0,
|
||
"right_leg_J5": 0.0,
|
||
"right_leg_J6": 0.0,
|
||
"waist_J1": 0.0,
|
||
"waist_J2": 0.0,
|
||
"left_arm_J1": 0.0,
|
||
"left_arm_J2": 1.4835298641951802,
|
||
"left_arm_J3": 1.5707963267948966,
|
||
"left_arm_J4": 0.0,
|
||
"left_arm_J5": 1.5707963267948966,
|
||
"left_arm_J6": 0.0,
|
||
"left_arm_J7": 0.0,
|
||
"right_arm_J1": 0.0,
|
||
"right_arm_J2": -1.4835298641951802,
|
||
"right_arm_J3": -1.5707963267948966,
|
||
"right_arm_J4": 0.0,
|
||
"right_arm_J5": 1.5707963267948966,
|
||
"right_arm_J6": 0.0,
|
||
"right_arm_J7": 0.0,
|
||
},
|
||
joint_vel={".*": 0.0},
|
||
),
|
||
soft_joint_pos_limit_factor=0.9,
|
||
actuators={
|
||
"body": ImplicitActuatorCfg(
|
||
joint_names_expr=[".*"],
|
||
stiffness={
|
||
".*_leg_J1": 180.0,
|
||
".*_leg_J2": 160.0,
|
||
".*_leg_J3": 90.0,
|
||
".*_leg_J4": 220.0,
|
||
".*_leg_J5": 55.0,
|
||
".*_leg_J6": 55.0,
|
||
"waist_J.*": 80.0,
|
||
".*_arm_J1": 50.0,
|
||
".*_arm_J2": 50.0,
|
||
".*_arm_J3": 45.0,
|
||
".*_arm_J4": 35.0,
|
||
".*_arm_J5": 30.0,
|
||
".*_arm_J6": 20.0,
|
||
".*_arm_J7": 20.0,
|
||
},
|
||
damping={
|
||
".*_leg_J1": 6.0,
|
||
".*_leg_J2": 5.0,
|
||
".*_leg_J3": 4.0,
|
||
".*_leg_J4": 7.0,
|
||
".*_leg_J5": 1.0,
|
||
".*_leg_J6": 1.0,
|
||
"waist_J.*": 4.0,
|
||
".*_arm_J1": 0.8,
|
||
".*_arm_J2": 0.8,
|
||
".*_arm_J3": 0.8,
|
||
".*_arm_J4": 0.6,
|
||
".*_arm_J5": 0.5,
|
||
".*_arm_J6": 0.4,
|
||
".*_arm_J7": 0.4,
|
||
},
|
||
effort_limit={
|
||
".*_leg_J1": 320.0,
|
||
".*_leg_J2": 320.0,
|
||
".*_leg_J3": 120.0,
|
||
".*_leg_J4": 450.0,
|
||
".*_leg_J5": 120.0,
|
||
".*_leg_J6": 120.0,
|
||
"waist_J.*": 182.0,
|
||
".*_arm_J1": 182.0,
|
||
".*_arm_J2": 182.0,
|
||
".*_arm_J3": 134.0,
|
||
".*_arm_J4": 66.0,
|
||
".*_arm_J5": 25.0,
|
||
".*_arm_J6": 25.0,
|
||
".*_arm_J7": 25.0,
|
||
},
|
||
effort_limit_sim={
|
||
".*_leg_J1": 320.0,
|
||
".*_leg_J2": 320.0,
|
||
".*_leg_J3": 120.0,
|
||
".*_leg_J4": 450.0,
|
||
".*_leg_J5": 120.0,
|
||
".*_leg_J6": 120.0,
|
||
"waist_J.*": 182.0,
|
||
".*_arm_J1": 182.0,
|
||
".*_arm_J2": 182.0,
|
||
".*_arm_J3": 134.0,
|
||
".*_arm_J4": 66.0,
|
||
".*_arm_J5": 25.0,
|
||
".*_arm_J6": 25.0,
|
||
".*_arm_J7": 25.0,
|
||
},
|
||
velocity_limit={
|
||
".*_leg_J1": 26.3,
|
||
".*_leg_J2": 26.3,
|
||
".*_leg_J3": 35.2,
|
||
".*_leg_J4": 26.3,
|
||
".*_leg_J5": 35.2,
|
||
".*_leg_J6": 35.2,
|
||
"waist_J.*": 35.2,
|
||
".*_arm_J.*": 35.2,
|
||
},
|
||
velocity_limit_sim={
|
||
".*_leg_J1": 26.3,
|
||
".*_leg_J2": 26.3,
|
||
".*_leg_J3": 35.2,
|
||
".*_leg_J4": 26.3,
|
||
".*_leg_J5": 35.2,
|
||
".*_leg_J6": 35.2,
|
||
"waist_J.*": 35.2,
|
||
".*_arm_J.*": 35.2,
|
||
},
|
||
)
|
||
},
|
||
)
|