habitat_sim.physics.ManagedArticulatedObject class

Methods

def add_joint_forces(self, forces: typing.List[float]) -> None
Add joint forces/torques (indexed by DoF id) to this Articulated Object.
Apply the given force to this Articulated Object’s link specified by the given link_id
def clamp_joint_limits(self, /) -> None
Clamp this Articulated Object’s current pose to specified joint limits.
def clear_joint_states(self, /) -> None
Clear this Articulated Object’s joint state by zeroing forces, torques, positions and velocities. Does not change root state.
def contact_test(self, /) -> bool
Discrete collision check for contact between an object and the collision world.
def create_all_motors(self, settings: JointMotorSettings) -> typing.Dict[int, int]
Make motors for all of this Articulated Object’s links which support motors (Revolute, Prismatic, Spherical).
def create_joint_motor(self, link: int, settings: JointMotorSettings) -> int
Create a joint motor for the specified DOF on this Articulated Object using the provided JointMotorSettings
def get_joint_motor_settings(self, motor_id: int) -> JointMotorSettings
Get the JointMotorSettings for the motor with the given motor_id in this Articulated Object.
def get_joint_motor_torques(self, fixedTimeStep: float) -> typing.List[float]
Get Articulated Object’s array of joint torques given the current physics time step fixedTimeStep
Get the index of this Articulated Object’s link’s first DoF in the global DoF array. Link specified by the given link_id.
Get the link friction from this Articulated Object’s link specified by the provided link_id
Get this Articulated Object’s articulated link id specified by the passed link_name.
Get a list of this Articulated Object’s individual link ids.
Get the name of the parent joint for this Articulated Object’s link specified by the given link_id.
Get the index of this Articulated Object’s link’s first position in the global joint positions array. Link specified by the given link_id.
Get the type of the parent joint for this Articulated Object’s link specified by the given link_id.
Get the name of this Articulated Object’s link specified by the given link_id.
Get the number of DoFs for the parent joint of this Articulated Object’s link specified by the given link_id.
Get the number of position variables for the parent joint of this Articulated Object’s link specified by the given link_id.
Get the scene node for this Articulated Object’s articulated link specified by the passed link_id. Use link_id==-1 to get the base link.
Get a list of the visual scene nodes from this Articulated Object’s articulated link specified by the passed link_id. Use link_id==-1 to get the base link.
def marker_points_global(self, /) -> typing.Dict[str, typing.Dict[str, typing.Dict[str, typing.List[magnum.Vector3]]]]
A nested dict structure holding all the markerpoints defined for this Articulated Object transformed to world space.
def marker_points_local(self, /) -> typing.Dict[str, typing.Dict[str, typing.Dict[str, typing.List[magnum.Vector3]]]]
A nested dict structure holding all the markerpoints defined for this Articulated Object in object-local space. Same result as <obj>.marker_sets.get_all_marker_points.
def override_collision_group(self, group: CollisionGroups) -> None
Manually set the collision group for an object. Setting a new MotionType will override this change.
def remove_joint_motor(self, motor_id: int) -> None
Remove the joint motor specified by the given motor_id from this Articulated Object.
def rotate(self, angle_in_rad: magnum.Rad, norm_axis: magnum.Vector3) -> None
Rotate this Articulated Object by passed angle_in_rad around passed 3-element normalized norm_axis.
def rotate_local(self, angle_in_rad: magnum.Rad, norm_axis: magnum.Vector3) -> None
Rotate this Articulated Object by passed angle_in_rad around passed 3-element normalized norm_axis in the local frame.
def rotate_x(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the x-axis in global frame.
def rotate_x_local(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the x-axis in local frame.
def rotate_y(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the y-axis in global frame.
def rotate_y_local(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the y-axis in local frame.
def rotate_z(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the z-axis in global frame.
def rotate_z_local(self, angle_in_rad: magnum.Rad) -> None
Rotate this Articulated Object by passed angle_in_rad around the z-axis in local frame.
def set_light_setup(self, light_setup_key: str) -> None
Set this Articulated Object’s light setup using passed light_setup_key.
Set the link friction for this Articulated Object’s link specified by the provided link_id to the provided friction value.
def transform_local_pts_to_world(self, ls_points: typing.List[magnum.Vector3], link_id: int) -> typing.List[magnum.Vector3]
Given the list of passed points in this object’s local space, return those points transformed to world space. The link_id is for articulated objects and is ignored for rigid objects and stages
def transform_world_pts_to_local(self, ws_points: typing.List[magnum.Vector3], link_id: int) -> typing.List[magnum.Vector3]
Given the list of passed points in world space, return those points transformed to this object’s local space. The link_id is for articulated objects and is ignored for rigid objects and stages
def translate(self, vector: magnum.Vector3) -> None
Move this Articulated Object using passed translation vector
def update_all_motor_targets(self, state_targets: typing.List[float], velocities: bool = False) -> None
Update all motors targets for this Articulated Object’s joints which support motors (Revolute, Prismatic, Spherical) from a state array. By default, state is interpreted as position targets unless velocities is specified. Expected input is the full length position or velocity array for this object. This function will safely skip states for joints which don’t support JointMotors.
def update_joint_motor(self, motor_id: int, settings: JointMotorSettings) -> None
Update the JointMotorSettings for the motor on this Articulated Object specified by the provided motor_id.

Properties

aabb: magnum.Range3D get
Return the local axis-aligned bounding box (aabb) of this Articulated Object object. If the object is articulated, query could trigger aabb recomputation when state has been changed since the last query.
auto_clamp_joint_limits: bool get set
Get or set whether this Articulated Object’s joints should be autoclamped to specified joint limits.
awake: bool get set
Get or set whether this Articulated Object is actively being simulated, or is sleeping.
can_sleep: bool get
Whether or not this Articulated Object can be put to sleep
creation_attributes: attributes.ArticulatedObjectAttributes get
Get a copy of the template attributes describing the initial state of this Articulated Object. These attributes have the combination of data from the original Articulated Object attributes and specific instance attributes used to create this Articulated Object. Note : values will reflect both sources, and should not be saved to disk as Articulated Object attributes, since instance attribute modifications will still occur on subsequent loads.
csv_info: str get
Comma-separated informational string describing this Articulated Object.
existing_joint_motor_ids: typing.Dict[int, int] get
A dictionary mapping all of this Articulated Object’s joint motor ids to their respective links/joints.
global_scale: float get
The uniform global scaling applied to this object during import.
handle: str get
Name of this Articulated Object
is_alive: bool get
Whether this Articulated Object still exists and is still valid.
is_articulated: bool get
Return whether or not this Articulated Object object is an articulated object or part of one
joint_forces: typing.List[float] get set
Get or set the joint forces/torques (indexed by DoF id) currently acting on this Articulated Object.
joint_position_limits: typing.Tuple[typing.List[float], typing.List[float]] get
Get a tuple of lists of this Articulated Object’s joint limits (lower, upper).
joint_positions: typing.List[float] get set
Get or set this Articulated Object’s joint positions. For link to index mapping see get_link_joint_pos_offset and get_link_num_joint_pos.
joint_velocities: typing.List[float] get set
Get or set this Articulated Object’s joint velocities, indexed by DOF id.
Get a dict mapping local link ids to Habitat object ids for this Articulated Object’s link ids.
Get a dict mapping Habitat object ids to this Articulated Object’s link ids.
marker_sets: attributes.MarkerSets get
The MarkerSets defined for this Articulated Object.
motion_type: MotionType get set
Get or set the MotionType of this Articulated Object. Changing MotionType will override any custom collision group.
Get the number of links this Articulated Object holds.
object_id: int get
System-generated ID for this Articulated Object construct. Will be unique among Articulated Objects.
rigid_state: habitat_sim._ext.habitat_sim_bindings.RigidState get set
Get or set this Articulated Object’s transformation as a Rigid State (i.e. vector, quaternion). If modified, sim state will be updated.
root_angular_velocity: magnum.Vector3 get set
The angular velocity (omega) of the Articulated Object’s root.
root_linear_velocity: magnum.Vector3 get set
The linear velocity of the Articulated Object’s root.
root_scene_node: scene.SceneNode get
Get a reference to the root SceneNode of this Articulated Object’s SceneGraph subtree.
rotation: magnum.Quaternion get set
Get or set the rotation quaternion of this Articulated Object’s root SceneNode. If modified, sim state will be updated.
template_class: str get
Class name of this Articulated Object
transformation: magnum.Matrix4 get set
Get or set the transformation matrix of this Articulated Object’s root SceneNode. If modified, sim state will be updated.
translation: magnum.Vector3 get set
Get or set the translation vector of this Articulated Object’s root SceneNode. If modified, sim state will be updated.
user_attributes: habitat_sim._ext.habitat_sim_bindings.Configuration get
User-defined Articulated Object attributes. These are not used internally by Habitat in any capacity, but are available for a user to consume how they wish.
visual_scene_nodes: typing.List[scene.SceneNode] get
Get a list of references to the SceneNodes with this Articulated Object’s render assets attached. Use this to manipulate this Articulated Object’s visual state. Changes to these nodes will not affect physics simulation.