Replies: 1 comment 1 reply
-
Thank you for posting this. I'll move your question to our Discussions section for follow up. In the meantime, here are a few steps to consider that may help: 1. Verify Gripper Joint NamesYour USD file's gripper joint names must exactly match the names in your code. Common issues: # Check actual joint names in USD:
print(scene["m0609bot"].data.joint_names)
2. Simplify Gripper ControlMost robotic grippers use 1 DOF control (not individual finger joints). Modify your control logic: # Replace name_to_val with this simplified version:
name_to_val = {"gripper_joint": gripper_pos} # Control only the main actuator
# Remove finger/passive joint actuators from M0609_CONFIG:
actuators={
**{f"joint{i}act": ... for i in range(1,7)}, # Arm joints
"gripper_act": ImplicitActuatorCfg( # Single actuator
joint_names_expr=["gripper_joint"],
stiffness=20000,
damping=200
)
} 3. Check USD File StructureOpen your USD in Isaac Sim's Scene Inspector:
4. Adjust Physics SettingsAdd solver stabilization to articulation_props=sim_utils.ArticulationRootPropertiesCfg(
enabled_self_collisions=True,
solver_position_iteration_count=32, # Increase for stability
solver_velocity_iteration_count=4,
stabilization_threshold=0.001, # Add this line
), |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello. I am trying to do reinforcement learning using iassac lab. Before starting reinforcement learning, I am working on checking if the movement is appropriate. So I created a custom usd (manipulator), and when I ran the python code below, the gripper was disassembled. I will attach the actual gripper image on rviz2. Please help me with the problem.
---------------------------------python code---------------------------------
import argparse
from isaaclab.app import AppLauncher
parser = argparse.ArgumentParser(description="M0609 roboto + RG2 gripper control")
parser.add_argument("--num_envs", type=int, default=1, help="num env")
AppLauncher.add_app_launcher_args(parser)
args_cli = parser.parse_args()
app_launcher = AppLauncher(args_cli)
simulation_app = app_launcher.app
import numpy as np
import isaaclab.sim as sim_utils
from isaaclab.actuators import ImplicitActuatorCfg
from isaaclab.assets.articulation import ArticulationCfg
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.assets import AssetBaseCfg, RigidObjectCfg
robot
M0609_CONFIG = ArticulationCfg(
spawn=sim_utils.UsdFileCfg(
usd_path="/home/jsbae/IsaacLab/source/isaaclab_assets/data/Robots/M0609_6th/m0609.usd",
rigid_props=sim_utils.RigidBodyPropertiesCfg(disable_gravity=False),
articulation_props=sim_utils.ArticulationRootPropertiesCfg(
enabled_self_collisions=True,
solver_position_iteration_count=8,
solver_velocity_iteration_count=0,
),
),
init_state=ArticulationCfg.InitialStateCfg(
joint_pos={
"joint_1": 0.0, "joint_2": 0.0, "joint_3": 1.57,
"joint_4": 0.0, "joint_5": 1.57, "joint_6": 0.0,
"gripper_joint": 0.0,
"r_finger_1_joint": 0.0, "l_finger_2_joint": 0.0,
"r_finger_2_joint": 0.0, "l_finger_passive_joint": 0.0,
"r_finger_passive_joint": 0.0,
},
pos=(0.25, -0.25, 0.0),
),
actuators={
**{
f"joint{i}act": ImplicitActuatorCfg(
joint_names_expr=[f"joint{i}"],
effort_limit_sim=100.0, velocity_limit_sim=100.0,
stiffness=10000.0, damping=100.0,
) for i in range(1, 7)
},
"gripper_joint_act": ImplicitActuatorCfg(joint_names_expr=["gripper_joint"], stiffness=20000, damping=200),
"r_finger_1_joint_act": ImplicitActuatorCfg(joint_names_expr=["r_finger_1_joint"], stiffness=20000, damping=200),
"l_finger_2_joint_act": ImplicitActuatorCfg(joint_names_expr=["l_finger_2_joint"], stiffness=20000, damping=200),
"r_finger_2_joint_act": ImplicitActuatorCfg(joint_names_expr=["r_finger_2_joint"], stiffness=20000, damping=200),
"l_finger_passive_joint_act": ImplicitActuatorCfg(joint_names_expr=["l_finger_passive_joint"], stiffness=20000, damping=200),
"r_finger_passive_joint_act": ImplicitActuatorCfg(joint_names_expr=["r_finger_passive_joint"], stiffness=20000, damping=200),
},
)
class NewRobotsSceneCfg(InteractiveSceneCfg):
ground = AssetBaseCfg(
prim_path="/World/defaultGroundPlane",
spawn=sim_utils.GroundPlaneCfg()
)
def run_simulator(sim: sim_utils.SimulationContext, scene: InteractiveScene):
sim_dt = sim.get_physics_dt()
sim_time = 0.0
count = 0
def main():
sim_cfg = sim_utils.SimulationCfg(device=args_cli.device)
sim = sim_utils.SimulationContext(sim_cfg)
sim.set_camera_view([3.5, 0.0, 3.2], [0.0, 0.0, 0.5])
if name == "main":
main()
simulation_app.close()
Beta Was this translation helpful? Give feedback.
All reactions