45
Prototyping Dynamic Robots: Lessons from the UCSD Coordinated Robotics Lab Nick Morozovsky, PhD Robotics Consultant March 17, 2015 1

Prototyping Dynamic Robots

Embed Size (px)

Citation preview

Page 1: Prototyping Dynamic Robots

Prototyping Dynamic Robots: Lessons from the UCSD Coordinated Robotics Lab

Nick Morozovsky, PhDRobotics Consultant

March 17, 2015

1

Page 2: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

2

Page 3: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

3

Page 4: Prototyping Dynamic Robots

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/

Page 5: Prototyping Dynamic Robots

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

Page 6: Prototyping Dynamic Robots

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

Page 7: Prototyping Dynamic Robots

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

Page 8: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

8

Page 9: Prototyping Dynamic Robots

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

Page 10: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Tools Electrical Engineering

• Eagle CAD

• SparkFun library

• Fritzing

• Unique breadboard view

• CircuitMaker

• powered by Altium

10

Page 11: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Tools Electrical Engineering

• Voxel8 Multi-material 3D printer

• Autodesk Project Wire

11

Page 12: Prototyping Dynamic Robots

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

Page 13: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Tools Funding

• Bootstrapping

• Accelerators/Incubators

• Increasing number of hardware accelerators

13

Page 14: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Tools Crowdfunding

• Just posting on Kickstarter does not guarantee success!

14

Page 15: Prototyping Dynamic Robots

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

Page 16: Prototyping Dynamic Robots

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

Page 17: Prototyping Dynamic Robots

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

Page 18: Prototyping Dynamic Robots

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

Page 19: Prototyping Dynamic Robots

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⌃

Page 20: Prototyping Dynamic Robots

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

⇤)

Page 21: Prototyping Dynamic Robots

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

Page 22: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

22

Page 23: Prototyping Dynamic Robots

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

Page 24: Prototyping Dynamic Robots

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

Page 25: Prototyping Dynamic Robots

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

Page 26: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Switchblade

26

Page 27: Prototyping Dynamic Robots

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ρ

Page 28: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

28

Page 29: Prototyping Dynamic Robots

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

Page 30: Prototyping Dynamic Robots

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

Page 31: Prototyping Dynamic Robots

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

Page 32: Prototyping Dynamic Robots

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

Page 33: Prototyping Dynamic Robots

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

Page 34: Prototyping Dynamic Robots

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

Page 35: Prototyping Dynamic Robots

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

Page 36: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

SkySweeper Inchworm

36

Page 37: Prototyping Dynamic Robots

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

− γ

(rad)

SimulationExperimental

Page 38: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

SkySweeper Swing-Up

38

Page 39: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

SkySweeper Backflip

39

Page 40: Prototyping Dynamic Robots

UCSD CoordinatedRobotics Lab

Nick Morozovsky Mar 17, 2015

Outline

• Introduction

• Tools

• Switchblade

• SkySweeper

• Conclusions

40

Page 41: Prototyping Dynamic Robots

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.

Page 42: Prototyping Dynamic Robots

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

Page 43: Prototyping Dynamic Robots

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

Page 44: Prototyping Dynamic Robots

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

Page 45: Prototyping Dynamic Robots

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