|
MoveIt Pro API
Core Behaviors for MoveIt Pro
|
Options passed to the Path Inverse Kinematics solver. More...
#include <path_ik.hpp>
Public Member Functions | |
| PathIKOptions & | setBlendingRadius (double blending_radius) |
| PathIKOptions & | setTipConstraint (TipConstraint tip_constraint) |
| PathIKOptions & | setTipOffset (const Eigen::Isometry3d &tip_offset) |
| PathIKOptions & | setJointLimitAvoidanceParameters (double activation_fraction, double gain) |
| PathIKOptions & | setMaxOptimizerIterations (int max_iterations) |
| PathIKOptions & | setTrackPathOrientationNullspaceTask (double gain) |
| PathIKOptions & | setMaxAllowedPathDeviation (double translation, double rotation) |
| Sets the maximum allowed path deviation tolerances in Cartesian space for the primary task (constraint). | |
| PathIKOptions & | setNullspaceOverrideFunction (const NullspaceOverrideFunction &function) |
| Set a nullspace override function. | |
| PathIKOptions & | setJacobianInverseDamping (double damping) |
| Set the Jacobian inverse damping factor used for solving the path inverse kinematics. | |
Public Attributes | |
| double | blending_radius = kDefaultBlendingRadius |
| TipConstraint | tip_constraint = TipConstraint::kPositionOnly |
| Eigen::Isometry3d | tip_offset = Eigen::Isometry3d::Identity() |
| double | joint_limit_cost_activation_fraction = kDefaultJointLimitCostActivationFraction |
| double | joint_limit_cost_gain = kDefaultJointLimitCostGain |
| int | max_optimizer_iterations = kDefaultMaxOptimizerIterations |
| double | track_path_orientation_gain = 0.0 |
| double | max_allowed_path_deviation_translation = kDefaultMaxAllowedPathDeviationTranslation |
| double | max_allowed_path_deviation_rotation = kDefaultMaxAllowedPathDeviationRotation |
| NullspaceOverrideFunction | custom_nullspace_task |
| double | jacobian_inverse_damping = kDefaultJacobianInverseDamping |
Static Public Attributes | |
| static constexpr double | kDefaultBlendingRadius = 0.001 |
| static constexpr TipConstraint | kDefaultTipConstraint = TipConstraint::kPositionOnly |
| static constexpr double | kDefaultJointLimitCostActivationFraction = 0.05 |
| static constexpr double | kDefaultJointLimitCostGain = 0.4 |
| static constexpr int | kDefaultMaxOptimizerIterations = 1 |
| static constexpr double | kDefaultMaxAllowedPathDeviationTranslation = 0.001 |
| static constexpr double | kDefaultMaxAllowedPathDeviationRotation = 0.001 |
| static constexpr double | kDefaultJacobianInverseDamping = 0.001 |
Options passed to the Path Inverse Kinematics solver.
Use method chaining for in-line construction and modification, e.g: pathIK(..., PathIKOptions().setBlendingRadius(0.1), ...);
|
inline |
|
inline |
Set the Jacobian inverse damping factor used for solving the path inverse kinematics.
A higher damping factor will make the solver more robust to singularities, but may result in slower convergence. A lower damping factor will make the solver converge faster, but may cause it to fail to find a solution near singularities. The default value is 0.001, which should be a good balance for most cases.
|
inline |
|
inline |
Sets the maximum allowed path deviation tolerances in Cartesian space for the primary task (constraint).
These tolerances are checked at every point along the dense interpolated path, including the destination. After each IK iteration at each waypoint, the solver computes the Cartesian error between the solved tip pose and the desired reference pose. If either component exceeds its tolerance, the solver immediately fails and returns the partial path solved so far.
The solver does NOT automatically relax tolerances. It is fail-fast: it either meets the tolerance at every point or returns an error. To allow more deviation, increase these values explicitly.
If tip_constraint is kPositionAndOrientation, both translation and rotation tolerances are enforced. If tip_constraint is kPositionOnly, only the translation tolerance is enforced (rotation is unconstrained, and can be potentially controlled by a nullspace task, see setTrackPathOrientationNullspaceTask).
| translation | Maximum allowed translation deviation in meters. Default: 0.001 m (1 mm). |
| rotation | Maximum allowed rotation deviation in radians. Default: 0.001 rad (~0.057 degrees). |
|
inline |
|
inline |
Set a nullspace override function.
This allows users to inject custom nullspace costs into the path IK solver. The function is called after the built-in nullspace tasks (joint limit avoidance, orientation tracking) have been computed, and can modify or replace the nullspace component. It takes the current nullspace component and the current joint values as input, and should return the modified nullspace component.
Example usage:
|
inline |
|
inline |
|
inline |
| double cartesian_planning::PathIKOptions::blending_radius = kDefaultBlendingRadius |
| NullspaceOverrideFunction cartesian_planning::PathIKOptions::custom_nullspace_task |
| double cartesian_planning::PathIKOptions::jacobian_inverse_damping = kDefaultJacobianInverseDamping |
| double cartesian_planning::PathIKOptions::joint_limit_cost_activation_fraction = kDefaultJointLimitCostActivationFraction |
| double cartesian_planning::PathIKOptions::joint_limit_cost_gain = kDefaultJointLimitCostGain |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
| double cartesian_planning::PathIKOptions::max_allowed_path_deviation_rotation = kDefaultMaxAllowedPathDeviationRotation |
| double cartesian_planning::PathIKOptions::max_allowed_path_deviation_translation = kDefaultMaxAllowedPathDeviationTranslation |
| int cartesian_planning::PathIKOptions::max_optimizer_iterations = kDefaultMaxOptimizerIterations |
| TipConstraint cartesian_planning::PathIKOptions::tip_constraint = TipConstraint::kPositionOnly |
| Eigen::Isometry3d cartesian_planning::PathIKOptions::tip_offset = Eigen::Isometry3d::Identity() |
| double cartesian_planning::PathIKOptions::track_path_orientation_gain = 0.0 |