-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds Factory contact-rich manipulation tasks to IsaacLab #1520
Conversation
@@ -155,7 +155,7 @@ def main(): | |||
# convert obs to agent format | |||
obs = agent.obs_to_torch(obs) | |||
# agent stepping | |||
actions = agent.get_action(obs, is_deterministic=True) | |||
actions = agent.get_action(obs, is_deterministic=agent.is_deterministic) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Factory
environments, we evaluate policies stochastically.
agent.is_deterministic
is specified in the rl_games_ppo_cfg.yaml
under params.config.player.deterministic
. If this is not specified, the default value will be True
-- as such, this change should not affect other environments.
Hi noseworm, newbie to sim2real world. I am following this PR and had two questions:
Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please also add the environment names into this table? https://isaac-sim.github.io/IsaacLab/main/source/overview/environments.html#comprehensive-list-of-environments
* Added ``Factory-Direct-v0`` environment as a direct RL env that | ||
implements contact-rich manipulation tasks including peg insertion, | ||
gear meshing, and nut threading. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/__init__.py
Outdated
Show resolved
Hide resolved
return translated_pos | ||
|
||
|
||
def axis_angle_from_euler(euler): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if these can become more general utilities? We also have a bunch of rotation utilities in omni/isaac/lab/utils/math.py, there are likely some duplicates here with what's already in math.py. would be good to integrate them together.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are also several methods here that we are not using. I will remove those and use the methods from math.py when available.
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/factory_env.py
Outdated
Show resolved
Hide resolved
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/factory_env.py
Outdated
Show resolved
Hide resolved
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/factory_env.py
Outdated
Show resolved
Hide resolved
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/torch_jit_utils.py
Outdated
Show resolved
Hide resolved
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/factory_env.py
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Supposed to be ISAAC_NUCLEUS_DIR
instead of ISAACLAB_NUCLEUS_DIR
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ISAACLAB_NUCLEUS_DIR
should be correct. This is equivalent to ISAAC_NUCLEUS_DIR/IsaacLab
.
bad_envs = bad_envs[any_error.nonzero(as_tuple=False).squeeze(-1)] | ||
|
||
if bad_envs.shape[0] == 0: | ||
print("Done IK") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
may be cleaner to remove this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed print
statement.
self._set_gains(self.default_gains) | ||
|
||
physics_sim_view.set_gravity(carb.Float3(*self.cfg.sim.gravity)) | ||
print("Done Reset") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might be good to remove this as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed the print
statement.
source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/factory/factory_env.py
Outdated
Show resolved
Hide resolved
- Isaac- prefix added to task names - Documentation updated with jpg images - Use math.py rotation utilities - Misc code cleanup
Signed-off-by: Kelly Guo <[email protected]>
Signed-off-by: Kelly Guo <[email protected]>
Signed-off-by: Kelly Guo <[email protected]>
Signed-off-by: Kelly Guo <[email protected]>
Description
This MR adds new tasks for contact-rich manipulation based on the Factory line of work. Tasks include peg insertion, gear meshing, and nut threading.
Type of change
Screenshots
Checklist
pre-commit
checks with./isaaclab.sh --format
config/extension.toml
fileCONTRIBUTORS.md
or my name already exists there