,

The objective of this book is to cover advances of mobile robotics and related technologies applied for multi robot systems' design and development. Design of control system is a complex issue, requiring the application of information technologies to link the robots into a single network. Human robot interface becomes a demanding task, especially when we try to use sophisticated methods for brain signal processing. Generated electrophysiological signals can be used to command different devices, such as cars, wheelchair or even video games. A number of developments in navigation and path planning, including parallel programming, can be observed. Cooperative path planning, formation control of multi robotic agents, communication and distance measurement between agents are shown. Training of the mobile robot operators is very difficult task also because of several factors related to different task execution. The presented improvement is related to environment model generation based on autonomous mobile robot observations.

arbitrary, e.g. faster units may receive higher priority in order not to slow them down. Other considerations can be also incorporated in the choice of priority order. The velocity distributions of the robots are thus determined in a serial way according to the priority ordering of the robots. Recall that one may get a globally better solution in terms of the overall time used to complete all trajectories if the priority order of the robots is relaxed but such a relaxation would imply the need of a high level search algorithm. The study of such a high level search algorithm is beyond the scope of this paper. The velocity tuning method presented in this paper for an individual robot is based on timescaling. The default time-scale determined by the default velocity profile is parameterized by a virtual time parameter which has to be then mapped to the real or global time such that no collision occurs. The mapping between the virtual and global time parameters is referred to as the time-scaling in the sequel. The time-plane is the space spanned by the virtual and global time parameters. If a collision is possible between two units according to the path geometries (so that they intersect each other), the collision to be avoided can be converted into a so called static timeobstacle in the time-plane [5,6]. A mapping avoiding the static time-obstacles shall be used to define the time-scaling of the path of the current unit. Once the path is expressed by the global time parameter, this procedure can be repeated for all units down to the one with the lowest priority. The remaining part of the paper is organized as follows. Section 2 presents an overview on time-scaling, Section 3 presents our path-planning method in the time-plane, Implementation results are presented in Section 4 and Conclusions are drawn in Section 5.

