placo::dynamics#

class placo.AvoidSelfCollisionsDynamicsConstraint#
configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

self_collisions_margin: any#

None( (placo.AvoidSelfCollisionsDynamicsConstraint)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::AvoidSelfCollisionsConstraint {lvalue})

self_collisions_trigger: any#

None( (placo.AvoidSelfCollisionsDynamicsConstraint)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::AvoidSelfCollisionsConstraint {lvalue})

class placo.Contact#
active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

class placo.Contact6D(frame_task: DynamicsFrameTask, unilateral: bool)#

see DynamicsSolver::add_fixed_planar_contact and DynamicsSolver::add_unilateral_planar_contact

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

length: any#

None( (placo.Contact6D)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact6D {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

orientation_task() DynamicsOrientationTask#
position_task() DynamicsPositionTask#
unilateral: any#

None( (placo.Contact6D)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact6D {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

width: any#

None( (placo.Contact6D)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact6D {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

zmp() ndarray#

Returns the contact ZMP in the local frame.

class placo.DynamicsCoMTask(arg2: ndarray)#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

ddtarget_world: any#

None( (placo.DynamicsCoMTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::CoMTask {lvalue})

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

dtarget_world: any#

None( (placo.DynamicsCoMTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::CoMTask {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

mask: any#

None( (placo.DynamicsCoMTask)arg1) -> placo.AxisesMask :

C++ signature :

placo::tools::AxisesMask {lvalue} None(placo::dynamics::CoMTask {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

target_world: any#

None( (placo.DynamicsCoMTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::CoMTask {lvalue})

class placo.DynamicsConstraint#
configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

class placo.DynamicsFrameTask#
T_world_frame: any#

None( (placo.DynamicsFrameTask)arg1) -> object :

C++ signature :

Eigen::Transform<double, 3, 2, 0> None(placo::dynamics::FrameTask {lvalue})

configure(name: str, priority: str = 'soft', position_weight: float = 1.0, orientation_weight: float = 1.0) None#

Configures the frame task.

Parameters:
  • name (str) – task name

  • priority (str) – task priority

  • position_weight (float) – weight for the position task

  • orientation_weight (float) – weight for the orientation task

orientation() DynamicsOrientationTask#
position() DynamicsPositionTask#
class placo.DynamicsGearTask#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

add_gear(target: str, source: str, ratio: float) None#

Adds a gear constraint, you can add multiple source for the same target, they will be summed.

Parameters:
  • target (str) – target joint

  • source (str) – source joint

  • ratio (float) – ratio

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

set_gear(target: str, source: str, ratio: float) None#

Sets a gear constraint.

Parameters:
  • target (str) – target joint

  • source (str) – source joint

  • ratio (float) – ratio

class placo.DynamicsJointsTask#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

get_joint(joint: str) float#

Returns the current target position of a joint.

Parameters:

joint (str) – joint name

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

set_joint(joint: str, target: float, velocity: float = 0.0, acceleration: float = 0.0) None#

Sets the target for a given joint.

Parameters:
  • joint (str) – joint name

  • target (float) – target position

  • velocity (float) – target velocity

  • acceleration (float) – target acceleration

set_joints(arg2: dict) None#
set_joints_velocities(arg2: dict) None#
class placo.DynamicsOrientationTask(arg2: int, arg3: ndarray)#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

R_world_frame: any#

None( (placo.DynamicsOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 3, 0, 3, 3> {lvalue} None(placo::dynamics::OrientationTask {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

domega_world: any#

None( (placo.DynamicsOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::OrientationTask {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

mask: any#

None( (placo.DynamicsOrientationTask)arg1) -> placo.AxisesMask :

C++ signature :

placo::tools::AxisesMask {lvalue} None(placo::dynamics::OrientationTask {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

omega_world: any#

None( (placo.DynamicsOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::OrientationTask {lvalue})

priority: str#

Priority [str]

class placo.DynamicsPositionTask(arg2: int, arg3: ndarray)#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

ddtarget_world: any#

None( (placo.DynamicsPositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::PositionTask {lvalue})

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

dtarget_world: any#

None( (placo.DynamicsPositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::PositionTask {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

frame_index: any#

None( (placo.DynamicsPositionTask)arg1) -> int :

C++ signature :

unsigned long {lvalue} None(placo::dynamics::PositionTask {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

mask: any#

None( (placo.DynamicsPositionTask)arg1) -> placo.AxisesMask :

C++ signature :

placo::tools::AxisesMask {lvalue} None(placo::dynamics::PositionTask {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

target_world: any#

None( (placo.DynamicsPositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::PositionTask {lvalue})

class placo.DynamicsRelativeFrameTask#
T_a_b: any#

None( (placo.DynamicsRelativeFrameTask)arg1) -> object :

C++ signature :

Eigen::Transform<double, 3, 2, 0> None(placo::dynamics::RelativeFrameTask {lvalue})

configure(name: str, priority: str = 'soft', position_weight: float = 1.0, orientation_weight: float = 1.0) None#

Configures the relative frame task.

Parameters:
  • name (str) – task name

  • priority (str) – task priority

  • position_weight (float) – weight for the position task

  • orientation_weight (float) – weight for the orientation task

orientation() DynamicsRelativeOrientationTask#
position() DynamicsRelativePositionTask#
class placo.DynamicsRelativeOrientationTask(arg2: int, arg3: int, arg4: ndarray)#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

R_a_b: any#

None( (placo.DynamicsRelativeOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 3, 0, 3, 3> {lvalue} None(placo::dynamics::RelativeOrientationTask {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

domega_a_b: any#

None( (placo.DynamicsRelativeOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::RelativeOrientationTask {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

mask: any#

None( (placo.DynamicsRelativeOrientationTask)arg1) -> placo.AxisesMask :

C++ signature :

placo::tools::AxisesMask {lvalue} None(placo::dynamics::RelativeOrientationTask {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

omega_a_b: any#

None( (placo.DynamicsRelativeOrientationTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::RelativeOrientationTask {lvalue})

priority: str#

Priority [str]

class placo.DynamicsRelativePositionTask(arg2: int, arg3: int, arg4: ndarray)#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

ddtarget: any#

None( (placo.DynamicsRelativePositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::RelativePositionTask {lvalue})

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

dtarget: any#

None( (placo.DynamicsRelativePositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::RelativePositionTask {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

mask: any#

None( (placo.DynamicsRelativePositionTask)arg1) -> placo.AxisesMask :

C++ signature :

placo::tools::AxisesMask {lvalue} None(placo::dynamics::RelativePositionTask {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

target: any#

None( (placo.DynamicsRelativePositionTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 1, 0, 3, 1> {lvalue} None(placo::dynamics::RelativePositionTask {lvalue})

class placo.DynamicsSolver(robot: RobotWrapper)#
add_avoid_self_collisions_constraint() AvoidSelfCollisionsDynamicsConstraint#

Adds a constraint to the solver.

add_com_task(target_world: ndarray) DynamicsCoMTask#

Adds a center of mass (in the world) task.

Parameters:

target_world (numpy.ndarray) – target (in the world)

add_constraint(constraint: DynamicsConstraint) None#

Adds a custom constraint to the solver.

Parameters:

constraint (DynamicsConstraint) – constraint

add_external_wrench_contact(frame_index: any, reference: any = None) ExternalWrenchContact#

Adds an external wrench.

add_fixed_contact(frame_task: DynamicsFrameTask) Contact6D#

Adds a fixed contact.

Parameters:

frame_task (DynamicsFrameTask) – the associated frame task

add_frame_task(frame_name: str, T_world_frame: ndarray) DynamicsFrameTask#

Adds a frame task, which is a pseudo-task packaging position and orientation, resulting in a decoupled task.

Parameters:

T_world_frame (numpy.ndarray) – target transformation in the world

add_gear_task() DynamicsGearTask#

Adds a gear task, allowing replication of a joint. This can be used to implement timing belt, if coupled with an internal force.

add_joints_task() DynamicsJointsTask#

Adds a joints task.

add_line_contact(frame_task: DynamicsFrameTask) LineContact#

Adds a fixed line contact.

Parameters:

frame_task (DynamicsFrameTask) – associated frame task

add_orientation_task(frame_name: str, R_world_frame: ndarray) DynamicsOrientationTask#

Adds an orientation (in the world) task.

Parameters:

R_world_frame (numpy.ndarray) – target world orientation

add_planar_contact(frame_task: DynamicsFrameTask) Contact6D#

Adds a planar contact, which is unilateral in the sense of the local body z-axis.

Parameters:

frame_task (DynamicsFrameTask) – associated frame task

add_point_contact(position_task: DynamicsPositionTask) PointContact#

Adds a point contact.

Parameters:

position_task (DynamicsPositionTask) – the associated position task

add_position_task(frame_name: str, target_world: ndarray) DynamicsPositionTask#

Adds a position (in the world) task.

Parameters:

target_world (numpy.ndarray) – target position in the world

add_puppet_contact() PuppetContact#

Adds a puppet contact, this will add some free contact forces for the whole system, allowing it to be controlled freely.

add_relative_frame_task(frame_a_name: str, frame_b_name: str, T_a_b: ndarray) DynamicsRelativeFrameTask#

Adds a relative frame task, which is a pseudo-task packaging relative position and orientation tasks.

Parameters:

T_a_b (numpy.ndarray) – target transformation value for b frame in a

add_relative_orientation_task(frame_a_name: str, frame_b_name: str, R_a_b: ndarray) DynamicsRelativeOrientationTask#

Adds a relative orientation task.

Parameters:

R_a_b (numpy.ndarray) – target value for the orientation of b frame in a

add_relative_position_task(frame_a_name: str, frame_b_name: str, target_world: ndarray) DynamicsRelativePositionTask#

Adds a relative position task.

add_task(task: DynamicsTask) None#

Adds a custom task to the solver.

Parameters:

task (DynamicsTask) – task

add_task_contact(task: DynamicsTask) TaskContact#

Adds contact forces associated with any given task.

Parameters:

task (DynamicsTask) – task

add_torque_task() DynamicsTorqueTask#

Adds a torque task.

add_unilateral_line_contact(frame_task: DynamicsFrameTask) LineContact#

Adds a unilateral line contact, which is unilateral in the sense of the local body z-axis.

Parameters:

frame_task (DynamicsFrameTask) – associated frame task

add_unilateral_point_contact(position_task: DynamicsPositionTask) PointContact#

Adds an unilateral point contact, in the sense of the world z-axis.

Parameters:

position_task (DynamicsPositionTask) – the associated position task

clear() None#

Clears the internal tasks.

count_contacts() int#
damping: any#

None( (placo.DynamicsSolver)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::DynamicsSolver {lvalue})

dt: any#

None( (placo.DynamicsSolver)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::DynamicsSolver {lvalue})

dump_status() None#

Shows the tasks status.

enable_joint_limits(enable: bool) None#

Enables/disables joint limits inequalities.

enable_torque_limits(enable: bool) None#

Enables/disables torque limits inequalities.

enable_velocity_limits(enable: bool) None#

Enables/disables joint velocity inequalities.

enable_velocity_vs_torque_limits(enable: bool) None#

Enables the velocity vs torque inequalities.

extra_force: any#

None( (placo.DynamicsSolver)arg1) -> numpy.ndarray :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> None(placo::dynamics::DynamicsSolver {lvalue})

get_contact(arg2: int) Contact#
gravity_only: any#

None( (placo.DynamicsSolver)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::DynamicsSolver {lvalue})

mask_fbase(masked: bool) None#

Decides if the floating base should be masked.

problem: any#

None( (placo.DynamicsSolver)arg1) -> object :

C++ signature :

placo::problem::Problem {lvalue} None(placo::dynamics::DynamicsSolver {lvalue})

remove_constraint(constraint: DynamicsConstraint) None#

Removes a constraint from the solver.

Parameters:

constraint (DynamicsConstraint) – constraint

remove_contact(contact: Contact) None#

Removes a contact from the solver.

remove_task(task: DynamicsTask) None#

Removes a task from the solver.

Parameters:

task (DynamicsTask) – task

robot: any#

None( (placo.DynamicsSolver)arg1) -> object :

C++ signature :

placo::model::RobotWrapper None(placo::dynamics::DynamicsSolver)

set_kd(kd: float) None#

Set the kp for all tasks.

set_kp(kp: float) None#

Set the kp for all tasks.

set_qdd_safe(joint: str, qdd: float) None#

Sets the “safe” Qdd acceptable for a given joint (used by joint limits)

set_torque_limit(joint: str, limit: float) None#

Sets the allowed torque limit by the solver for a given joint. This will not affect the robot’s model effort limit. When computing the velocity vs torque limit, the robot’s model effort will still be used. You can see this limit as a continuous limit allowable for the robot, while the robot’s model limit is the maximum possible torque.

solve(integrate: bool = False) DynamicsSolverResult#
torque_cost: any#

None( (placo.DynamicsSolver)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::DynamicsSolver {lvalue})

class placo.DynamicsSolverResult#
qdd: any#

None( (placo.DynamicsSolverResult)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::DynamicsSolver::Result {lvalue})

success: any#

None( (placo.DynamicsSolverResult)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::DynamicsSolver::Result {lvalue})

tau: any#

None( (placo.DynamicsSolverResult)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::DynamicsSolver::Result {lvalue})

tau_contacts: any#

None( (placo.DynamicsSolverResult)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::DynamicsSolver::Result {lvalue})

tau_dict(arg2: RobotWrapper) dict#
class placo.DynamicsTask#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

class placo.DynamicsTorqueTask#
A: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

b: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

configure(name: str, priority: str = 'soft', weight: float = 1.0) None#

Configures the object.

Parameters:
  • name (str) – task name

  • priority (str) – task priority (hard, soft or scaled)

  • weight (float) – task weight

derror: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

error: any#

None( (placo.DynamicsTask)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, -1, 0, -1, -1> {lvalue} None(placo::dynamics::Task {lvalue})

kd: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

kp: any#

None( (placo.DynamicsTask)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Task {lvalue})

name: any#

None( (placo.Prioritized)arg1) -> str :

C++ signature :

std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > {lvalue} None(placo::tools::Prioritized {lvalue})

priority: str#

Priority [str]

reset_torque(joint: str) None#

Removes a joint from this task.

Parameters:

joint (str) – joint namle

set_torque(joint: str, torque: float, kp: float = 0.0, kd: float = 0.0) None#

Sets the target for a given joint.

Parameters:
  • joint (str) – joint name

  • torque (float) – target torque

  • kp (float) – proportional gain (optional)

  • kd (float) – derivative gain (optional)

class placo.ExternalWrenchContact(frame_index: any, reference: any = None)#

see DynamicsSolver::add_external_wrench_contact

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

frame_index: any#

None( (placo.ExternalWrenchContact)arg1) -> int :

C++ signature :

unsigned long {lvalue} None(placo::dynamics::ExternalWrenchContact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

w_ext: any#

None( (placo.ExternalWrenchContact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::ExternalWrenchContact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

class placo.LineContact(frame_task: DynamicsFrameTask, unilateral: bool)#

see DynamicsSolver::add_fixed_planar_contact and DynamicsSolver::add_unilateral_planar_contact

R_world_surface: any#

None( (placo.PointContact)arg1) -> numpy.ndarray :

C++ signature :

Eigen::Matrix<double, 3, 3, 0, 3, 3> None(placo::dynamics::PointContact {lvalue})

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

length: any#

None( (placo.LineContact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::LineContact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

orientation_task() DynamicsOrientationTask#
position_task() DynamicsPositionTask#
unilateral: any#

None( (placo.LineContact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::LineContact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

zmp() ndarray#

Returns the contact ZMP in the local frame.

class placo.PointContact(position_task: DynamicsPositionTask, unilateral: bool)#

see DynamicsSolver::add_point_contact and DynamicsSolver::add_unilateral_point_contact

R_world_surface: any#

None( (placo.PointContact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, 3, 3, 0, 3, 3> {lvalue} None(placo::dynamics::PointContact {lvalue})

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

position_task() DynamicsPositionTask#
unilateral: any#

None( (placo.PointContact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::PointContact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

class placo.PuppetContact#

see DynamicsSolver::add_puppet_contact

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})

class placo.TaskContact(task: DynamicsTask)#

see DynamicsSolver::add_task_contact

active: any#

None( (placo.Contact)arg1) -> bool :

C++ signature :

bool {lvalue} None(placo::dynamics::Contact {lvalue})

mu: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_forces: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_moments: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

weight_tangentials: any#

None( (placo.Contact)arg1) -> float :

C++ signature :

double {lvalue} None(placo::dynamics::Contact {lvalue})

wrench: any#

None( (placo.Contact)arg1) -> object :

C++ signature :

Eigen::Matrix<double, -1, 1, 0, -1, 1> {lvalue} None(placo::dynamics::Contact {lvalue})