Public API for module isaacsim.robot.poser:#

Classes#

  • class RobotPoser

    • def init(self, stage: Usd.Stage, robot_prim: Usd.Prim, start_prim: Usd.Prim | None = None, end_prim: Usd.Prim | None = None, solver_name: str | None = None)

    • [property] def stage(self) -> Usd.Stage

    • [property] def robot_prim(self) -> Usd.Prim

    • [property] def start_prim(self) -> Usd.Prim | None

    • [property] def end_prim(self) -> Usd.Prim | None

    • [property] def joints(self) -> list

    • [property] def chain(self) -> KinematicChain | None

    • [property] def solver(self) -> IKSolver

    • [solver.setter] def solver(self, value: IKSolver)

    • def set_chain(self, start_prim: Usd.Prim, end_prim: Usd.Prim)

    • def set_seed(self, seed: dict[str, float] | np.ndarray | list[float] | None)

    • def solve_ik(self, target: Transform, seed: dict[str, float] | np.ndarray | list[float] | None = None, **solver_kwargs: Any) -> PoseResult

    • def joints_to_native_values(self, joint_dict: dict[str, float]) -> list[float]

    • def apply_pose(self, joint_dict: dict[str, float] | PoseResult)

    • class def apply_pose_by_target(cls, stage: Usd.Stage, robot_prim: Usd.Prim, start_prim: Usd.Prim, end_prim: Usd.Prim, target: Transform, seed: VecN | None = None) -> PoseResult

  • class PoseResult

    • success: bool

    • joints: dict[str, float]

    • joint_fixed: dict[str, bool]

    • start_link: str

    • end_link: str

    • target_position: list[float] | None

    • target_orientation: list[float] | None

  • class KinematicChain

    • def init(self, stage: Any, robot_prim: Any, start_prim: Any = None, end_prim: Any = None)

    • def compute_fk(self, q: VecN) -> tuple[Transform, list[Transform]]

    • def compute_fk_and_jacobian(self, q: VecN) -> tuple[Transform, Mat]

    • def read_joint_states(self) -> dict[str, float]

    • def set_joint_attributes(self, joint_dict: dict[str, float])

    • def teleport(self, joint_dict: dict[str, float])

    • def teleport_anchored(self, joint_dict: dict[str, float], anchor_prim: Any = None)

  • class Transform

  • class Joint

  • class IKSolver

  • class IKSolverRegistry

  • class IKSolverLM

Functions#

  • def validate_robot_schema(robot_prim: Usd.Prim) -> bool

  • def apply_joint_state(stage: Usd.Stage, robot_prim: Usd.Prim, joint_dict: dict[str, float])

  • def apply_joint_state_anchored(stage: Usd.Stage, robot_prim: Usd.Prim, joint_dict: dict[str, float], anchor_prim: Usd.Prim)

  • def store_named_pose(stage: Usd.Stage, robot_prim: Usd.Prim, pose_name: str, pose_result: PoseResult) -> bool

  • def apply_pose_by_name(stage: Usd.Stage, robot_prim: Usd.Prim, pose_name: str) -> bool

  • def get_named_pose(stage: Usd.Stage, robot_prim: Usd.Prim, pose_name: str) -> PoseResult | None

  • def list_named_poses(stage: Usd.Stage, robot_prim: Usd.Prim) -> list[str]

  • def delete_named_pose(stage: Usd.Stage, robot_prim: Usd.Prim, pose_name: str) -> bool

  • def export_poses(stage: Usd.Stage, robot_prim: Usd.Prim, filepath: str) -> bool

  • def import_poses(stage: Usd.Stage, robot_prim: Usd.Prim, filepath: str) -> int

  • def pose_error(Td: Transform, T: Transform) -> VecN

  • def ik_lm(chain: KinematicChain, q0: VecN, target: Transform, lam: float = 1e-3, iters: int = 30, tol: float = 1e-6, w_rot: float = 1.0, w_pos: float = 1.0, max_step: float = 0.5, base_frame: Transform | None = None, null_space_bias: float = 0.05, joint_fixed: list[bool] | np.ndarray | None = None) -> VecN