You are on page 1of 12

PALADYN Journal of Behavioral Robotics

Research Article DOI: 10.2478/pjbr-2013-0017 JBR


Application of the Novint Falcon haptic device as an actuator in
real-time control
Daniel J. Block
1,
, Mark B.
Michelotti
2,
, Ramavarapu S.
Sreenivas
3,
1 College of Engineering Control Systems
Laboratory,
University of Illinois at Urbana-Champaign,
Urbana IL 61801, USA
2 Navistar Inc.,
Barrington, IL 60010, USA
3 Coordinated Science Laboratory &
Industrial and Enterprise Systems Engineering,
University of Illinois at Urbana-Champaign,
Urbana IL 61801, USA
Received 13-10-2013
Accepted 25-11-2013
Abstract
This paper describes the development of an embedded system whose purpose is to control the Novint Falcon as
a robot, and to develop a control experiment that demonstrates the use the Novint Falcon as a robotic actuator.
The Novint Falcon, which is a PC input device, is haptic in the sense that it has a force feedback component.
Its relatively low cost compared with other platforms makes it a good candidate for academic application in robot
modeling and control. An embedded system is developed to interface with the multiple motors and sensors present
in the Novint Falcon, which is subsequently used to control three independent Novint Falcons for a ball-
on-plate experiment. The results show that the device is a viable solution for high-speed actuation of small-scale
mechanical systems.
Keywords
haptic device embedded systems electromechanical systems
2013 Daniel J. Block et al., licensee Versita Sp. z o. o.
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs license, which means that the text may be used
for non-commercial purposes, provided credit is given to the author.
1. Introduction
The Novint Falcon is a haptic device (cf. gure 1) that is intended
to serve as a replacement for a joystick or mouse. In its structure and
design it is a small robot that permits the user to experience virtual touch
in a seamless manner. The user moves the spherical grip around in 3D
space, providing input to a PC.
Although it is intended to be used as a type of force-feedback PC game
controller, other applications have been explored, including robotics [2].
The relatively low cost of the Novint Falcon makes it a good candidate
for a high-volume academic robotic platform. Actuation can be accom-
plished by using the force-feedback motors to move the manipulator.
Robotic control of the Novint Falcon requires a kinematic understand-
ing of the mechanical conguration of the device, as well as a digital
computer to perform necessary control calculations. The devices me-
chanical system remains unchanged for the purposes outlined in this
paper; however, its electrical system is bypassed to allow direct control
of the force-feedback motors.
The use of alternate approaches to the design of PI, PD and PID con-
trollers have received attention from several researchers. The classical

E-mail: d-block@illinois.edu

E-mail: mark.michelotti@gmail.com

E-mail: rsree@illinois.edu
design methods used in this paper could be augmented and improved
by the use of these newer approaches [1317].
!

!"#$ &' ()*+, $-. /01*+$ 2"340+ ") " 5060$
!"#$%&'( *+(,-$.&$"% "/ &0+ 123,"% $(4 560+ !"#$%& #$%&'( )* $( +(,)-+%. (+/ ,.0+ '1 2$3+ &'(,-'%%+-4
5+0%$&)(2 .'6- 3'6*+ '- 7'.*,)&89 ,:+ #$%&'( )*9 +**+(,)$%%.9 $ *3$%% -';', ,:$, %+,* .'6 +<0+-)+(&+ ,-6+
=)-,6$% ,'6&: 6(%)8+ $(. &'(,-'%%+- )( :)*,'-.4 >?@7 A, )* *:'/( )( #)26-+ !4

