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 Rossum’s 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 robot’s 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 / manipulator’s 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 1 manipulator q coordinates n Robotic Control x Jq 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 Loss of 1 or more DOF J becomes singular x x 1 2 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 Center of gravity, lCi Moment of Inertia, ii m1 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 Robotic Control Height of link end 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 qi, dqi/dt and plug into general equation: Inertia (d2qi/dt2) Conservative Forces Non-conservative Forces (damping, inputs) Robotic Control 24 Equations of Motion – Structure M – Inertia Matrix Positive Definite 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 Coriolis forces, c(θi,dθi/dt) Source: Peter R. Kraus, 2-link arm dynamics Conservative forces (gravity) 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 Rigid “stiff” 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