When developing the navigation system, the ability focused on was the safe and reliable navigation, thus, the avoidance of all kinds of static obstacles as well as finding efficient paths through cluttered scenes. Inspired by motion behaviors identified when observing humans, a hierarchical approach was chosen. Besides an abstract topologic-metrical map, the robot only needs information it is currently able to acquire with its own sensors. Thus, in contrast to methods found on many “guiding robots”, but the graph-based method used by
Robox, the presented navigation system does not depend on a precise and up-to-date metric global map.
Summarizing, the navigation concept provided in this thesis proposes a three layer approach, inspired by the motion behavior of human beings as described by S. P. Hoogendoorn: the bottom part is a reactive
layer containing a safety method, restricting the maximum allowed velocity. Also in the reactive layer a
method based on occupancy grids and virtual force vectors is found. The next part is a geometric scene analysis, where the main component works comparable to local visibility-based methods: The obstacles are scanned for corners and sub-targets are place at the corners in a save distance. And finally the global part is provided by a topological navigation. Figure 4.52 shows that the concept defined by the control architecture has actually been implemented by the navigation system, and Figure 4.53 shows a summary of the MCA implementation of the individual groups and modules.
Fig. 4.52.: Comparison of the mesh-based model to the robot’s actual motion: The edge mesh (dark blue) described in the SoA shall model the motion of pedestrians and provide a guideline for the development of the navigation system’s behavior modules. The light blue line shows the selected path between two hot spots according to the model and the green line illustrates the expected robots motion. Finally, the red lines show paths actually taken by the robot InBOT when ordered to drive from positions around the blue square to the blue circle.
Reactive safety: The reactive safety group splits the environment into several sectors just like done by the
4.9. Discussion
Fig. 4.53.: Summary of the control architecture as it was implemented in the MCA framework. Individual groups of modules were shown in the previous sections and more will be shown in the subsequent chap- ters. Groups of modules are indicated by “g”, threads encapsulating groups with “<>”. The red lines on the right indicate top-down and the yellow lines on the left bottom-up data flow.
directly on (polar) sensor readings to reduce reaction time. Relevant is the closest sensor reading in each sector, only. Based on the sectors and the robot’s shape (InBOT is not circular) a second polar histogram is computed which defines the maximum allowed velocity for each possible direction – down to zero in the worst case.
Reactive obstacle avoidance: In contrast to many vector field and potential field methods, the robot’s
velocity is taken into account. Furthermore, no “field” is actually computed, but one representative repelling vector only, saving computational power and focusing on the most critical point of the obstacle. Dynamic repulsive vectors are computed and merged with target attracting and other virtual force vectors. A difference to the VFF methods is that one representative repelling vector is generated for every object – not for each individual cell. This vector is proportional to the relevance of the complete obstacle, therefore by its most critical cells compared to the robot’s current velocity vector and target direction. The size and density of the obstacle (i.e. the amount of occupied cells) is not relevant. In contrast, when using VFF all cells are considered but the cells’ weight is proportional only to the cell’s distance to the robot.
Predictive obstacle avoidance: The first two purely reactive methods are supported by a more deliber-
ative method which is a local visibility-based approach. It enables the robot to perform a geometric obstacle analysis prior to the application of the force vectors. Here sub-targets are generated at the obstacles’ corners in order to move the robot along an efficient path through the obstacles and to avoid for example moving into dead-ends. As this method does not depend on radial sectors like the VFH it enables the robot to use all gaps found between obstacles, independent of their angle. For example it is possible to move into gaps which are radial to the robot. This method could be applied recursively like in VFH*, but it is not done here as the behavior module utilizes the complete local occupancy grid and it does not have a global metrical map available.
Conclusion: Several specialized behaviors for a hierarchical Behavior-Based Control were developed for
a robot with an holonomic drive system. Another design feature was the extensibility of the control system. New modules providing new features, like the avoidance of moving obstacles, shall be included easily.
In all tests the reactive components were able to avoid collisions with static obstacles reliably (the han- dling of moving obstacles will be described in Chapter 5). The predictive obstacle handler generates efficient paths that are comparable to those generated by visibility graph methods, avoiding driving into dead-ends. It should be kept in mind that the robot has no global map knowledge and therefore is only able to plan the path in visibility range of the sensors or within a small local memorized area. The network character of the control system facilitates extending the system with new functionalities. This is done either by straight forward hooking in new behavior modules using the fusion behavior modules or by recombining present functionalities by activating the corresponding behavior modules. This way it is for example possible to use the obstacle avoidance functionality to augment the steering functionality of the force sensitive handle so that the intelligent trolley moves around obstacles while it is being steered manually by its user.
5. Avoiding Collisions with Moving Objects
After describing the control architecture and the navigation system in the previous chapters, this chapter will introduce a hierarchical approach for avoiding collisions with moving objects. It describes the three behaviors – two reactive and one plan-based one – which are situated in the reactive layer as well as in the
tactical layer.
Scope of this chapter: The focus is on the avoidance of accidental collisions with moving obstacles
such as customers with shopping carts who are hurrying down a corridor being distracted by the products in the shelves or talking with each other. These behaviors do not aim at avoiding collisions with people who actually try to hit the robot: as the maximum velocity and acceleration of the robot is limited, this would not be possible. Even if the robot’s velocity would be sufficiently high, it would not be appropriate in a populated environment having a robot making fast and (for bystanders) unpredictable evasive motions. The
reactive behaviors could be used this way, as their reaction time is very fast, but on the opinion of the author
this would not be appropriate.
In case of conflict between different behaviors, the safety behaviors are of highest priority: on the author’s opinion it is more important that the robot does not run into people than that people cannot run into the robot.
Overview and organization of this chapter: The challenge of avoiding moving objects – they are not
called “dynamic obstacles” here (see Chap. 2.3.3 for an explanation) – is performed in a three-step approach: the lowest behavior is a reflex which moves the robot directly away from moving obstacles, enabling the robot to regain a safety distance. This is of importance when either an object came too close accidentally or suddenly started moving. On top of the first one a second behavior lets the robot free the predicted (local) path of an approaching object, combining an sufficiently intelligent behavior with a suitable reaction time. These two reactive behaviors are elaborated on in Section 5.1. To solve complex trapping situations the behavior-based components are topped by a tactical behavior (Sec. 5.2) which uses data provided by a local spatio-temporal planner. This planner generates a safe and efficient mid-term path at the cost of less fast reactions. Additionally, the planner can only be applied if the robot is operating in a mode where a target location is given – for example it cannot be applied during Servoing Mode and only with limitations in the Following Mode. Figure 5.1 illustrates the developed hierarchy and the integration into the remaining control program. The chapter is concluded with a section providing test results (Sec. 5.3) and a discussion of the achievements (Sec. 5.4).
This chapter does not include a description of the data sources for the behavior modules. The necessary information, e.g. the position, velocity, and predicted path of moving objects, will be assumed to be pro- vided by external components. An example can be found in the Annex of this work: the “The intelligent
environment” (Appendix C.3) developed to support this work for evaluation purposes. It uses cameras and
Fig. 5.1.: Hierarchy of the modules responsible for avoiding collisions with moving obstacles: Among the
tactical behaviors there is a proactive planner which can generate sub goals according to a generated
plan. Among the reactive behaviors there is one behavior that lets the robot move out of the path of the object and one (emergency) behavior which tries to gain a safety distance by moving straight away from the object. In contrast to the planner, the latter two are fully operable even if no goal point is given but a target direction only, as for example when using manual control, tele-operation, or servoing.
Fig. 5.2.: Exemplary data on a tracked object.
Left: A: the robot, B: the object as seen by the laser range finders, C: the object’s center, D: past positions of the object, E: (red X) predicted next position of the object, and F: most probable area of finding the objects center (current time step).
5.1. Reactive avoidance of moving objects