Upload
nick-morozovsky
View
171
Download
0
Tags:
Embed Size (px)
Citation preview
Prototyping Dynamic Robots: Lessons from the UCSD Coordinated Robotics Lab
Nick Morozovsky, PhDRobotics Consultant
March 17, 2015
1
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
2
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
3
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Introduction
• Hardware revolution is underway
• Robotics is a subset, what is a robot anyway?
• Barriers to entry in developing hardware are plummeting
• Driven by low-cost, capable components, software tools, and global communications
• The line between hardware and software is being blurred.
4
http://makezine.com/projects/make-43/smart-rat-trap/
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Introduction
• Proliferation of low-cost and capable microprocessors and sensors
• 3D Robotics CEO Chris Anderson’s “peace dividend of the smartphone war”
• Accelerometers, gyroscopes, magnetometers, light sensors, cameras, GPS, WiFi, Bluetooth, etc.
• Additive manufacturing (3D printing) has dropped two orders of magnitude in price
• Rapid prototyping on your desk
5
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Introduction
6
from Cyril Ebersweiler’s Hardware trends 2015 slidesharehttp://www.slideshare.net/haxlr8r/hardware-trends-2015or search: slideshare hardware trends
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Introduction Robotics Challenges
7
MobilityPerception
Manipulation“Go get me a beer from the
fridge”
Stairs
Openinga door
SandEggs
Unstructuredterrain
Where tograsp object
LocalizationMapping
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
8
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Mechanical Engineering
• 3D printing
• Multiple materials are here, and more are coming
• New generation of CAD tools
• TinkerCAD
• OpenSCAD
• Onshape
9
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Electrical Engineering
• Eagle CAD
• SparkFun library
• Fritzing
• Unique breadboard view
• CircuitMaker
• powered by Altium
10
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Electrical Engineering
• Voxel8 Multi-material 3D printer
• Autodesk Project Wire
11
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Software Engineering
• Explosion of single board computers
• Arduino, Raspberry Pi, BeagleBone, Spark, etc. communities
• Almost any sensor or actuator you’re trying to interface has already been interfaced
• Pay attention to licenses and be a good community member
• ROS: Robot Operating System
12
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Funding
• Bootstrapping
• Accelerators/Incubators
• Increasing number of hardware accelerators
13
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Crowdfunding
• Just posting on Kickstarter does not guarantee success!
14
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Crowdfunding
15
from Cyril Ebersweiler’s Hardware trends 2015 slidesharehttp://www.slideshare.net/haxlr8r/hardware-trends-2015or search: slideshare hardware trends
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Complementary Filter
• MEMS accelerometer can measure absolute angle of gravity vector
• Susceptible to high frequency noise and body accelerations
• MEMS gyroscope can be integrated to measure incremental angle
• Susceptible to thermal drift and integration error
• Use complementary filter to combine accelerometer and gyroscope measurements
16
atan2
1/s
Low Pass
High Pass
s
Accelerometer
Gyroscope
Encoder
++
++
++ �
✓
✓
�
µGHP =1/!c
1/!c + h, µALP =
h
1/!c + h
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Encoder Velocity Estimation
• Limited by encoder and clock resolution
• Quadrature sub-periods are not equal
• Measure four separate periods
• Average multiple periods when possible (M ≥ 2)
• Bound low speed by time since last edge (M < 1)
17
A
ARF
B
AFR
BFR BRF
AR BR BR AF AF BF BF AR
ARR
BFF
M =2!hCPR
⇡
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Lagrangian Dynamics
• Powerful dynamics formulation
• Apply constraints with Lagrange multiplier
• Broadly applicable to a large class of robotic systems
• Can be applied programmatically
18
L = T � V
d
dt
✓�L�qi
◆� �L
�qi= Qi
M(q)q + F (q, q) = Q
A(q)q = 0
M(q)q + F (q, q) = Q+A(q)T�
S(q) = null[A(q)]
S(q)TM(q)q + S(q)TF (q, q) = S(q)TQ
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Lagrangian Dynamics
19
q = S⌫, q = S⌫, S
TM(q)S⌫ + S
TF (q, q) = S
TQ
⌫ = [STM(q)S]�1
S
T [Q� F (q, q)]
q = S[STM(q)S]�1
S
T [Q� F (q, q)]
Q = B⌧ = B[⌃u� Z(q)]
qr =¯S⌫, qr =
¯S⌫, x =
✓qr
qr
◆, x = f(x) + �(x)u
f(x) =
✓qr
�¯S[ST
M(q)S]�1S
T [BZ(q) + F (q, q)]
◆
�(x) =
✓0n⇥nu
¯S[ST
M(q)S]�1S
TB⌃
◆
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Equilibrium Manifold
• Solve for (unstable) equilibrium manifold from dynamics by setting accelerations and velocities to zero
• Equivalent to static analysis, setting Newton’s 2nd Law equal to zero and setting center of mass over contact point
• u* is a feedforward term when the equilibrium requires non-zero control input
20
⌫ = [STM(q)S]�1
S
T {B[⌃u� Z(q)]� F (q, q)} = 0nr⇥1
S
T {B[⌃u⇤ � Z(0n⇥1)]� F (q⇤, 0n⇥1)} = 0nr⇥1
x = x� x
⇤, u = u� u
⇤
˙x = f(x+ x
⇤) + �(x+ x
⇤)(u+ u
⇤)
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Tools Linearization & Integral Control
• Linearize about reference position
• Integrate regulation error
• Discretize with sample time h
• State feedback matrix from LQR
• Can be applied programmatically
21
˙x =Ax+ B(u+ u
⇤)
A =�f(x+ x
⇤)
�x
���x=0
, B = �(x+ x
⇤)���x=0
⇠ =Cx, x =
✓x
⇠
◆,
˙x = Ax+ B(u+ u
⇤)
A =
A 02n⇥nu
C 0ni⇥nu
�, B =
B
0ni⇥nu
�
x
k+1 =Fx
k
+G(uk
+ u
⇤)
F =eAh
, G =
Zh
0eA⌘Bd⌘
u =K
✓x� x
⇤
⇠
◆+ u
⇤
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
22
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Switchblade
• Tread assemblies can pivot w.r.t. the central chassis
• Significantly changes the center of mass
• Different modes of locomotion
• Applications: search & rescue, border patrol, mine exploration, toy/entertainment, general research platform
• Patent pending
23
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Switchblade Perching Dynamics
• Constraint matrices combine no-slip condition and different stiction states
• Power function accounts for rate of energy dissipation due to coulomb friction
24
θ
αϕ
LT
LC
rmT
mC
w
mS
XYρ
w =� r(�� ↵)� ⇢(⇡/2� ↵)
P =� µkmgr
sin↵(�� ↵)� cT (↵� ✓)
�P
�q=
0
BB@
0�µkmgr
sin↵ · sgn(�� ↵)µkmgrsin↵ · sgn(�� ↵)� cT · sgn(↵� ✓)
cT · sgn(↵� ✓)
1
CCA , q =
0
BB@
w�↵✓
1
CCA
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Switchblade Mechanical Design
• Two degree of freedom hip joint
• Two independent torques transmitted coaxially
• Continuous rotation
• Motors, sensors, and battery in chassis–simplifies wiring
• Leverage symmetry to reduce unique part count
• Sheets of plastic laser cut into parts
• Tabs and slots speed up assembly and reduce the number of fasteners needed
25
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Switchblade
26
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Switchblade Perching
• Friction compensator improves performance
• Oscillation is due to stiction
• Performance limited by mass distribution and friction
270 1 2 3 4 5 6 7 8 9 10
−0.5
0
0.5
1
1.5
2
T ime (se c )
Angle
(rad)
φ
α
θφ∗
α ∗
θ ∗
0 1 2 3 4 5 6 7 8 9 10
−1.92
−1.9
−1.88
−1.86
−1.84
−1.82
−1.8
−1.78
−1.76
T ime (se c )
φ−
α(rad)
0 1 2 3 4 5 6 7 8 9 10
−1
−0.5
0
0.5
1
T ime (se c )
φ−
α(rad/se
c)
Ex p e rimental a S = 0
Exp e rimental a S = 0 .06
S imu lation a S = 0
S imu lation a S = 0 .06
φ∗− α ∗
θ
αϕ
LT
LC
rmT
mC
w
mS
XYρ
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
28
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper
• 2 identical links pivotally connected by rotary series elastic actuator (SEA) hub
• 3 position actuated clamp
(a) Open
(b) Rolling - allows axial translation
(c) Pivoting
• Presented at IROS 2013 in Tokyo
29
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Inchworm
• One pivoting clamp and one rolling clamp
• SEA actuates to increase the angle between the links
• Switch clamp configuration, decrease the angle between the links, repeat
30
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Swing-Up
• One pivoting clamp and one open clamp
• Sine sweep control input to the SEA
• Second clamp closes once it reaches cable
• Useful for installation on the cable
31
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Backflip
• One pivoting clamp and one open clamp
• Preload SEA, release one clamp, swing to grab other end, repeat
• Circumvent obstacle on the cable
32
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
!
"
�
xy
JL ,mL
JL ,mL
JJ
2L
2L
1
2
SkySweeper Dynamics
• Dynamic constraints depend on the configuration of the clamps
• 0, 1, or 2 constraints per clamp
• Holonomic vertical constraint when clamp is rolling or pivoting
• Additional non-holonomic horizontal constraint when clamp is pivoting
• Stack applicable constraint matrices and find orthonormal basis for null space
33
y = 0
Ay1(q) = (0 1 0 0 0)
x = 0
A
x1(q) = (1 0 0 0 0)
y � 2L(cos ✓ + cos↵) = 0
Ay2(q) = (0 1 2L sin ✓ 0 2L sin↵)
x+ 2L(
˙
✓ cos ✓ + ↵ cos↵) = 0
A
x2(q) = (1 0 2L cos ✓ 0 2L cos↵)
q =�x y ✓ � ↵
�T
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Finite State Machine Controller
• Actions: clamp positions, SEA
• Transitions defined by sensor readings: spring deflection, separation angle, cable detection
• Implemented in code as a switch structure
• Simulation performed with switched system of equations of motion with different constraint matrices
!+π-# > 1.9
!+π-# < 1.0
State 0: OpenClamp 1: PivotingClamp 2: Rollingu = -0.65
State 1: CloseClamp 1: RollingClamp 2: Pivotingu = 0.40
State 8: Swing 1Clamp 1: PivotingClamp 2: Openu = -0.20
State 9: Charge 2Clamp 1: PivotingClamp 2: Pivotingu = 1
Cable in grasp of clamp 2
State 7: Charge 1Clamp 1: PivotingClamp 2: Pivotingu = -1
!-γ > 1
State 10: Swing 2Clamp 1: OpenClamp 2: Pivotingu = 0.20
!-γ < -1
Cable in grasp of clamp 1
34
State 5: SwingClamp 1: PivotingClamp 2: Openu = 0.7t*sin(π t)
State 6: HoldClamp 1: PivotingClamp 2: Pivotingu = 0
Cable in grasp of clamp 2
Inchworm
Swing-Up
Backflip
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Design
• 3D printed parts with off the shelf electronics
• 3 position actuated clamp
• Servo drives symmetrically coupled clamp arms
• Magnets align clamps, teeth prevent rotation in pivoting position
• IR emitter and phototransistor pair detect cable
• Series elastic actuator (SEA) hub
• DC motor and two unidirectional torsion springs
• Energy storage for dynamic maneuvers
• Potentiometers measure spring deflection and angle between links
35
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Inchworm
36
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Inchworm
• Simulation matches experimental results, although greater spring deflection is predicted
• 50ms delay in switching clamp positions
• Unmodeled effects of slippage and rope vibration contribute to the discrepancy between plots
37
0 0.5 1 1.5 2 2.5 3 3.50.5
1
1.5
2
2.5
t(s)
Link
Sep
arat
ion
θ + π − α
(rad
)
0 0.5 1 1.5 2 2.5 3 3.5−0.5
0
0.5
1
1.5
t(s)
Sprin
g D
efle
ctio
nα
− γ
(rad)
SimulationExperimental
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Swing-Up
38
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
SkySweeper Backflip
39
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Outline
• Introduction
• Tools
• Switchblade
• SkySweeper
• Conclusions
40
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Conclusions Nick’s Rules of Robotics
41
1. Never disassemble a working robot.
1. Always have a demo ready.
2. Video or it didn’t happen.
2. If it works the first time, you’re testing it wrong.
1. How good is good enough? Have defined metrics.
2. If you can’t measure it, you can’t control it.
3. When in doubt, lubricate.
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Conclusions Nick’s Rules of Robotics
4. Never underestimate the estimation problem.
1. “but it works in simulation”
5. If specs for a part are listed differently in two places, they’re both wrong.
1. How can you validate it yourself? Or deal with uncertainty?
6. Glue, tape, and zip-ties are not engineering solutions (though they might work in a pinch).
1. You should be able to open your robot.
2. The component that’s hardest to access will be the first to fail.
42
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Conclusions Nick’s Rules of Robotics
7. Do not leave lithium polymer batteries charging unattended.
1. It’s not worth the risk.
2. Use a charging sack.
8. Always have a complete CAD model, including screws and fasteners, before constructing your robot.
1. Plan out order of operations for assembly.
2. Have extra parts on hand.
43
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Conclusions Nick’s Rules of Robotics
9. Avoid using slip rings if at all possible.
1. Intermittent contact, high/variable resistance
10.Clamping collars are always better than set screws.
1. If you have to use set screws (e.g. for cost reasons), use a driving flat and an appropriate thread-locking agent.
11.Always check polarity before plugging a component into a power source.
1. Label battery connectors and components.
44
ServoCity.com clamping hub
UCSD CoordinatedRobotics Lab
Nick Morozovsky Mar 17, 2015
Conclusions Acknowledgments
• Advisor: Professor Thomas Bewley
• Chris Schmidt-Wetekam, Andrew Cavender
• Members of the Coordinated Robotics Lab at UCSD
45