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, }, ) }, )