adam.model.abc_factories#

Classes#

Pose

Pose class

Inertia

Inertia class

Limits

Limits class

Joint

Base Joint class. You need to fill at least these fields

Inertial

Inertial description

Link

Base Link class. You need to fill at least these fields

ModelFactory

The abstract class of the model factory.

Module Contents#

class adam.model.abc_factories.Pose[source]#

Pose class

xyz: list[source]#
rpy: list[source]#
class adam.model.abc_factories.Inertia[source]#

Inertia class

ixx: numpy.typing.ArrayLike[source]#
ixy: numpy.typing.ArrayLike[source]#
ixz: numpy.typing.ArrayLike[source]#
iyy: numpy.typing.ArrayLike[source]#
iyz: numpy.typing.ArrayLike[source]#
izz: numpy.typing.ArrayLike[source]#
class adam.model.abc_factories.Limits[source]#

Limits class

lower: numpy.typing.ArrayLike[source]#
upper: numpy.typing.ArrayLike[source]#
effort: numpy.typing.ArrayLike[source]#
velocity: numpy.typing.ArrayLike[source]#
class adam.model.abc_factories.Joint[source]#

Bases: abc.ABC

Base Joint class. You need to fill at least these fields

math: adam.core.spatial_math.SpatialMath[source]#
name: str[source]#
parent: str[source]#
child: str[source]#
type: str[source]#
axis: list[source]#
origin: Pose[source]#
limit: Limits[source]#
idx: int[source]#

Abstract base class for all joints.

abstractmethod spatial_transform(q: numpy.typing.ArrayLike) numpy.typing.ArrayLike[source]#
Parameters:

q (npt.ArrayLike) – joint motion

Returns:

spatial transform of the joint given q

Return type:

npt.ArrayLike

abstractmethod motion_subspace() numpy.typing.ArrayLike[source]#
Returns:

motion subspace of the joint

Return type:

npt.ArrayLike

abstractmethod homogeneous(q: numpy.typing.ArrayLike) numpy.typing.ArrayLike[source]#
Parameters:

q (npt.ArrayLike) – joint value

Returns:

homogeneous transform given the joint value

Return type:

npt.ArrayLike

class adam.model.abc_factories.Inertial[source]#

Inertial description

mass: numpy.typing.ArrayLike[source]#
inertia: Inertia[source]#
origin: Pose[source]#
static zero() Inertial[source]#

Returns an Inertial object with zero mass and inertia

set_mass(mass: numpy.typing.ArrayLike) Inertial[source]#

Set the mass of the inertial object

set_inertia(inertia: Inertia) Inertial[source]#

Set the inertia of the inertial object

set_origin(origin: Pose) Inertial[source]#

Set the origin of the inertial object

Bases: abc.ABC

Base Link class. You need to fill at least these fields

math: adam.core.spatial_math.SpatialMath[source]#
name: str[source]#
visuals: list[source]#
inertial: Inertial[source]#
collisions: list[source]#
abstractmethod spatial_inertia() numpy.typing.ArrayLike[source]#
Returns:

the 6x6 inertia matrix expressed at

the origin of the link (with rotation)

Return type:

npt.ArrayLike

abstractmethod homogeneous() numpy.typing.ArrayLike[source]#
Returns:

the homogeneous transform of the link

Return type:

npt.ArrayLike

class adam.model.abc_factories.ModelFactory[source]#

Bases: abc.ABC

The abstract class of the model factory.

The model factory is responsible for creating the model.

You need to implement all the methods in your concrete implementation

math: adam.core.spatial_math.SpatialMath[source]#
name: str[source]#

build the single link :returns: Link

abstractmethod build_joint() Joint[source]#

build the single joint

Returns:

Joint

Returns:

the list of the link

Return type:

list[Link]

abstractmethod get_frames() list[Link][source]#
Returns:

the list of the frames

Return type:

list[Link]

abstractmethod get_joints() list[Joint][source]#
Returns:

the list of the joints

Return type:

list[Joint]