DOUBLE ARM JUGGLING SYSTEM Final Presentation ECSE-4962 Control Systems Design Group Members: John Kua Trinell Ball Linda Rivera
Mar 19, 2016
DOUBLE ARM JUGGLING SYSTEMFinal Presentation
ECSE-4962 Control Systems Design
Group Members:John KuaTrinell BallLinda Rivera
Presentation OutlinePresentation Outline IntroductionIntroduction ObjectivesObjectives System SpecificationsSystem Specifications Plan of ActionPlan of Action System IntegrationSystem Integration Physical DesignPhysical Design ModelingModeling Control SystemControl System Camera DevelopmentCamera Development ResultsResults Future ImprovementsFuture Improvements
IntroductionIntroduction Goal:Goal: To design and develop a To design and develop a
juggling juggling system mechanism system mechanism• Pivoted double-ended armPivoted double-ended arm• Able to handle two or more ping pong Able to handle two or more ping pong
ballsballs
MotivationMotivation• Previous Project Previous Project CSD Team 7 of 2004 CSD Team 7 of 2004
Single armSingle arm Open loopOpen loop
• Research Project by Dr. Research Project by Dr. D. E. Koditschek – University of Michigan
Tossed pucks vertically with single padded arm Tossed pucks vertically with single padded arm Uses camera for feedbackUses camera for feedback
IntroductionIntroduction
ObjectivesObjectives Develop mechanism to simultaneously
juggle two or more balls• Execute toss and catch operations quickly • Provide feedback on arm’s state• Provide feedback on balls’ state
Predict trajectory of the ball• Design control system
Learn from toss/catch errors Compensate for disturbances in flight path
of the balls
SpecificationsSpecifications Flight Profile:Flight Profile: x: 0.75m, t: 1s x: 0.75m, t: 1s Pan:Pan: Range of Motion – ±10° Range of Motion – ±10° Max Accel: 34.9 rad/sMax Accel: 34.9 rad/s22
Overshoot: <5% (pos)Overshoot: <5% (pos) Settling Time: <0.1 secSettling Time: <0.1 sec Steady State Error: ±1° (±6.5mm)Steady State Error: ±1° (±6.5mm) Tilt:Tilt: Range of Motion – ±30° Range of Motion – ±30° Max Accel: 201.79 rad/sMax Accel: 201.79 rad/s22
Launch (Max) Velocity: 5.4 m/sLaunch (Max) Velocity: 5.4 m/s Overshoot: <5% (pos), <1% (vel)Overshoot: <5% (pos), <1% (vel) Settling Time: <0.1 secSettling Time: <0.1 sec Steady State Error: ±1° (±6.5mm)Steady State Error: ±1° (±6.5mm) Can track 2Hz sinusoidal inputCan track 2Hz sinusoidal input
Model Development
Model Verification
Parameter Analysis
Build SystemDevelop Camera
Subsystem
X-Y Tracking
Z Tracking
Trajectory Prediction
Pan/Tilt Control Systems Design
Open Loop 1-DTesting
Open Loop 2-DTesting
Open Loop Two Ball Juggle
Closed Loop 2-D
Testing
Closed Loop Two Ball Juggle
Vision Feedback Controller
Design
PlanPlanofof
ActionAction
Code Structure (Vision)Code Structure (Vision)
Pan Correction Calculation
Video Stream In
Image Processing
Frame Grab
Data Processing
Tilt Correction Calculation
Code Structure (cRIO)Code Structure (cRIO)
HostFPGA
Controller
EncoderInput
Parallel PortInput
Velocity Estimation
User Interface
Camera Camera Mounting Mounting Overall System Overall System MountingMounting
Physical Design - AdditionsPhysical Design - Additions
Other Physical ModificationsOther Physical ModificationsShaft MountingShaft Mounting Cable Extension Parallel Cable Extension Parallel
PortPort
Modeling & SimulationModeling & Simulation System:System:
• Treat as Decoupled LinksTreat as Decoupled Links• Parameters: Motor Torque, Gear Ratios, Parameters: Motor Torque, Gear Ratios,
Inertial Loads, Shaft OscillationsInertial Loads, Shaft Oscillations• Nonlinearities: Friction, Backlash, NoiseNonlinearities: Friction, Backlash, Noise• Linearize Model for Control DesignLinearize Model for Control Design
Trajectory: Projectile Motion, DragTrajectory: Projectile Motion, Drag
Model DevelopmentModel Development Lagrange-Euler ModelLagrange-Euler Model
Single JointSingle Joint
)()(),()( GFCM
)( scsvsLma
m signFFnJnJJ
Simulink Model - NonlinearSimulink Model - Nonlinear
1theta
-K-
Viscous Friction
Sign
Scope3Scope1
Motor Speed Saturation
f(u)
Mass -1
1s
Integrator1
1s
Integrator
-K-
Coulomb Friction
1tau
Accel PositionVelocity
Step
tau theta
Single Joint PhysicsScope
-K-
Motor Torque Constant
MATLABFunction
DAC to CurrentDAC Output Saturation
theta
Friction IdentificationFriction Identification Identify Viscous and Coulomb FrictionIdentify Viscous and Coulomb Friction Apply constant torque and measure steady state Apply constant torque and measure steady state
velocityvelocity Automate with LabVIEWAutomate with LabVIEW Process data with MATLABProcess data with MATLAB
0 1 2 3 4 5 6 7 8 9 10-25
-20
-15
-10
-5
0
5
10
15
20
25Velocity vs. Time - Tilt
Time (s)
Vel
ocity
(rad
/s)
-25 -20 -15 -10 -5 0 5 10 15 20 25-4000
-2000
0
2000
4000Digital Output vs. Steady State Velocity - Tilt
Dig
ital O
utpu
tVelocity (rad/s)
-25 -20 -15 -10 -5 0 5 10 15 20 25-0.2
-0.1
0
0.1
0.2Shaft Torque vs. Steady State Velocity - Tilt
Sha
ft To
rque
(N*m
)
Velocity (rad/s)
Other ParametersOther Parameters Inertia/MassInertia/Mass
• Calculated with SolidWorksCalculated with SolidWorks Shaft Spring ConstantShaft Spring Constant
• Possible cause of oscillationsPossible cause of oscillations• Experimentally measuredExperimentally measured• Found to be very stiff - k=4600N/m Found to be very stiff - k=4600N/m
Trajectory CalculationTrajectory Calculation
Drag force on the ballDrag force on the ball
• Trajectory deviates Trajectory deviates from standard from standard projectile motion projectile motion equationequation
• Differential EquationDifferential Equation Simulink ODE SolverSimulink ODE Solver
0 0.5 1 1.5-1
-0.5
0
0.5
1
1.5
2Projectile Motion of a Ping Pong Ball
x (meters)
y (m
eter
s)
dACvD 2
21
Control SystemControl System Tilt and Pan Axis: PID controller Tilt and Pan Axis: PID controller
Controller Tilt
Plant Tiltθt
Controller Pan
Plant Panθp
Shaft Dynamics
Ball Dynamics
Vision p,t
θp
θt
Control Systems Control Systems DevelopmentDevelopment
Two methods for designing controllers used • MATLAB rltool (Pole Placement method)
1. Obtain transfer function (System Parameters)
2. Define design constraints, such as rise time and settling time
3. Run simulation to test • PID block MATLAB (simulink)
Kp = Proportional Ki = IntegralKd = Derivative
rltool controller PID controllerrltool controller PID controller
Overshoot: 28.7% Overshoot: 0%Overshoot: 28.7% Overshoot: 0%
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.2
0.4
0.6
0.8
1
1.2
1.4
X: 0.1Y: 0.1654
X: 0.23Y: 1.287
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.5
1
1.5
X: 0.1Y: 0.7048
X: 0.69Y: 0.9993
Non-Linear Simulation Step Non-Linear Simulation Step ResponseResponse
Camera DevelopmentCamera Development Image ProcessingImage Processing Data VerificationData Verification Trajectory PredictionTrajectory Prediction
• PanPan• TiltTilt
Original Image Threshold Circle Original Image Threshold Circle DetectionDetection
Challenges OvercomeChallenges Overcome• Blur Blur Change shutter speed 1/100 sec Change shutter speed 1/100 sec• Extra circles Extra circles Set black background Set black background
Circle # Center X Center Y Radius1 231 98 9
Image ProcessingImage ProcessingScript
Rolling down the ramp Rolling down the ramp experimentexperiment
Actual Height(cm) Vision Height(cm) Error
58.5063 63.4746 -0.0317
54.3588 59.3419 -0.0169
49.993 54.4221 -0.5709
45.1179 51.5932 1.4753
39.9517 44.9924 0.0407
34.7128 41.1096 1.3968
28.8917 36.7415 2.8498
22.7069 31.7909 4.084
16.1582 26.1331 4.9749
9.2457 26.1331 11.8874
Data VerificationData Verification
PanPan• Linear Curve FitLinear Curve Fit
LINEAR CURVE FIT SAMPLE
0
50
100
150
200
0 50 100 150 200 250 300
X
Y
Series1
Linear(Series1)
Trajectory PredictionTrajectory Prediction
TiltTilt• X Data AveragingX Data Averaging
x
Y
Radius > 7 pixels
Trajectory PredictionTrajectory Prediction
Parallel PortParallel Port Standard networking VIs slowStandard networking VIs slow FPGA can read digital inputs quicklyFPGA can read digital inputs quickly Write to Parallel Port to communicate Write to Parallel Port to communicate
with NI 9401 Digital I/Owith NI 9401 Digital I/O LinesLines
• Packet Start (1)Packet Start (1)• Data Ready (1)Data Ready (1)• Data (4)Data (4)
Parallel Port ProtocolParallel Port Protocol1.1. Toggle Packet StartToggle Packet Start2.2. Write Data Type (Pan, Tilt) to BusWrite Data Type (Pan, Tilt) to Bus3.3. Toggle Data ReadyToggle Data Ready4.4. Write Data to BusWrite Data to Bus
Type
Data Type
Data Type
Data
Packet Start
Data Ready
Data
ResultsResults Catching AccuracyCatching Accuracy
• 30 tosses: catches made 83.3%30 tosses: catches made 83.3%• Can not catch overshoot, or undershoot Can not catch overshoot, or undershoot
beyond constraintsbeyond constraints Tossing AccuracyTossing Accuracy
• While setting ball on tossing ring, too much While setting ball on tossing ring, too much force can not be exerted otherwise launch force can not be exerted otherwise launch initial conditions changeinitial conditions change
• Belts are too tight Belts are too tight Non-linear friction Non-linear friction• Loosening belts can lead to slipping (trade off)Loosening belts can lead to slipping (trade off)
Controller Response - PanController Response - Pan
40.8 41 41.2 41.4 41.6 41.8 42 42.2-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2Pan Response
Time (s)
Pos
ition
(rad
)
OvershootOvershoot 0% (5%)0% (5%)
Settling TimeSettling Time 0.07s (0.1s)0.07s (0.1s)
Steady State Steady State Error Error 0.29° (±1°)0.29° (±1°)
Rise TimeRise Time0.1s0.1s
Controller Response - TiltController Response - Tilt OvershootOvershoot
16% (5%)16% (5%) Settling TimeSettling Time
0.3s (0.1s)0.3s (0.1s) Steady State Steady State
Error Error 0.34° (±1°) 0.34° (±1°)
Rise TimeRise Time0.08s0.08s
43.5 44 44.5 45 45.5 46-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6Tilt Response
Time (s)
Pos
ition
(rad
)
Future ImprovementsFuture Improvements Implement Trajectory GenerationImplement Trajectory Generation Better Controller (LQR)Better Controller (LQR) Improve Height EstimationImprove Height Estimation
• Add second cameraAdd second camera• Increase camera resolution (processing power)Increase camera resolution (processing power)
Better way to transfer torque from motor Better way to transfer torque from motor to pan tilt joints other than existing beltsto pan tilt joints other than existing belts
JugglingJuggling• System response not fast enoughSystem response not fast enough• Nets need dual-use optimizationNets need dual-use optimization