Stable Poses

Discrete set of poses for which a triangular mesh may rest on an infinite planar worksurface when dropped with an initial orientation uniformly at random.

StablePose

class meshpy.StablePose(p, r, x0, face=None, stp_id=-1)

Bases: object

A representation of a mesh’s stable pose.

p

float – Probability associated with this stable pose.

r

numpy.ndarray of :obj`numpy.ndarray` of float – 3x3 rotation matrix that rotates the mesh into the stable pose from standardized coordinates.

x0

numpy.ndarray of float – 3D point in the mesh that is resting on the table.

face

numpy.ndarray – 3D vector of indices corresponding to vertices forming the resting face

stp_id

str – A string identifier for the stable pose

T_obj_table

RigidTransform – A RigidTransform representation of the pose’s rotation matrix.

__init__(p, r, x0, face=None, stp_id=-1)

Create a new stable pose object.

Parameters:
  • p (float) – Probability associated with this stable pose.
  • r (numpy.ndarray of :obj`numpy.ndarray` of float) – 3x3 rotation matrix that rotates the mesh into the stable pose from standardized coordinates.
  • x0 (numpy.ndarray of float) – 3D point in the mesh that is resting on the table.
  • face (numpy.ndarray) – 3D vector of indices corresponding to vertices forming the resting face
  • stp_id (str) – A string identifier for the stable pose
__eq__(other)

Check equivalence by rotation about the z axis