Professional Documents
Culture Documents
net/publication/301726738
CITATIONS READS
16 1,833
1 author:
Taher Abu-Lebdeh
North Carolina Agricultural and Technical State University
128 PUBLICATIONS 1,701 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Taher Abu-Lebdeh on 30 April 2016.
Keywords: Wheeled Mobile Robots, PID-Feedback Control, Navigation Control Algorithm, Differential
Drive, Hybrid Automata
robots ‘move to a point’, ‘move to a pose’, ‘follow a line’, The configuration of the vehicle is represented by the
‘follow a circle’ and ‘avoid obstacles’ taken from the generalized coordinates q = (x,y,θ), where (x,y) is the
literature (Corke, 2011; Egerstedt, 2013). position and θ is the orientation (heading) of the center
A MATLAB robot simulator is used to implement the of the axis of the wheels, C, with respect to a global
navigation control algorithm and the individual control inertial frame {O,X,Y}. Let {OV, XV, YV} be the vehicle
algorithms were simulated using Simulink models. For frame. The vehicle’s velocity is by definition ν in the
the navigation control algorithm, the robot simulator is vehicle’s x-direction, L is distance between the wheels,
able to move to a goal in the presence of convex and R is radius of the wheels, νr is the right wheel angular
non-convex obstacles. Also, several experiments are velocity, νl is the left wheel angular velocity and ω is the
performed using a ground robot, Dr Robot X80SV, in a heading rate. The kinematic model of the DDWMR
typical office environment to verify successful based on the stated coordinate is given by:
implementation of the navigation architecture algorithm
programmed in MATLAB. x& =
R
2
( ν r + ν l ) cos θ
Possible applications of WMR include security robots,
y& = ( ν r + ν l ) sin θ
land mine detectors, planetary exploration missions, Google R
(1)
autonomous car, autonomous vacuum cleaners and lawn 2
mowers, toxic cleansing, tour guiding, personal assistants to &θ = R ( ν − ν )
r l
humans, etc. (Jones and Flynn, 1993). L
The remainder of this study is organized as
follows: In section II the kinematic model of the For the purpose of implementation the kinematic
DDWMR is shown. The control algorithms are model of a unicycle is used, which corresponds to a
presented in section III. In section IV simulations and single upright wheel rolling on the plane, with the
experiments performed in MATLAB/Simulink are equation of motion given as:
explained. Simulation and experimental results are x& = ν cos θ
summarized in section V. Concluding remarks and
future work is presented in section VI. y& = ν sin θ (2)
θ& = ω
2. KINEMATIC MODEL OF THE
DDWMR The inputs in (Equation 1 and 2) are νr, νl, ν and ω.
These inputs are related as Equation 3:
The DDWMR setup used for the presented study is
shown in Fig. 1 (top view). The mobile robot is made up 2ν + ωL 2ν − ωL
νr = νl = (3)
of a rigid body and non-deforming wheels and it is 2R 2R
assumed that the vehicle moves on a plane without
slipping, i.e., there is a pure rolling contact between the A Simulink model shown in Fig. 2 have been developed
wheels and the ground. that implements the unicycle kinematic model.
3. CONTROL ALGORITHMS
Control of the unicycle model inputs is about
selecting the appropriate input, u = (νω)T and
applying the traditional PID-feedback controller,
given by Equation 4:
t de(t)
u(t) = PID(e) = K p e(t) + K l ∫ e(τ)dτ + K D (4)
0 dt
where, e, define for each task below, is the error between Fig. 3. Coordinates for moving to a point
the desired value and the output value, Kp is the
proportional gain, Kl is the integrator gain, KD is the
The desired heading (robot’s relative angle), θg, is
derivative gain and t is time. The control gains used in determined as:
this research are obtained by tweaking the various values
to obtain satisfactory responses. If the vehicle is driven at yg − y
a constant velocity, ν = ν0 then the control input will θg = θgoal = arctan (6)
xg − x
only vary with the angular velocity, ω, thus:
The above controller could drive the robot to a And assumes the goal {G} is in front of the vehicle.
goal position but the final orientation depends on the The linear control law Equation 13:
starting position. In order to control the final
orientation (Equation 5) is rewritten in matrix form as ν = K ρρ ω = K α α + K ββ (13)
(Corke, 2011):
Drives the robot to unique equilibrium at (ρ,α,β) =
x& cos θ 0 (0,0,0). The intuition behind this controller is that the
& ν terms Kρρ and Kαα drive the robot along a line toward
y = sin θ 0 ω (10)
{G} while the term Kββ rotates the line so that β→0
θ& 0
1
(Corke, 2011). The closed-loop system Equation 14:
Equation 10 is then transformed into the polar ρ& − K ρ cos α
coordinate form using the notation shown in Fig. 4 below. &
Applying a change of variables, we have Equation 11: α = K ρ sin α − K α α − K ββ (14)
β& − K ρ sin α
ρ = ∆ 2x + ∆ 2y
Is stable so long as Kρ>0, Kβ>0, Kα-Kρ>0 (Corke,
∆ 2011). For the case where the goal is behind the robot, that
α = arctan y − θ (11)
∆ π π
x is α ∉ − , the robot is reverse by negating ν and ω in
β = −θ − α 2 2
the control law. The velocity ν always has a constant sign
Which results in Equation 12: which depends on the initial value of α (Corke, 2011).
α h = K h ( θg − θ ) , K h > 0
In a real environment robots must avoid obstacles in
(18)
order to go to a goal. Depending on the positions of the
goal and the obstacle (s) relative to the robot, the robot
need move to the goal using θg from a ‘pure go-to-goal’ The combined control law Equation 19:
behavior or blending the ‘avoid obstacle’ and the ‘go-to-
goal’ behaviors. In pure obstacle avoidance the robot ω = − K d d + K h ( θg − θ ) (19)
drives away from the obstacle and move in the opposite
direction. The possible θg that can be used in the control Turns the wheel so as to drive the robot toward the
law discussed in section III-A.1 are shown in Fig. 5 line and moves along it (Corke, 2011).
below, where θobst is the obstacle heading.
3.1.5. Following a Circle
3.1.4. Following a Line
Instead of a straight line the robot can follow a
Another useful task for a mobile robot is to follow a defined path on the xy-plane and in this section the robot
line on a plane defined by ax+by+c = 0. This requires two follows a circle. This problem is very similar to the
controllers to adjust the heading. One controller steers control problem presented in section III-A.1, except that
the robot to minimize the robot’s normal distance from this time the point is moving. The robot maintains a
the line given by Equation 15: distance dd behind the pursuit point and an error, e, can
be formulated as (Corke, 2011) Equation 20:
(a,b,c).(x, y,1)
d= (15)
a 2 + b2
(x − x ) + ( yg − y ) − d d
2 2
e= g (20)
The proportional controller Equation 16:
is at the relative angle given by (Equation 6) and a Since e& = − Ke the system is asymptotically stable if K>0.
controller given by (Equation 18). An appropriate K is selected to obey the function shown in
Fig. 7a above such that e& = − K (|| e ||) e , where a and b are
3.2. Developing Navigation Control Algorithm
constants to be selected; in this way the robot will not go
This section introduces how the navigation faster further away from the goal (Egerstedt, 2013).
architecture, that consist of go-to-goal, follow-wall and
avoid obstacle behaviors, was developed. In order to 3.2.2. Obstacle Avoidance (AO) Mode
develop the navigation system a low-level planning was
used, by starting with a simple model whose input can be Let the obstacle position be x0, then e = x0-x is
calculated by using a PID controller or transform into controlled by the input u = Ke and since e& = − Ke the
actual robot input, depicted in Fig. 6 (Egerstedt, 2013). system is desirably unstable if K>0. An appropriate K is
For this simple planning a desired motion vector, x, is selected to obey the function shown in Fig. 7b above
picked and set equal to the input, u, (Equation 22). such that e& = − K (|| e ||) e , where c and ε are constants to
be selected (Egerstedt, 2013).
0 0 1 0
x& = u = x+ u, x ∈ ℜ
2
(22)
0 0 0 1 3.2.3. Blending AO and GTG Modes
In a ‘pure GTG’ mode, uGTG, or ‘pure AO’ mode,
This selected system is controllable as compared to the uAO, or what is termed as hard switches, performance can
unicycle system which is non-linear and not controllable be guaranteed but the ride can be bumpy and the robot
even after it has been linearized. This layered architecture can encounter the zeno phenomenon (Egerstedt, 2013).
makes the DDWMR act like the point mass model shown A control algorithm for blending the uGTG and uAO modes
in (Equation 22) (Egerstedt, 2013). is given by (Equation 23). This algorithm ensures
3.2.1. Go-To-Goal (GTG) Mode smooth ride but does not guarantee performance
(Egerstedt, 2013):
Consider the point mass moving toward a goal point, xg,
with current position as x in the xy-plane. The error, e = xg- u GTG ,AO = α( ∆)u GTG + (1 − α(∆ ) ) u AO , α(∆) ∈ [01] (23)
x, is controlled by the input u = Ke, where K is gain matrix.
(a) (b)
Fig. 7ab. Suitable graph for an appropriate K (a) Go-to-goal mode (b) Obstacle avoidance mode
where, ∆ is a constant distance to the Another issue to be addressed is when the robot
obstacle/boundary and α is the blending function to be releases uFW, that is when to stop sliding. The robot stops
selected, giving appropriately as an exponential sliding when “enough progress” has been made and there
function by: is a “clear shot” to the goal, as shown in (Equation 30-32),
where τ is the time of last switch (Egerstedt, 2013):
α (∆ ) = 1 − e −β∆ (24)
enough progres :|| x − x g ||< d τ (30)
where, β is a constant to be selected.
where d τ =|| x(τ) − x g || (31)
3.2.4. Follow-Wall (FW) Mode
clear shot : u AO ,u GTG = ( u AO ) u GTG > 0
T
As pointed out in section III-B.2, in a pure obstacle (32)
avoidance mode the robot drives away from the
obstacle and move in the opposite direction, but this is 3.2.5. Implementation of the Navigation
overly cautious in a real environment where the task is Algorithms
to go to a goal. The robot should be able to avoid The behaviors or modes discussed above are put
obstacles by going around its boundary and this together to form the navigation architecture shown in
situation leads to what is termed as the follow-wall or Fig. 9 below. The robot started at the state x0 and arrived
an induced or sliding mode, uFW, between the uGTG at the goal xg, switching between the three different
and uAO modes; this is needed for the robot to operation modes; this system of navigation is termed the
negotiate complex environments (Egerstedt, 2013). hybrid automata where the navigation system has been
The FW mode maintains ∆ to the obstacle/boundary described using both the continuous dynamics and the
as if it is following it and the robot can clearly move in discrete switch logic (Egerstedt, 2013).
two different directions, clockwise (c) and counter- An illustration of this navigation system is shown
clockwise (cc), along the boundary, Fig. 8. This is in Fig. 10, where the robot avoids a rectangular block
achieved by rotating uAO by π/2 and -π/2 to obtain as it moves to a goal.
AW and u AW respectively and then scaled by δ to obtain
u cc c
3.2.6. Tracking and Transformation of the
a suitable induced mode, (Equation 25-27), where R(∅) ‘Simple’ Model Input
is a rotation matrix (Egerstedt, 2013):
The simple planning model input, u = (u1 u2)T can be
cos ∅ − sin ∅ tracked using a PID controller or clever transformation
R(∅) = (25) can be used to transform it into the unicycle model input,
sin ∅ cos ∅
u = (νω)T (Egerstedt, 2013). These two approaches are
discussed below.
0 −1
u ccFW = δR(π / 2)u AO = δ u AO (26) Method 1: Tracking Using a PID Controller
1 0
Let the output from the planning model be u = (u1
0 1 u2)T and the current position of the point mass be x = (x
u cFW = δR(−π / 2)u AO = δ u AO (27) y)T, Fig. 11a below, then the input, u = (ν ω)T, to the
−1 0 unicycle model can be determined as shown below
(Egerstedt, 2013) Equation 33-35:
The direction the robot selects to follow the boundary
is determined by the direction of uGTG and it is u
θg = arctan 2 (33)
determined using the dot product of uGTG and uFW, as u1
shown in (Equation 28 and 29) (Egerstedt, 2013):
ω = PID ( θg − θ ) (34)
u GTG ,u ccFW = ( u GTG ) u ccFW > 0 ⇒ u ccFW
T
(28)
From Equation 2:
(a) (b)
Fig. 11. (a) Coordinates for point mass in a specific direction (b) Coordinates for DDWMR model showing the new point
Fig. 15. Model that moves the robot in a unit circle (Corke, 1993-2011)
(a) (b)
(c) (d)
(e) (f)
(g) (h)
Fig. 16. (a-h) Sequence showing the MATLAB robot simulator implementing the navigation system
Figure 16a-h below shows a sequence of the host PC and the robot through the wireless router the
movement of the MATLAB robot simulator MATLAB program receives and sends the
implementing the navigation system. The robot motion/sensors signals using ActiveX control. The
navigates around a cluttered, complex environment program directly exchange multimedia data with the
without colliding with any obstacles and reaching its Pan-Tilt-Zoom camera also through an ActiveX control.
goal location successfully. A screenshot of the main MATLAB interface used for
4.3. Experiments Using Dr Robot X80SV the Dr Robot X80SV control is shown in Fig. 19 below.
The interface was developed by mimicking a similar
The control algorithm built for the navigation interface developed in C# by Dr Robot Inc. The
architecture presented in Section III has been motivation for using MATLAB instead of building upon
experimented on Dr Robot X80SV, programmed using the provided C# interface is to take advantage of the ease
MATLAB GUI, in an office environment. The Dr Robot of simulation, quick and ease of developing GUI and
X80SV can be made to move to a goal whiles avoiding making use of the in-built control strategies libraries in
obstacles in front of it. MATLAB for this research and future studies.
The Dr Robot X80SV, shown in Fig. 17a below, is a The main GUI interface has three sections:
fully wireless networked that uses two quadrature Information about the robot settings and sensors,
encoders on each wheel for measuring its position and multimedia and the vision and control. The robot settings
seven IR and three ultrasonic range sensors for collision information includes the IP addresses of the robot and
detection. It has 2.6× high resolution Pan-Tilt-Zoom the camera, the robot wheel radius, distance between the
CCD camera with two-way audio capability, two 12V
robot wheels and the encoder count per revolution. The
motors with over 22 kg.cm torque each and two
sensors information, updated in real-time, includes the
pyroelectric human motion sensors.
IR, ultrasonic, motor, human, temperature, battery and
The Dr Robot X80SV has a dimension of 38cm
(length) ×35 cm (width) ×28 cm (height), maximum the position of the robot.
payload of 10kg (optional 40 kg) with robot weight of The multimedia section include real-time video
3 kg. Its 12V 3700 mAh battery pack has three hours stream from the robot, which can be controlled using a
nominal operation time for each recharging and can pan and tilt tools. The section also has tools for
drive up to a maximum speed of 1.0 m s−1. The capturing images and recording the video stream. In
distance between the wheels is 26cm and the radius of addition, the section also has a tool to capture live
the wheels is 8.5cm. audio from the robot.
The PID-feedback system depicted in Fig. 17b above The vision and control section has tools for
shows how the DC motor system of the robot is performing ‘Basic Motion Control’, ‘Individual Motion
controlled. Figure 18 shows the setup used for the Control (PID and MPC)’, ‘Navigation System (PID and
experiments. After a connection is established between MPC) and ‘Object Recognition and Tracking’.
Fig. 19. MATLAB GUI showing the Dr robot X80SV settings and sensors information, multimedia and control
(a) (b)
(c) (d)
(e) (e)
Fig. 20. (a-f) Experimental setup showing sequence of the Dr robot X80SV movement
(a) (b)
6. CONCLUSION 8. REFERENCES
In this study, an effective navigation control Brockett, R.W., 1983. Asymptotic stability and feedback
algorithm was presented for a DDWMR, simulated using stabilization: Differential geometric control theory.
a MATLAB robot simulator that mimics the K3 robot Birkhauser, Boston.
and implemented on the Dr Robot X80SV platform using Corke, P., 2011. Robotics, Vision and Control:
a developed MATLAB GUI. The algorithm makes the Fundamental Algorithms in MATLAB. 1st Edn.,
robot move to a pose, whiles avoiding obstacles in the Springer, Berlin Heidelberg Springer, ISBN-10:
way. Even though the final steady-state values obtained 3642201431, pp: 570.
from the experiments could not be stabilized, the results Corke, P., 1993-2011. Robotics Toolbox for MATLAB
were encouraging. (Version 9.8) (Software).
This research paper has also demonstrated how to De Luca, A., G. Oriolo and M. Vendittelli 2001. Control
make a unicycle, kinematically equivalent to DDWMR, of Wheeled Mobile Robots: An Experimental
‘move to a point’, ‘move to a pose’, ‘follow a line’, Overview. In: RAMSETE: Articulated and Mobile
‘move in a circle’ and ‘avoid obstacles’. These were Robotics for Services and Technology, Nicosia, S.
simulated using Simulink models. (Ed.), Springer, Berlin, ISBN-10: 3540420908, pp:
In future, the authors will integrate real-time 181-226.
vision-based object detection and recognition to Egerstedt, M., 2013. Control of mobile robots.
address the imperfection of the IR and ultrasonic Jones, J.L. and A.M. Flynn, 1993. Mobile Robots:
range sensors. In addition, application of an optimal Inspiration to Implementation. 1st Edn., A K Peters,
control strategy such as MPC to handle the Wellesley, ISBN-10: 1568810113, pp: 349.
nonholonomic constraints of the WMR will be MATLAB Robot Simulator (Software), 2013. Georgia
studied. Furthermore, parameters such as length of Institute of Technology, Georgia: Georgia Tech
path or journey time optimization will be considered. Research Corporation.
Robot, 2008. C# Advance X80 demo program (Software.
7. ACKNOWLEDGMENT
This study was supported by the NC space grant.