Slides (pdf, 1.5MB) - Robotics Summer Schools at ETHZ
Slides (pdf, 1.5MB) - Robotics Summer Schools at ETHZ
Slides (pdf, 1.5MB) - Robotics Summer Schools at ETHZ
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
UAVs Visual Servoing<br />
AIRobots: <strong>Summer</strong> school 2012 – Aerial Service <strong>Robotics</strong><br />
Vincenzo Lippiello<br />
Università di Napoli Federico II<br />
vincenzo lippiello – UAVs Visual Servoing<br />
vincenzo.lippiello@unina.it
Vision sensors<br />
Camera model<br />
Image point differential kinem<strong>at</strong>ics<br />
CAMERA MODEL<br />
vincenzo lippiello – UAVs Visual Servoing 2
Vision sensors<br />
• The task of a camera as a vision sensor is to<br />
measure the intensity of the light reflected by<br />
an object<br />
• A photosensitive element (pixel) is employed<br />
– CCD (Charge Coupled Device)<br />
– CMOS (Complementary Metal Oxide<br />
Semiconductor)<br />
vincenzo lippiello – UAVs Visual Servoing 3
Vision sensors<br />
• Camera is a complex system comprising several<br />
devices:<br />
– Photosensitive sensor<br />
– Lens (responsible for focusing the light onto the sensor<br />
plane, i.e. image plane)<br />
– Analog/Digital preprocessing electronics<br />
vincenzo lippiello – UAVs Visual Servoing 4
Camera model<br />
• Perspective transform<strong>at</strong>ion<br />
f is the focal length<br />
SENSOR PLANE<br />
LENSE CENTER<br />
The image of an object<br />
appears upside down on<br />
the image plane<br />
vincenzo lippiello – UAVs Visual Servoing 5
Camera model<br />
• Frontal perspective transform<strong>at</strong>ion<br />
LENSE CENTER<br />
IMAGE PLANE<br />
Simplified model: lens and mounting<br />
imperfections cause image distortions<br />
(e.g. aberr<strong>at</strong>ions and geometric distortion)<br />
vincenzo lippiello – UAVs Visual Servoing 6
Camera model<br />
• Digitaliz<strong>at</strong>ion of the measurement<br />
– Sp<strong>at</strong>ial sampling (CCD/CMOS sensor): pixels<br />
– Temporal sampling (shutter)<br />
• Pixel coordin<strong>at</strong>es of a point:<br />
λ > 0 is a scale factor (optical ray)<br />
vincenzo lippiello – UAVs Visual Servoing 7
Camera model<br />
• Normalized image coordin<strong>at</strong>es (f = 1m)<br />
• Fe<strong>at</strong>ure vector of an image point<br />
vincenzo lippiello – UAVs Visual Servoing 8
Image point differential kinem<strong>at</strong>ics<br />
• Coordin<strong>at</strong>es of a 3D point fixed in the world<br />
frame w.r.t. the camera reference frame<br />
• Fe<strong>at</strong>ure vector of the point<br />
• Time deriv<strong>at</strong>ive of s<br />
vincenzo lippiello – UAVs Visual Servoing 9
Image point differential kinem<strong>at</strong>ics<br />
• By observing th<strong>at</strong><br />
• The differential kinem<strong>at</strong>ics of an image point<br />
c<br />
s = Ls s, z c v c<br />
v c = [o c ! c ] T<br />
vincenzo lippiello – UAVs Visual Servoing 10
Image point differential kinem<strong>at</strong>ics<br />
• Interaction m<strong>at</strong>rix of an image fe<strong>at</strong>ure point<br />
vincenzo lippiello – UAVs Visual Servoing 11
Rotary wings vehicles<br />
Quadrotor actu<strong>at</strong>ion system<br />
Quadrotor dynamic model<br />
QUADROTOR DYNAMIC MODEL<br />
vincenzo lippiello – UAVs Visual Servoing 12
Rotary wing vehicles<br />
• Main fe<strong>at</strong>ures<br />
– High maneuverability<br />
– Vertical take off and landing (VTOL)<br />
– Able to perform st<strong>at</strong>ionary/slow flight<br />
– Can fly in small and cluttered environment<br />
vincenzo lippiello – UAVs Visual Servoing 13
Quadrotor actu<strong>at</strong>ion system<br />
• Four motor/propeller systems<br />
arranged in a cross-like shape<br />
• Each motor spins <strong>at</strong> a proper<br />
angular speed (control input)<br />
• Each propeller produces a<br />
force th<strong>at</strong> is proportional to<br />
the square of angular speed<br />
f i = α! i<br />
2<br />
• Two motors rot<strong>at</strong>e C.W. and<br />
two A.C.W.<br />
vincenzo lippiello – UAVs Visual Servoing 14
Quadrotor actu<strong>at</strong>ion system<br />
COLLECTIVE SPEED<br />
RELATIVE SPEED IN THE GROUP<br />
RELATIVE SPEED BETWEEN GROUPS<br />
TRUST FORCE<br />
TORQUE AROUND x AND y<br />
TORQUE AROUND z<br />
vincenzo lippiello – UAVs Visual Servoing 15
Quadrotor dynamic model<br />
• Motion is given by<br />
– Mechanical components (gravity, inertia, spinning propellers, …)<br />
– Aerodynamic effects (blade thrust/drag, blade flapping, …)<br />
• The complete model is r<strong>at</strong>her complex<br />
– Some components can be estim<strong>at</strong>ed by identifying<br />
inertial/aerodynamic coefficients<br />
– It is common to have low level control loops to stabilize propeller<br />
speed, altitude, <strong>at</strong>titude<br />
– A simplified model can be used to design control for high level tasks<br />
• We consider the following simplifying assumptions:<br />
– No wind<br />
– UAV is symmetrical (diagonal inertia m<strong>at</strong>rices)<br />
– Secondary inertial/aerodynamic effects are neglected<br />
– Self-inducted aerodynamic disturbances are not modeled<br />
vincenzo lippiello – UAVs Visual Servoing 16
Quadrotor dynamic model<br />
• Simplified dynamic model<br />
Trust T = α !<br />
2<br />
1 + !2<br />
2 + !3<br />
2 + !4<br />
2<br />
Roll torque μx = α !<br />
2<br />
4 − !2<br />
2<br />
Pitch torque μy = α !<br />
2<br />
3 − !1<br />
2<br />
Yaw torque μ z = α !<br />
2<br />
1 − !2<br />
2 − !3<br />
2 + !4<br />
2<br />
mx =<br />
cψs ϑ c ϕ + sψs ϕ T<br />
mp = −TR b z −mgz<br />
J ! = μ<br />
my = sψs ϑ c ϕ − cψs ϕ T<br />
mz = c ϑ c ϕ T − mg<br />
(ψ ϑ ϕ) : yaw(Z)–pitch(Y)–roll(X) angles<br />
g = 9.81<br />
vincenzo lippiello – UAVs Visual Servoing 17
Image-based visual servoing (IBVS)<br />
Case 1: hovering control with one image fe<strong>at</strong>ure point<br />
Case 2: hovering and landing control with four image fe<strong>at</strong>ure points<br />
VISUAL SERVOING<br />
vincenzo lippiello – UAVs Visual Servoing 18
Visual servoing<br />
• Vision allows a robotic system to obtain<br />
geometrical and quantit<strong>at</strong>ive inform<strong>at</strong>ion on<br />
the surrounding environment<br />
• Control based on feedback of visual<br />
measurements is termed visual servoing<br />
• Main approaches to visual servoing<br />
– Position-based visual servoing (PBVS)<br />
– Image-based visual servoing (IBVS)<br />
vincenzo lippiello – UAVs Visual Servoing 19
Image-based visual servoing (IBVS)<br />
• Control the UAV to ensure the convergence of the<br />
image fe<strong>at</strong>ures error in the image plane<br />
– Desired reference assigned in the image plane!<br />
– Image fe<strong>at</strong>ures differential kinem<strong>at</strong>ics has to be considered<br />
– For UAVs the image fe<strong>at</strong>ures resulting motion depends on<br />
the vehicle motion w.r.t. the fixed environment<br />
UAV<br />
vincenzo lippiello – UAVs Visual Servoing 20
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Hovering task: regul<strong>at</strong>e the<br />
position (x, y) of the UAV, while<br />
keeping the target in the center of<br />
image plane<br />
– Using a down-looking camera, fixed<br />
and centered in the UAV CoG (body<br />
and camera reference frame<br />
coincident)<br />
– Using a single point fe<strong>at</strong>ure<br />
• It is not sufficient to control all the<br />
degrees of freedom<br />
• Motion along and around the image<br />
fe<strong>at</strong>ure optical ray is unobservable<br />
Y<br />
s d<br />
IMAGE PLANE<br />
s<br />
X<br />
vincenzo lippiello – UAVs Visual Servoing 21
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Additional assumptions:<br />
– Attitude is stabilized by a high frequency low level<br />
controller (commonly available on most systems)<br />
– Altitude is separ<strong>at</strong>ely controlled (the control input<br />
T becomes an exogenous signal, i.e. the measured<br />
trust)<br />
– Yaw angle is known and separ<strong>at</strong>ely controlled<br />
vincenzo lippiello – UAVs Visual Servoing 22
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Image fe<strong>at</strong>ure differential kinem<strong>at</strong>ics<br />
s = Ls s, z c v c c = Lv s, z c<br />
p c c + L! s ! c<br />
c<br />
• Error in the image plane (e.g. s d = 0)<br />
es = s d − s<br />
• By setting a desired velocity as<br />
c<br />
p c,d = Lv # s, z c Kses − L! s !<br />
c c<br />
a decupled exponential convergence achieved<br />
es = −Lv s, z c<br />
pc<br />
c,d<br />
− L! s ! c c = −Kses<br />
vincenzo lippiello – UAVs Visual Servoing 23
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Dynamic model of the UAV w.r.t. a frame<br />
rot<strong>at</strong>ed around the z-axis of the yaw angle ψ<br />
mx = cψs ϑ c ϕ + sψs ϕ T<br />
my = sψs ϑ c ϕ − cψs ϕ T<br />
mz = c ϑ c ϕ T − mg<br />
xψ<br />
y ψ<br />
zψ<br />
=<br />
cψ sψ 0<br />
−sψ cψ 0<br />
0 0 1<br />
x<br />
y<br />
z<br />
• Roll (ϕ) and pitch (ϑ) angles as control input<br />
xψ = T m s ϑ c ϕ<br />
yψ = − T m s ϕ<br />
vincenzo lippiello – UAVs Visual Servoing 24
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Let consider a inner velocity control loop<br />
xψ = Kv x c,d − x c<br />
y ψ = Kv y<br />
c,d − y c<br />
• By inverting the model<br />
ϑ d = asin<br />
m<br />
T K v x c,d − x c<br />
c ϕ<br />
ϕ d = −asin<br />
m T K v y<br />
c,d − y c<br />
vincenzo lippiello – UAVs Visual Servoing 25
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Velocity estim<strong>at</strong>ion by inverting the image fe<strong>at</strong>ure<br />
point differential kinem<strong>at</strong>ics<br />
p c c = Lv # s, z c s − L! s ! c<br />
c<br />
• Advantages<br />
– only fe<strong>at</strong>ure coordin<strong>at</strong>es and the <strong>at</strong>titude required<br />
– easy implement<strong>at</strong>ion/low comput<strong>at</strong>ional cost<br />
• Disadvantages<br />
– not so accur<strong>at</strong>e (numerical deriv<strong>at</strong>ion of image fe<strong>at</strong>ure<br />
coordin<strong>at</strong>es s is required)<br />
vincenzo lippiello – UAVs Visual Servoing 26
Case 1 : hovering control with one image<br />
fe<strong>at</strong>ure point<br />
• Control scheme<br />
vincenzo lippiello – UAVs Visual Servoing 27
Case 2: hovering and landing control with<br />
four image fe<strong>at</strong>ure points<br />
• Hovering and landing task: regul<strong>at</strong>e<br />
the position (x, y, z) and the<br />
orient<strong>at</strong>ion (yaw angle) of the UAV<br />
w.r.t. an observed object<br />
– Using a down-looking camera, fixed<br />
and centered in the UAV CoG<br />
– Using four point fe<strong>at</strong>ures (three is the<br />
minimum needed number)<br />
– Attitude is stabilized by an high<br />
frequency low level controller<br />
s d<br />
X<br />
IMAGE PLANE<br />
s<br />
Y<br />
vincenzo lippiello – UAVs Visual Servoing 28
Case 2: hovering and landing control with<br />
four image fe<strong>at</strong>ure points<br />
• Interaction m<strong>at</strong>rix of a set of image points<br />
n = 4<br />
• Error in the image plane<br />
es = s d − s<br />
– s d constant (or slowly varying)<br />
vincenzo lippiello – UAVs Visual Servoing 29
Case 2: hovering and landing control with<br />
four image fe<strong>at</strong>ure points<br />
• Control problem<br />
mp = −u − mgz<br />
• Control input<br />
u = TRcz<br />
• Control input with a gravity compens<strong>at</strong>ion<br />
u′ = u + mgz<br />
• Inner velocity control loop<br />
c c<br />
u′ = KvRc p c,d − p c<br />
vincenzo lippiello – UAVs Visual Servoing 30
Case 2: hovering and landing control with<br />
four image fe<strong>at</strong>ure points<br />
• Desired linear velocity evalu<strong>at</strong>ed as<br />
c<br />
p<br />
c,d<br />
= Lv # s, z c Kses − L! s ! c<br />
c<br />
• Desired yaw velocity evalu<strong>at</strong>ed as<br />
ψ d = z T R c L! # s Kses − Lv s, z c p c<br />
c<br />
– Linear velocity p c c<br />
chosen equal to p c c<br />
c<br />
or p<br />
c,d<br />
– Yaw angle control loop: PI controller<br />
vincenzo lippiello – UAVs Visual Servoing 31
Case 2: hovering and landing control with<br />
four image fe<strong>at</strong>ure points<br />
• Control scheme<br />
vincenzo lippiello – UAVs Visual Servoing 32
REFERENCES:<br />
o B. Siciliano, L. Sciavicco, L. Villani, G. Oriolo, “<strong>Robotics</strong>: Modelling,<br />
Planning and Control”, 2nd Ed., 2009<br />
o L. Rosa, “Autonomous and Mobile <strong>Robotics</strong>: Visual Servoing for<br />
Unmanned Aerial Vehicles”<br />
THANK YOU FOR YOUR ATTENTION<br />
vincenzo lippiello – UAVs Visual Servoing 33