Replies: 1 comment 1 reply
-
This is a fantastic question! Thank you for asking it! I believe this is the intended way to use the frame transformer sensor (so far as I understand it). Concerning your points
Thanks again! |
Beta Was this translation helpful? Give feedback.
-
Hi Isaac Lab team,
I would like to ask how to properly integrate the pose tracking of a frame—external to the articulation asset—within an
ActionTerm
implementation.Here is the context:
I am currently working on PR #913, which includes the
ActionTerm
implementation for the operational space controller. Sometimes it is beneficial to apply the control on a coordinate frame that is attached to the target object we are interacting with (e.g., we want to use force control along the rotation axis of a screw while controlling the position in the other axes). This requires tracking the pose of this coordinate frame (or an object), which can potentially move. While this is relatively straightforward for the controller implementation itself (and direct workflows), it is unclear how to do it for the ActionTerm (and manager-based workflows). I have checked the existingActionTerm
implementations, and they mostly use only the internal information of the articulation asset. I didn't see any example of injecting information from other assets (e.g., the pose of a rigid object).For the moment, I did the following as a workaround:
One provides the path of a
RigidObject
, whose pose should correspond to this external coordinate frame, within theActionTermCfg
. Internally,ActionTerm
creates aFrameTransformer
, whose task frame argument is thisRigidObject
. ThisFrameTransformer
is used to track the world pose of this frame and its pose w.r.t. the robot root frame is calculated and used by the controller. While this works, there are a few caveats:RigidObject
to track. One cannot simply provide an arbitrary tensor free from an asset, which I guess is a limitation of the manager-based workflows.FrameTransformer
requires anotherRigidObject
as a source frame to be provided, which is actually not needed for the controller. I arbitrarily assign the firstRigidObject
child of the articulation asset but not use this information later.ActionTerm
needs to handle theFrameTransformer
operations manually.Is this a proper way of integrating external frame information to the
ActionTerm
or would you suggest something else? I am asking the question outside of the PR, as it might also be relevant for other futureActionTerm
implementations.I appreciate your feedback.
Beta Was this translation helpful? Give feedback.
All reactions