pybotics.optimization module

Optimization module.

class pybotics.optimization.OptimizationHandler(robot: pybotics.robot.Robot, kinematic_chain_mask: MutableSequence[bool] = False, tool_mask: MutableSequence[bool] = False, world_mask: MutableSequence[bool] = False)[source]

Bases: object

Handler for optimization tasks.

apply_optimization_vector(vector: numpy.ndarray[Any, numpy.dtype[numpy.float64]]) → None[source]

Apply vector.

generate_optimization_vector() → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Generate vector.

pybotics.optimization.compute_absolute_error(q: numpy.ndarray[Any, numpy.dtype[numpy.float64]], position: numpy.ndarray[Any, numpy.dtype[numpy.float64]], robot: pybotics.robot.Robot) → float[source]

Compute the absolute error of a given position.

pybotics.optimization.compute_absolute_errors(qs: numpy.ndarray[Any, numpy.dtype[numpy.float64]], positions: numpy.ndarray[Any, numpy.dtype[numpy.float64]], robot: pybotics.robot.Robot) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Compute the absolute errors of a given set of positions.

Parameters:
  • qs – Array of joints, shape=(n-poses, n-dof) [rad]
  • positions – Array of Cartesian positions, shape=(n-poses, 3)
  • robot – Robot model
pybotics.optimization.compute_relative_error(q_a: numpy.ndarray[Any, numpy.dtype[numpy.float64]], q_b: numpy.ndarray[Any, numpy.dtype[numpy.float64]], distance: float, robot: pybotics.robot.Robot) → float[source]

Compute the relative error of a given position combination.

pybotics.optimization.compute_relative_errors(qs_a: numpy.ndarray[Any, numpy.dtype[numpy.float64]], qs_b: numpy.ndarray[Any, numpy.dtype[numpy.float64]], distances: numpy.ndarray[Any, numpy.dtype[numpy.float64]], robot: pybotics.robot.Robot) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Compute the relative errors of a given set of position combinations.

pybotics.optimization.optimize_accuracy(optimization_vector: numpy.ndarray[Any, numpy.dtype[numpy.float64]], handler: pybotics.optimization.OptimizationHandler, qs: numpy.ndarray[Any, numpy.dtype[numpy.float64]], positions: numpy.ndarray[Any, numpy.dtype[numpy.float64]]) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Fitness function for accuracy optimization.