Wheeled mobile robots (WMR) are widely used today in a variety of fields such as agriculture, industry, land mining, military applications, space exploration, and in many other applications where the environment is inaccessible or hazardous to humans such as in nuclear plants. Mobile robot navigation is a common aspect to all applications involving WMR, and is a common research topic in almost all engineering faculties. For stationary robots such as manipulators with a fixed base, a rather complex dynamic controller is used to precisely control the motion of the robot, while trajectory planning and tracking is more easily achieved since the environment of the robot can be easily modeled and perceived. In the case of wheeled mobile robots, the problems of path planning, trajectory following, and obstacle avoidance are the more challenging and interesting topics.The objective of this project is to develop an autonomous navigation system for the P3-AT robot available at the GREPCI research laboratory at ETS. Localization and sonar perception routines are already available with the robot through the ARIA application interface. The aim is to develop an optimal path planning technique to make good usage of any available information on the environment, and to develop a control technique to drive the robot along the planned path. If no information is available about the environment or if a dynamic obstacle suddenly emerges, an obstacle avoidance technique that can autonomously drive the robot safely to the destination position without colliding with objects on its way is desirable. Those three aspects along with the already available localization and perception of the environment are then integrated into a navigation strategy that can detect failures and local minima and coordinate actions.
Path Planning and Trajectory Generation
In many applications, a model of the environment in which the robot operates is often available. It would be quite advantageous to use this information to plan an optimal path even if sorne changes in the environment might occur in real time due to the appearance of sorne dynamic obstacles. In a commonly used approach, the environment is sampled at regular intervals and projected on a two dimensional space. The discrete samples are referred to as nodes, with each node Iinked to all adjacent nodes through links as in a graph. Each link is assigned a weight that would be calculated based on sorne optimization criteria, such as the safety of the robot, the time needed to traverse between two nodes, as well as other criteria that are task dependent. A path planning algorithm is used to determine an optimal path from the current (start) position of the robot to the desired destination position, also modeled as nodes. There are numerous optimization algorithms that can be used for path planning. The most widely used is the A* search algorithm (Pruski, 1996) and sorne of its variants (hierarchical, differentiai, D*, parallel A*). Other algorithms that can be used include Dijkstra and numerous tree searching techniques (Pruski, 1996). In this article, a new algorithm based on dynamic programming that was developed will be described. The creation and development of this algorithm was inspired by the work published in Gifford and Murphy (1996). The advantage of this approach is that an optimal path is guaranteed, and the optimal paths from all nodes (positions) in the environment towards the destination nodes are determined in the process, which is useful in the case of a multi-robot system. Another advantage is the ability to use parallelism when implemented on a parallel processor without any compromise in the optimality of the solution.
Path Following and Trajectory Tracking
In mobile robot navigation, the path tracking controller is usually implemented at a low level in the control hierarchy. Its function is to execute a path planned by the higher level path planner with the least possible error in position and with minimal control effort. The high lev el planner’ s function is planning a path either offline or online and depending on environment changes. The path can also be generated in such a way as to simply follow another robot. The task of the lower level path tracker controller is to guarantee that the robot will track the path in a precise, reliable, and efficient manner. The path following problem is highly nonlinear, and several approaches have been developed to solve the problem of path tracking through direct control of the robot’ s dynamics. In sorne of the se approaches (Xu and Yang, 2001; De Santis, Hurteau et al.,2002; Zhang, Xu et al., 2002), nonlinear controllers are derived based on the Lyapunov approach. Other types of controllers were designed (Koh and Cho, 1995; Caracciolo, de Luca et al., 1999; Zhang, Xu et al., 200 1) using sliding mode control or other nonlinear techniques and were applied to the nonlinear dynamic and kinematical model of the robot. A behavioral approach (Yang, Li et al., 2003) for path tracking was implemented using fuzzy logic control for wheel steering.
The Activmedia Robot Interface for Applications (ARIA)
To provide developers and researchers with a relatively easy to use interface, the ARIA open source object-oriented user interface was developed in the C++ programming language and is distributed with ActivMedia products. This library is · used in thedevelopment of a client application as an interface to all the low-level tasks such as establishing communication with the robot. It is highly versatile and flexible and can be used to implement virtually any high level task without worrying about communication with the server and provides easy to use methods to access all sensor information and control the robot. The server on the robot is the AROS operating system that is originally installed on the robot’s microcontroller. AROS manages all the low level tasks of motion and mo tor control and performs sensor information ( encoders, gyroscope, and sonar) acquisition. Intelligent tasks such as navigation and sensor data fusion and interpretation are done at the lev el of the client application. ARIA provides extensive methods and features for robot control and sensor data acquisition. The ARIA interface spares the user from developing all low level tasks such as packet encoding and decoding and supplies all needed interfaces to the robot. Only those methods and features used in this project will be discussed. In this discussion, the C++ driver program in Appendix 1 that is based on the “actionExample” distributed with the ARIA package is explained. This example contains all the needed functionalities to operate the robot. There are other ways to control the robot; however using actions is the most suitable way for this project. The communication with the robot is done through a seriai port as mentioned in the previous section. ARIA provides us with the methods necessary to establish the communication with the robot from the driver program without getting into the communications details. The most suitable method to communicate with the robot is done with theArSimpleConnector method of the ARIA library. If the SRI simulator that is providedwith the ARIA package is open, ArSimpleConnector will connect to the simulator, even ifthe robot is connected to the COM1 seriai port. If no SRisim window is open, it tries to connect to the robot through the COM1 seriai port on the client computer. By default, ArSimpleConnector connects to the robot on COM1, however if another COM port is used, this has to be done by parsing the arguments through a command window.
Types of Mobile Robots
A wide range of vehicles used for a wide variety of tasks can be classified under the category of mobile robots. Unmanned aerial vehicles, ground vehicles with various mechanical steering techniques, watercraft, submarine robots, and other types of unmanned vehicles whether remotely controlled, semi-autonomous, or fully autonomous all fall under the category of mobile robots. In this section, the discussion will be limited to WMR and their characteristics.Holonomie or omni-directional mobile robots can move in any of the set of possible direction from its current posture without having to turn to that direction first. Nonholonomie mobile robots on the other hand can only drive in one direction from their current posture. For example, in a two-dimensional plane, a wheeled mobile robot can only move in the direction of the current orientation of the wheels. Non holonomie mobile robots are limited by the kinematic constraints that restrict their motion. These constraints are often modeled usmg equations involving derivatives of the posture variables.
Ackermann Steered WMR Non-holonomie WMR such as cars adopt the Ackermann steering mechanism and are usually four-wheeled, of which the two front wheels are passive and are used only for steering while the active rear wheels that supply the traction force provide needed to displace the vehicle are fixed and have a common axle. Three wheeled models often referred to as tricycles use the same mechanism but are steered by only one front wheel. When the front wheels are fixed at a constant angle and the linear velocity is different from zero, the vehicle will follow a circle whose center is the intersection between the axles of the front and rear wheels (Figure 17). Thus, when a vehicle is steered, it will follow a path which is part of the circumference of its turning circle, that will have a center point somewhere along a line extending from the axis of the fixed axle. The steered wheels must be angled so that they are both at 90degrees to a line drawn from the circle centre through the centre of the wheel. Since the wheel at the outside of the turn will trace a larger circle than the wheel on the inside, the wheels need to be set at different angles. The Ackermann steering geometry arranges this automatically by moving the steering pivot points inward so as to lie on a line drawn between the steering kingpins and the center of the rear axle. The steering pivot points are joined by a rigid but in length adjustable bar, the tie rod, which is also part of the steering mechanism. This arrangement ensures that at any angle of steering, the centre point of all of the circles traced by all wheels will lie at a common point.
Differentially Steered WMR Differentially driven WMR are non-holonomie whose active wheels on the left and the right sides of the vehicle are driven by independent motors. Most of these robots have two active front wheels and one passive caster wheel in the back for stabilization purposes. These types of robots have the property that they can turn at the spot by applying equal and opposite forces on the wheels on each side, which makes them suitable in narrow environments cluttered with many obstacles and are usually used for indoor applications. Another type used mainly in all terrain navigation has four fixed active wheels and is based on skid steering motion. Skid steering is accomplished by creating a differentiai velocity between the left and right wheels. Figure 18 is an upper view schematic of a four wheel drive robot skid-steering around the center.The front and rear wheels on each side are synchronized so as to avoid longitudinal slippage. Although this type is usually slower than robots with Ackermann steering, they are more robust and maneuverable on rough terrains. The disadvantage is the control needed to make the robot move in a straight line since the angular speeds of each of the active wheels must be exactly the same.
Single Wheel Drive WMR This non-holonomie WMR is a tricycle but with the front wheel used for both steering and traction. The rear wheels are passive and fixed. This is considered to be the simplest design for a mobile robot. Linear and angular velocities of the robot are completely independent. For straight line motion (Figure 19 (a)), the front wheel axle is parallel to the rear wheel axle. To move in curvilinear motion (Figure 19 (b)), the front wheel is continuously angled depending on the curve to follow. The robot can also spin around the center midway between the two rear wheels if the angle of the axle of the front wheel is orthogonal to the axle of the two rear wheels.
Synchronous Drive WMR
The synchronously driven WMR is almost holonomie in that it can move in any direction. All the wheels are active and used for steering. The axles of all the wheels are always parallel to each other and the wheels turn at the same speed and in the same sense. One possible design is to have one motor used for steering chained to all the wheels and one motor for traction geared to all three wheels.
Other Types Sorne other types of robots used for delicate missions with extreme conditions that require high mobility, possess sorne of the features from the different types. The Nomad2000 and the JPL explorer shown in Figure 20 have their left and right wheel drives independent and the steering of each of the wheels is independent. This would ensure maximum displacement capability in rough terrain.
Table des matières
TABLE OF CONTENTS
LIST OF FIGURES
LIST OF ABBREVIATIONS AND SYMBOLS
CHAPTER 1 LITERA TURE REVIEW
1.2 Path Planning and Trajectory Generation
1.3 Path Following and Trajectory Tracking
1.4 Real Time Obstacle A voidance
1.5 Navigation Control Architectures
CHAPTER 2 TECHNICAL DESCRIPTION OF THE P3-AT MOBILE ROBOT AND ITS CLIENT INTERFACE
2.1 The Pioneer 3-AT Robot
2.1.1 Wireless Seriai Communications
2.1.3 The Activmedia Robotics Operating System (AROS)
2.2 The SRI Simulator
2.3 The Activmedia Robot Interface for Applications (ARIA)
CHAPTER 3 TYPES AND MODELING OF DIFFERENTIALL Y STEERED WHEELED MOBILE ROBOTS
3.2 Types of Mobile Robots
3.2.1 Ackermann Steered WMR
3.2.2 Differentially Steered WMR
3.2.3 Single Wheel Drive WMR
3.2.4 Synchronous Drive WMR
3.2.5 Other Types
3.3 Modeling ofFour-Wheeled Skid-Steered Mobile Robots
3.3.1 Kinematic Modeling
3.3.2 Dynamic Mode ling
CHAPTER 4 PATH PLANNING
4.2 Cost Map Generation
4.3 Formulating the Problem
4.4 The A* algorithm
4.5 Dynamic Programming
4.5.1 Classical Dynamic Programming
4.5.2 Dynamic Programming: A Novel Approach
184.108.40.206 Convergence to the Optimal Solution
220.127.116.11 Iterative Procedure
4.6 Implementation on Parallel Processors
4.7 Implementation on MATLAB
4.8 A* and Dynamic Programming: A Comparison
4.9 Performance and Results
CHAPTER 5 HIGH LEVEL PATH TRACKING AND TRAJECTORY FOLLOWING
5.2 Fuzzy Logic Path Tracking Controller
5.2.1 Path Tracker Parameters
5.2.2 Fuzzy Path Tracking Controller
5.2.3 Real Time Implementation
18.104.22.168 FFLL and FCL Files
22.214.171.124 C++ Implementation
5.2.4 Simulation and Experimental Results:
5.3 Lyapunov Based Control Law Approach to the Problem ofPath Tracking
5.3.1 The Control Technique
5.3.2 Generating the Reference Trajectory
5.3.3 Real Time Implementation
5.3.4 Simulation Results
CHAPTER 6 REAL TIME OBSTACLE AVOIDANCE
6.2 Obstacle Representation in Real Time
6.3 The Curvature-Velocity Method
6.4 Modifications for Real Time Implementation
6.4.1 Modification of Curvature Intervals
6.4.2 Optimization of the Objective Function
6.5 Real Time Implementatiqn
CHAPTER 7 NAVIGATION STRA TEGY
7.2 Navigation Strategy
1 : Client Driver Program
2: Fuzzy Control Language Files (FCL)
3 : SRI Simulator World Files
Table 1 Inference rules for LAC