Summary of Brady's "Basics of Robot Motion Planning and Control"
by Sunil Vemuri
February 14, 1996
These notes are available on-line at http://www-ksl.stanford.edu/people/vemuri/quail/sunilnotes/planning/brady-summary.html
- "A basic problem in robotics is planning motions and to solve some previously specified
task, and then controlling the robot as it executes the commands necessary to achieve
those motions" (page 1)
- Bias towards assembly line stationary "arm-type" robots: "Robots are typically linked
structures with motors at the joints between adjacent links that can set the joint
to any value in its range"
- Interested in feedback control systems (see definition of feedback control)
- Robots for spot welding, machine loading, and spray painting are predominant uses
for robots in industry
- Guiding is main way of programming robots because it does not require programming.
But some applications require manipulator-level programming.
- Paper considers robot arms that operate in 2-dimensional space. 3-D would be too
impose constraints on the velocity and acceleration. Some tasks require constant
velocity (scribing, arc welding). Controlled acceleration permits smoother movements
of arm and reduces wear and tear
- The motion of a robot are called trajectories
, and consist of a sequence of desired positions, velocities, and accelerations of
some point such as the end effector or manipulator tip. (page 1-2)
- inverse dynamics problem
- for a manipulator composed of (nearly) rigid links, it is possible to compute the
time sequence of joint torques required to achieve the desired tine sequence, positions,
velocities, and accelerations (page 2)
- feedback control
- measuring the actual motion and forces during execution of the command sequence,
compute an error from the desired motion and forces, and modify subsequent inputs
so as to reduce the error at subsequent times. (page 2)
- a vector of 6 parameters specifying the position and orientation of a rigid object
(assuming 3 dimensions) (page 2)
- the technique of defining desired motions by specifying the configurations marking
the beginning and end of the motion (page 3)
- trajectory planning
- the process of computing a sequence of positions, velocities, and accelerations
- manipulator-level programming
or explicit programming
- programming language which provides primitive robot manipulation commands (page
- task-level programming
- programmer specifies robot motions in terms of object parts that are meaningful
for the task (page 4)
- the position, velocity, and acceleration relationships among the links of the manipulator
- the relationship between the force and torque that the manipulator is exerting
on the environment and the forces and torques at the links (page 6)
- the relationship between kinematics and statics (page 6)
2. Kinematics, Statics, Dynamics
- The relationship between manipulator joint angles, called joint space, and Cartesian
space is usually complicated and is a major source of difficulty in devising a control
system (page 7)
- d'Alembert's Principle
- the acceleration of a body generates a force of inertia which can be considered
together with other forces acting on a body. In effect, this reduces dynamics to
- The problem of computing what torques to apply to the joints to achieve a desired
trajectory is the problem of inverse dynamics
. (page 7)
- The direct kinematics
consists in part of finding the position of the end of the manipulator given particular
joint angles (theta1, theta2), whereas the inverse kinematics
involves finding the joint angles for a given position of the end of the manipulator.
- [For a two dimensional object,] The 3-tuple (x,y, theta) is called the configuration
of the object. The set of all possible configurations is called the configuration space
. (page 11)
is the area that the end of the manipulator can reach with a particular orientation
- A static
analysis for a manipulator is obtained by performing a static analysis on an isolated
link, where neighboring links of a manipulator are seen as contributing fores and
torques to this link: forces, torques.
- Sections 2.2 - 2.3.2 have lots of equations on using Newton's and Euler's equations
for computing the torques for a planned trajectory. Probably don't need to know
- The role of feedback control is to ensure that a planned sequence of motions and
forces will execute correctly in the face of unpredictable errors arising from inaccuracies
of kinematic and dynamic models of the robot, limitations of computational precision, and mechanical effects such as static friction or vibration. (page 18)
- feedback control
- measuring the actual motion during execution of the command sequence, computing
the error from the desired motion, and modifying subsequent inputs so as to reduce
the error at subsequent times. (page 18)
- problem: determining what rule, or feedback law
, should be used to compute the current input modifications for any set of past errors
measured since the initiation of the task. (page 18)
- The purpose of the feedback law is to make the actual responses match the commanded
responses as closely as possible, independent of the disturbances to the [robot].
Classes of Feedback Laws
- Open-Loop Control
- The entire sequence is predetermined and is applied regardless of any errors which
- Linear Control
- Feedback mapping is linear
- Open-Loop Feedback Control
- the practice of designing a control law as if certain variables or parameters of
the [robot] were known in advance, parametrizing the controls in terms of those variables,
and implementing it with actual measured values of those variables.
- Nonlinear Controls:
Everything else - bang-bang, duty-cycle modulation, N-cycle control, logic controllers,
globally nonlinear feedback mappings and adaptive control.
- Section 3.2 goes into mathematical detail of the PID control law. I will not cover
- bounded responses occur for any bounded command sequence. (page 20)
- static accuracy
- the ability to trace time-invariant or piecewise constant commanded responses in
the face of constant disturbances. (page 20)
- transient responses
- the ability to track time-varying commands responses in the face of time-varying
- independent joint control
- particularly common feedback law
- proportioinal-integral-derivative (PID) - a control law (see page 21 for description).
I've seen this before and I think it might be an important example.
4. Trajectory Planning
- Trajectory planning converts a description of the desired motion to a trajectory
defining the time sequence of intermediate configurations of the arm between the
source P0 and the destination P1. The output of the trajectory planning is a sequence
of configurations of the arm (page 26)
- Two methods for computing trajectories: polynomial and linear
- The fundamental difficulty in achieving straight line motion is that linear interpolation
between the joint space descriptions of two points does not achieve Cartesian space
straight line motion.
- Since it is by no means trivial to achieve Cartesian space straight line motion,
we might be content to approximate Cartesian space straight lines by splines composed
of primitive trajectories that are easier, or more efficient, to achieve
- Solution: generate midpoints (knot points) between two points. linearly interpolate
a path in joint space from source point to knot point. recursively generate knot
points until the error of the motion satisfies some error threshold
- Simple linear interpolation between successive knot points requires a step change
in acceleration at each knot point.
- racing joints problem
- how to orchestrate the individual joint movements so that they synchronize at the
successive knot points and so that the arm moves smoothly rather than jerkily.
- a curve in space which is a function of the distance along the curve
- the time course along a path
5. Compliant Motion
- external position constraints:
- guarded motion
- used when the manipulator is about to contact a surface
- compliant motion
- used when the manipulator is in continuing contact with a surface.
- Based on the example in figure 2, we want to use guarded motion to slowly move arm
until the force sensor detects contact, then use both guarded motion and compliant
motion to move the object along the surface while maintaining contact.
- hybrid controller
- a controller which can simultaneously control force along certain coordinate axes
and control position along the remaining coordinate axes.
6. Task Planning
- Existing systems require that tasks be specified by a sequence of motions, rather
than by the world states to be achieve. The goal of task-level programming systems
is to allow task specifications by means of symbolically describing states, leaving
it to the system to plan the required motions.
- collision avoidance is a central aspect of task-planning
- Findpath problem
- the problem of planning free motions, given models of the manipulator and of any
objects in the workspace. Fundamentally, this is the geometric problem of finding
a path for a moving solid among other solid obstacles.
- Solving Findpath
- Hypothesize and Test - same as Generate and Test from Search strategies. Not very
- Similar to Latombe's paper: grow all objects in universe by size of robot and then
shrink robot to a point. Free space is all space not occupied by expanded objects
- Need to make no part of robot arm collides with obstacles. Once again, grow objects
in universe and reduce robot arm to connected line segments. (figure 19)
- The configuration obstacles for the two-link manipulator are complex shapes for which
there is no convenient analytic representation. The simplest representation is a
polygonal approximation to their boundary.
- In general, approximations of configuration objects must be made because it is not
feasible to compute exact boundaries in higher dimensions
- collision avoidance is only one aspect of task-planning. Some tasks require guarded
and compliant motion (grasping, assembly)
What is the problem of inverse kinematics?
What is the difference between manipulator-level programming and task-level programming?
What is guiding?