You are on page 1of 39

Robotic Control

Lecture 1
Dynamics and Modeling
A brief history
Started as a work of fiction
Czech playwright Karel Capek
coined the term robot in his play
Rossums Universal Robots

Robotic Control 2
Numerical control
Developed after WWII and
were designed to perform
specific tasks

Instruction were given to


machines in the form of
numeric codes (NC systems)
Typically open-loop systems,
relied on skill of programmers
to avoid crashes

Robotic Control 3
Modern robots
Mechanics
Digital Computation

Coordination

Electronic Sensors

Actuation

Path Planning Learning/Adaptation


Robotics

Robotic Control 4
Types of Robots
Industrial
Locomotion/Exploration
Medical
Home/Entertainment

Robotic Control 5
Industrial Robots

Coating/Painting

Assembly of an automobile

Robotic Control Drilling/ Welding/Cutting


6
Locomotion/Exploration

Underwater exploration

Space Exploration
Robo-Cop
Robotic Control 7
Medical

a) World's first CE-marked medical robot for head surgery


b) Surgical robot used in spine surgery, redundant manual guidance.
c) Autoclavable instrument guidance (4 DoF) for milling, drilling, endoscope
guidance and biopsy applications

Robotic Control 8
House-hold/Entertainment

Toys
Asimo

Robotic Control 9
Purpose of Robotic Control
Direct control of forces or displacements
of a manipulator
Path planning and navigation
(mobile robots)
Compensate for robots dynamic
properties (inertia, damping, etc.)
Avoid internal/external obstacles

Robotic Control 10
Mathematical Modeling
Local vs. Global coordinates
Translate from joint angles to end position
Jacobian
coordinate transforms
linearization
Kinematics
Dynamics

Robotic Control 11
Mechanics of Multi-link arms
Local vs. Global coordinates
Coordinate Transforms
Jacobians
Kinematics

Robotic Control 12
Local vs. Global Coordinates
Local coordinates
Describe joint angles or extension
Simple and intuitive description for each link
Global Coordinates
Typically describe the end effector /
manipulators position and angle in space
output coordinates required for control of
force or displacement

Robotic Control 13
Coordinate Transformation Cntd.
Homogeneous
transformation
Matrix of partial
derivatives
Transforms joint
angles (q) into
manipulator 1
coordinates q x Jq
n
Robotic Control 14
Coordinate Transformation
2-link arm, relative
coordinates
Step 1: Define x
and y in terms of 1
and 2

Robotic Control 15
Coordinate Transformation
Step 2: Take
partial derivatives
to find J

Robotic Control 16
Joint Singularities
Singularity condition x x
Loss of 1 or more DOF
1 2
J becomes singular

