Skip to content
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 OperationSpaceController to docs and tests and implement corresponding action/action_cfg classes #913

Conversation

ozhanozen
Copy link
Contributor

@ozhanozen ozhanozen commented Aug 31, 2024

Description

This PR adds the OperationalSpaceController to the docs and provides some tests for its parametric features. Moreover, it implements the corresponding OperationalSpaceControllerAction and OperationalSpaceControllerActionCfg classes so they can be used with manager-based environments.

Fixes #873

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

Checklist

  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there
    ``

@ozhanozen
Copy link
Contributor Author

@Dhoeller19, I have created this PR to replace #879 but haven't worked much on it yet. It is far from complete at the moment. I am currently working on it and will ping once it reaches a state worth reviewing. Sorry for the confusion.

@jtigue-bdai jtigue-bdai marked this pull request as draft September 3, 2024 13:12
@jtigue-bdai
Copy link
Collaborator

Converted to a draft util ready for full review. @ozhanozen i will continue to work with you on this branch. Thanks for doing this!

@ozhanozen ozhanozen marked this pull request as ready for review October 11, 2024 20:12
@ozhanozen
Copy link
Contributor Author

@OOmotuyi this looks great. Just a few docstring/formatting stuff. If you are ready it seems like you can pull it out of draft and make it ready for review from the wider team.

@jtigue-bdai, Thanks a lot! I have addressed all your comments, updated the changelog, and marked the PR as ready for review.

@ozhanozen
Copy link
Contributor Author

Hi @jtigue-bdai,

I’ve addressed the comments (primarily regarding docstrings) currently marked as unresolved. Would it be okay if I go ahead and mark them as resolved?

I’ve also merged the latest changes from main and updated the relevant documentation. The CHANGELOG entries remain as [unreleased], assuming the version/date will be finalized when merging to main.

On a separate branch, I’ve implemented the nullspace controller feature for OSC and successfully deployed a trained policy on a real robot to test it. It’s working well, and I observed it significantly improves learning. I’ll create a new PR for it once this one is merged.

Thanks again for your review and feedback! 😊

@kellyguo11 kellyguo11 changed the title Add OperationSpaceController to docs and tests and implement corresponding action/action_cfg classes Adds OperationSpaceController to docs and tests and implement corresponding action/action_cfg classes Dec 13, 2024
@kellyguo11
Copy link
Contributor

kellyguo11 commented Dec 16, 2024

Thanks a lot for the addition! Could you please help update the image from .png to .jpg (jpg takes up less storage), and add the new environment to the docs (https://isaac-sim.github.io/IsaacLab/main/source/overview/environments.html#single-agent and https://isaac-sim.github.io/IsaacLab/main/source/overview/environments.html#comprehensive-list-of-environments)?

Also looks like it'll need another rebase. feel free to update the version number based on the current main, I don't seem to have write access to update the file, but I can merge it in once everything is ready. thanks!

@kellyguo11 kellyguo11 merged commit fe976d7 into isaac-sim:main Dec 16, 2024
4 of 5 checks passed
@ozhanozen
Copy link
Contributor Author

Hi @kellyguo11 ,

Thank you for the feedback on the PR and for merging it! While I noticed an issue related to the new clip ranges implementation (#1476) which I wanted to mention here, I wasn’t able to raise it before the PR was merged. I’ve now created a new issue (#1548) detailing my concerns and proposed solutions. Please let me know if you have any thoughts on it when convenient.

@ozhanozen ozhanozen deleted the feature/operation_space_controller branch December 16, 2024 22:10
kellyguo11 added a commit that referenced this pull request Dec 18, 2024
# Description

This PR adds an option to enable null-space control within
`OperationSpaceController` (following the discussions in #913).

## Details

Currently, `OperationSpaceController` controls only the task space,
which results in joint movements within the null-space of redundant
robotic manipulators. In general, it is desirable to have some control
over the robot null-space, e.g., to prevent the joints from going near
their limits. Hence, the PR adds the following:

- An optional nullspace (position) control integrated into
`OperationSpaceController`. This controller attracts the robot joints to
provided targets whereas possible, in parallel to the task-space target.
- Test cases for `OperationSpaceController` that use null-space control.
- Updates to the related tutorial script and documentation to use and
describe null-space control.
- Integration of (optional) null-space control to
`OperationSpaceControllerAction` with predefined joint targets, e.g.,
default joint positions, joint centers, zero joint position.
- Integration of null-space control to `"Isaac-Reach-Franka-OSC-v0"`
manager-based environment.

Null-space control utilizes either the dynamically consistent Jacobian
inverse or the Moore–Penrose inverse, depending on whether the full
inertia matrix is available.

## Type of change

- New feature (non-breaking change which adds functionality)
- This change requires a documentation update

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

---------

Signed-off-by: Özhan Özen <[email protected]>
Co-authored-by: Kelly Guo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Question] Implementation status of the operational space and joint impedance controllers
4 participants