Skip to content

Sequence of Actions in Isaac Lab and Isaac Lab installation #3701

Closed

Description

@Ashkanpy

Hello everyone. I have some questions regarding a project that involves pick and place using a UR10e with a Robotiq gripper.

The first question is how I can create a sequence of actions for the training part? In my project robot goes to the first object ( and hits it), but does not go into the picking stage.

The second question is how I can reset the position of the objects (cubes) in every episode? When the robot hits the cubes, they remain there for the rest of the training.

The third question is about the released version of Isaac Lab. I have installed it by cloning the whole repository and then using the --install command. But when I use pip show Isaaclab, it shows the version 0.46.3 ! tried multiple times, but still the version is not 2.2.x !

Thanks in advance.

Activity

  1. PeterL-NV commented on Oct 14, 2025

    @PeterL-NV
    Contributor

    Hi, For you third question on the release version checking, you can check the VERSION file in you checked out repo, that should show the Isaac Lab version you're using.

    What you checked with pip show isaaclab is the isaaclab extension version which contains the core framework of Isaac Lab, you can see its change log here

  2. PeterL-NV commented on Oct 15, 2025

    @PeterL-NV
    Contributor

    Come back to your other two questions.

    Creating a Pick and Place Action Sequence

    The robot should follow a sequence: approach the object, position the gripper, grasp (close gripper), lift, move to the target location, and release (open gripper). Usually, the main reason the robot "hits" the object but does not pick is incorrect sequencing or an incomplete action definition.

    • Use the Manipulator and Gripper API: Define a state machine or a sequence of "stages" in your script: approach (IK to pre-grasp pose), pick (close gripper), place (move via IK), release (open gripper).
    • Key Example: The official Isaac Sim pick-and-place tutorial demonstrates controlling UR10e with the Robotiq gripper using the Lula kinematics solver for IK. Ensure each stage is defined in code, e.g.:
    # Example pseudo-steps in gripper_control.py
    robot.move_to(pre_grasp_pose)
    gripper.close()   # grasp
    robot.move_to(place_pose)
    gripper.open()    # release

    Review standalone_examples/api/isaacsim.robot.manipulators/ur10e/gripper_control.py and follow_target_example.py for reference implementations. Confirm that gripper actions are sequenced after the robot reaches the pre-grasp pose. If stuck at "hit object", debug IK targets and timing between motion and gripper commands.

    Resetting Cube Positions in Every Episode

    When running episodic RL or training, objects (cubes) should be reset for every episode to initial or randomized positions.

    • Use the Python API to Reset Objects: For each episode, set the transforms of cubes back to their original or randomly chosen positions:
    from omni.isaac.core.objects import DynamicCuboid
    
    # reference to your cube object:
    cube = DynamicCuboid(prim_path="/World/Cube", ...)
    cube.set_world_pose(position=np.array([x, y, z]), orientation=np.array([0, 0, 0, 1]))

    Place this code inside the environment's reset function so the cubes are relocated at the start of each episode.

  3. Ashkanpy commented on Oct 19, 2025

    @Ashkanpy
    Author

    Come back to your other two questions.

    Creating a Pick and Place Action Sequence

    The robot should follow a sequence: approach the object, position the gripper, grasp (close gripper), lift, move to the target location, and release (open gripper). Usually, the main reason the robot "hits" the object but does not pick is incorrect sequencing or an incomplete action definition.

    • Use the Manipulator and Gripper API: Define a state machine or a sequence of "stages" in your script: approach (IK to pre-grasp pose), pick (close gripper), place (move via IK), release (open gripper).
    • Key Example: The official Isaac Sim pick-and-place tutorial demonstrates controlling UR10e with the Robotiq gripper using the Lula kinematics solver for IK. Ensure each stage is defined in code, e.g.:

    Example pseudo-steps in gripper_control.py

    robot.move_to(pre_grasp_pose)
    gripper.close() # grasp
    robot.move_to(place_pose)
    gripper.open() # release
    Review standalone_examples/api/isaacsim.robot.manipulators/ur10e/gripper_control.py and follow_target_example.py for reference implementations. Confirm that gripper actions are sequenced after the robot reaches the pre-grasp pose. If stuck at "hit object", debug IK targets and timing between motion and gripper commands.

    Resetting Cube Positions in Every Episode

    When running episodic RL or training, objects (cubes) should be reset for every episode to initial or randomized positions.

    • Use the Python API to Reset Objects: For each episode, set the transforms of cubes back to their original or randomly chosen positions:

    from omni.isaac.core.objects import DynamicCuboid

    reference to your cube object:

    cube = DynamicCuboid(prim_path="/World/Cube", ...)
    cube.set_world_pose(position=np.array([x, y, z]), orientation=np.array([0, 0, 0, 1]))
    Place this code inside the environment's reset function so the cubes are relocated at the start of each episode.

    I appreciate your response. If I use the IK, set the positions, and steps, what does the agent learn during the training? What will be the task for the Reinforcement Learning agent?

  4. PeterL-NV commented on Oct 20, 2025

    @PeterL-NV
    Contributor

    When you use inverse kinematics (IK) to set explicit positions and steps, those portions of behavior (exact joint trajectories and transitions between waypoints) are typically defined programmatically. What the Reinforcement Learning (RL) agent learns in such a setup is higher-level decision-making and skillful execution within the constraints of the environment, not the basic kinematic motions.

    What Does the RL Agent Learn?

    • The agent learns which actions to select at each timestep to achieve a successful pick and place, even under variations such as object position, orientation, gripper calibration errors, and environmental disturbances.
    • RL agents learn to sequence lower-level primitives - such as moving towards an object, grasping, lifting, and placing - based on observations (object pose, end-effector state, etc.), often deciding robustly in challenging or randomized scenarios.
    • If the task setup uses programmatic IK and simple motion control, RL's role is often to determine the optimal timing (when) and parameters (where, how strongly), or to perform closed-loop adjustment in response to real-time feedback, uncertainty, or perturbations.

    What Is the Task for the RL Agent?

    Typical RL tasks for pick and place include:

    • Observe Environment: Input states such as joint positions, object locations, gripper status, and possibly camera data.
    • Decide Action: Output movement or manipulation command (joint targets, gripper close/open), possibly as high-level navigation points or direct velocity/position commands.
    • Maximize Reward: Design a reward function that incentivizes successful picks, accurate placements, minimal collisions, or efficient movements. For example:
      • Positive reward for grasping and lifting an object.
      • Additional reward for placing it precisely at the goal location.
      • Penalties for dropping, excessive force, or joint limit violations.
    • Learn Robust Strategies: Adapt to domain randomization (different cube positions, sizes, lighting, gripper calibration) so agent generalizes beyond a hardcoded script.

    So even with IK and scripted steps, RL agents can learn the flexible policies that adapt to real conditions, disturbances, and perceptual uncertainty - making them critical for robust, autonomous manipulation tasks beyond simple pre-defined scripts or controllers.

  5. Ashkanpy commented on Oct 28, 2025

    @Ashkanpy
    Author

    When you use inverse kinematics (IK) to set explicit positions and steps, those portions of behavior (exact joint trajectories and transitions between waypoints) are typically defined programmatically. What the Reinforcement Learning (RL) agent learns in such a setup is higher-level decision-making and skillful execution within the constraints of the environment, not the basic kinematic motions.

    What Does the RL Agent Learn?

    • The agent learns which actions to select at each timestep to achieve a successful pick and place, even under variations such as object position, orientation, gripper calibration errors, and environmental disturbances.
    • RL agents learn to sequence lower-level primitives - such as moving towards an object, grasping, lifting, and placing - based on observations (object pose, end-effector state, etc.), often deciding robustly in challenging or randomized scenarios.
    • If the task setup uses programmatic IK and simple motion control, RL's role is often to determine the optimal timing (when) and parameters (where, how strongly), or to perform closed-loop adjustment in response to real-time feedback, uncertainty, or perturbations.

    What Is the Task for the RL Agent?

    Typical RL tasks for pick and place include:

    • Observe Environment: Input states such as joint positions, object locations, gripper status, and possibly camera data.

    • Decide Action: Output movement or manipulation command (joint targets, gripper close/open), possibly as high-level navigation points or direct velocity/position commands.

    • Maximize Reward: Design a reward function that incentivizes successful picks, accurate placements, minimal collisions, or efficient movements. For example:

      • Positive reward for grasping and lifting an object.
      • Additional reward for placing it precisely at the goal location.
      • Penalties for dropping, excessive force, or joint limit violations.
    • Learn Robust Strategies: Adapt to domain randomization (different cube positions, sizes, lighting, gripper calibration) so agent generalizes beyond a hardcoded script.

    So even with IK and scripted steps, RL agents can learn the flexible policies that adapt to real conditions, disturbances, and perceptual uncertainty - making them critical for robust, autonomous manipulation tasks beyond simple pre-defined scripts or controllers.

    I did as you mentioned, but the robot does not track the target positions, and the movement of the robot is not desired! It seems like there is a problem in the Kinematic solver or the position definition! Here is the link to the 3 main files of my project.

    https://github.com/Ashkanpy/Pick-place.git

  6. converted this issue into a discussion #3866 on Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions