placo::tools#

class placo.AxisesMask#
R_custom_world: ndarray#

Rotation from world to custom rotation (provided by the user)

R_local_world: ndarray#

Rotation from world to local frame (provided by task)

apply(M: ndarray) ndarray#

Apply the masking to a given matrix.

Parameters:

M (numpy.ndarray) – the matrix to be masked (3xn)

set_axises(axises: str, frame_: any) None#

Sets the axises to be masked (kept), for example “xy”.

Parameters:
  • axises (str) – axises to be kept

  • frame (any) – the reference frame where the masking is done (task, local or custom)

class placo.CubicSpline(angular: bool = False)#
acc(x: float) float#

Retrieve acceleration at a given time.

add_point(t: float, x: float, dx: float) None#

Adds a point in the spline.

Parameters:
  • t (float) – time

  • x (float) – value

  • dx (float) – speed

clear() None#

Clears the spline.

duration() float#

Spline duration.

pos(t: float) float#

Retrieve the position at a given time.

Parameters:

t (float) – time

vel(x: float) float#

Retrieve velocity at a given time.

class placo.CubicSpline3D#
acc(t: float) ndarray#

Returns the spline accleeration at time t.

Parameters:

t (float) – time

add_point(t: float, x: ndarray, dx: ndarray) None#

Adds a point.

Parameters:
  • t (float) – time

  • x (numpy.ndarray) – value (3D vector)

  • dx (numpy.ndarray) – velocity (3D vector)

clear() None#

Clears the spline.

duration() float#

Spline duration.

pos(t: float) ndarray#

Returns the spline value at time t.

Parameters:

t (float) – time

vel(t: float) ndarray#

Returns the spline velocity at time t.

Parameters:

t (float) – time

class placo.Polynom(coefficients: ndarray)#
coefficients: ndarray#

coefficients, from highest to lowest

static derivative_coefficient(self, degree: int, derivative: int) int#

Computes the coefficient in front of term of degree degree after derivative differentiations.

Parameters:
  • degree (int) – degree

  • derivative (int) – number of differentiations

value(x: float, derivative: int = 0) float#

Computes the value of polynom.

Parameters:
  • x (float) – abscissa

  • derivative (int) – differentiation order (0: p, 1: p’, 2: p’’ etc.)

class placo.Prioritized#
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: str#

Object name.

priority: str#

Priority [str]

class placo.Segment#
end: ndarray#
half_line_pass_through(s: Segment) bool#

Checks if the half-line starting from the start of this segment and going through its end pass through another segment.

Parameters:

s (Segment) – The other segment.

intersects(s: Segment) bool#

Checks if there is an intersection between this segment and another one, i.e. if the intersection of their guiding lines is a point of both segments.

Parameters:

s (Segment) – The other segment.

is_parallel(s: Segment, epsilon: float = 1e-05) bool#

Checks if this segment is parallel to another one.

Parameters:
  • s (Segment) – The segment to check parallelism with.

  • epsilon (float) – The sinus of the error angle accepted for 2 segments to be considered parallel.

is_point_aligned(point: ndarray, epsilon: float = 1e-05) bool#

Checks if a point is aligned with this segment by checking if the segment is parallel to the segment formed by the start of this segment and the point.

Parameters:
  • point (numpy.ndarray) – The point to check alignment with.

  • epsilon (float) – The sinus of the error angle accepted for 2 segments to be considered parallel.

is_point_in_segment(point: ndarray, epsilon: float = 1e-05) bool#

Checks if a point is in the segment.

Parameters:
  • point (numpy.ndarray) – The point to check.

  • epsilon (float) – To account for floating point errors.

is_segment_aligned(s: Segment, epsilon: float = 1e-05) bool#

Checks if this segment is aligned with another one.

Parameters:
  • s (Segment) – The segment to check alignment with.

  • epsilon (float) – To account for floating point errors.

line_pass_through(s: Segment) bool#

Checks if the guiding line of another segment pass through this segment, i.e. if the intersection between the guiding lines of this segment and another one is a point of this segment.

Parameters:

s (Segment) – The other segment.

lines_intersection(s: Segment) ndarray#

Return the intersection between the guiding lines of this segment and another one.

Parameters:

s (Segment) – The other segment.

norm() float#
start: ndarray#