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

Abstract world #133

Closed

Conversation

AbdelrhmanBassiouny
Copy link
Collaborator

Abstracting the world class from pybullet to have a flexible simulator backend for pycram

… the object class; needs tests to verify functionality.
…method, and defining the Attachment class and making the necessary changes for that, also add_constraint is still in progress.
… Object Class (still need to remove world dependency if needed), The attachment refactoring still needs to be completed.
…mplement the inverse attachment (changes are not synced)
…resotring of state, Implemented exiting the world and other methods.
…ept test_attachment_exclusion in test_costmap.py.
… removed pybullet dependency from world.py, tests are running except test_attachment_exclusion in test_costmaps.py
…es and used them instead of Lists (changed function signatures to use them).
…point to link objects.

 Removed _current_link_poses and _current_link_transforms
Refactoring of link related methods.
Removal of redundant methods and/or properties
Objects are responsible for attachments not World.
Links are responsible for constraints.
_set_attached_objects_poses implementation moved to the Object class instead of World.

Cleaned World init method.

Added optional argument in set_pose method of the Object class to exclude moving attached objects.
Implemented a CollisionsCallbacks dataclass and used it to define the self.coll_callbacks attribute.
Object Class does not manage constraints, they are managed by the Link Class instead.
Implemented save and restore state for World, Object, and Link classes.
Added tests for Object, Attachment, and Link Classes.
…move all saved sates.

world saved states is a list of int state ids

WorldState data class moved to world_dataclasses.py

added the method to remove physics simulator state

add reset object method in the Object class.
WorldReasoning is now abstracted from pybullet
tests are passing
created two methods _try_to_reach, try_to_reach_with_grasp in the ik.py
Copy link
Collaborator

@tomsch420 tomsch420 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

besides the world_object.py and the comments it looks good.

src/pycram/cache_manager.py Show resolved Hide resolved
src/pycram/cache_manager.py Show resolved Hide resolved
src/pycram/cache_manager.py Show resolved Hide resolved
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this file is deprecated ngl

src/pycram/description.py Show resolved Hide resolved
src/pycram/world.py Outdated Show resolved Hide resolved
src/pycram/world.py Show resolved Hide resolved
src/pycram/world.py Outdated Show resolved Hide resolved
src/pycram/world_constraints.py Outdated Show resolved Hide resolved
src/pycram/world_object.py Outdated Show resolved Hide resolved
@Tigul
Copy link
Collaborator

Tigul commented Apr 8, 2024

With 85eddde this PR is merged. I don't know why GitHub does not recognize it but I will close this PR with this comment.

@Tigul Tigul closed this Apr 8, 2024
sunava added a commit that referenced this pull request Sep 2, 2024
mkhoshnam pushed a commit to mkhoshnam/pycram that referenced this pull request Nov 26, 2024
mkhoshnam pushed a commit to mkhoshnam/pycram that referenced this pull request Nov 26, 2024
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.

3 participants