simulo.FrameTransformer
Computes transformations between reference frames.
Useful for computing relative poses between robot links and objects in the scene, commonly used for manipulation tasks.
Example:
import simulo
# Track end-effector relative to baseframe_tf = simulo.FrameTransformer( source_frame="/World/Robot/base", target_frames=[ simulo.FrameTransformerTarget( prim_path="/World/Robot/ee_link", ), simulo.FrameTransformerTarget( prim_path="/World/Object", ), ],)scene.add(frame_tf, at="/World/frame_transformer")
# Read transformstransforms = frame_tf.read_transforms() # dict of target_name -> (pos, quat)simulo.FrameTransformer( path: Optional[str] = None, source_frame: Optional[str] = None, target_frames: Optional[List[FrameTransformerTarget]] = None, update_period: float = 0.0, enabled: bool = True, debug_vis: bool = False,)read_transforms()
Section titled “read_transforms()”FrameTransformer.read_transforms() -> torch.TensorGet transformations from source to all targets.
Returns:
Transforms tensor of shape (num_envs, num_targets, 7). Each transform is (x, y, z, qw, qx, qy, qz).
Raises:
RuntimeError— If sensor not initialized
read_target_positions()
Section titled “read_target_positions()”FrameTransformer.read_target_positions() -> torch.TensorGet target positions relative to source frame.
Returns:
Positions tensor of shape (num_envs, num_targets, 3).
Raises:
RuntimeError— If sensor not initialized
read_target_orientations()
Section titled “read_target_orientations()”FrameTransformer.read_target_orientations() -> torch.TensorGet target orientations relative to source frame.
Returns:
Orientations tensor of shape (num_envs, num_targets, 4). Quaternions in (w, x, y, z) format.
Raises:
RuntimeError— If sensor not initialized