From 1f36a59fe8358be9064dd79d1906abd28dcb8383 Mon Sep 17 00:00:00 2001 From: hangX Date: Fri, 13 Mar 2026 17:41:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/mindbot/mindbot/assets/dryingbox.py | 39 +++++++++++++++++++ source/mindbot/mindbot/assets/lab.py | 18 +++++++++ source/mindbot/mindbot/assets/table.py | 32 +++++++++++++++ .../il/open_drybox/mindrobot_cfg.py | 2 +- .../mindrobot_left_arm_ik_env_cfg.py | 31 ++++++++------- source/mindbot/mindbot/utils/assets.py | 2 +- 6 files changed, 109 insertions(+), 15 deletions(-) create mode 100644 source/mindbot/mindbot/assets/dryingbox.py create mode 100644 source/mindbot/mindbot/assets/lab.py create mode 100644 source/mindbot/mindbot/assets/table.py diff --git a/source/mindbot/mindbot/assets/dryingbox.py b/source/mindbot/mindbot/assets/dryingbox.py new file mode 100644 index 0000000..5d9324b --- /dev/null +++ b/source/mindbot/mindbot/assets/dryingbox.py @@ -0,0 +1,39 @@ +import isaaclab.sim as sim_utils +from isaaclab.actuators import ImplicitActuatorCfg +from isaaclab.assets import ArticulationCfg, AssetBaseCfg, RigidObjectCfg +from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.sim.spawners.from_files.from_files_cfg import UsdFileCfg +from isaaclab.sim.schemas.schemas_cfg import ( + RigidBodyPropertiesCfg, + CollisionPropertiesCfg, +) +from mindbot.utils.assets import MINDBOT_ASSETS_DIR + +DRYINGBOX_CFG = ArticulationCfg( + spawn=sim_utils.UsdFileCfg( + usd_path=r"c:\Users\PC\workpalce\maic_usd_assets_moudle\devices\DryingBox\Equipment_BB_13.usd", + rigid_props=sim_utils.RigidBodyPropertiesCfg( + disable_gravity=True, max_depenetration_velocity=1.0 + ), + articulation_props=sim_utils.ArticulationRootPropertiesCfg( + enabled_self_collisions=False, + solver_position_iteration_count=32, + solver_velocity_iteration_count=16, + stabilization_threshold=1e-6, + ), + ), + init_state=ArticulationCfg.InitialStateCfg( + pos=[1.95, -0.45, 0.9], rot=[-0.7071, 0.0, 0.0, 0.7071] + ), + # actuators={} + actuators={ + "passive_damper": ImplicitActuatorCfg( + # ".*" 表示匹配该USD文件内的所有关节(无论是轮子、屏幕转轴还是其他) + joint_names_expr=["RevoluteJoint"], + stiffness=10000.0, + damping=1000.0, + effort_limit_sim=10000.0, + velocity_limit_sim=100.0, + ), + }, +) diff --git a/source/mindbot/mindbot/assets/lab.py b/source/mindbot/mindbot/assets/lab.py new file mode 100644 index 0000000..3c9cb6f --- /dev/null +++ b/source/mindbot/mindbot/assets/lab.py @@ -0,0 +1,18 @@ +import isaaclab.sim as sim_utils +from isaaclab.actuators import ImplicitActuatorCfg +from isaaclab.assets import ArticulationCfg, AssetBaseCfg +from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.sim.spawners.from_files.from_files_cfg import UsdFileCfg +from isaaclab.sim.schemas.schemas_cfg import ( + RigidBodyPropertiesCfg, + CollisionPropertiesCfg, +) +from mindbot.utils.assets import MINDBOT_ASSETS_DIR + +ROOM_CFG = AssetBaseCfg( + # prim_path="{ENV_REGEX_NS}/Room", + spawn=UsdFileCfg( + usd_path=f"{MINDBOT_ASSETS_DIR}\\sences\\Lab\\lab.usd", + ), + +) \ No newline at end of file diff --git a/source/mindbot/mindbot/assets/table.py b/source/mindbot/mindbot/assets/table.py new file mode 100644 index 0000000..2e5e905 --- /dev/null +++ b/source/mindbot/mindbot/assets/table.py @@ -0,0 +1,32 @@ +import isaaclab.sim as sim_utils +from isaaclab.actuators import ImplicitActuatorCfg +from isaaclab.assets import ArticulationCfg, AssetBaseCfg, RigidObjectCfg +from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.sim.spawners.from_files.from_files_cfg import UsdFileCfg +from isaaclab.sim.schemas.schemas_cfg import ( + RigidBodyPropertiesCfg, + CollisionPropertiesCfg, +) +from mindbot.utils.assets import MINDBOT_ASSETS_DIR + +TABLE_CFG = AssetBaseCfg( + # prim_path="{ENV_REGEX_NS}/Table", + init_state=AssetBaseCfg.InitialStateCfg( + pos=[1.95, -0.3, 0.005], + rot=[0.7071, 0.0, 0.0, -0.7071], + ), + spawn=UsdFileCfg( + usd_path=f"{MINDBOT_ASSETS_DIR}\\sences\\Table_C\\Table_C.usd", + rigid_props=RigidBodyPropertiesCfg( + rigid_body_enabled=True, + solver_position_iteration_count=32, + solver_velocity_iteration_count=16, + disable_gravity=False, + ), + collision_props=CollisionPropertiesCfg( + collision_enabled=True, + contact_offset=0.0005, # original 0.02 + rest_offset=0, + ), + ), +) \ No newline at end of file diff --git a/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_cfg.py b/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_cfg.py index 398efe7..1bebb07 100644 --- a/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_cfg.py +++ b/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_cfg.py @@ -20,7 +20,7 @@ from mindbot.utils.assets import MINDBOT_ASSETS_DIR MINDBOT_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{MINDBOT_ASSETS_DIR}/robots/mindrobot/mindrobot_cd2.usd", + usd_path=f"{MINDBOT_ASSETS_DIR}\\robots\\mindrobot\\mindrobot_cd2.usd", rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, max_depenetration_velocity=5.0, diff --git a/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_left_arm_ik_env_cfg.py b/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_left_arm_ik_env_cfg.py index fc809b5..a3faa03 100644 --- a/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_left_arm_ik_env_cfg.py +++ b/source/mindbot/mindbot/tasks/manager_based/il/open_drybox/mindrobot_left_arm_ik_env_cfg.py @@ -42,7 +42,9 @@ from .mindrobot_cfg import MINDBOT_HIGH_PD_CFG # 在文件开头添加 import isaaclab.utils.assets as assets_utils from mindbot.utils.assets import MINDBOT_ASSETS_DIR - +from mindbot.assets.lab import ROOM_CFG +from mindbot.assets.table import TABLE_CFG +from mindbot.assets.dryingbox import DRYINGBOX_CFG # # 然后在 scene 配置中使用 # spawn=sim_utils.UsdFileCfg( # usd_path=f"{assets_utils.ISAAC_NUCLEUS_DIR}/Props/Mounts/SeattleLabTable/table_instanceable.usd" @@ -84,7 +86,10 @@ class MindRobotTeleopSceneCfg(InteractiveSceneCfg): ), init_state=RigidObjectCfg.InitialStateCfg(pos=(0.5, 0.0, 0.45)), ) - + + room = ROOM_CFG.replace(prim_path="{ENV_REGEX_NS}/Room") + table = TABLE_CFG.replace(prim_path="{ENV_REGEX_NS}/Table") + drying_box = DRYINGBOX_CFG.replace(prim_path="{ENV_REGEX_NS}/DryingBox") # room = AssetBaseCfg( # prim_path="{ENV_REGEX_NS}/Room", # spawn=sim_utils.UsdFileCfg( @@ -136,17 +141,17 @@ class MindRobotTeleopActionsCfg: # Joint order in articulation: right_b, left_b, left_f, right_f # (from terminal joint index listing: [2],[3],[4],[5]). # Action vector: [right_b_vel, left_b_vel, left_f_vel, right_f_vel] in rad/s. - wheel_action = JointVelocityActionCfg( - asset_name="robot", - # joint_names=[".*_revolute_Joint"], - joint_names=[ - "right_b_revolute_Joint", - "left_b_revolute_Joint", - "left_f_revolute_Joint", - "right_f_revolute_Joint", - ], - scale=1.0, - ) + # wheel_action = JointVelocityActionCfg( + # asset_name="robot", + # # joint_names=[".*_revolute_Joint"], + # joint_names=[ + # "right_b_revolute_Joint", + # "left_b_revolute_Joint", + # "left_f_revolute_Joint", + # "right_f_revolute_Joint", + # ], + # scale=1.0, + # ) # Left gripper control (binary: open/close) gripper_action = BinaryJointPositionActionCfg( diff --git a/source/mindbot/mindbot/utils/assets.py b/source/mindbot/mindbot/utils/assets.py index ad019cd..f64329c 100644 --- a/source/mindbot/mindbot/utils/assets.py +++ b/source/mindbot/mindbot/utils/assets.py @@ -21,5 +21,5 @@ import os MINDBOT_ASSETS_DIR: str = os.environ.get( "MINDBOT_ASSETS_DIR", # "/home/tangger/DataDisk/maic_usd_assets_moudle", - "/home/maic/LYT/maic_usd_assets_moudle", + r"c:\Users\PC\workpalce\maic_usd_assets_moudle", )