2*,7#. 8' 9-. /01*+$ 2"340+ :; <0+$#033.#
B:+ 6*+- 3'=+* ,:+ *0:+-)&$% 2-)0 $-'6(C )( DE *0$&+9 0-'=)C)(2 )(06, ,' $ FG4 H, ,:+ *$3+ ,)3+9 ,:+ FG
,"8.9&+( &0+ 2..-".-$2&+ /"-,+( &" 5.9(0 :2,;7 $, ,:+ 6*+- /),:9 ;$*+C '( ,:+ 0:.*)&$% -6%+* '1 *'3+
=)-,6$% )(,+-$&,)'(4 A( &0$( <2=> &0+ 123,"% ,2% ?+%+-2&+ 2 #$-&923 5/++3$%?7> (9,0 2( .9(0$%? 2?2$%(& 2 <233
'- %)1,)(2 $ /+)2:,4 A, :$* :)2: +('62: -+*'%6,)'( ,' *)36%$,+ *)30%+ ,+<,6-+*9 $(C ), )* *,-'(2 +('62: ,'
$00%. $ 1'-&+ '1 ,/' 0'6(C* )( $(. C)-+&,)'( >?@4

Figure 1. The Novint Falcon 3D controller.
1.1. Kinematic Conguration
The mechanical conguration of the Novint Falcon was rst introduced
by Tsai and Stamper in their 1997 technical research report [4]. The
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
Novint Falcons conguration is identical to that presented in this report,
which has several attractive characteristics.
The kinematics have closed-form solutions.
Position and orientation of the manipulator are uncoupled.
The construction uses only revolute joints, resulting in a lower
hardware cost.
The Novint Falcon consists of a stationary platform and a moving plat-
form. In general, the stationary platform is attached to the world coor-
dinate frame, and the moving platform can be thought of as the ma-
nipulator. The two platforms are connected by three identical parallel
kinematic chains, much like the common delta-conguration robot. A
simplied schematic of gure 1 is shown in gure 2. It diers from g-
ure 1 in that the device is facing upward instead of sideways. The links
are labeled by numbers 0 through 16, where the stationary platform is
labeled 0 and the moving platform is labeled 16.
There are four links in each of the three kinematic chains. The rst link
in each chain (links 1, 2, and 3) is connected to the stationary platform,
equally spaced from the other two lowest links. The next four links
form a parallelogram connected to the moving platform. The four-bar
parallelogram consists of links (4, 7, 10, 13) for the rst chain, (5, 8,
11, 14) for the second chain, and (6, 9, 12, 15) for the third chain. The
three parallelograms are connected to the moving platform with equal
spacing.
The result of this conguration is a moving platform with only transla-
tional degrees of freedom- that is, the moving platformwill always have
the same orientation, but its position in 3D space can be controlled by
actuating only the lowest three joints. Accordingly, the Novint Falcon
has sensors to detect the angular position of only the lowest three joints.
An analysis of the constrained degrees of freedom of the device can
be found in the paper by Tsai and Stamper [3], and is presented here
for the sake of completeness.
4


!"#$%& () *&+,-."+-/ 0+,&1-2"+ 34 2,& 536".2 !-/+3.!" $%&%'() )%*+(,-$.'(%*
1here are four llnks ln each of Lhe Lhree klnemaLlc chalns. 1he flrsL llnk ln each chaln (llnks 1, 2, and 3) ls
connecLed Lo Lhe sLaLlonary plaLform, equally spaced from Lhe oLher Lwo lowesL llnks. 1he nexL four
llnks form a parallelogram connecLed Lo Lhe movlng plaLform. 1he four-bar parallelogram conslsLs of
llnks (4, 7, 10, 13) for Lhe flrsL chaln, (3, 8, 11, 14) for Lhe second chaln, and (6, 9, 12, 13) for Lhe Lhlrd
chaln. 1he Lhree parallelograms are connecLed Lo Lhe movlng plaLform wlLh equal spaclng.

1he resulL of Lhls conflguraLlon ls a movlng plaLform wlLh only LranslaLlonal degrees of freedom ! LhaL ls,
Lhe movlng plaLform wlll always have Lhe same orlenLaLlon, buL lLs poslLlon ln 3u space can be
conLrolled by acLuaLlng only Lhe lowesL Lhree [olnLs. Accordlngly, Lhe novlnL lalcon has sensors Lo
deLecL Lhe angular poslLlon of only Lhe lowesL Lhree [olnLs. An analysls of Lhe consLralned degrees of
freedom of Lhe devlce can be found ln Lhe paper by 1sal and SLamper[1].
Figure 2. Mechanical schematic of the Novint Falcons robotic conguration.
1.2. Inverse Kinematics [4]
The inverse kinematics problem for this platform can now be stated:
Given the (x, y, z) position of the center of the moving platform, nd
the angular position of the lowest three joints. Figure 3 is a side view
schematic of one of the three kinematic chains. The subscript i denotes
the i-th kinematic chain, where i is 1, 2, or 3.
3

!"! $%&'()' *+%',-.+/)
1he lnverse klnemaLlcs problem for Lhls plaLform can now be sLaLed: Clven Lhe (!"#"$) poslLlon of Lhe
cenLer of Lhe movlng plaLform, flnd Lhe angular poslLlon of Lhe lowesL Lhree [olnLs. 1hls problem has
been solved by 1sal and SLamper [1]. 1hls secLlon ls a summary of Lhelr work. llgure 3 ls a slde vlew
schemaLlc of one of Lhe Lhree klnemaLlc chalns. 1he subscrlpL % denoLes Lhe %
&'
klnemaLlc chaln, where %
ls 1, 2, or 3.

0+12(' 34 5+6' &+'7 89 .:' !
"#
;+%',-.+/ /:-+%
1he coordlnaLe frame (!" #" $) ls aLLached Lo Lhe cenLer of Lhe sLaLlonary plaLform. 1he orlgln (Lhe cenLer
of Lhe sLaLlonary plaLform) ls labeled polnL ), and Lhe cenLer of Lhe movlng plaLform ls labeled polnL *.
+ ls Lhe vecLor from Lhe cenLer of Lhe sLaLlonary plaLform Lo Lhe cenLer of Lhe movlng plaLform. 1he
dlsLance from Lhe cenLer of Lhe sLaLlonary plaLform Lo Lhe lowesL [olnL ([olnL ,%) ls denoLed -, and Lhe
dlsLance from Lhe cenLer of Lhe movlng plaLform Lo Lhe hlghesL [olnL ([olnL .%) ls denoLed /. 1he lengLhs
of Lhe llnks are labeled 0, 1, 2, and 3. 1he angular poslLlons of llnks ,%, 4%, and 5% are glven by !6%, !7%, and
!8%, respecLlvely. A coordlnaLe frame (9%" :%" ;%) ls deflned for each klnemaLlc chaln, aLLached aL polnL ,%.
Figure 3. Side view of the i-th kinematic chain (Figure 2, [4]).
The coordinate frame (x, y, z) is attached to the center of the station-
ary platform. The origin (the center of the stationary platform) is labeled
point O, and the center of the moving platform is labeled point P, p
is the vector from the center of the stationary platform to the center
of the moving platform. The distance from the center of the station-
ary platform to the lowest joint (joint A
i
) is denoted r, and the distance
from the center of the moving platform to the highest joint (joint E
i
) is
denoted c. The lengths of the links are labeled a, b, d, and e. The
angular positions of links A
i
, B
i
, and C
i
are given by
1i
,
2i
, and
3i
,
respectively. A coordinate frame (u
i
, v
i
, w
i
) is dened for each kine-
matic chain, attached at point A
i
.
The following coordinate transformation expresses the position of point
P in the (u
i
, v
i
, w
i
) coordinate system.
p
i
=

cos
i
sin
i
0
sin
i
cos
i
0
0 0 1

p +

r
0
0

where
i
is the angle of rotation of the i-th kinematic chain with respect
to the (x, y, z) coordinate frame, and p
i
= (p
ui
p
vi
p
wi
)
T
. Expressions
for p
ui
, p
vi
, and p
wi
are given by:
p
ui
= acos
1i
c + (d +e +bsin
3i
) cos
2i
p
vi
= bcos
3i
p
wi
= asin
1i
+ (d +e +bsin
3i
) sin
2i
The solution for
3i
is

3i
= cos
1
p
vi
b
.
With
3i
known, an equation with
2i
as the only unknown is generated
by isolating the
2i
terms in the equations for p
ui
, and p
wi
and then
summing the squares of those two equations so that
2i
is eliminated
with the application of the Pythagorean relationship as follows
(p
ui
+c)
2
+p
2
wi
+a
2
2a(p
ui
+c) cos
1i
2p
wi
sin
1i
=
(d +e)
2
+ 2(d +e)bsin
3i
+b
2
sin
3i
2
. (1)
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
Letting t
1i
= tan

1i
2
, we have
sin
1i
=
2t
1i
1 +t
2
1i
and cos
1i
=
1 t
2
1i
1 +t
2
1i
,
substituting the above expressions into equation 1 and simplifying, the
following equation is obtained
l
2i
t
2
1i
+l
1i
t
1i
+l
0i
= 0,
where
l
0i
= p
2
wi
+p
2
ui
+ 2cp
ui
2ap
ui
b
2
sin
2

3i

2be sin
3i
2bd
3i
2de 2ac +a
2
+c
2
d
2
e
2
l
1i
= 4p
wi
l
2i
= p
2
wi
+p
2
ui
+ 2cp
ui
2ap
ui
b
2
sin
2

3i

2be sin
3i
2bd
3i
2de 2ac +a
2
+c
2
d
2
e
2
This quadratic equation can be solved for t
1i
, which gives two possible
values for
1i
for each of the two possible values of
3i
.
2i
can then
be found by substituting these values into the initial expression of the
manipulator position. Thus, there are four possible solutions for any
given (x, y, z) position. In the conguration of the Novint Falcon, the
range of motion of joint C prevents angle
3i
from being negative. This
eliminates two solutions. Similarly,
1i
is always in the rst quadrant,
which eliminates the remaining ambiguity, leaving one solution [3].
1.3. Forward Kinematics
The forward kinematics problem is: Given (
11
,
12
,
13
), nd the
(x, y, z) position of the center of the moving platform. However, the
closed-formanalytical solution to this problemis signicantly more com-
plex. Tsai and Stamper [3] have shown that the parallel conguration of
the manipulator results in 16 forward kinematic solutions for any given
set of values for the angular positions of the lowest three joints. The
solution involves solving a high-degree polynomial [2, 3]. Since the for-
ward kinematics function is expected to be executed every sampling
period (1 kHz), it is desired to avoid this complexity. Nonetheless, if
closed-loop position control is to be achieved, a computation of the
forward kinematics is required. Fortunately, there are other methods
available for this computation. One alternative is to use a look-up table
and interpolation. The main advantage with a look-up table is that it
needs to be generated only once, and subsequent use involves com-
putationally simple interpolation. The disadvantage is that some accu-
racy is sacriced, depending on the resolution of the table. To achieve
higher accuracy, we recognize that the forward kinematic problem is
a system of nonlinear equations in three variables. Therefore, a non-
linear zero-nding method such as Broydens method can be used [5].
Since this is an iterative method, it is not guaranteed to converge to
the true solution unless the starting guess is relatively close to the
true solution. Given this limitation, a combination of a look-up table and
Broydens method is used. The look-up table provides an approximate
solution, which is then used as a starting point for Broydens method,
which converges to the true solution. In a real-time control environment,
it is assumed that this computation will occur every sampling period. In
light of this, another good starting point for Broydens method is simply
the position of the manipulator at the previous time step. Using these
heuristics, Broydens method converges to less than 0.1 mm error in
1-2 iterations.
1.4. Implementation of Kinematics
The relevant dimensions of the Novint Falcon are enumerated in gure
4. Computation of the inverse kinematics for the rst kinematic chain
is implemented using the code shown in gure 5. The implementa-
tion of Broydens method to solve the forward kinematics problem uses
the inverse kinematics function iteratively. Broydens method takes the
general form of the code shown in gure 6.
9

!"# %&'()&)*+,+-.* ./ 0-*)&,+-12
1he relevanL dlmenslons of Lhe novlnL lalcon are enumeraLed ln 1able 1.
ulmenslon value
a 60 mm
b 103 mm
c 16.3 mm
d 12 mm
e 12 mm
r 37 mm
!
1
-14.44
!
2
-103.36
!
3
-223.36

3,4() !5 6-&)*2-.*2 ./ +7) 8.9-*+ :,(1.*
CompuLaLlon of Lhe lnverse klnemaLlcs for Lhe flrsL klnemaLlc chaln ls lmplemenLed ln Code Sample 1.
"#$ &'()$'$*+,+&-* -. /0-12$*34 '$+#-2 +- 4-)5$ +#$ forward klnemaLlcs problem uses Lhe lnverse
6&*$',+&74 .8*7+&-* &+$0,+&5$)19 /0-12$*34 '$+#-2 +,6$4 +#$ :$*$0,) .-0' -. ;-2$ <,'()$ =9












Figure 4. Dimensions of the Novint Falcon.
!"



function [theta1] = inverse_kinematics(x, y, z)
r = 37;
a = 60;
b = 103;
c = 16.3;
d = 12;
e = 12;
phi = -0.252 %radians

pu = x*cos(phi) + y*sin(phi) - r;
pv = -x*sin(phi) + y*cos(phi);
pw = z;

theta3 = acos(pv/b);

l0 = pw^2+pu^2+2*c*pu-2*a*pu+a^2+c^2-d^2-e^2-b^2*sin(theta3)^2-
2*b*e*sin(theta3)-2*b*d*sin(theta3)-2*d*e-2*a*c;
l1 = -4*a*pw;
l2 = pw^2+pu^2+2*c*pu+2*a*pu+a^2+c^2-d^2-e^2-b^2*sin(theta3)^2-
2*b*e*sin(theta3)-2*b*d*sin(theta3)-2*d*e+2*a*c;

t1 = (-l1-sqrt(l1^2-4*l2*l0))/(2*l2);
theta1 = atan(t1)*2;

!"#$ &'()*$ +, -./$01$ 23.$('4351 6789:8;<




Figure 5. Inverse Kinematics (MATLAB).
For the application-specic forward kinematics, x
k
= (x
k
y
k
z
k
)
T
is
the k-th approximation of the position of the moving platform. f is the
inverse kinematics function whose input is the (x, y, z) position of the
moving platform and whose output is the three angles of the lowest
three joints, (
11

12

13
)
T
. B
k
is the k-th approximation of the Ja-
cobian matrix of the nonlinear function f. Note that the derivative of f
is not explicitly evaluated. Rather, the Jacobian matrix is successively
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
11

x0 = initial guess
B0 = initial Jacobian approximation
for k = 0, 1, 2, ...
Solve Bksk = -f(xk) for sk
xk+1 = xk + sk
yk = f(xk+1) ! f(xk)
Bk+1 = Bk + ((yk ! Bksk)sk
T
)/(sk
T
sk)
end
!"#$ &'()*$ +, -."/#$012 3$45"# 6)2$7#"8"#$9

lor Lhe appllcaLlon-speclflc forward klnemaLlcs, !" $ %!"& '"& (")
*
ls Lhe "
+,
approxlmaLlon of Lhe poslLlon of
Lhe movlng plaLform. - ls Lhe lnverse klnemaLlcs funcLlon whose lnpuL ls Lhe %!& '& () poslLlon of Lhe
movlng plaLform and whose ouLpuL ls Lhe Lhree angles of Lhe lowesL Lhree [olnLs, %!..& !./& !.0)
1
. 8k ls
Lhe "
+,
approxlmaLlon of Lhe !acoblan maLrlx of Lhe nonllnear funcLlon -. noLe LhaL Lhe derlvaLlve of - ls
noL expllclLly evaluaLed. 8aLher, Lhe !acoblan maLrlx ls successlvely approxlmaLed. Slnce Lhe !acoblan of
Lhe lnverse klnemaLlcs funcLlon ls dlfflculL Lo compuLe, Lhls ls a deslred properLy. (from [13])









Figure 6. Broydens Method (pseudocode).
approximated. Since the Jacobian of the inverse kinematics function is
dicult to compute, this is a desired property [6].
2. Control
The required components for feedback control of the Novint Falcon
are available in the device. Three DC motors actuate the lowest three
joints, and three encoders provide position feedback for the lowest
three joints. To achieve control of the (x, y, z) position of the manipula-
tor, the Novint Falcon can be considered to have three inputs and three
outputs. The three inputs are the voltages across the three DC motors
that drive the lowest joint of each kinematic chain. The three outputs
are the x, y, and z position of the center of the moving platform. Using
the kinematics derived in the previous section to provide desired mo-
tor angular positions, the system can be posed as three single-input
single-output (SISO) systems, rather than one multiple-input multiple-
output (MIMO) system. The angular position of each motor will then
be uncoupled and controlled individually. Position control of each DC
motor is attained using the common PID controller by selecting appro-
priate gains. A block diagram for feedback control of a single DC motor
using this classical control strategy is shown in gure 7.
12

!" $%&'(%)
1he requlred componenLs for feedback conLrol of Lhe novlnL lalcon are avallable ln Lhe devlce. 1hree
uC moLors acLuaLe Lhe lowesL Lhree [olnLs, and Lhree encoders provlde poslLlon feedback for Lhe lowesL
Lhree [olnLs. 1o achleve conLrol of Lhe (!" $" %) poslLlon of Lhe manlpulaLor, Lhe novlnL lalcon can be
consldered Lo have Lhree lnpuLs and Lhree ouLpuLs. 1he Lhree lnpuLs are Lhe volLages across Lhe Lhree
uC moLors LhaL drlve Lhe lowesL [olnL of each klnemaLlc chaln. 1he Lhree ouLpuLs are Lhe !, $, and %
poslLlon of Lhe cenLer of Lhe movlng plaLform. uslng Lhe klnemaLlcs derlved ln Lhe prevlous secLlon Lo
provlde deslred moLor angular poslLlons, Lhe sysLem can be posed as Lhree slngle-lnpuL slngle-ouLpuL
(SlSC) sysLems, raLher Lhan one mulLlple-lnpuL mulLlple-ouLpuL (MlMC) sysLem. 1he angular poslLlon of
each moLor wlll Lhen be uncoupled and conLrolled lndlvldually. oslLlon conLrol of each uC moLor ls
aLLalned uslng Lhe common lu conLroller by selecLlng approprlaLe galns. A block dlagram for feedback
conLrol of a slngle uC moLor uslng Lhls classlcal conLrol sLraLegy ls shown ln llgure 4.

*+,-(. /" 012 3%&'(%) 4'(5'.,6 7%( 5 2$ 8%'%(
lL ls dlfflculL Lo compuLe galns analyLlcally slnce Lhe planL characLerlsLlcs of Lhe uC moLor are unknown
and nonllnear. 1he nonllnearlLles are due Lo Lhe nonllnear dynamlcs of Lhe devlce. 1herefore, an
alLernaLlve manual approach ls Laken. 1he galns can be Luned experlmenLally unLll a sulLable response ls
achleved. Cnce Lhe approprlaLe galns have been found, Lhe poslLlon of Lhe manlpulaLor can be
conLrolled Lo a polnL ln lLs workspace. A block dlagram for Lhls manlpulaLor poslLlon conLrol sLraLegy ls
shown ln llgure 3.
Figure 7. PID control strategy for a DC motor.
It is dicult to compute gains analytically since the plant characteris-
tics of the DC motor are unknown and nonlinear. The nonlinearities are
due to the nonlinear dynamics of the device. Therefore, an alternative
manual approach is taken. The gains can be tuned experimentally un-
til a suitable response is achieved. Once the appropriate gains have
been found, the position of the manipulator can be controlled to a point
in its workspace. A block diagram for this manipulator position control
strategy is shown in 8. In this block diagram, the Motor Control Loop
blocks represent the system of the Figure 7 for each motor. The loop
is closed in these blocks rather than in an outer loop that feeds back
the (x, y, z) position. This is done for two reasons. First, to directly
feed the sensor output back, rather than an output value of the non-
linear forward kinematics function. Second, to avoid having to input
an error term rather than an absolute position into the inverse kinemat-
ics function. It is easy to see that the behavior of the position error of
the manipulator is directly related to the behavior of the motor angular
error by the inverse kinematic function. The conclusion is that a well-
designed motor control will result in a well-behaved position control;
e.g., the step response of the moving platform will have the same time
constant as the step response of the DC motors. So, the goal is to
design the controller of gure 8 to satisfy some design specications.
The manual control gain tuning procedure is enumerated here:
1. Find some intuitive starting point for k
p
, and set k
i
and k
d
to
zero.
2. Tune k
p
until the response speed is fast. There may be some
overshoot in the step response.
3. Increase k
d
until the overshoot decreases to an acceptable
level.
4. Repeat steps 2 and 3 until the response is as fast as possible
with acceptable overshoot.
5. Determine the steady-state error due to static friction and in-
crease k
i
accordingly.
13


!"#$%& () *+,"-"+. /+.-%+0 ,-%1-&#2 3+% -4& 5+6".- !10/+.
ln Lhe block dlagram of llgure 3! #$% &'(#() *(+#)(, -((./ 0,(123 )%.)%3%+# #$% 343#%5 (6 #$% 789:)% 4
6() %;1$ 5(#()< =$% ,((. 83 1,(3%> 8+ #$%3% 0,(123 );#$%) #$;+ 8+ ;+ &(:#%) ,((./ #$;# 6%%>3 0;12 #$% ?!"
$" %) poslLlon. 1hls ls done for Lwo reasons. llrsL, Lo dlrecLly feed Lhe sensor ouLpuL back, raLher Lhan an
ouLpuL value of Lhe nonllnear forward klnemaLlcs funcLlon. Second, Lo avold havlng Lo lnpuL an error
Lerm raLher Lhan an absoluLe poslLlon lnLo Lhe lnverse klnemaLlcs funcLlon. lL ls easy Lo see LhaL Lhe
behavlor of Lhe poslLlon error of Lhe manlpulaLor ls dlrecLly relaLed Lo Lhe behavlor of Lhe moLor angular
error by Lhe lnverse klnemaLlc funcLlon. 1he concluslon ls LhaL a well-deslgned moLor conLrol wlll resulL
ln a well-behaved poslLlon conLrol, e.g., Lhe sLep response of Lhe movlng plaLform wlll have Lhe same
Llme consLanL as Lhe sLep response of Lhe uC moLors. So, Lhe goal ls Lo deslgn Lhe conLroller of llgure 3
Lo saLlsfy some deslgn speclflcaLlons. 1he manual conLrol galn Lunlng procedure ls enumeraLed here:
1. llnd some lnLulLlve sLarLlng polnL for &', and seL &( and &) Lo zero.
2. 1une &' unLll Lhe response speed ls fasL. 1here may be some overshooL ln Lhe sLep response.
3. lncrease &) unLll Lhe overshooL decreases Lo an accepLable level.
4. 8epeaL sLeps 2 and 3 unLll Lhe response ls as fasL as posslble wlLh accepLable overshooL.
3. ueLermlne Lhe sLeady-sLaLe error due Lo sLaLlc frlcLlon and lncrease &( accordlngly.
Figure 8. Position control strategy for the Novint Falcon.
It is important to note that the goal is to design a feedback control
such that the motor position will track a continuous trajectory with
high delity. Although the design is largely taking place with respect
to step response specications, a good step response will result in
good trajectory tracking. After tuning, the gains resulting in the best
response are k
p
= 20, k
d
= 0.2, and k
i
= 1. The step re-
sponse of the Novint Falcon moving from (x, y, z) = (22, 14, 135)
to (x, y, z) = (4, 3, 112) is shown in gure 9, as well as the response
of the motors. Figure 10 shows the performance when tracking a sinu-
soidal trajectory input. In both gures, the dotted line is the reference
input and the solid line is the output.
As a nal note, in all results presented in this section, dierence equa-
tions are computed from discrete representations of the designed con-
troller and implemented on a digital computer. A discrete dierentiator
has the form D(z) =
z1
Tsz
, and a discrete integrator is of the form
D(z) =
Ts
z1
, where T
s
= 10
3
seconds is the sampling period of the
discrete system.
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
14

lL ls lmporLanL Lo noLe LhaL Lhe goal ls Lo deslgn a feedback conLrol such LhaL Lhe moLor poslLlon wlll
Lrack a conLlnuous Lra[ecLory wlLh hlgh fldellLy. AlLhough Lhe deslgn ls largely Laklng place wlLh respecL
Lo sLep response speclflcaLlons, a good sLep response wlll resulL ln good Lra[ecLory Lracklng. AfLer
Lunlng, Lhe galns resulLlng ln Lhe besL response are !" = 20, !# = 0.2, and !$ = 1. 1he sLep response of Lhe
novlnL lalcon movlng from (x, y, z) = (-22, 14, 133) Lo (x, y, z) = (-4, 3, 112) ls shown ln llgure 6, as well as
Lhe response of Lhe moLors. llgure 7 shows Lhe performance when Lracklng a slnusoldal Lra[ecLory
lnpuL. ln boLh flgures, Lhe doLLed llne ls Lhe reference lnpuL and Lhe solld llne ls Lhe ouLpuL.

!"#$%& () *+&, %&-,./-& .0 +1& 2&-"#/&2 ,.-"+"./ 3./+%.44&%
Figure 9. Step response of the designed position controller.
13


!"#$%& () *%+,&-./%0 %&12/31& /4 .5& 6&1"#3&6 2/1"."/3 -/3.%/77&%
As a flnal noLe, ln all resulLs presenLed ln Lhls secLlon, dlfference equaLlons are compuLed from dlcreLe
represenLaLlons of Lhe deslgned conLroller and lmplemenLed on a dlglLal compuLer. A dlscreLe
dlfferenLlaLor has Lhe form
!"#$ %
# ' (
)
*
#

A dlscreLe lnLegraLor ls of Lhe form
!"#$ %
)
*
# ' (

where !" = 10
-3
seconds ls Lhe sampllng perlod of Lhe dlscreLe sysLem.

Figure 10. Trajectory response of the designed position controller.
3. Hardware Implementation
The Novint Falcon device communicates to a controlling computer
through a USB (Universal Serial Bus) port. Novint reports a sampling
rate of 1 kHz through the USB interface. However, Martin and Hillier
[2] reported that this update rate was not sustained with high delity,
and typically missed commands or reads resulted in a real-world com-
munication rate between 800 Hz and 1 kHz, depending on the con-
trolling computers load. In other words, the non-realtime nature of a
PC operating system contributed to variations in the sample rate. The
PC interface also resulted in a 2-5 sample delay between commands
being issued and results being received. It is desired to control the
three motors in the Novint Falcon at a hard real-time sampling rate of 1
kHz. This type of high-delity control can be achieved with an embed-
ded processor running a real-time operating system. There are several
challenges in implementing this hardware strategy, including:
1. Overriding the existing embedded system in the Novint Falcon
2. Choosing a suitable processor
3. Driving the three DC motors
4. Reading the three motor position sensors
To override the existing embedded system in the Novint Falcon, the cir-
cuit board in the device must be analyzed. It is shown in gure 11. The
controlling processor is indicated in gure 11. Removing this chip re-
sults in a more static system; i.e., individual components of the Novint
Falcon are not enabled and disabled unexpectedly. It is important to
note that after this modication, the device will be permanently disabled
for its intended purpose as a haptic input controller.
!"


!"#$%& () *+& &,-&..&. /"%/$"0 -12%. "3 0+& 415"30 !26/137
81,913&30 :&;/%"90"13
! $%&'() *+,+-./ 012-31//43
( 5261743 85* 49+--43: .27 ;<1-1:42:13:
' &=;;/4942-.3> &42:13:
? %1-13 84.7:
@ 012-31//43 A=--12:

*2-6& <) :&;/%"90"13 1= /1,913&30; "3 !"#$%& (

!"


!"#$%& () *+& &,-&..&. /"%/$"0 -12%. "3 0+& 415"30 !26/137
81,913&30 :&;/%"90"13
! $%&'() *+,+-./ 012-31//43
( 5261743 85* 49+--43: .27 ;<1-1:42:13:
' &=;;/4942-.3> &42:13:
? %1-13 84.7:
@ 012-31//43 A=--12:

*2-6& <) :&;/%"90"13 1= /1,913&30; "3 !"#$%& (

Figure 11. The embedded circuit board in the Novint Falcon, and a description
of its components.
3.1. Embedded Processor
The basic requirements for the embedded processor to control the
Novint Falcon are enumerated here.
1. Powerful enough to handle a 1 kHz sample rate
2. Capable of driving a DC motor (pulse-width modulated outputs
or DAC outputs)
3. Sensor inputs to handle motor position feedback and supple-
mentary sensors
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
The Texas Instruments TMS320F28335 Delno Microcontroller con-
trolCard is a complete board-level module in an industry-standard Dual
In-line Memory Module (DIMM) form factor, shown in gure 12 [7]. The
F28335 satises all the basic requirements for control of the Novint
Falcon
1. It has a 150 MHz clock speed and is more than capable of a
1kHz sample rate. It also has a oating-point unit, making con-
trol calculations more ecient.
2. Its multiple pulse-width modulated outputs can be amplied to
drive the three motors of the Novint Falcon
3. It has quadrature counters to interface with the encoders at-
tached to each motor, as well as a Serial Peripheral Interface
(SPI) to communicate with external quadrature counter chips.
Its many General Purpose Input/Output (GPIO) pins can serve
as inputs for any supplementary sensors.
18

!"#$ &'()**)* +,-.)//-,
1he baslc requlremenLs for Lhe embedded processor Lo conLrol Lhe novlnL lalcon are enumeraLed here.
1. owerful enough Lo handle a 1 kPz sample raLe
2. Capable of drlvlng a uC moLor (pulse-wldLh modulaLed ouLpuLs or uAC ouLpuLs)
3. Sensor lnpuLs Lo handle moLor poslLlon feedback and supplemenLary sensors
1he 1exas lnsLrumenLs 1MS320l28333 uelflno MlcroconLroller conLrolCard ls a compleLe board-level
module ln an lndusLry-sLandard uual ln-llne Memory Module (ulMM) form facLor, shown ln llgure 9.
[13]

0123,) 4$ 56) 078!!9 .-:;,-<=>,* ?#!@
1he l28333 saLlsfles all Lhe baslc requlremenLs for conLrol of Lhe novlnL lalcon. [13]
1. lL has a 130 MPz clock speed and ls more Lhan capable of a 1kPz sample raLe. lL also has a
floaLlng-polnL unlL, maklng conLrol calculaLlons more efflclenL.
2. lLs mulLlple pulse-wldLh modulaLed ouLpuLs can be ampllfled Lo drlve Lhe Lhree moLors of Lhe
novlnL lalcon
3. lL has quadraLure counLers Lo lnLerface wlLh Lhe encoders aLLached Lo each moLor, as well as a
Serlal erlpheral lnLerface (Sl) Lo communlcaLe wlLh exLernal quadraLure counLer chlps. lLs
many Ceneral urpose lnpuL/CuLpuL (ClC) plns can serve as lnpuLs for any supplemenLary
sensors.
Figure 12. The F28335 controlCard [7].
3.2. Driving the DC Motors
The F28335 is capable of producing a pulse-width modulated (PWM)
signal with a varying duty cycle with an amplitude of 3.3 V [7]. In order
to drive one of the DC motors in the Novint Falcon, this signal needs to
be amplied to 12 V. This way, a 50%duty cycle will result in zero mo-
tor torque, 100% will be full torque in one direction, and 0% will be full
torque in the opposite direction. This signal amplication is achieved
with the A3953 Full-Bridge PWM Motor Driver chip from Allegro Mi-
croSystems, Inc [8]. A schematic of this chip is shown in gure 13. For
this application, the pulse-width modulated signal will be input at the
PHASE pin (pin 7). OUT
A
will be connected to the motors negative
terminal, and OUT
B
will be connected to the motors positive terminal.
The motor terminals are indicated in gure 11 by blue squares. The
LOAD SUPPLY pins should be connected to +12V. The BRAKE
pin will be pulled up to 3.3V to disable that function.
3.3. Angular Position Feedback
Each of the three DC motors in the Novint Falcon is equipped with a
large encoder wheel along with a light-emitting diode (LED) and photo-
sensor. These are indicated in gure 11 by green squares. As the en-
coder wheel turns along with the motor, the gaps in the wheel pass be-
tween the LED and photosensor, generating quadrature encoder sig-
nals. Keeping a count of these signals provides an accurate measure
19

3.2: Dr|v|ng the DC Motors
1he l28333 ls capable of produclng a pulse-wldLh modulaLed (WM) slgnal wlLh a varylng duLy cycle
wlLh an ampllLude of 3.3 v [13]. ln order Lo drlve one of Lhe uC moLors ln Lhe novlnL lalcon, Lhls slgnal
needs Lo be ampllfled Lo 12 v. 1hls way, a 30 duLy cycle wlll resulL ln zero moLor Lorque, 100 wlll be
full Lorque ln one dlrecLlon, and 0 wlll be full Lorque ln Lhe opposlLe dlrecLlon. 1hls slgnal ampllflcaLlon
ls achleved wlLh Lhe A3933 lull-8rldge WM MoLor urlver chlp from Allegro MlcroSysLems, lnc. [11] A
schemaLlc of Lhls chlp ls shown ln llgure 10.

I|gure 10: Schemat|c of the A39S3 Iu||-8r|dge WM Motor Dr|ver [11]
lor Lhls appllcaLlon, Lhe pulse-wldLh modulaLed slgnal wlll be lnpuL aL Lhe PASL pln (pln 7). Cu1A wlll
!" $%&&"$'"( '% ')" *%'%+,- &"./'01" '"+*0&/23 /&( 4568 7022 !" $%&&"$'"( '% ')" *%'%+,- 8%-0'01"
Lermlnal. 1he moLor Lermlnals are lndlcaLed ln llgure 8 by blue squares. 1he LCAu SuL? plns should
be connecLed Lo +12v. 1he 88AkL pln wlll be pulled up Lo 3.3v Lo dlsable LhaL funcLlon.



Figure 13. Schematic of the A3953 Full-Bridge PWM Motor Driver [8].
of how far and in which direction the motor has turned. This is accom-
plished with the LS7366R Quadrature Counter with Serial Peripheral
Interface (SPI). A schematic of this chip is shown in gure 14 [9]. The
previously mentioned SPI protocol is fully compatible with the F28335
[8]. The quadrature encoder channels A and B are connected to the
A and B pins, respectively (pins 12 and 11). The SPI bus is serviced
on the SS, SCK, MISO, and MOSI pins (pins 4, 5, 6, and 7).
20

!"!# %&'()*+ ,-./0/-& 12234*56
Lach of Lhe Lhree uC moLors ln Lhe novlnL lalcon ls equlpped wlLh a large encoder wheel along wlLh a
llghL-emlLLlng dlode (LLu) and phoLosensor. 1hese are lndlcaLed ln llgure 8 by green squares. As Lhe
encoder wheel Lurns along wlLh Lhe moLor, Lhe gaps ln Lhe wheel pass beLween Lhe LLu and
phoLosensor, generaLlng quadraLure encoder slgnals. keeplng a counL of Lhese slgnals provldes an
accuraLe measure of how far and ln whlch dlrecLlon Lhe moLor has Lurned. 1hls ls accompllshed wlLh Lhe
LS73668 CuadraLure CounLer wlLh Serlal erlpheral lnLerface (Sl). A schemaLlc of Lhls chlp ls shown ln
llgure 11 [10]. 1he prevlously menLloned Sl proLocol ls fully compaLlble wlLh Lhe l28333 [13].

1/'(+2 77# 8592:*0/5 -; 092 <8=!>>? @(*3+*0(+2 A-(&02+ B7CD
1he quadraLure encoder channels A and 8 are connecLed Lo Lhe A and 8 plns, respecLlvely (plns 12 and
11). 1he Sl bus ls servlced on Lhe SS, SCk, MlSC, and MCSl plns (plns 4, 3, 6, and 7).





Figure 14. Schematic of the LS7366R Quadrature Counter [9].
3.3.1. Supplementary Sensors
Each of the three DC motors in the Novint Falcon is equipped with a
home position sensor that is tripped when the motor is at a specic
angle. The sensor leads are indicated in gure 11 by pick squares.
These sensor outputs can be connected to GPIOinputs on the F28335
to detect the absolute angular position of the motors.
4. The Ball-on-Plate System
We now describe the design of a laboratory control experiment that
uses the Novint Falcon as an actuator, proving the concept of the de-
vice as a robotic manipulator. The mechanical system to be controlled
is the ball-on-plate system, which consists of a ball free to roll around
on a at plate. The applied control would presumably balance the ball
at a certain position on the plate, or control the position of the ball on
the plate [5] [6] [7]. This system was chosen for several reasons.
1. In its chosen implementation, the experiment requires the use
of three cooperating Novint Falcon devices. This will demon-
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
strate the capabilities of the embedded approach to the control
system.
2. This experiment will involve some vision processing for detect-
ing ball position. Visual servo control can then be demonstrated
in conjunction with the Novint Falcon.
3. The system has a slow response; i.e., the ball rolls slowly
enough that the eects of variations in control parameters can
be easily observed, and the Novint Falcons response time is
signicantly faster than the control experiment.
The chosen implementation for the ball-and-plate system is shown in
a schematic in gure 15. Three Novint Falcon devices are arranged
facing upwards and equally spaced. The plate rests on top of the three
moving platforms. This way, the position of the moving platforms de-
termines the tilt angle of the plate.
!"


!"#$%& ()* +,-&./0", 12 0-& 3/445/67584/0& 9:90&. ".84&.&60/0"16
$%&'' ()*+,- ./01), 2'*+1'3 /&' /&&/,4'2 5/1+,4 678/&23 /,2 '96/00: 37/1'2; $%' 70/-' &'3-3 ), -)7 )5
-%' -%&'' <)*+,4 70/-5)&<3; $%+3 8/:= -%' 7)3+-+), )5 -%' <)*+,4 70/-5)&<3 2'-'&<+,'3 -%' -+0- /,40' )5
-%' 70/-';












Figure 15. Schematic of the ball-and-plate system implementation.
5. Ball Position Feedback
Ball position feedback is accomplished with a camera facing down-
wards from directly above the plate [10]. A wide-angle lens is used
to maximize the viewing angle of the camera. Vision processing algo-
rithms are employed to threshold and segment the image in order to
nd the balls position [12]. The vision processing (along with the con-
trol algorithm) is implemented on the Digital Signal Processor (DSP)
in an OMAP-L138 SoC system [11]. It was observed that the distor-
tion in the wide-angle lens used is predominantly radial in nature. This
sheye distortion is illustrated in gure 16.
28

!"#$ &'() *+),-.,+-(
lL was observed LhaL Lhe dlsLorLlon ln Lhe wlde-angle lens used ls predomlnanLly radlal ln naLure. 1hls
!"#$%&'&( *#$+,-+#,. #$ #//0$+-1+&* ln llgure 13.

/+01.' 2!$ 34)'.5'6 7+6'8!"#$% $%"' ()*'+%,%- .*'/01/*0"
A mapplng from plxel poslLlon Lo acLual poslLlon ls deslred. WlLh Lhe assumpLlon LhaL all of Lhe lens
dlsLorLlon ls radlal, all LhaL remalns ls Lo develop a funcLlon g(r) LhaL maps a plxel's dlsLance from Lhe
cenLer plxel Lo Lhe real dlsLance of LhaL polnL from Lhe cenLer of Lhe plaLe. 1hls ls accompllshed by
lmaglng a square grld and complllng a Lable of plxel dlsLances and Lrue dlsLances, Lhen flLLlng a leasL-
squares polynomlal Lo Lhe daLa. 1he daLa and a leasL-squares quadraLlc polynomlal ls shown ln llgure
16.
Figure 16. Observed wide-angle lens sheye distortion.
A mapping from pixel position to actual position is desired. With the
assumption that all of the lens distortion is radial, all that remains is to
develop a function g(r) that maps a pixels distance fromthe center pixel
to the real distance of that point from the center of the plate. This is
accomplished by imaging a square grid and compiling a table of pixel
distances and true distances, then tting a least-squares polynomial to
the data. The data and a least-squares quadratic polynomial is shown
in gure 17.
!"


!"#$%& ()* +&,$-., /0 -&1, 2",./%."/1 313-4,",
















$ % &'&&((()*+,!-
!
. !'!)*+"+)/&!-
01 % &'"*+,22)(*+
&
*&
,&&
,*&
!&&
!*&
+&&
& ,& !& +& 2& *& )& /& (& "&
56.$3-
7",.316&
899:
;"<&- 7",.316&
Figure 17. Results of lens distortion analysis.
6. Dynamic Model
As mentioned before, the mechanical systemto be modeled is the ball-
on-plate system, which consists of a ball free to roll around on a at
plate. The applied control would presumably balance the ball at a
certain position on the plate, or control the position of the ball on the
plate. This is accomplished by changing the angle of the plate. A sim-
ple schematic of he system is shown for the one-dimensional ball-on-
beam system in gure 18. A hollow ball is used for this analysis. It is
also assumed that the ball-on-plate system is a two-dimensional ana-
log of the ball-on-beam system. It is further assumed that the pivot
point of the beam is at the point of contact between the ball and beam.
Thus, there are no lever-arm forces applied to the ball when the angle
changes. The dynamics for this simplied system can be found using
the torque equation, = I. Since
d
2
dt
2
x = r and I =
2mr
2
3
the
equation of motion is
d
2
dt
2
x =
3g
2
sin , which is subsequently approx-
imated (for small ) as
d
2
dt
2
x =
3g
2
. The goal of this analysis is to
determinea feedback control that regulates the system to x = 0. This
can be accomplished with both linear and nonlinear feedback.
30

!" $%&'()* +,-./
As menLloned before, L!" $"%!&'(%&) *+*,"$ ,- ." $-/")"/ (* ,!" 0.&))-on-1)&,"2 *+*,"$3 4!(%!
conslsLs of a ball free Lo roll around on a flaL plaLe. 1he applled %-',5-) 4-6)/ 15"*6$&.)+ 0.&)&'%"2 ,!"
ball aL a cerLaln poslLlon on Lhe plaLe, or conLrol Lhe poslLlon of Lhe ball on Lhe plaLe. 1hls ls
accompllshed by changlng Lhe angle of Lhe plaLe. A slmple schemaLlc of Lhe sysLem ls shown for Lhe
one-/($"'*(-'&) 0ball-on-."&$2 *+*,"$ ln llgure 17. A hollow ball ls used for Lhls analysls. lL ls also
assumed LhaL Lhe ball-on-plaLe sysLem ls a Lwo-dlmenslonal analog of Lhe ball-on-beam sysLem.

0)123. 45" 6)(7/)8).- 9'//:,&:9.'( ;%;<.(
lL ls furLher assumed LhaL Lhe plvoL polnL of Lhe beam ls aL Lhe polnL of conLacL beLween Lhe ball and
beam. 1hus, Lhere are no lever-arm forces applled Lo Lhe ball when Lhe angle changes. 1he dynamlcs
for Lhls slmpllfled sysLem can be found uslng Lhe Lorque equaLlon! " # $%. Slnce &' # (% and $ #
)*+
,
-
,
Lhe equaLlon of moLlon ls
&' #
./
0
1234
1hls model descrlbes a nonllnear sysLem wlLh varylng lnpuL parameLer 7. lf Lhe sysLem ls llnearlzed vla
1aylor serles abouL Lhe equlllbrlum 7 = 0 (l.e., Lhe small angle approxlmaLlon), Lhe equaLlon of moLlon
&' #
./
0
4
descrlbes Lhe approxlmaLe moLlon of Lhe sysLem wlLhln a small nelghborhood of 7 = 0. 1he goal of Lhls
analysls ls Lo deLermlne a feedback conLrol 7 LhaL regulaLes Lhe sysLem Lo x = 0. 1hls can be
accompllshed wlLh boLh llnear and nonllnear feedback.
Figure 18. Simplied ball-on-beam system.
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
6.1. An Implementation that Approximates the Dy-
namic Model
It is clear from gure 15 that the plate has all six degrees of freedom (in
a certain workspace). This freedom allows the plate to pivot about any
point within its workspace. We will constrain the plate to pivot about
the point of contact between the plate and the ball, approximating the
dynamic systemdescribed above. The problemstatement is this: given
two control inputs
x
and
y
, at what positions must the three moving
platforms be to actuate these inputs? The geometric derivation of this
process uses the geometric reference shown in gure 19.
31

!"#$ &' ()*+,),'-.-/0' -1.- &**203/).-,4 -1, 56'.)/7 809,+
lL ls clear from llgure 12 LhaL Lhe plaLe has all slx degrees of freedom (ln a cerLaln workspace). 1hls
freedom allows Lhe plaLe Lo plvoL abouL any polnL wlLhln lLs workspace. We wlll consLraln Lhe plaLe Lo
plvoL abouL Lhe polnL of conLacL beLween Lhe plaLe and Lhe ball, approxlmaLlng Lhe dynamlc sysLem
descrlbed above. 1he problem sLaLemenL ls Lhls: glven Lwo conLrol lnpuLs !x and !y, aL whaL poslLlons
musL Lhe Lhree movlng plaLforms be Lo acLuaLe Lhese lnpuLs? 1he geomeLrlc derlvaLlon of Lhls process
follows. See llgure 18 for reference.

:/;<2, #=$ >,0),-2/7 2,?,2,'7,
llrsL, deflne a coordlnaLe sysLem !"# %# &' whose orlgln ls Lhe cenLer of Lhe sysLem and aL Lhe same helghL
as Lhe ball. noLe LhaL ln Lhe flnal lmplemenLaLlon, Lhe ball wlll always be aL Lhe same helghL, so Lhls
Figure 19. Geometric reference.
First, dene a coordinate system (x, y, z) whose origin is the center
of the system and at the same height as the ball. Note that in the
nal implementation, the ball will always be at the same height, so this
coordinate frame is static. Triangles OAC and ODE are coplanar.
Determine the slope m of the line y = mx and the angle as follows:
Note that triangles ABC and DEF are similar. So:
AB
BC
=
DE
EF

sin
x
sin cos
x
=
sin
y
sin /2 cos
y

tan
x
sin
=
tan
y
cos
m = tan =
tan
x
tan
y
.
The value of angle is found using triangel ABC:
tan =
AB
BC
=
sin
x
sin cos
x
=
tan
x
sin
Let the positions of the three moving platforms for
x
=
y
= 0 be
denoted p
1
, p
2
and p
3
. Their perpendicular distance to the line y =
mx is given by the expression
d
l
=
mp
ix
+p
iy

m
2
+ 1
.
Consequently, the new x and y positions are
p
ix
= p
ix
d
i
(1 cos ) cos
(

2
+ tan
1
m
)
p
iy
= p
iy
d
i
(1 cos ) sin
(

2
+ tan
1
m
)
Finally, to x the balls height, simply add or subtract the necessary
distance from the z component of each of p
1
, p
2
, and p
3
. If the balls
x and y position is given by b
x
and b
y
, then
p
iz
=
(
d
i

mb
x
+b
y

m
2
+ 1
)
sin
All that remains is the trivial task of converting these coordinates to each
devices individual frame of reference. Note that with this algorithm, the
devices need not be arranged in any specic way.
7. Linear Control Design
The linearized dynamic system can be represented with two states as
follows
d
dt
x
1
= x
2
d
dt
x
2
=
3g
2
.
This linear system is a double integrator with a gain of 3g/2. Its
behavior near the equilibrium is related to the eigenvalues
1,2
=
J
22

4J
21
+J
2
22
2
, of its Jacobian J, where
J =
(
0 1
3g
2

x
1
3g
2

x
2
)
=
(
0 1
J
21
J
22
)
.
For asymptotic stability, these eigenvalues must be strictly negative.
This is true for any control eort such that

x
1
< 0 and

x
2
< 0
The simplest control strategy satisfying these requirements is the com-
mon PD control consisting of a linear combination of the position and
velocity of the ball: = k
p
x
1
k
d
x
2
. To track a reference input R,
this control law must be modied to act on an error signal as follows:
= k
p
(R x
1
) k
d
(
d
dt
R x
2
). The closed-loop transfer function
with this control eort is (cf. gure 20)
H(s) =
(3g/2)k
d
s + (3g/2)k
p
s
2
+ (3g/2)k
d
s + (3g/2)k
p
.
Before k
p
and k
d
are chosen, it is important to note that this linear
model is stable for any k
p
> 0 and k
d
> 0, and becomes more stable
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
as these gains increase. However, due to the realities of the nonlinear
system, it would be catastrophic to choose them to be arbitrarily large.
Therefore, as part of the design specication, the step response will
have a lower-bounded rise time. The ball will never accelerate faster
than 9.81 m/s
2
. In fact, with our small angle approximation, we can
intuitively say that the ball should never accelerate faster than 1 m/s
2
.
Coupled with the fact that the step input will be scaled-down, some
heuristic design considerations result in a minimum allowable rise time
of approximately one second. All that remains is to choose gains k
p
and k
d
to satisfy some damping consideration to control oscillations,
say, = 0.6. So, with g = 9.81m/s
2
, we have
t
r

n
=
1

1
2
(
tan
1
(

1
2

))
= 2.77

n
= 2.77rad/s

2
n
= 14.751k
p
k
p
= 0.52 (2)
2
n
= 14.715k
d
k
d
= 0.23 (3)
A computer simulation of the step response with these gains and a step
of 0.1 is shown in gure 21. The control eort is the dotted line. The
next step is to implement this control strategy on the physical system
that this model and simulation approximates.
34


!"#$%& ()* +,- ./01%/2 31%41&#5 62/.7 8"4#%49
!"#$ %
"&' ( ) $*
+
# ,"&' ( ) $*
-
#
.
,"&' ( ) $*
+
# ,"&' ( ) $*
-

8efore k
p
and k
d
are chosen, lL ls lmporLanL Lo noLe LhaL Lhls llnear model ls sLable for any k
p
> 0 and k
d
>
0, and becomes more sLable as Lhese galns lncrease. Powever, due Lo Lhe reallLles of Lhe nonllnear
sysLem, lL would be caLasLrophlc Lo choose Lhem Lo be arblLrarlly large. 1herefore, as parL of Lhe deslgn
speclflcaLlon, Lhe sLep response wlll have a lower-bounded rlse Llme. 1he ball wlll never acceleraLe
fasLer Lhan 9.81 m/s
2
. ln facL, wlLh our small angle approxlmaLlon, we can lnLulLlvely say LhaL Lhe ball
should never acceleraLe fasLer Lhan 1 m/s
2
. Coupled wlLh Lhe facL LhaL Lhe sLep lnpuL wlll be scaled-
down, some heurlsLlc deslgn conslderaLlons resulL ln a mlnlmum allowable rlse Llme of approxlmaLely
one second. All LhaL remalns ls Lo choose galns k
p
and k
d
Lo saLlsfy some damplng conslderaLlon Lo
conLrol osclllaLlons, say, ! = 0.6. So, wlLh g = 9.81 m/s
2
, we have
/
0
1
2
%
3
43 56
.
78 59:;
<=
>
43 5 6
.
6
?@ % (ABB D 1
2
% (ABB
1
2
.
% 3EAB3F*
-
D *
-
% GAF(
(61
2
% 3EAB3F*
+
D *
+
% GA(&
A compuLer slmulaLlon of Lhe sLep response wlLh Lhese galns and a sLep of 0.1 ls shown ln llgure 20.
1he conLrol efforL ls Lhe doLLed llne.
Figure 20. PD control strategy block diagram (k
p
= 0.52 and k
d
= 0.23; cf.
equations 2 and 3).
!"


!"#$%& ()* +",$-./&0 1/&2 %&12341& 35 /6& 789 :34/%3-
$%& '&() *)&+ ,* )- ,.+/&.&') )%,* 0-')1-/ *)12)&34 -' )%& +%4*,02/ *4*)&. )%2) )%,* .-5&/ 2'5
*,.6/2),-' 2++1-(,.2)&*7














Figure 21. Simulated step response of the PD control (cf. gure 20).
8. Feedback-Linearized Control Design
In contrast to the linear design section, the sinusoidal nonlinearity in
the model is considered here. Recall the system equation of motion is
d
2
dt
2
x =
3g
2
sin . If we let = sin
1
(2u/3g), the system is described
by
d
2
dt
2
x = u. The system can now be mathematically viewed as linear,
as long as the control eort u is transformed into before input to the
plant. Since the plant is nowa unity gain double integrator the controller
can be designed using linear techniques. A similar analysis to the linear
design leads to the same basic control strategy as above a PDcontrol
consisting of a linear combination of the position and velocity of the
ball. Using identical specications, proportional and derivative gains
are obtained. In this case,
2
n
= k
p
= 7.67 and 2
n
= k
d
= 3.32.
The simulated step response is similar to the one shown in gure 21
which is expected, since the small angle approximation used in linear
controller design is more or less valid for the simulated instance.
9. Implementation and Results
Controller design was accomplished in the continuous domain. To sim-
ulate and implement a PD control on a digital system, the control must
be discretized. The control eort will then pass through a zero-order
hold before output to the plant (cf. gure 22). The sample rate of this
system will be constrained to the sample rate of the sensor (camera),
which is 25 Hz in its nal implementation [10]. The discrete derivative
is achieved with a nite dierence calculation. Discrete simulations of
both the linear and nonlinear feedback controllers are shown in gures
23 and 24. An important part of any PD controller design is dealing
with signal noise, particularly in the derivative term. When a noisy sig-
nal is dierentiated the noise is amplied. For this application, noise
is expected to occur in the sensor output. It was found that using an
attenuating dierentiator G(s) =
s
s+
in place of an ideal dieren-
tiator in the PD controller eliminated high-frequency noise when a cuto
frequency of = 5rad/s was used. The equivalent z-domain transfer
function for G(s) is G(z) =
5z5
z0.8187
. The system was simulated using
this lter in place of the discrete dierentiator and gures 25 and 26
show the step responses of the two controllers that were designed.
38

!" $%&'(%()*+*,-) +). /(01'*0
ConLroller deslgn was accompllshed ln Lhe conLlnuous domaln. 1o slmulaLe and lmplemenL a -u
conLrol on a dlglLal sysLem, Lhe conLrol musL be dlscreLlzed. 1he conLrol efforL wlll Lhen pass Lhrough a
zero-order hold before ouLpuL Lo Lhe planL. 1he sample raLe of Lhls sysLem wlll be consLralned Lo Lhe
sample raLe of Lhe sensor (camera), whlch ls 23 Pz ln lLs flnal lmplemenLaLlon [12].

2,314( 55" 6,074(*( 7-)*4-' 0*4+*(38 9'-7: .,+34+%
1he dlscreLe derlvaLlve ls achleved wlLh a flnlLe dlfference calculaLlon. ulscreLe slmulaLlons of boLh Lhe
llnear and nonllnear feedback conLrollers are shown ln llgures 23 and 24.

2,314( 5;" <,%1'+*(. .,074(*( 0*(& 4(0&-)0( -= *>( ',)(+4 ?@6 7-)*4-'
1hls ls Lhe response for Lhe llnear feedback conLroller wlLh kp = 0.32 and kd = 0.23. 1he rlse Llme ls fasLer
and Lhe overshooL ls sllghLly greaLer.
Figure 22. Discrete control strategy block diagram that is equivalent to the
continuous-time design obtained earlier.
38

!" $%&'(%()*+*,-) +). /(01'*0
ConLroller deslgn was accompllshed ln Lhe conLlnuous domaln. 1o slmulaLe and lmplemenL a -u
conLrol on a dlglLal sysLem, Lhe conLrol musL be dlscreLlzed. 1he conLrol efforL wlll Lhen pass Lhrough a
zero-order hold before ouLpuL Lo Lhe planL. 1he sample raLe of Lhls sysLem wlll be consLralned Lo Lhe
sample raLe of Lhe sensor (camera), whlch ls 23 Pz ln lLs flnal lmplemenLaLlon [12].

2,314( 55" 6,074(*( 7-)*4-' 0*4+*(38 9'-7: .,+34+%
1he dlscreLe derlvaLlve ls achleved wlLh a flnlLe dlfference calculaLlon. ulscreLe slmulaLlons of boLh Lhe
llnear and nonllnear feedback conLrollers are shown ln llgures 23 and 24.

2,314( 5;" <,%1'+*(. .,074(*( 0*(& 4(0&-)0( -= *>( ',)(+4 ?@6 7-)*4-'
1hls ls Lhe response for Lhe llnear feedback conLroller wlLh kp = 0.32 and kd = 0.23. 1he rlse Llme ls fasLer
and Lhe overshooL ls sllghLly greaLer.
Figure 23. Simulated discrete step response of the linear PD control.
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
39


!"#$%& ()* +",$-./&0 0"12%&/& 1/&3 %&13451& 46 /7& 6&&08.29:-"5&.%";&0 <:= 245/%4-
An lmporLanL parL of any -u conLroller deslgn ls deallng wlLh slgnal nolse, parLlcularly ln Lhe derlvaLlve
Lerm. When a nolsy slgnal ls dlfferenLlaLed Lhe nolse ls ampllfled. lor Lhls appllcaLlon, nolse ls expecLed
Lo occur ln Lhe sensor ouLpuL. Cne soluLlon ls a low-pass fllLer. Conslder Lhe unlLy-galn flrsL-order fllLer
wlLh cuLoff frequency !.
!"#$ %
&
# ' &

ulfferenLlaLlng Lhe lnpuL slgnal resulLs ln Lhe fllLer below. 1he 8ode ploL for Lhls !"#$%&'&( (#""&'&*%#+%,'-
ls shown ln llgure 23.
!("#$ %
&#
# ' &


Figure 24. Simulated discrete step response of the feedback-linearized PD
control.
!"


!"#$%& ()* +,&- %&.-/0.& /1 2"0&3% 456 7/0,%/22&% $."0# 1"2,&%&8 8&%"93,"9&

!"#$%& (:* +,&- %&.-/0.& /1 1&&8;37<52"0&3%"=&8 456 7/0,%/22&% $."0# 1"2,&%&8 8&%"93,"9&








Figure 25. Simulated discrete step response of linear PD controller using l-
tered derivative.
9.1. Results
Both the linear and nonlinear feedback controllers were implemented
on the test platform. The step response for linear PD feedback with
k
p
= 0.52 and k
d
= 0.23 is shown in 27. The oscillations are pro-
nounced, as predicted by the model due phase lag in the ltered dif-
ferentiation. Tuning gains to k
p
= 1 and k
d
= 1 results in a more
satisfactory response, shown in gure 28.
The step response for the feedback-linearized controller is shown in
gure 29 for k
p
= 7.67 and k
d
= 3.32. Similarly, the oscillations
are more pronounced than in the simulated model due to unmodeled
delays and phase lag. Tuning the gains to k
p
= 10 and k
d
= 10
results in the response shown in gure 30.
9.2. Trajectory Tracking
As a nal step, control gains were tuned for tracking a trajectory on
the plate. Performance of the feedback-linearized controller is shown
in gure 31 for tracking a slow circular trajectory with k
p
= 30 and
k
d
= 12.
Increased control gains are required for slow trajectory tracking, since
even a small error needs to be corrected. The diculties here are the
unmodeled nonlinearities in the system. These include:
1. The ball is not perfectly round. This causes unforseen changes
in the required control eort.
2. Similarly, the plate is not perfectly at. In fact, some miniscule
convexity can be expected fromthe plate bending under its own
weight.
3. The rolling ball has a dead zone due to static friction. For any
angles less than approximately 1s, the ball does not move.
!"


!"#$%& ()* +,&- %&.-/0.& /1 2"0&3% 456 7/0,%/22&% $."0# 1"2,&%&8 8&%"93,"9&

!"#$%& (:* +,&- %&.-/0.& /1 1&&8;37<52"0&3%"=&8 456 7/0,%/22&% $."0# 1"2,&%&8 8&%"93,"9&








Figure 26. Simulated discrete step response of the feedback-linearized PD
controller using the ltered derivative.
42

9.1: kesu|ts
8oLh Lhe llnear and nonllnear feedback conLrollers were lmplemenLed on Lhe LesL plaLform.
1he sLep response for llnear -u feedback wlLh kp = 0.32 and kd = 0.23 ls shown ln llgure 28.

I|gure 28: Step response for ||near -D contro|
1he osclllaLlons are pronounced, as predlcLed by Lhe model due phase lag ln Lhe fllLered dlfferenLlaLlon.
1unlng galns Lo kp = 1 and kd = 1 resulLs ln a more saLlsfacLory response, shown ln llgure 29.

I|gure 29: 1uned step response for ||near -D contro|


-0.03
0
0.03
0.1
0 2 4 6 8 10 12
os|t|on
(m)
1|me (sec)
-0.13
-0.03
0.03
0.13
0 2 4 6 8 10 12
os|t|on
(m)
1|me (sec)
Figure 27. Experimental step response for linear PD control.
42

9.1: kesu|ts
8oLh Lhe llnear and nonllnear feedback conLrollers were lmplemenLed on Lhe LesL plaLform.
1he sLep response for llnear -u feedback wlLh kp = 0.32 and kd = 0.23 ls shown ln llgure 28.

I|gure 28: Step response for ||near -D contro|
1he osclllaLlons are pronounced, as predlcLed by Lhe model due phase lag ln Lhe fllLered dlfferenLlaLlon.
1unlng galns Lo kp = 1 and kd = 1 resulLs ln a more saLlsfacLory response, shown ln llgure 29.

I|gure 29: 1uned step response for ||near -D contro|


-0.03
0
0.03
0.1
0 2 4 6 8 10 12
os|t|on
(m)
1|me (sec)
-0.13
-0.03
0.03
0.13
0 2 4 6 8 10 12
os|t|on
(m)
1|me (sec)
Figure 28. Experimental, tuned step response for linear PD control.
43

1he sLep response for Lhe feedback-llnearlzed conLroller ls shown ln llgure 30 for kp = 7.67 and kd = 3.32.

!"#$%& ()* +,&- %&.-/0.& 1/% 1&&2345678"0&4%"9&2 :7; 5/0,%/8
Slmllarly, Lhe osclllaLlons are more pronounced Lhan ln Lhe slmulaLed model due Lo unmodeled delays
and phase lag. 1unlng Lhe galns Lo kp = 10 and kd = 10 resulLs ln Lhe response shown ln llgure 31.

!"#$%& (<* =$0&2 .,&- %&.-/0.& 1/% 1&&2345678"0&4%"9&2 :7; 5/0,%/8



-0.03
0
0.03
0.1
0 3 10 13 20
:/.","/0
>?@
="?& >.@
-0.03
0
0.03
0.1
0.13
0 3 10 13 20
:/.","/0
>?@
="?& >.&5@
Figure 29. Experimental step response for feedback-linearized PD control.
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
43

1he sLep response for Lhe feedback-llnearlzed conLroller ls shown ln llgure 30 for kp = 7.67 and kd = 3.32.

!"#$%& ()* +,&- %&.-/0.& 1/% 1&&2345678"0&4%"9&2 :7; 5/0,%/8
Slmllarly, Lhe osclllaLlons are more pronounced Lhan ln Lhe slmulaLed model due Lo unmodeled delays
and phase lag. 1unlng Lhe galns Lo kp = 10 and kd = 10 resulLs ln Lhe response shown ln llgure 31.

!"#$%& (<* =$0&2 .,&- %&.-/0.& 1/% 1&&2345678"0&4%"9&2 :7; 5/0,%/8



-0.03
0
0.03
0.1
0 3 10 13 20
:/.","/0
>?@
="?& >.@
-0.03
0
0.03
0.1
0.13
0 3 10 13 20
:/.","/0
>?@
="?& >.&5@
Figure 30. Experimental, tuned step response for feedback-linearized PD con-
trol.
44

!"#$ &'()*+,-'. &'(+/012
As a flnal sLep, conLrol galns were Luned for Lracklng a Lra[ecLory on Lhe plaLe. erformance of Lhe
feedback-llnearlzed conLroller ls shown ln llgure 32 for Lracklng a slow clrcular Lra[ecLory wlLh !
"
= 30
and !
#
= 12.

3024'* 5#$ 60'+47(' ,'()*+,-'. ,'(+/012 8(77 9-:0,0-1
lncreased conLrol galns are requlred for slow Lra[ecLory Lracklng, slnce even a small error needs Lo be
correcLed. 1he dlfflculLles here are Lhe unmodeled nonllnearlLles ln Lhe sysLem. 1hese lnclude:
1. 1he ball ls noL perfecLly round. 1hls causes unforseen changes ln Lhe requlred conLrol efforL.
2. Slmllarly, Lhe plaLe ls noL perfecLly flaL. ln facL, some mlnlscule convexlLy can be expecLed from
Lhe plaLe bendlng under lLs own welghL.
3. 1he rolllng ball has a dead zone due Lo sLaLlc frlcLlon. lor any angles less Lhan approxlmaLely 1,
Lhe ball does noL move.
4. uynamlc frlcLlon. 1he unmodeled rolllng frlcLlon and alr frlcLlon slow down Lhe response of Lhe
ball.
3. LlasLlc deformaLlon of Lhe ball and plaLe aL Lhe polnL of conLacL wlLh Lhe plaLe.
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
-0.06 -0.01 0.04
. 9-:0,0-1
;<=
> 9-:0,0-1 ;<=
Figure 31. Circular trajectory tracking ball position.
4. Dynamic friction. The unmodeled rolling friction and air friction
slow down the response of the ball.
5. Elastic deformation of the ball and plate at the point of contact
with the plate.
10. Conclusions
A ball-on-plate balancing system was implemented using three Novint
Falcon devices as actuators. PD control and feedback-linearized PD
control both were found to be satisfactory. The model approximated
the results well, demonstrating the viability of the Novint Falcon as an
actuator for small-scale control applications. Some improvement in the
performance of the system is possible by using a more spherical ball or
atter plate. The near-linear nature of the ball-on-plate system makes
it an ideal candidate for linear optimal control design. It is possible to
design a linear quadratic regulator to regulate the system to the origin.
More specically, a nite-horizon discrete-time linear quadratic regulator
may be a good choice.
The nature of this ball-on-plate system required some constraints to be
placed on the plates position (see section 6.1). Some interesting prob-
lems could arise when these constraints are changed. For example,
the balls position on the plate can be controlled by a pure translation
of the plate, rather than a change of angle. An exploration of these
possibilities is left for future work.
The vision processing algorithms used are functional, but the ball posi-
tion signal is subject to signicant low-frequency noise, as well as some
uncertainty. A better algorithmundoubtedly exists. Two possibilities are
edge detection and optical ow. Edges are less sensitive to ambient
light and color threshold changes. Optical ow produces a eld of dis-
placement vectors dening the translation of each pixel in a region. As a
nal thought, several algorithms could be used together with a Kalman
lter to provide a converging estimate of the balls position.
A short video of the system described in this paper can be found at this
link (cf.. http://dl.dropboxusercontent.com/u/9864801/iWeb/Site2/
ControlEducation&Applications2les/thesis.m4v).
References
[1] http://www.novint.com/index.php/products/novintfalcon.
[2] S. Martin and N. Hillier, Characterization of the Novint Fal-
con Haptic Device for Application as a Robot Manipulator, in
Proc. Australasian Conference on Robotics and Automation
(ACRA), Sydney, Australia, December, 2009.
[3] L.W. Tsai, and R. Stamper, A Parallel Manipulator with Only
Translational Degrees of Freedom, Proceedings of the 1996
ASME Design Engineering Technical Conferences, Irvine, CA, 96-
DETC/MECH-1152, 1996.
[4] L.W. Tsai, and R. Stamper, A Parallel Manipulator with Only Trans-
lational Degrees of Freedom, ISR Technical Report TR-97-72,
1997.
[5] C.G. Broyden, A class of methods for solving nonlinear simulta-
neous equations, Math Comput. 19 (1965), 577-593.
[6] M.T. Heath, Scientic Computing: An Introductory Survey,
McGraw-Hill Series in Computer Science, McGraw-Hill, NewYork,
1997.
[7] Texas Instruments Inc., TMS320F28335, TMS320F28334,
TMS320F28332, TMS320F28235, TMS320F28234,
TMS320F28232 Digital Signal Controllers (DSCs), datasheet,
2007, Revised 2010.
[8] Allegro Microsystems Inc., Full-Bridge PWMMotor Driver, A3953
datasheet, 2008.
[9] LSI/CSI, 32-Bit Quadrature Counter with Serial Interface,
LS7366R datasheet, 2009
[10] OmniVision, OV6620 Single-Chip CMOS CIF Color Digital Cam-
era, OV6620 datasheet, 1999
[11] Texas Instruments Inc., OMAP-L138 Low-Power Applications
Processor, OMAP-L138 datasheet, 2009
[12] M.W. Spong, S. Hutchinson, and M. Vidyasagar, Robot Modeling
and Control, Third edition, John Wiley, New York, ISBN 0-471-
64990-2.
[13] R. R. Sumar, A. A. R. Coelho and L. D. Coelho, Computational
intelligence approach to PID controller design using the universal
model, Information Sciences, vol. 180, no. 20, pp. 3980-3991,
2010.
[14] S. Thomsen, N. Homann and F. W. Fuchs, PI control, PI-based
state space control and model based predictive control for drive
systems with elastically coupled loads - A comparative study, IEEE
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM
PALADYN Journal of Behavioral Robotics
Transactions on Industrial Electronics, vol. 58, no. 8, pp. 3647-
3657, 2011.
[15] M.-B. Radac, R.-E. Precup, E. M. Petriu and S. Preitl, Application
of IFT and SPSA to servo system control, IEEE Transactions on
Neural Networks, vol. 22, no. 12, pp. 2363-2375, 2011.
[16] W. Zhi, Q. S. Luo and J. F. Liu, An improved PID tuning algorithm
for mobile robots, in: Advances in Electronic Commerce, Web Ap-
plication and Communication, Volume 1, D. Jin and S. Lin (Eds.),
Advances in Intelligent and Soft Computing, Springer-Verlag, vol.
148, pp. 345-353, 2012.
[17] E. Joelianto, D. C. Anura and M. P. Priyanto, ANFIS - hybrid ref-
erence control for improving transient response of controlled sys-
tems using PID controller, International Journal of Articial Intelli-
gence, vol 10, no. S13, pp. 88-111, 2013.
Unauthenticated | 210.48.117.222
Download Date | 12/17/13 8:11 PM

You might also like