Inverse Kinematics Designer
Design inverse kinematics solvers, configurations, and waypoints
Description
The Inverse Kinematics Designer enables you to design an inverse kinematics solver for a URDF robot model. You can adjust the inverse kinematics solver and add constraints to achieve the desired behavior. Using this app you can:
Import URDF robot models from URDF files or the MATLAB Workspace.
Adjust inverse kinematics solvers and constraints.
Create joint configurations and export waypoints.
Export solver settings, constraints, and joint configurations to the MATLAB® workspace.
Open the Inverse Kinematics Designer App
MATLAB Toolstrip: On the Apps tab, under Robotics And Autonomous Systems, click Inverse Kinematics Designer
.
MATLAB command prompt: Enter
inverseKinematicsDesigner
.
Examples
Related Examples
Parameters
Inverse Kinematics
— Manage session, check collisions, import and export
solver/constraints/configurations
tab
Use the Inverse Kinematics tab to manage session, add and edit constraints, check collisions for configurations, and import and export solvers, constraints, and configurations. The parameters and buttons in this tab are usable only after a session has been created or loaded.
Parameters/Buttons | Description |
---|---|
New Session | Click New Session to load a specified robot from the workspace or from the lists of robots in the robot library using the New Session dialog box. |
Open Session | Click Open Session to load a saved session MAT-file. |
Save Session | Click Save Session to save the current session as a MAT-file. |
Import |
|
Add Collision Object | Click Add Collision Object to add collision objects to the scene from the workspace using the Add Collision Object dialog box. |
Add Constraint | Click Add Constraint to add a constraint to the inverse kinematics solver using the Constraint tab. |
Edit Constraint | Click Edit Constraint to edit the selected solver constraint using the Constraint tab. |
Refresh Solver | Click Refresh Solver to run the inverse kinematics solver using the current configuration as the initial guess. |
Solver Settings | Click Solver Settings to edit the inverse kinematics solver settings using the Solver tab. |
Report Status | Click Report Status to view the status of the most recent inverse kinematics solver solution using the Solution Report dialog box. |
Marker Pose Constraint | Click Marker Pose Constraint to edit the Marker Pose Target from the Constraint tab. |
Marker Body | Select a body from the list of bodies in the loaded robot model to be constrained by the marker pose target constraint. By default, Marker Body is set to the last body in the robot model. |
Check Collisions |
|
Export |
|
Solver
— Solver settings
tab
These parameters specify settings for the inverse kinematics solver. To access these parameters, open the Solver tab. To open the Solver tab, on the Inverse Kinematics tab, select Solver Settings.
Parameters | Description |
---|---|
Solver Algorithm | Inverse kinematics solver algorithm, specified as one of these options:
For more information on how to select a solver, see Choose an Algorithm. |
Max Iterations | Maximum number of iterations for the inverse kinematics solver to run,
specified as a positive integer. Default is 50 . |
Max Time | Maximum time that the inverse kinematics solver can search for a
solution, specified as a positive scalar in seconds. Default is
|
Enforce Joint Limits | Select to set the inverse kinematics solver to enforce joint limits
from the robot model. Default is For more details about enforcing joint limits, see Solver Parameters. |
Allow Random Restart | Select to allow the inverse kinematics solver to restart with a
different randomly generated initial guess if the algorithm approaches a
solution that does not satisfy the constraints. Default is
For more details about enforcing joint limits, see Solver Parameters. |
Click Reset Settings > Reset Settings and Reset Settings > Reset To Default Settings to reset the inverse kinematics solver settings to the last stored value and default settings respectively.
After editing the solver settings, click Apply to Solver to apply changes to the current inverse kinematics solver.
Constraint
— Add or edit constraint
tab
Click Add Constraint in the Inverse Kinematics tab to open the Constraint tab to create a constraint. Set the name of the constraint and select the desired constraint. The Constraint tab also contains an additional section containing parameters for the corresponding selected constraints:
Pose Constraint — Constraint that assigns a target pose to a body. See the corresponding tab section, Pose Constraint, and MATLAB object,
constraintPoseTarget
, for more information.Cartesian Bounds Constraint — Constraint that defines a bounded target region for an end effector pose. See the corresponding tab section, Cartesian Bounds Constraint, and MATLAB object,
constraintCartesianBounds
, for more information.Aiming Constraint — Constraint that assigns custom joint limits. See the corresponding tab section, Aiming Constraint, and MATLAB object,
constraintAiming
, for more information.Joint Bounds Constraint — Constraint that assigns custom joint limits. See the corresponding tab section, Joint Bounds Constraint, and MATLAB object,
constraintJointBounds
, for more information.
After setting the constraint parameters, click Apply to save your changes and Close Constraint. All unsaved changes will be lost.
Pose Constraint
— Pose constraint settings
tab section
Click Pose Constraint in the Constraint tab to open the Pose Constraint tab section to create a constraint.
Parameter | Description |
---|---|
End Effector Body | End effector body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the last body in the loaded robot model. |
Reference Body | Reference body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the first body in the loaded robot model. |
X | Target x position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Y | Target y position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Z | Target z position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Euler X | Target Euler x rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
Euler Y | Target Euler y rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
Euler Z | Target Euler z rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
Position Tolerance | Tolerance for the end effector position, specified as a nonnegative scalar
in meters. Default is 0.01 . |
Position Weight | Weight for the end effector position, specified as a nonnegative scalar.
Default is 1 . |
Orientation Tolerance | Tolerance for the end effector orientation, specified as a nonnegative
scalar in degrees. Default is 1 . |
Orientation Weight | Weight for the end effector orientation, specified as a nonnegative scalar.
Default is 1 . |
Cartesian Bounds Constraint
— Cartesian bounds constraint settings
tab section
Click Cartesian Bounds Constraint in the Constraint tab to open the Cartesian Bounds Constraint tab section to create a constraint.
Parameter | Description |
---|---|
End Effector Body | End effector body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the last body in the loaded robot model. |
Reference Body | Reference body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the first body in the loaded robot model. |
X | Target x position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Y | Target y position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Z | Target z position of the end effector in the reference
frame of the Reference Body, specified as a scalar in
meters. Default is 0 . |
Euler X | Target Euler x rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
Euler Y | Target Euler y rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
Euler Z | Target Euler z rotation of the end effector body in the
reference frame of the Reference Body, specified as a
scalar in degrees. Default is 0 . |
X Min | Minimum x bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is -0.5 . |
Y Min | Minimum y bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is -0.5 |
Z Min | Minimum z bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is -0.5 |
X Max | Maximum x bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is 0.5 |
Y Max | Maximum y bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is 0.5 |
Z Max | Maximum z bound on end effector position relative to the
reference frame of the Reference Body, specified as a
scalar in meters. Default is 0.5 |
X Weight | Weight of the constraint on x bound, specified as a
scalar. Default is 1 . |
Y Weight | Weight of the constraint on y bound, specified as a
scalar. Default is 1 . |
Z Weight | Weight of the constraint on z bound, specified as a
scalar. Default is 1 . |
Aiming Constraint
— Aiming constraint settings
tab section
Click Aiming Constraint in the Constraint tab to open the Aiming Constraint tab section to create a constraint.
Parameter | Description |
---|---|
End Effector Body | End effector body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the last body in the loaded robot model. |
Reference Body | Reference body, specified as a selection from a list of bodies in the loaded robot model. Default is set to the first body in the loaded robot model. |
X Target | Target x position relative to Reference
Body, specified as a scalar in meters. Default is
0 . |
Y Target | Target y position relative to Reference
Body, specified as a scalar in meters. Default is
0 . |
Z Target | Target z position relative to Reference
Body, specified as a scalar in meters. Default is
0 . |
Angular Tolerance | Maximum allowed angular tolerance, specified as a nonnegative scalar in
degrees. Default is 1 . |
Constraint Weight | Weight of constraint, specified as a scalar. Default is
1 . |
Joint Bounds Constraint
— Joint bounds constraint settings
tab section
Click Joint Bounds Constraint in the Constraint tab to open the Joint Bounds Constraint tab section to create a constraint.
Parameter | Description |
---|---|
Upper Joint Limits | Upper joint limit angles, specified as a N-element row
vector of angles in degrees, where N is the number of moving
joints in the robot model. Default is 180*ones(1,N) . |
Lower Joint Limits | Lower joint limit angles, specified as a N-element row
vector of angles in degrees, where N is the number of moving
joints in the robot model. Default is -180*ones(1,N) . |
Joint Limit Weights | Joint limit weights, specified as a N-element row vector
where N is the number of moving joints in the robot model.
Default is ones(1,N) . |
New Session
— Start new session and select robot model
dialog box
Start new session and select robot model as a rigidBodyTree
either from the Rigid body tree list or
the MATLAB workspace. To import a robot into the workspace, use either the loadrobot
function or importrobot
function.
For more information about how to create a rigid body tree, see Build Basic Rigid Body Tree Models.
For a full list of all the rigid body trees included with the Robotics System Toolbox™, see the robotname
input of loadrobot
.
Add Collision Object
— Add collision meshes from workspace
dialog box
Add collision meshes from the MATLAB workspace, specified as collisionBox
, collisionCylinder
, collisionSphere
, or collisionMesh
objects. The Add Collision Object dialog
box is accessible by clicking Add Collision Object in the
Inverse Kinematics tab.
Import Inverse Kinematics Solver
— Import inverse kinematics solver
dialog box
Import an inverse kinematics solver from the MATLAB workspace, specified as either a generalizedInverseKinematics
, or inverseKinematics
object. Solvers in the Workspace appear in the
Available solvers table. Select a solver and click
Import to import the solver into the Inverse Kinematics
Designer app. If a solver from the Workspace does not appear in the
Available solvers table, click
Refresh.
Import Joint Configurations
— Import joint configurations
dialog box
Import joint configurations from the MATLAB workspace, specified as an M-by-N matrix of doubles where M is the number of configurations, and N is the number of moveable joints in the robot. Configuration data in the Workspace appear in the Configurations in the workspace table. Select configuration data and click Import to import the configuration data into the Inverse Kinematics Designer app.
If a configuration in the Workspace does not appear in the Configurations in the workspace table, click Refresh.
Import Inverse Kinematics Constraints
— Import inverse kinematics constraints
dialog box
Import inverse kinematics constraints from the Workspace, specified as a constraintAiming
, constraintPoseTarget
, constraintCartesianBounds
, or constraintJointBounds
object. Constraint objects in the Workspace appear in
the Configurations in the workspace table. Select the desired
constraint objects and click Import to import the constraints
into the Inverse Kinematics Designer app.
If a configuration in the Workspace does not appear in the Constraint objects in the workspace table, click Refresh.
Export Solver and Constraints
— Solver and constraint export settings
dialog box
Change solver and constraint export settings, and export the solver and constraints to the MATLAB. To access these parameters, on the Inverse Kinematics tab, select Export > Solver and Constraints. When all settings and selections are complete, click Export to export the solver and constraints to the workspace.
Parameter | Description |
---|---|
Export solver | Select to include the inverse kinematics solver when exporting. Default is
on . |
Solver name | Name of the inverse kinematics solver. Default is
ikSolver . |
Export constraints | Select to include the solver constraints when exporting. Default is
on . |
Constraints cell array name | Name of the solver constraints cell array, specified as a string.
Default is To enable this parameter, select the Export constraints parameter. |
Available constraints | Table containing solver constraints, listing the name, size, and class of each constraint. Select constraints from this table and click Export to export the constraints to the workspace. To enable this parameter, select the Export constraints parameter. |
Export Waypoints
— Export configurations as waypoints
dialog box
Export configurations as waypoints using the Export Waypoints dialog box. To access
these parameters, on the Inverse Kinematics tab, select Export >
Configurations. When selections are complete, click
Export to export the waypoints as an
M-by-N matrix of data type
double
to the MATLAB workspace, where M is the number of waypoints, and
N is the number of movable joints in the robot.
Parameter | Description |
---|---|
Waypoint matrix name | Name of waypoint matrix. Default is
waypointData . |
Available configurations | Table containing available configurations, listing the name, size, and class of each constraint. Select configurations from this table and click Export to export the configurations to the workspace as waypoints. |
Solution Report
— Details of most recent inverse kinematics solution
dialog box
View the details of the most recent inverse kinematics solution in the Solution Report dialog box. To access these parameters, on the Inverse Kinematics tab, select Report Status.
These parameters are read-only.
Parameter | Description |
---|---|
Iterations | Number of iterations needed to achieve the solution result. |
Number of Random Restarts | Number of times that the solution randomly restarted. Random restarts are triggered when the algorithm approaches a solution that does not satisfy the constraints. The solver restarts with a randomly generated initial guess. |
Constraint Violations | Constraint violations, indicated as a 1-by-N
structure array, where N is the number of enabled
constraints in the session. Select |
Status | Status of the solution, indicated as either
|
Exit Flag | Exit flag of the solver. See Exit Flags for more information. |
Programmatic Use
More About
Version History
Introduced in R2022a