Indonesian J
ournal of Ele
c
trical Engin
eering and
Computer Sci
e
nce
Vol. 2, No. 3,
Jun
e
201
6, pp. 617 ~ 62
4
DOI: 10.115
9
1
/ijeecs.v2.i3.pp61
7-6
2
4
617
Re
cei
v
ed Fe
brua
ry 25, 20
16; Re
vised
May 9, 201
6; Acce
pted Ma
y 21, 201
6
Two Wheeled R
obot Self Balancing Control Research
Ni Dan, Jingfang Wa
ng*
Schoo
l of Elect
r
ical & Informat
i
on En
gin
eer
in
g
Hun
an Intern
ation
a
l Econ
omic
s Universit
y
Cha
ngsh
a
, Chi
na, Postcod
e
: 410
20
5
*Corres
p
o
ndi
n
g
author, e-ma
i
l
: matlab_
b
y
sj
@12
6
.com
A
b
st
r
a
ct
Accordi
ng to
mov
e
me
nt ba
l
anci
ng
an
d p
o
s
ition c
ontro
l p
r
obl
em of S
e
lf
Bala
ncin
g T
w
o W
heel
e
d
Rob
o
t, a
meth
od b
a
se
d o
n
H
∞
Rob
u
st Co
ntrol w
a
s pr
opos
ed. W
e
a
pply
it
onto th
e MIM
O
nonl
in
ear
mode
l
of robot, a
nd si
mu
late
d it in t
h
e MAT
L
AB en
viron
m
e
n
t
T
he
simulati
on r
e
su
lts show
s that the ro
bot ca
n b
e
bal
ance
d
in fix
ed pos
itio
n w
e
ll by this metho
d
, and
als
o
it h
a
ve the a
b
il
ity to anti interfer
e
n
ce.
Ke
y
w
ords
: sel
f
balanc
in
g, two w
heele
d
rob
o
t, balanc
in
g c
ontron, rob
u
st contro
l, MIMO
non
lin
ear syste
m
Copy
right
©
2016 In
stitu
t
e o
f
Ad
van
ced
En
g
i
n
eerin
g and
Scien
ce. All
rig
h
t
s reser
ve
d
.
1. Introduc
tion
Self Balancin
g Two
Wh
ee
led Robot is a ki
n
d
of a
b
sol
u
tely unstable un
der-a
ctuate
d
system with high-ra
nk un
stable
multi-v
a
riabl
e stron
g
ly
cou
p
ling
compli
cate
d dynamic
no
nl
inear
prop
erty. The
two wheel
ed
robot
s a
r
e
common i
n
th
e form of two co
axial driv
ing wheel
s a
nd
their a
s
so
cia
t
ed robot
bo
dies. All
of
su
ch
rob
o
ts
are
ba
sed
o
n
the
de
sign
of an
inve
rted
pend
ulum [1]
,
whi
c
h a
r
e
essentially di
fferent from
the tra
d
itional
multi wheel
rob
o
ts
brin
g
i
ng
su
ch rob
o
ts o
b
vious
adva
n
t
ages.
B
e
ca
u
s
e of
the ch
arac
teri
stics of t
h
is type
of ro
bots,
they ha
ve
attracte
d mu
ch attention
of research
ers on de
sig
n
i
ng, cont
rollin
g and ap
plication of the two
whe
e
led i
n
ve
rted p
end
ulu
m
rob
o
ts. In
2002, th
e
Swiss F
ede
ral
Institute of
Tech
nolo
g
y
have
develop
ed a
mobile robot
called
JOE
[2]. It has
proved that su
ch robot
s ha
ve con
s
ide
r
a
b
le
perfo
rman
ce
s with multi wh
eel ro
bot un
d
e
r certai
n
con
t
rol
syst
ems. JOE can run smoothly
o
n
a
flat surfa
c
e a
nd even on a
n
inclin
ed surface, it
sho
w
ed sati
sfacto
ry operating
chara
c
te
risti
c
s.
A
sup
p
re
ssion
system h
a
s
been d
e
si
gn
ed and
used
in a low
co
st, two wheel
e
d
, self bala
n
cing
robot for detecting
and
reporting fi
re and intru
ders i
n
a
small
hom
e/office
setting [3]. SASAKI e
t
al [4, 5] have prop
osed a p
e
rsonal
ridin
g
type wheel
e
d
mobile pl
atform, of whi
c
h
the two wh
e
e
ls
are driven
i
n
depe
ndently, and
the ro
bot
is steered
to
move forwa
r
d and
ba
ckward
by ch
angi
ng
the relative p
o
sition of the
operator o
n
the ba
se
. Re
cently, a roboti
c
mobility plat
form (RMP) h
a
s
been d
e
velop
ed by Segwa
y
Company a
fter Huma
n T
r
an
spo
r
ter, a
nd this platform can b
e
used
in variou
s application
s
[6]. Based on Segway’
s
RMP, severa
l robots hav
e been built
by
resea
r
chers
all over the
worl
d. SAWA
TZKY et
al [7] have intro
duced a m
e
thod to me
et the
mobility requi
rements
of di
sabl
e
persons by
usi
ng the Segway pl
atform. BROWNI
NG
et al
[8]
have ad
opte
d
the Seg
w
a
y
RMP to b
u
ild socce
r
robot, whi
c
h i
s
capa
ble of
playing
so
ccer
autonom
ou
sl
y. Furthermo
re, they have pre
s
ente
d
a game calle
d Segway Soccer in
whi
c
h a
human pl
ays
so
ccer ri
ding
on Segw
ay platform co
op
erating
with Segway RM
P robots [9]. The
cap
ability of this type
robot for
co
operati
on
wi
th huma
n
i
n
co
mplex t
a
sks
ha
s b
een
demons
t
rated
[9].
Many simila
r systems, such a
s
JOE,
nBot, etc.
[10, 11], have been stu
d
ied by
resea
r
chers i
n
the literatu
r
e at ho
me
and a
b
ro
ad.
In an ea
rlier work [12],
whe
e
led inve
rse
pend
ulum type mobile ro
bo
t (WIPMR)
was stu
d
ied
an
d a trajecto
ry-tracking al
gorithm was fou
n
d
usin
g a li
nea
r state
-
spa
c
e
model. F.
Grasser ap
plied
Ne
wton
app
roa
c
h to
de
ri
ve the sy
ste
m
’s
dynamic m
o
d
e
l [13], and the equ
ation
s
were li
nea
ri
zed aroun
d an
operating po
int to desig
n a
controlle
r. These
six state-spa
c
e vari
abl
es fully
descri
be the dynam
ics of
the 3-DOF system.
We
just u
s
e a
six state-spa
c
e
model to
cont
rol ou
r robot. And we
will u
s
e a
kind
of H
∞
rob
u
st
co
nt
rol
method to im
plement the
movement ba
lanci
ng control and fixed p
o
sition
contro
[14].
Evaluation Warning : The document was created with Spire.PDF for Python.
ISSN: 25
02-4
752
IJEECS
Vol.
2, No. 3, Jun
e
2016 : 617
– 624
618
2. Rese
arch
Metho
d
2.1. H
∞
Robu
st Co
ntrol
We con
s
id
er the
problem of
an
n
-
orde
r gene
ra
li
zed
MIMO sy
ste
m
, whi
c
h i
s
repre
s
e
n
ted
by following e
quation.
x
y
u
D
D
x
C
z
u
B
12
11
1
2
1
B
Ax
x
(1)
Whe
r
e
12
11
1
2
1
1
1
1
1
,
,
,
,
,
,
x
,
,
z
,
x
D
D
C
B
B
A
R
R
R
R
p
r
m
n
are resp
ectively consta
nt
matrix with proper di
men
s
i
on, is the mo
delling e
rro
r a
nd distu
r
ba
nce in addition.
To above eq
uation, we p
r
opo
se
γ
>0, there exist
matrix P
1
and P
2
, in which, P
1
is
symmetri
c
al
positive defin
ed matrix. If t
he followi
ng inequ
ation is
satisfie
d:
0
)
(
)
(
P
AP
2
12
1
1
2
12
1
1
1
1
2
2
2
2
2
1
1
I
P
D
P
C
P
D
P
C
B
B
P
B
P
B
A
T
T
T
T
(2)
we can con
c
l
ude that the st
ates feedb
ack co
ntrolle
r is
Kx
u
(3)
Whe
r
e
1
1
2
P
K
P
We
have two
co
ntrol
obje
c
tive. The fi
rst is t
hat x=0
is the
lo
cally
asymptoti
c
al
ly stable
point of close
d
no disturba
nc
e
system, i.e. to the init
ial state x(0), we have x(t)
→
0. The se
cond
obje
c
tive is t
hat
∀
∈
ω
L
2
[0
,
+
∞
], the ini
t
ial state x(0)=0,
closed
-loop
system
has the
ability to
rest
rain the di
sturb
a
n
c
e, an
d the robu
st
p
e
rform
a
n
c
e can be de
note
d
as follo
w.
0
2
2
0
T
)
(
x
dt
t
Qxdt
(4)
Whe
r
e
n
q
0
0
q
Q
1
is a
diago
nal matrix,
0
,
]
,
,
,
[
x
2
1
T
n
x
x
x
.
2.2.
Self Bal
a
ncing T
w
o
Whe
e
led Ro
bot
B-TWR Sy
stem Desc
r
i
ption
: He
re
we stu
d
y
the B-TM
R (BALAN
CING
TWO
WHEELE
D
ROBOT)
with two control in
puts, whi
c
h a
r
e the torq
ue
s of the two whe
e
ls. And
the
system d
egre
e
of the free
dom is th
ree,
which
is mo
re than the
control
in
puts.
So the syst
em
belon
gs to un
der-a
ctuated
system.
B-2WMR is a
nonholo
nomi
c
system, an
d here t
he ri
g
i
d model is di
scusse
d, whi
c
h ha
s
two coaxial d
r
iving
wheel
s. And there i
s
an
in
ternal
body which can in
stall so
me sub
s
yste
ms,
su
ch a
s
controllers, se
nsors, etc.
The i
n
ternal
body is
said to b
e
Interme
d
iate Bo
dy (i.e. IB). The
holisti
c physi
cal fra
m
ework is
sho
w
n i
n
Figure 1
(left
)
. The
states
of the rob
o
t can be d
e
tect
ed
by gyroscop
e
,
inclinomete
r
and co
der
sh
own in Fig
u
re
2.
Evaluation Warning : The document was created with Spire.PDF for Python.
IJEECS
ISSN:
2502-4
752
Two
Wheel
ed
Robot Self Balan
c
ing
Cont
rol Re
se
arch
(Ni D
a
n
)
619
Figure 1. Left: s
y
s
t
em whole s
t
ruc
t
ure;
Figure 2. Robot s
t
ates
detec
t
ing
Right: sid
e
el
evation of rob
o
t after simpli
fication
B-TWR Math
ematical M
o
d
e
l : System
param
eters are all sho
w
n in
Table I.
Table 1. The
Paramete
rs o
f
the Robot System
The m
a
th
model
of two-wheel
ed
self-bala
n
ci
ng
ro
bot h
a
s bee
n
built,
and
the
corre
c
tne
s
s h
a
s be
en valid
ated. The dynamic m
odel
can b
e
de
scri
bed a
s
follow.
d
u
E
q
q
D
q
)
,
(
)
q
(
M
(5)
whe
r
e
n
n
R
)
q
(
M
is
the
s
y
mmetric
al
matrix,
r
R
is the
input vecto
r
,
r
n
R
E
is the
transitio
n m
a
trix of
th
e in
pu
t ve
c
t
or
,
m
n
T
R
)
q
(
F
is
the matrix
ab
out con
s
traint
s.
1
r
d
R
u
is the distu
r
b
ance put on the body of ro
bot.
Evaluation Warning : The document was created with Spire.PDF for Python.
ISSN: 25
02-4
752
IJEECS
Vol.
2, No. 3, Jun
e
2016 : 617
– 624
620
2
2
1
2
2
2
1
3
2
2
1
2
2
2
1
2
2
1
2
1
1
2
2
1
2
2
2
32
23
2
2
1
2
2
2
2
33
22
1
31
13
21
12
2
1
11
l
d
3
2
1
3
2
1
33
32
31
23
22
21
13
12
11
)
)(
(
sin
2
1
cos
sin
)
(
2
)
)(
(
sin
2
1
cos
sin
)
(
2
cos
sin
sin
)
sin
(
4
1
)
sin
(
4
1
)
(
cos
2
1
)
(
,
0
0
,
1
0
0
1
1
1
,
d
)
,
(
D
,
d
)
,
(
D
,
a
a
a
a
a
a
a
a
a
)
(
M
r
r
r
r
l
l
l
l
r
l
z
z
l
l
y
r
d
Rsign
u
R
ML
L
R
ML
d
Rsign
u
R
ML
L
R
ML
d
L
M
MgL
d
J
ML
L
R
MR
a
a
J
ML
L
R
MR
J
R
m
a
a
R
ML
a
a
a
a
J
ML
a
u
E
d
d
q
q
d
d
q
q
q
The mo
del i
s
different fro
m
others. Th
e friction
of two
whe
e
ls i
s
con
s
id
ere
d
, and the
frictional
coef
ficient co
uld b
e
different.
It’s assu
med
that the t
w
o
wh
eel
s a
r
e
rest
ricte
d
by
the restri
ctio
n of the
pu
re rolling.
Referrin
g to
Figure 1
(
a
)
, L is t
he di
sta
n
ce
OO
w
, wh
ere
O i
s
the
point mid
w
ay
between th
e
two
whe
e
l ce
ntre
s. R is the
radiu
s
of the whe
e
ls. Th
e coo
r
din
a
te of point O is (x,y) ,
α
is the
inclination angle of th
e Intermediate Body.
Φ
r
,
ϕ
l
a
r
e
re
spe
c
tively
the rota
ry an
gle of the
rig
h
t
and left whe
e
l
.
q is the
gen
e
r
alized
coo
r
di
nate of
syste
m
, and
can
b
e
define
d
a
s
T
r
l
)
,
,
(
q
,
d
is
the di
sturban
ce
put o
n
the
body
of robo
t.
l
and
r
are
re
spe
c
tively the
torq
ue
provi
ded
by left
and rig
h
t motor. We ch
oo
se the Maxo
n DC moto
r, and the torq
ue is limited in the bound
of
±5Nm. The ki
nematics mo
del of robot can be de
scrib
ed as follo
w.
)
(
L
R
sin
)
(
2
1
y
cos
)
(
2
1
x
l
r
r
l
r
l
R
R
(6)
Whe
r
e (x,y) denote
s
the positio
n of robot
in
the Carte
s
ian co
ordi
na
te, and
)
(
L
R
l
r
is the yaw an
gle velocity of robot.
Linearizatio
n of B-T
W
R
mathema
t
ica
l
model :
Th
e MIMO
syst
em mo
del i
s
l
i
neari
z
e
d
in the b
a
lan
c
i
ng po
sition, t
hat is to
say,
≈
0;sin
≈
;c
os
≈
1;
0
;
0
,
and we ca
n
get the linear
model of ro
bo
t as the form of equation (1
).
x
y
u
B
2
1
B
Ax
x
(7)
Whe
r
e
d
T
r
l
T
r
l
r
l
u
,
]
,
[
,
]
,
,
,
,
,
[
x
.
Evaluation Warning : The document was created with Spire.PDF for Python.
IJEECS
ISSN:
2502-4
752
Two
Wheel
ed
Robot Self Balan
c
ing
Cont
rol Re
se
arch
(Ni D
a
n
)
621
Con
s
id
erin
g equatio
n (7
), we de
sig
n
the control outp
u
t as follow e
quation (8).
u
D
D
x
C
z
12
11
1
(8)
Whe
r
e
),
,
,
,
(
,
0
0
0
,
0
D
,
0
Q
C
6
2
1
2
1
2
6
12
1
5
11
6
2
6
6
1
q
q
q
diag
Q
D
T
)
6
,
,
2
,
1
(
0
j
q
j
are the
weig
hted
co
efficient of
every
stat
e. We
can
get that
T
r
l
r
l
r
l
q
q
q
q
q
q
]
,
,
,
,
,
,
,
[
z
2
1
6
5
4
3
2
1
and then
0
2
2
||
||
zdt
z
z
T
(9)
In ord
e
r to
gu
arante
e
the
b
a
lan
c
ing
of the ro
bot, the e
quation
(4
) m
u
st be
sati
sfied. We
get two LMIs,
the first is the inequ
ation
descri
bed in
(2), and the ot
her ine
quatio
n is as follo
ws.
0
-P
1
(10
)
3. Results a
nd Analy
s
is
We choo
se
120
,
10
,
10
,
10
,
10
,
1
,
2
,
,
;
1
6
5
4
3
2
1
2
1
q
q
q
q
q
q
l
and utilizin
g
the LMI toolbox in MATLAB, we can get
the feedba
ck gain K.
x
r
=[0;0;0;0;0;0;0], We simu
late it
in MATLAB7.1 sho
w
n in Figure 3.
Figure 3. SIMULATIO
N
in MATLAB
Evaluation Warning : The document was created with Spire.PDF for Python.
ISSN: 25
02-4
752
IJEECS
Vol.
2, No. 3, Jun
e
2016 : 617
– 624
622
In the initial
st
ate of x
0
=[pi/2
0;0;0;0;0;0], the bal
an
cing
results
are
sh
own i
n
Fig
u
re
4 and
Figure 5.
Figure 4. Dyn
a
mic respon
se unde
r H
∞
m
e
thod
Figure 5. Dyn
a
mic respon
se with differe
nt q value
We al
so
ca
n achi
eve the p
o
sition
co
ntro
l. The expe
cted state i
s
x
r
=[0;0;0;0;1;1], and th
e
initial state x
0
=[pi/20;0;0;0;
0;0]. Throu
g
h
the feedba
ck cont
rol, the robot ca
n sto
p
in the po
sition
we expe
cted.
The re
sult is
sho
w
n in Fig
u
re 6.
Evaluation Warning : The document was created with Spire.PDF for Python.
IJEECS
ISSN:
2502-4
752
Two
Wheel
ed
Robot Self Balan
c
ing
Cont
rol Re
se
arch
(Ni D
a
n
)
623
Figure 6. Dyn
a
mic respon
se of position
control
Let’s lo
ok at
the anti
-
jam
m
ing effe
ctivene
ss
of this co
ntrol
sche
me. We
give
a force
5Nm la
sting 0
.
05s onto the
body of robot.
T
he re
sult is
sho
w
n in Fig
u
re 7.
Figure 7. Dyn
a
mic respon
se with distu
r
b
ance
From the figu
re, we
can
se
e that the rob
o
t can
wal
k
b
a
ck to ze
ro p
o
int quickly a
nd ke
ep
balan
cing.
4. Conclusio
n
A method
ba
sed
on
H
∞
Robu
st Co
ntrol
wa
s p
r
o
p
o
s
ed to
cont
rol
a self-b
alan
cing
two
whe
e
led
ro
bo
t. From the
si
mulation,
we
can
see t
hat t
he robot
can
be bal
an
ced
i
n
fixed po
siti
on
well by thi
s
m
e
thod, an
d al
so it have th
e
ability to
anti interferen
ce.
The n
e
xt ste
p
we
sh
ould
do
about
rob
u
st
control i
s
the
utilization
of
nonlin
ear ro
bust
cont
rol i
n
the twowhe
eled
rob
o
t. And
Evaluation Warning : The document was created with Spire.PDF for Python.
ISSN: 25
02-4
752
IJEECS
Vol.
2, No. 3, Jun
e
2016 : 617
– 624
624
we would find
some a
dapti
v
e or learning
me
thod which don’t dep
en
d much on th
e paramete
r
of
robot an
d ca
n
balan
ce the robot well.
Referen
ces
[1]
T
s
ai C, Ju S,
Hsieh S.
Traje
c
tory tracking of a self-bala
n
c
ing tw
o-w
heel
ed rob
o
t using
backstep
pi
ng
slidi
ng-
mode
control a
nd f
u
zz
y
basis fu
nction n
e
tw
orks
. Proceedi
n
g
s of IEEE Internati
o
n
a
l
Confer
ence
on
Intellig
ent Ro
b
o
ts and S
y
st
e
m
s.
T
a
ipei: IEEE. 2010: 39
43
–
394
8.
[2]
Grasser F, D’rrigo A, Co
lomb
i
S, Rufe
r, AC JOE. A mobile
, inverted p
e
n
d
u
lum.
IEEE Transactions
on Industri
a
l El
ectronics
. 20
02
; 49(1): 107
–11
4.
[3]
Ko A, Lau HY
K, Lau T
L. SOHO secu
rit
y
w
i
t
h
mini se
lf-bal
anci
ng ro
bo
ts.
Industrial R
obot
. 200
5;
32(6): 49
2–
498
.
[4]
Sasaki M, Y
a
nag
ihar
a N, M
a
tsumoto O,
Komori
ya
K.
F
o
rw
ard
an
d backw
ard moti
on
co
ntrol of
perso
nal
rid
i
n
g
-
type w
hee
le
d
mobi
le
pl
atfor
m
.
Proc
eedings of IEEE Int
e
rnational Conference on
Rob
o
tics an
d Automatio
n
. Ne
w
Orle
ans: IEEE. 2004: 33
31
–
333
6.
[5]
Sasaki M, Yan
agi
hara N, Ma
tsumoto O, Komori
ya K.
Steerin
g control o
f
t
he persona
l
riding-typ
e
w
heele
d
mob
i
l
e
platfor
m
(PM
P
).
Proceed
ing
s
of IEEE Internatio
nal
Conf
e
r
ence o
n
Intel
l
i
gent R
obots
and S
y
stems. Edmonto
n
:
IEEE. 2005: 16
97
–
170
2.
[6]
Ngu
y
e
r
HG, M
o
rrell
J, Mull
en
s K, Burmeiste
r
AB, Miles S,
F
a
rringto
n
N,
T
homas K M, Gage D
W
.
Segw
ay rob
o
ti
c mo
bil
i
ty platf
o
rm
. Proc
eedings of Mobi
le Robots
X
V
II.Philadelp
hia: SPIE. 2004: 207–
220.
[7]
Sa
w
a
tzk
y
B, D
enis
on I,
T
a
w
a
sh
y
A. T
he segw
a
y
fo
r p
e
o
p
le
w
i
th d
i
sab
iliti
e
s: Meeting clie
nts’ mobil
i
t
y
goa
ls.
Amer
ica
n
Journ
a
l of Ph
ysical Me
dici
ne
& Rehab
ilitati
o
n
. 2009; 8
8
(6): 484
–4
90.
[8]
Bro
w
ni
ng B, S
earock J, R
y
b
s
ki PE, Velos
o
M.
T
u
rning S
e
g
w
a
y
s i
n
to soc
c
er rob
o
ts.
Industrial R
o
b
o
t
.
200
5; 32(2): 14
9–1
56.
[9]
Bro
w
ning B,
Ry
bski PE, S
earock J, V
e
loso MM.
D
e
v
e
lo
p
m
ent
of a
soccer-p
layi
n
g
dy
na
mic
a
lly-
bal
anci
ng mobi
le
ro
bot.
Proce
edi
ngs of IEEE
Internatio
na
l
Confer
ence
on
Rob
o
tics a
nd
Automatio
n
.
Ne
w
Orle
ans: IEEE. 2004: 17
52–
17
57
[10]
K Pathak, J F
r
anch, S K
Agr
a
w
a
l. V
e
l
o
cit
y
and Positi
on C
ontrol of
a
W
h
eel
ed
Inv
e
rted Pend
ulum
b
y
Partial F
e
e
d
b
a
ck Line
arizati
o
n.
IEEE Trans.
on Robotics
. 2
005; 21(
3): 505
-513.
[11]
A Salern
o, J Ange
les.
On the
nonl
in
ear co
ntrolla
bi
lity of a
quas
iho
l
o
n
o
m
i
c
mo
bil
e
robot.
Proc. IEEE
ICRA,
T
a
i
w
a
n
,
200
3. USA: IEEE. 2003: 33
7
9
-33
84.
[12]
YS Ha a
nd S
Yuta. T
r
ajector
y
track
i
n
g
c
ont
rol for
nav
i
gatio
n of the
i
n
verse
pe
ndu
l
u
m t
y
pe se
lf-
contai
ne
d mobi
le rob
o
t.
Robot
. Autono
m. Syst
. 1996; 17: 65
–80.
[13]
A Blank
esp
oor
, R Roem
er.
Experi
m
e
n
tal v
e
rificatio
n
of the
dyna
mic
mod
e
l for a
qu
arte
r si
z
e
self-
bal
anci
ng w
h
e
e
lch
a
ir
. Proc. ACC. Boston: ACC, 200
4: 488-
492.
[14]
Xi
e Min
g
-ji
ang;
Dai Yin
g
, Shi Song-
jia
o. Non
line
a
r H
∞
State
F
eedb
ack Co
ntrol
.
Evaluation Warning : The document was created with Spire.PDF for Python.