An overview on time-scaling
In this section some mathematical background is given for the time-scaling. The default velocity that is assigned to a robot and so the time distribution of its path is expressed using a virtual time parameter . We denote this reference path by ( then the current unit collides with the dynamic obstacle. To avoid this collision we must find a function () t    that alters the time distribution of the reference path such that The function () t  maps the virtual time values to global or real time. A mapping that ensures avoidance of all dynamic obstacles will be the time-scaling function. Such a timescaling function may be constructed from several functions over different time intervals.

www.intechopen.com
Methods for finding an adequate time-scaling function in our application will be presented in the next section. Based on the real time and virtual time parameters, we can define the t   time-plane. If a collision is possible between two units according to the path geometries, the collision to be avoided can be converted into a time-obstacle time O which appears as a static obstacle in the time-plane. A time-obstacle is assigned to a collision area in the workspace and it is the set of those virtual and real time pairs where any parts of the unit and the moving obstacle are located at the same place within the collision area corresponding to the time-scaled units default velocity. In most of the cases they will appear as rectangular shaped time-obstacles; in special cases, however, they might be enclosed by nonlinear curves. Avoiding dynamic obstacles in the workspace is analogous to avoiding the corresponding time-obstacles on the time-plane. Based on this analogy, the time-scaling function is the path on the time-plane that avoids all time-obstacles. After constructing this path, the scaled reference path can be generated. Since which, using (1), yields to The velocity according to the scaled reference path can be generated by multiplying the original speed by the derivative of the time-scaling function w.r.t. the real time where () vt  is the scaled velocity.

Criteria for the time-scaling function
A proper time-scaling function must not only avoid the time-obstacles, but must also satisfy criteria according to the kinematic constraints prescribed for the control (velocity) inputs. A collision-free course requires a time-scaling function not mapping any time value into a time-obstacle, which means that   ,() time tt O   must be satisfied for all time values and all time-obstacles. Since time cannot rewind and we allow the robot to stop only at its final position, the scaling function () t  must be strictly monotonically increasing. It might also be required that the robot's velocity does not decrease under a specified minimal value except at the start and goal positions, where the velocity is assigned to be zero. We assume that the default velocity is the maximal possible speed along the trajectory and its values cannot be exceeded at any time. This implies that the scaled velocity must not be greater at any real time instance than the velocity at the corresponding virtual time instance. It is also assumed that the acceleration and the deceleration are also bounded both in negative and positive directions. The acceleration (deceleration) limit is considered to be independent of time. These aforementioned constraints define the inequalities which, together with (6), results in for the scaled velocity where min v is the specified minimum speed value. After dividing which defines a global upper bound for the time-scaling function meaning that the t   curve in the time-plane must not be intersected. The lower bound will be the solution of the differential equation The constraint on the acceleration reads The solutions for the maximal values will result in two curves which will be used by the path planning algorithms in the time-plane.

Construction of the time-obstacles
A time-obstacle is always assigned to a collision area around the intersection of two geometric paths. Each collision area along the path of one unit generates a time-obstacle. The time-obstacle assigned to a collision area is the set of those virtual-time and real-time pairs where any parts of two units are located at the same place. We have to take into account the real physical dimensions of the units, which means that the entering time to a collision area is when the front of the unit arrives at the boundary of the collision area, and the exit time is when its rear point leaves it. If the time-scaled unit cannot enter the area until the higher priority unit has passed through, the time-obstacle will be rectangle shaped with vertexes (, )  are the similar values for the given dynamic obstacle. Fig. 1 shows a collision situation in the workspace and on the time plane. In some special cases the path geometries may have common sections (e.g. the units follow each other in a narrow corridor). In such cases, when the motion directions of the colliding units are identical, one has to examine the time-values when certain parts of the collision area are free for the scaled unit. In this case the time-obstacle is enclosed by nonlinear curves. Fig. 2 shows an example of two robots proceeding along the same way in a narrow corridor and Fig. 3  In (15a) the fronts of the units arrive at the border of the corridor at 1  and 1 t , respectively, while their rear sides arrive to the same location at 2  and 2 t . In the simpler case, when the time-scaled unit moves with constant speed, Equation (16) defines the points of the time-obstacle which is enclosed by the curves defined by Equations (17a) and (17b).
In (15a), (15b), (17a) and (17b) the fronts of the units arrive at the border of the corridor at 1  and 1 t , respectively, while their rear sides arrive at the same location at 2  and 2 t . Similarly at 3  and 3 t the front of the units arrive at the exit of the corridor, respectively, while their rear sides arrive at the same location at 4  and 4 t . A nonlinear time-obstacle has thus six vertices (see Fig. 3).
In the sequel we focus mainly on rectangle shaped time-obstacles but the results can be extended for obstacles presented in Fig. 3.

Path-planning in the time-plane
In this section the method of trajectory-planning in the time-plane will be presented, involving the solution of differential equations derived from the kinematic constraints prescribed for the robots motion, connecting dedicated points on the time-plane and avoiding time-obstacles. Let us emphasize again that the default velocity profile consists of intervals with constant or zero accelerations. Acceleration parameters change at the boundaries of these intervals. We denote these points by i  where i refers to the index of the time instance where the acceleration change occurs. At a certain time  where its value is assumed to be the expression of the default velocity is are the acceleration and velocity parameters at the border point i  . Fig. 4 shows an example for such a velocity function. www.intechopen.com

Solving the differential equations
Regarding the admissible values of the accelerations specified by (13) and (19) the following equations can be obtained for the motion of the time-scaled unit: which means that solutions of (21) and (22) result maximal and minimal accelerations in the scaled velocity, while the solution of (23) results zero acceleration. The solutions of (21) Since the constraint () 1 t    must be respected (see (9)), it has to be checked whether the value of the derivative of an applied () t  function reaches the unity at a certain point. We denote this point by (, )  respectively. Fig. 6 shows an example of finding this point. on the time-plane, it has to be checked first whether g T is within the area of reachable points from s T . In order to do so, the boundaries of the reachable area have to be determined. The upper boundary will be the union of curves resulting maximal acceleration and then maximal speed, and the lower boundary will be the union of ones resulting maximal deceleration and then minimal velocity. Let Of the roots of (57) one has to select the solution that satisfies

Avoiding time-obstacles
then the unit collides with a dynamic obstacle.
In the sequel, a path planning method based on the algorithm of connecting points on the time-plane and determining collisions with time-obstacles will be presented. Because of the presence of time-obstacles, an exact path between dedicated points might not exist, even if the desired point of reach is within the reachable area of the starting point s T . Fig. 9 shows an example of several time-obstacles lying between the starting and the goal positions, while Fig. 10 shows that s T cannot be connected with g T directly because of a collision with a time-obstacle. Fig. 9. Time-obstacles between two points A path from the starting point avoiding the time-obstacles might only guarantee an endpoint with the same real-time coordinate g t as the desired g T , but the resulting virtualtime coordinate may differ from the desired g  . It is advised to examine which points with the real-time coordinate g t can be reached from this starting point s T . At first the corner points of the time-obstacles which can be reached without colliding with any other timeobstacles have to be determined. To do so, a graph (i.e. tree) building approach is proposed. At first the parent node is selected to be the actual point, desired to be reached. Child nodes are the upper left and lower right vertices of the time obstacle that the specific route hits first www.intechopen.com Fig. 10. The goal point cannot be reached without collision (i.e. the one that is the nearest to the starting point and has an intersection with the actual path). The graph building can be done sequentially. Fig. 11 shows steps of a sequence of determining the child nodes and connecting them to their parent nodes. The path from s T to g T intersects with the time-obstacle with corner points 9 T and 10 T , thus in the graph these become the children of g T . Now the desired point of reach will be 9 T or 10 T , respectively. Fig. 12 shows that none of them can be reached without collision, thus they will also have child nodes in the graph. Final steps of graph building is presented by Fig. 13:   Fig. 13. The corner points that can be reached with no collision (on the left), building the graph (on the right) www.intechopen.com On Fig. 13 the dotted contour denotes that 1 T and 4 T are located outside of the area of reachable points. Fig. 14 represents the final graph. Nodes with no children provide the vertices that can be reached from the starting point without collision. After determining these points, a new starting point must be assigned from the ones determined afore, and the algorithm must be carried on until finding all possible routes from the original starting point to the ones with real-time coordinate g t . Fig.  15 shows all possible routes from the original starting point to the points with real-time coordinate g t while Fig. 16 shows its graph representation. Dot-contoured nodes denote that no route exists from their parent node that reaches them without collision or exceeding the kinematic constraints.

The global path-planning method
Path-planning on the time-plane starts from the point at which the original velocity reaches a desired minimal value that was referred to as min v . The curve t   and the curve that spans through all intervals and results the minimal velocity enclose the area that the robot can reach during the time of its motion. Any other points outside this area are unreachable due to the kinematic constraints. Fig. 17 shows an example for such an area. The goal of path-planning is to reach a point on the time-plane with virtual time coordinate end  (the end of travel in virtual time) and with a minimal value of real-time coordinate, i.e. to minimize the duration of travel in real time. In order to reach such a point, the following considerations should be followed: 1. When starting a path from a point, apply maximal control inputs and maintain this course until reaching a point with virtual time coordinate end  .
2. In case of collision, determine all time-obstacle corner points that can be reached from the starting point with no collision. 3. Assign a new starting point from these corner points and continue from step 1. If no further movement can be made, go back to a previous starting point and select another corner point to reach. Navigating through all time-obstacles may not give an optimal solution. The possibility of delaying the departure of a certain robot should also be considered, which allows timeobstacles to disappear from its time-plane. Depending on the certain area of application, it can cause difficulties due to tight schedules. Fig. 18 shows an example of delaying a unit's departure so it can use its default velocity and arrive at its desired destination earlier then by using time scaling-based obstacle avoidance.

Generation of the scaled velocity
The scaled velocity can be generated by multiplying the original velocity function and the derivative of the time-scaling function (see (6)). It is only necessary to calculate the values of the new velocity in those real-time instants where parameters in the original velocity have changed and where the time-scaling function changes its nature. The latter occurs typically at switching points where constant time-scaling is applied after maximal inputs and changing points where maximal or minimal value of velocity is reached. After these calculations, these points have to be connected by linear segments.

Synchronizing the motion of the robots
As it has been already mentioned, it is imperative to synchronize the units' motion in an area crowded by robots. A straightforward solution is to define a hierarchy between the robots so that higher priority units disregard ones with lower priority level. Such a priority order can be defined regarding several factors, and priority levels may also be redistributed regularly in order to meet the actual requirements. The general algorithm managing the multi-unit fleet is the following: 1. Consider the highest priority level. 2. Take a robot with a given priority level and design an optimal path avoiding static obstacles. 3. Assign an optimal velocity to this robot. 4. If the robot collides with any other robots with higher priority, determine the possible time-obstacles. 5. Construct the time-scaling function and generate the scaled velocity. 6. Take the next robot with lower priority and continue from step 1.

Implementation results
We present a robot system with four robots, the workspace and the trajectories are shown in Fig. 19. The length of the robots are assumed to be 1 meter while their width are assumed to be 0.8 meters. (These values may be also different for each robot.) The paths consist of linear segments and they are extended with the widths of the robots. The coordinates of the points where the robots enter or leave the collision areas are calculated using these geometric parameters. On Fig. 19 the points S1, S2, S3 and S4 denote to the initial locations of the robots while G1, G2, G3 and G4 determines the goal locations respectively. The highest priority robot is Robot#1, the next one is Robot#2 then Robot#3 and Robot#4 has the lowest priority level. Table 1 contains information about the boundaries of the path elements (x and y coordinates respectively). We designed simple default velocites which are shown in Table  2 Table 2.

Conclusions
In this chapter a time-scaling based obstacle avoidance method was presented that is able to avoid dynamic obstacles as well as static obstacles. We designed and described an algorithm being able to find a time-scaling function that avoids all time-obstacles in the time-plane and thus ensures a collision free path in the robots' workspace. The determined time-scaling function also satisfies the criteria according to the kinematic constraints prescribed for the control (velocity) inputs. The solutions of the differential equations describing the motion of the time-scaled units were presented with a method that makes finding a path between dedicated points in the time-plane possible.
Since the solutions of the differential equations are given in analytic form there is no need for time-consuming computations and determining the scaled velocity function is simple. Planning on the time-plane is based on a novel and fast tree-building method. The pathplanning algorithm is considered to be complete since it gives a definite answer in a finite time. All components of the algorithm are well suited for real time implementation. Should time-scaling fail to work we still have a method to avoid collision with delaying the robots. Fig. 24 shows a scenario where a better solution is achieved by using time-scaling than simply delaying the robot.