Occurs at:
Boundaries of
workspace
Critical points (for
multi-link arms

Robotic Control 17
Finding the Dynamic Model of a
Robotic System
Dynamics
Lagrange Method
Equations of Motion
MATLAB Simulation

Robotic Control 18
Step 1: Identify Model Mechanics
Example: 2-link robotic arm

Source: Peter R. Kraus, 2-link arm dynamics

Robotic Control 19
Step 2: Identify Parameters
For each link, find or calculate
Mass, mi
Length, li m1
Center of gravity, lCi
Moment of Inertia, ii

i1=m1l12 / 3

Robotic Control 20
Step 3: Formulate Lagrangian
Lagrangian L defined as difference
between kinetic and potential energy:

L is a scalar function of q and dq/dt


L requires only first derivatives in time

Robotic Control 21
Kinetic and Potential Energies
Kinetic energy of individual links in an n-link arm

Potential energy of individual links

Vi mi lCi g sin( i )h0i Height of


link end

Robotic Control 22
Energy Sums (2-Link Arm)
T = sum of kinetic energies:

V = sum of potential energies:

Robotic Control 23
Step 4: Equations of Motion
Calculate partial derivatives of L wrt q i, dqi/dt
and plug into general equation:

Non-conservative Forces
Inertia Conservative (damping, inputs)
(d2qi/dt2) Forces

Robotic Control 24
Equations of Motion Structure
M Inertia Matrix
PositiveDefinite
Configuration dependent
Non-linear terms: sin(), cos()

C Coriolis forces
Non-linear terms: sin(), cos(),
(d/dt)2, (d/dt)*
Fg Gravitational forces
Non-linear terms: sin(), cos()

Source: Peter R. Kraus, 2-link arm dynamics Robotic Control 25


Equations of Motion for 2-Link Arm,
Relative coordinates
M- Inertia matrix

Conservative forces
Coriolis forces, c(i,di/dt)
(gravity)

Source: Peter R. Kraus, 2-link arm dynamics Robotic Control 26


Alternate Form: Absolute Joint
Angles
If relative coordinates are
written as 1,2, substitute
1=1 and 2=2+1

Advantages:
M matrix is now symmetric
Cross-coupling of eliminated from C, from F matrices
Simpler equations (easier to check/solve)
Robotic Control 27
Matlab Code
function xdot= robot_2link_abs(t,x)
global T
%parameters
g = 9.8;
m = [10, 10];
l = [2, 1];%segment lengths l1, l2
lc =[1, 0.5]; %distance from center
i = [m(1)*l(1)^2/3, m(2)*l(2)^2/3]; %moments of inertia i1, i2, need to validate coef's
c=[100,100];
xdot = zeros(4,1);

%matix equations
M= [m(2)*lc(1)^2+m(2)*l(1)^2+i(1), m(2)*l(1)*lc(2)^2*cos(x(1)-x(2));
m(2)*l(1)*lc(2)*cos(x(1)-x(2)),+m(2)*lc(2)^2+i(2)];

C= [-m(2)*l(1)*lc(2)*sin(x(1)-x(2))*x(4)^2;
-m(2)*l(1)*lc(2)*sin(x(1)-x(2))*x(3)^2];

Fg= [(m(1)*lc(1)+m(2)*l(1))*g*cos(x(1));
m(2)*g*lc(2)*cos(x(2))];

T =[0;0]; % input torque vector

tau =T+[-x(3)*c(1);-x(4)*c(2)]; %input torques,

xdot(1:2,1)=x(3:4);
xdot(3:4,1)= M\(tau-Fg-C);

Robotic Control 28
Matlab Code

t0=0;tf=20;

x0=[pi/2 0 0 0];

[t,x] = ode45('robot_2link_abs',[t0 tf],x0);

figure(1)

plot(t,x(:,1:2))

Title ('Robotic Arm Simulation for x0=[pi/2 0 0 0]and T=[sin(t);0] ')

legend('\theta_1','\theta_2')

Robotic Control 29
Open Loop Model Validation
Zero State/Input

Arm falls down and settles in that position

Robotic Control 30
Open Loop - Static Equilibrium

x0= [-pi/2 pi/2 0 0]


x0= [-pi/2 pi/2 0 0]

x0= [pi/2 pi/2 0 0]


x0= [pi/2 -pi/2 0 0]

Arm does not change its position- Behavior is as expected


Robotic Control 31
Open Loop - Step Response
Torque applied to second joint
Torque applied to first joint

When torque is applied to the first joint, second joint falls down

When torque is applied to the second joint, first joint falls down

Robotic Control 32
Input (torque) as Sine function
Torque applied to first joint
Torque applied to first joint

When torque is applied to the first joint, the first joint oscillates
and the second follows it with a delay
When torque is applied to the second joint, the second joint
oscillates and the first follows it with a delay

Robotic Control 33
Robotic Control
Path Generation
Displacement Control
Force Control
Hybrid Control

Robotic Control 34
Path Generation
To find desired joint space trajectory qd(t) given
the desired Cartesian trajectory using inverse
kinematics
Given workspace or Cartesian trajectory
p(t ) x(t ), y (t )

in the (x, y) plane which is a function of time t.


Arm control, angles 1, 2,
Convenient to convert the specified Cartesian
trajectory (x(t), y(t)) into a joint space trajectory
(1(t), 2(t))
Robotic Control 35
Trajectory Control Types
Displacement Control
Control the displacement i.e. angles or
positioning in space
Robot Manipulators
Adequate performance rigid body
Only require desired trajectory movement

Examples:
Moving Payloads
Painting Objects

Robotic Control 36
Trajectory Control Types (cont.)
Force Control Robotic Manipulator
Rigidstiff body makes if difficult
Control the force being applied by the
manipulator set-point control
Examples:
Grinding
Sanding

Robotic Control 37
Trajectory Control Types (cont.)
Hybrid Control Robot Manipulator
Control the force and position of the manipulator
Force Control, set-point control where end effector/
manipulator position and desired force is constant.
Idea is to decouple the position and force control
problems into subtasks via a task space formulation.
Example:
Writing on a chalk board

Robotic Control 38
Next Time
Path Generation
Displacement (Position) Control
Force Control
Hybrid Control i.e. Force/Position
Feedback Linearization
Adaptive Control
Neural Network Control
2DOF Example

Robotic Control 39

You might also like