-
Notifications
You must be signed in to change notification settings - Fork 44
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
Object dynamic state #234
base: dev
Are you sure you want to change the base?
Object dynamic state #234
Conversation
ceb34e3
to
b546276
Compare
784f43c
to
838ef77
Compare
… ability for the used to specift the state id.
… pycram objects, closing and opening gripper works.
… giskard. Updated robot_description usage from old version to new version in Giskard. Added options for disabling monitors and allowing gripper collision in achieve_cartesian_goal in Giskard and added these options to the configurations of the world. Added a globale variable that indicates if robokudo was found or not to avoid using real detection processs module if Robokudo was not found.
… is not synced correctly. Fixed Goal Validator. robot_state_updater.py also updates states of objects. no need for original pose anymore to move mobile robot in multiverse.
…make a feedback loop on gripper closing.
…e kept while navigating.
Added mutex for multiverse writer client
…nged world methods.
…e kept while navigating.
…nged world methods.
…f prospection objects.
…entities except for world.
…ocation. Check for continuous joint when clipping. Fixed multiverse demo. Don't set link_state as it is not settable/needed.
716a6c4
to
5068e12
Compare
demos/pycram_multiverse_demo/demo_euROBIN_industrial_robotics.py
Outdated
Show resolved
Hide resolved
@@ -303,7 +294,7 @@ def get_mesh_filename(self, geometry: MeshVisualShape) -> str: | |||
else: | |||
raise LinkGeometryHasNoMesh(self.name, type(geometry).__name__) | |||
|
|||
def set_pose(self, pose: Pose) -> None: | |||
def set_object_pose_given_link_pose(self, pose: Pose) -> None: |
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.
That name sounds confusing
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.
hmm the thing is the link pose shouldn't be settable, but you can move the object such that the link has this given pose, and I would like users to know that what they are doing is actually moving the whole object when doing 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.
so there is the usual set_pose of the link but what I did there was issue a warning that link poses are not settable.
@@ -51,7 +51,7 @@ def set_child_link_pose(self): | |||
""" | |||
Set the target pose of the child object to the current pose of the child object in the parent object frame. | |||
""" | |||
self.child_link.set_pose(self.get_child_link_target_pose()) | |||
self.child_link.set_object_pose_given_link_pose(self.get_child_link_target_pose()) |
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.
Also confusing name
This depends on #227
Created a super class for Object and Link called PhysicalBody, this hast common attributes for any physical body like pose, velocity, contact points.
Also changed ContactPoint to use bodies instead of links as datatype for returned bodies.
Also Everything now is a WorldEntity including PhysicalBody, and Wolrd, this unified the methods eq and hash so they are only implemented in WorldEntity except for World which overwrites them.
Also every WorldEntity has a parent_entity, so Link has parent as Object and Object has parent as world, while World has None.
In addition the ontology_concept class variable was moved from Object class to PhysicalBody class because now it makes more sense there since any PhysicalBody is a PhysicalObject by Default.
Added attributes for PhysicalBody like velocity, is_translating, is_rotating, is_moving but currently they are not set by anything, one way could be through querying the simulation but one could also set them by performing their own calculation and according to their own thresholds for that, they just are helpful to be inside physical body if someone is interested in its dynamic state.
Also Added a PhysicalBodyState that includes pose, velocity, is_translating, and is_rotating.