cmvr_ai_lab/source/engineai_lab/robots/pm01.py

169 lines
5.5 KiB
Python
Raw Permalink Normal View History

2026-07-13 10:52:46 +08:00
import isaaclab.sim as sim_utils
from isaaclab.assets import ArticulationCfg
from engineai_lab.assets import ASSET_DIR
from isaaclab.managers import SceneEntityCfg
from isaaclab.actuators import ImplicitActuatorCfg
PM_WAIST_DFS_JOINT_NAMES = [
"J00_HIP_PITCH_L",
"J01_HIP_ROLL_L",
"J02_HIP_YAW_L",
"J03_KNEE_PITCH_L",
"J04_ANKLE_PITCH_L",
"J05_ANKLE_ROLL_L",
"J06_HIP_PITCH_R",
"J07_HIP_ROLL_R",
"J08_HIP_YAW_R",
"J09_KNEE_PITCH_R",
"J10_ANKLE_PITCH_R",
"J11_ANKLE_ROLL_R",
"J12_WAIST_YAW",
"J13_SHOULDER_PITCH_L",
"J14_SHOULDER_ROLL_L",
"J15_SHOULDER_YAW_L",
"J16_ELBOW_PITCH_L",
"J17_ELBOW_YAW_L",
"J18_SHOULDER_PITCH_R",
"J19_SHOULDER_ROLL_R",
"J20_SHOULDER_YAW_R",
"J21_ELBOW_PITCH_R",
"J22_ELBOW_YAW_R",
]
PM01_DFS_JOINT_ORDER_ASSET_CFG = SceneEntityCfg("robot", joint_names=PM_WAIST_DFS_JOINT_NAMES, preserve_order=True)
PM01_CFG = ArticulationCfg(
spawn=sim_utils.UrdfFileCfg(
asset_path=f"{ASSET_DIR}/pm01/urdf/serial_pm01.urdf", # full collision
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=True, 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, 0.9),
joint_pos={
"J00_HIP_PITCH_L": -0.06,
"J01_HIP_ROLL_L": 0.0,
"J02_HIP_YAW_L": 0.0,
"J03_KNEE_PITCH_L": 0.12,
"J04_ANKLE_PITCH_L": -0.06,
"J05_ANKLE_ROLL_L": 0.0,
"J06_HIP_PITCH_R": -0.06,
"J07_HIP_ROLL_R": 0.0,
"J08_HIP_YAW_R": 0.0,
"J09_KNEE_PITCH_R": 0.12,
"J10_ANKLE_PITCH_R": -0.06,
"J11_ANKLE_ROLL_R": 0.0,
"J12_WAIST_YAW": 0.0,
"J13_SHOULDER_PITCH_L": 0.0,
"J14_SHOULDER_ROLL_L": 0.15,
"J15_SHOULDER_YAW_L": 0.0,
"J16_ELBOW_PITCH_L": -0.25,
"J17_ELBOW_YAW_L": 0.0,
"J18_SHOULDER_PITCH_R": 0.0,
"J19_SHOULDER_ROLL_R": -0.15,
"J20_SHOULDER_YAW_R": 0.0,
"J21_ELBOW_PITCH_R": -0.25,
"J22_ELBOW_YAW_R": 0.0,
},
joint_vel={".*": 0.0},
),
soft_joint_pos_limit_factor=0.9,
actuators={
"body": ImplicitActuatorCfg(
joint_names_expr=[
".*",
],
stiffness={
".*HIP_PITCH.*": 110,
".*HIP_ROLL.*": 70,
".*HIP_YAW.*": 70,
".*KNEE_PITCH.*": 110,
".*ANKLE_PITCH.*": 30,
".*ANKLE_ROLL.*": 30,
".*SHOULDER_PITCH.*": 50,
".*SHOULDER_ROLL.*": 50,
".*SHOULDER_YAW.*": 50,
".*ELBOW_PITCH.*": 50,
".*ELBOW_YAW.*": 50,
".*WAIST_YAW.*": 50,
},
damping={
".*HIP_PITCH.*": 5.0,
".*HIP_ROLL.*": 3.0,
".*HIP_YAW.*": 3.0,
".*KNEE_PITCH.*": 5.0,
".*ANKLE_PITCH.*": 0.3,
".*ANKLE_ROLL.*": 0.3,
".*SHOULDER_PITCH.*": 0.3,
".*SHOULDER_ROLL.*": 0.3,
".*SHOULDER_YAW.*": 0.3,
".*ELBOW_PITCH.*": 0.3,
".*ELBOW_YAW.*": 0.3,
".*WAIST_YAW.*": 3.0,
},
effort_limit={
".*HIP_PITCH.*": 164.0,
".*HIP_ROLL.*": 164.0,
".*HIP_YAW.*": 61.0,
".*KNEE_PITCH.*": 164.0,
".*ANKLE_PITCH.*": 54.9,
".*ANKLE_ROLL.*": 54.9,
".*SHOULDER_PITCH.*": 61.0,
".*SHOULDER_ROLL.*": 61.0,
".*SHOULDER_YAW.*": 61.0,
".*ELBOW_PITCH.*": 61.0,
".*ELBOW_YAW.*": 61.0,
".*WAIST_YAW.*": 61.0,
},
effort_limit_sim={
".*HIP_PITCH.*": 164.0,
".*HIP_ROLL.*": 164.0,
".*HIP_YAW.*": 61.0,
".*KNEE_PITCH.*": 164.0,
".*ANKLE_PITCH.*": 54.9,
".*ANKLE_ROLL.*": 54.9,
".*SHOULDER_PITCH.*": 61.0,
".*SHOULDER_ROLL.*": 61.0,
".*SHOULDER_YAW.*": 61.0,
".*ELBOW_PITCH.*": 61.0,
".*ELBOW_YAW.*": 61.0,
".*WAIST_YAW.*": 61.0,
},
velocity_limit={
".*HIP_PITCH.*": 26.3,
".*HIP_ROLL.*": 26.3,
".*HIP_YAW.*": 35.2,
".*KNEE_PITCH.*": 26.3,
".*ANKLE_PITCH.*": 35.2,
".*ANKLE_ROLL.*": 35.2,
".*SHOULDER_PITCH.*": 35.2,
".*SHOULDER_ROLL.*": 35.2,
".*SHOULDER_YAW.*": 35.2,
".*ELBOW_PITCH.*": 35.2,
".*ELBOW_YAW.*": 35.2,
".*WAIST_YAW.*": 35.2,
},
),
},
)