Manipulator Algorithms

Inverse kinematics and dynamics for rigid body tree robot representations

These Robotics System Toolbox™ algorithms support workflows related to articulated robots. Define your robot model using the RigidBodyTree class, which is made up of rigid bodies as structural elements and joints for attachment and motion. This robot representation contains kinematic constraints and dynamics properties. You can perform inverse kinematics and dynamics calculations on this robot model. If you have a robot description as a URDF file, you can import it using importrobot.

Functions

expand all

importrobotImport rigid body tree model from URDF file, text, or Simscape Multibody model
addBodyAdd body to robot
addSubtreeAdd subtree to robot
addVisualAdd visual geometry data to rigid body
clearVisualClear all visual geometries
getBodyGet robot body handle by name
removeBodyRemove body from robot
replaceBodyReplace body on robot
replaceJointReplace joint on body
showShow robot model in a figure
showdetailsShow details of robot model
subtreeCreate subtree from robot model
getTransformGet transform between body frames
randomConfigurationGenerate random configuration of robot
homeConfigurationGet home configuration of robot
showShow robot model in a figure
centerOfMassCenter of mass position and Jacobian
externalForceCompose external force matrix relative to base
forwardDynamicsJoint accelerations given joint torques and states
geometricJacobianGeometric Jacobian for robot configuration
gravityTorqueJoint torques that compensate gravity
inverseDynamicsRequired joint torques for given motion
massMatrixJoint-space mass matrix
velocityProductJoint torques that cancel velocity-induced forces
bsplinepolytrajGenerate polynomial trajectories using B-splines
cubicpolytrajGenerate third-order polynomial trajectories
quinticpolytrajGenerate fifth-order trajectories
rottrajGenerate trajectories between orientation rotation matrices
transformtrajGenerate trajectories between two transformations
trapveltrajGenerate trajectories with trapezoidal velocity profiles

Classes

expand all

robotics.RigidBodyTreeCreate tree-structured robot
robotics.RigidBodyCreate a rigid body
robotics.JointCreate a joint
robotics.InverseKinematicsCreate inverse kinematic solver
robotics.GeneralizedInverseKinematicsCreate multiconstraint inverse kinematics solver
robotics.OrientationTargetCreate constraint on relative orientation of body
robotics.PositionTargetCreate constraint on relative position of body
robotics.PoseTargetCreate constraint on relative pose of body
robotics.AimingConstraintCreate aiming constraint for pointing at a target location
robotics.CartesianBoundsCreate constraint to keep body origin inside Cartesian bounds
robotics.JointPositionBoundsCreate constraint on joint positions of robot model

Blocks

expand all

Polynomial TrajectoryGenerate polynomial trajectories through waypoints
Rotation TrajectoryGenerate trajectory between two orientations
Transform TrajectoryGenerate trajectory between two homogeneous transforms
Trapezoidal Velocity Profile TrajectoryGenerate trajectories though multiple waypoints using trapezoidal velocity profiles
Forward DynamicsJoint accelerations given joint torques and states
Inverse DynamicsRequired joint torques for given motion
Get JacobianGeometric Jacobian for robot configuration
Get TransformGet transform between body frames
Gravity TorqueJoint torques that compensate gravity
Joint Space Mass MatrixJoint-space mass matrix for robot configuration
Velocity Product TorqueJoint torques that cancel velocity-induced forces
Inverse KinematicsCompute joint configurations to achieve an end-effector pose

Topics

Rigid Body Tree Robot Model

Model structure and specific components of a rigid body tree robot model

Build a Robot Step by Step

This example goes through the process of building a robot step by step, showing you the different robot components and how functions are called to build it.

Inverse Kinematics Algorithms

Description of inverse kinematics solver algorithms and solver parameters

2-D Path Tracing With Inverse Kinematics

Trace A 2-D Circular Path Using A Robot Manipulator

Solve Inverse Kinematics for a Four-Bar Linkage

This example shows how to solve inverse kinematics for a four-bar linkage, a simple planar closed-chain linkage.

Trajectory Control Modeling With Inverse Kinematics

This example demonstrates how the Inverse Kinematics block can drive a manipulator along a specified trajectory.

Control PR2 Arm Movements Using ROS Actions and Inverse Kinematics

This example shows how to send commands to robotic manipulators in MATLAB®.

Plan a Reaching Trajectory With Multiple Kinematic Constraints

This example shows how to use generalized inverse kinematics to plan a joint-space trajectory for a robotic manipulator.

Robot Dynamics

Robot dynamics is the relationship between the forces acting on a robot and the resulting motion of the robot.

Control LBR Manipulator Motion Through Joint Torque Commands

Given a set of desired joint configuration waypoints and a torque-controlled manipulator, this example shows how to implement the computed-torque controller using the inverseDynamics function.

Perform Safe Trajectory Tracking Control Using Robotics Manipulator Blocks

This example shows you how to use Simulink® with Robotics System Toolbox™ manipulator algorithm blocks to achieve safe trajectory tracking control for a simulated robot running in Simscape™ Multibody™.

Manipulator Shape Tracing in MATLAB and Simulink

This example shows how to trace a predefined 3-D shape in space.