Title of Invention


Abstract A method of determining a path of an autonomous entity through an environment, the method comprising providing a provisional path through a model of the environment from a current location to an intended destination, providing a profile for said autonomous entity, determining a preferred step towards said intended destination based upon said profile and said provisional path, determining a personal space around said autonomous entity and determining whether said preferred step is feasible by considering whether obstructions infringe said personal space.
Full Text Movement of an autonomous entity through an environment
Field of the invention
The present invention relates to a method of simulating movement of an autonomous entity through an environment, for particular but not exclusive use in a method of modelling pedestrian crowd movement.
Background art
A physical system may be considered as a collection of individual constituents interacting with each other and their surroundings. The constituents, usually referred to as "agents", may be characterized by several attributes and modes of interaction.
Systems may or may not be self-contained and such systems are usually referred to as being "closed" and "open" respectively. Furthermore, if the interactions between agents are sufficiently complicated, then the system is said to be "complex". Moreover, if agents are endowed with a feedback mechanism for perceiving and reacting to signals and thus adjust their behaviour or interaction mechanisms, then they are said to be "adaptive".
A system comprising many interacting agents is commonly referred to as a "multi-agent complex system". One example of such a system is a pedestrian crowd.
A multi-agent complex system may be consideted from two different points of view. Either one may consider the collective patterns that characterize the system in its entirety or one may focus on interaction mechanisms at the level of each individual constituent. These approaches are referred to as "macroscopic" and "microscopic" formulations respectively.
It is known to use a macroscopic model to describe a pedestrian crowd as a quasi-uniform medium, such as a fluid, without regard to individual constituents. It is typically low-resolution and results in only rough estimates of bulk measures, such
as flows and densities, under certain conditions. Thus, it treats a pedestrian crowd as a quasi-uniform continuous fluid rather than interacting individuals.
Such a model is best suited to situations involving large spaces and large, uniform crowds, where there are no rapid variations in conditions, little change in the landscape and little variety in the purpose and function of the environment. Under these conditions, a macroscopic model may provide a reasonable estimate of the densities and flows.
An example of a macroscopic model is given in "Forecasting the Flow of People" by K. Ando, H. Ota and T. Oki, Railway Research Review, volume 45, page 8 (1988).
However, a macroscopic model is poorly suited to situations involving multidirectional flows and varied pedestrian profiles, where there are complicated geometries, rich in structure, and where there is a multitude of rapidly changing conditions. Under these conditions, macroscopic models may be misleading and lead to erroneous conclusions.
Despite this drawback, many methods of modelling pedestrian movement, including those used to set safety standards for buildings and spaces, use macroscopic approaches.
In contrast, microscopic models address the behavior of individual agents.
Microscopic models, such as Cellular Automata and other heuristic rule-based models, use ad-hoc parameterizatiom based on arbitrary probabilistic and statistical rules. These models are higher-resolution in that they consider individual agents and short-range variations in conditions. They also exhibit dynamic and emergent behaviox. Nevertheless, they have several drawbacks. They tend to rely on having a homogeneous space and identical individuals. They are also difficult to calibrate and validate and are also erratic and unreliable. In fact, microscopic models which cannot be calibrated using empirically measured data are of questionable utility for
practical applications and predictions. Thus, although qualitatively plausible, they are not suited to practical applications. At best they are used for illustrative purposes only.
Attempts have been made to formulate better microscopic models and an example is described in "Simulating dynamical features of escape panic" by Dirk Helbing, IIIes Farakas and Tamas Vicsek, Nature, volume 407, pages 487 to 490 (2000). However, these models are applied to a specific set of circumstances which allow simplification.
It is desirable to develop a method of simulating movement of an autonomous entity through an environment for use in a method of modelling pedestrian crowd movement which can allow for design challenges such as non-uniform spaces, a variety of user profiles, a multitude of agent choices, dynamic changes in environment and chance events.
The method can be used for designing venues, troubleshooting flow problems, operational management, setting and implementing safety standards and quality control.
Summary of the Invention
The present invention seeks to provide a method of simulating movement of an autonomous entity through an environment
According to the present invention there is provided a method of simulating movement of an autonomous entity through an environment, the method comprising providing a provisional path through a model of the environment from a current location to an intended destination, providing a profile for said autonomous entity, determining a preferred step towards said intended destination based upon said profile and said provisional path, determining a personal space around said autonomous entity, determining whether said preferred step is feasible by considering whether obstructions infringe said personal space.
This has the advantage of providing a more accurate simulation of movement.
If the preferred step is not feasible, then the method may further comprise determining a region in which to seek a compromise step and determining whether at least one compromise step is feasible.
This has the advantage that it reduces the computational effort needed to determine a compromise step.
The method may comprise choosing one of a plurality of compromise steps. The method may comprise determining said region includes adapting within said region in dependence upon at least one locally perceivable condition. The determining of the region may include adapting within said region in dependence upon memory of past conditions. The determining of the personal space may comprise defining a region in which absence of obstructions is sought. Obstructions may include other autonomous entities and fixed obstructions. The determining of the preferred step may comprise determining a first dissatisfaction function comprising a sum of an inconvenience function and a frustration function. The method may comprise determining the inconvenience function. The provisional path may include a direction from said current location to said intended destination and the profile includes a preferred step length, and wherein the determining of the inconvenience function and may include deteimining a first amount of work required to take a step of given step length and determining a second amount of work which is a proportion of said first amount of work corresponding to a component which is not directed in said optimal direction. The determining of the inconvenience function may include determining an acceleration associated with a change in velocity between said step and a previous step and determining a third amount of work required to produce said acceleration. The determining of the inconvenience function may include summing said second and third amounts of work. The method may include determining the frustration function. The profile may include a preferred walking speed and the determining of the frustration function may comprise determining a preferred instantaneous walking speed by adding said preferred walking speed to a value of walking speed noise and determining a fourth
amount of work dependent upon a difference between the walking speed and the preferred instantaneous walking speed. The determining of the preferred step may comprise minimising said first dissatisfaction in respect of step length, minimising said first dissatisfaction in respect of step orientation thereby to obtain a preferred step length and a preferred step orientation. The determining whether said preferred step is feasible may comprise determining whether there is any discomfort arising from the entity having to keep a distance less than a preferred distance from an obstruction. The method may comprise determining if there is discomfort arising from the entity having to keep a distance less than a preferred distance from an obstruction.
The method may comprise providing a preferred clearance tolerance for said entity; and determining a personal space around said entity in dependence upon said clearance tolerance. The method may comprise determining a density of neighbouring entities and determining said personal space around said entity in dependence upon said clearance tolerance and said density of neighbouring entities. The method may comprise providing information relating to velocity of said entity; and determining an angular dependency for said personal space in dependence upon said velocity. The considering whether obstructions infringe said personal space may comprise determining whether said personal space is infringed at a first position along said preferred step and detetmining whether said personal space is infringed at a second position along said preferred step. The considering whether obstructions infringe said pexsonal space may further comprise deterrnining whether said personal space is infringed at a third position along said preferred step. If the preferred step is not feasible, then the method may further comprise determining a region in which to seek a compromise step. The determining of said region may comprise determining an arc and may include determining upper and lower angular limits and determining a radius of said arc.
The method may comprise determining a set of attributes for said autonomous entity in dependence upon said profile. The determining of said set of attributes may comprise determining at least one attribute at time of generating said entity.

The method may comprise modifying at least one attribute of said set of attributes for said autonomous entity.
Providing the ptofile for said autonomous entity may comprise basing the profile on a set of measured attributes. Providing the profile for said autonomous entity may comprise statistically assigning said profile. Providing the profile for said autonomous entity may comprise providing the profile in dependence upon at least one aspect of said environment. Providing the provisional path through said model of the environment from the current location to the intended destination may comprise determining a bearing from the current location to the intended destination.
According to the present invention there is also provided a method of simulating movement of an autonomous entity through an environment, the method comprising providing a preferred clearance tolerance for said entity and determining a personal space around said entity in dependence upon said clearance tolerance. The personal space may be anisotropic.
The method may comprise determining a density of neighbouring entities and determining said personal space around said entity in dependence upon said clearance tolerance said density of neighbouring entities. The method may comprise providing information relating to velodty of said entity and determining an angular dependency for said personal space in dependence upon said velocity.
According to the present invention there is also provided a method of designing a building structure, the method comprising providing a model of said building structure, simulating movement of at least one entity through said building structure, the simulating of said movement of said at least one entity comprises providing a provisional path through a model of the environment from a current location to an intended destination, providing a profile for said autonomous entity, determining a preferred step towards said intended destination based upon said profile and said provisional path, determining a personal space around said autonomous entity and determining whether said preferred step is feasible by
considering whether obstructions infringe said personal space and revising said model of 6aid building structure in dependence upon movement of said at least one entity.
The building structure may be a building, such as a house, office block or railway station, an outside space for people, such as a sports stadium, or a mixture of both. The building structure may be a portion of a building or a portion of an outside space. The building structure may be passenger ship or aircraft. The building structure may be an open structure which is marked, for example with arrows and lines.
According to the present invention there is also provided a method of controlling movement of an entity thxough an envkonment, the method comprising providing a provisional path through a model of the environment from a current location to an intended destination, providing a profile for said autonomous entity, determining a preferred step towards said intended destination based upon said profile and said provisional path, determining a personal space around said autonomous entity, determining whether said preferred step is feasible by considering whether obstructions infringe said personal space.
According to the present invention there is still further provided a method of determining a path of an autonomous entity through an environment, the method comprising providing a provisional path through a model of the environment from a current location to an intended destination and selecting a step towards said intended destination while minimising deviation from said provisional path. Minimising deviation from the provisional path may also be expressed as trying to keep to the provisional path.
The method may comprise additionally or alternatively determining said step towards said intended destination while minimising deviation from a preferred speed. The method may comprise additionally or alternatively selecting said step towards said intended destination while maintaining at least a wifaitmitn distance from obstacles.
According to the present invention there is further provided a method of simulating movement of an autonomous entity through an environment from a current location to an intended destination, the method comprising defining a neighbourhood, scanning said neighbourhood for obstacles, determining at least one condition relating to said obstacles and defining an area in which to seek a step towards said destination in dependence upon said at least one condition.
Determining said at least one condition relating to said obstacles may comprise determining a density of one type of obstacle, such as another entity appearing to be heading in an opposite direction to the entity.
According to the present invention there is provided a computer program for performing the method.
According to the present invention there is also provided a computer-readable medium storing the computer program.
According to the present invention there is also provided apparatus fot performing the method.
According to the present invention there is also provided apparatus for simulating movement of an autonomous entity through an environment, the apparatus comprising means for providing a provisional path through a model of the environment from a current location to an intended destination, means for providing a profile for said autonomous entity, means for determining a preferred step towards said intended destination based upon said profile and said provisional path, means for deteixnining a personal space around said autonomous entity, means for deteemining whether said preferred step is feasible by considering whether obstructions infringe said personal space.
According to the present invention there is still further provided apparatus for simulating movement of an autonomous entity through an environment, the
apparatus comprising an interface for providing a provisional path through a model of the environment from a current location to an intended destination, an interface for providing a profile for said autonomous entity, a processor for determining a preferred step towards said intended destination based upon said profile and said provisional path, a processor for determining a personal space around said autonomous entity, a processor for determining whether said preferred step is feasible by considering whether obstructions infringe said personal space.
Brief Description of the Drawings
An embodiment of the present invention will now be described, by way of example,
with reference to the accompanying drawings in which: -
Figure 1 is a plan view of a vacant venue;
Figure 2 is a schematic diagram of a venue filled with pedestrians;
Figure 3 is a simplified plan view of a pedestrian and his or her path;
Figure 4 shows a pedestrian taking a step from a previous position to a new
Figure 5 is a plot of frustration against pedestrian speed;
Figures 6a and 6b show two- and three-dimensional plots of self-dissatisfaction;
Figure 7 is a plan view of & pedestrian approximated by an ellipse;
Figure 8 shows equivalence, in terms of area, of an ellipse and a circle;
Figure 9 shows an increase in effective area of a pedestrian due to luggage;
Figure 10 shows probability distributions used to assign luggage of random sizes;
Figure 11 shows a pedestrian and another pedestrian nearby;
Figure 12 shows plots of personal space at different pedestrian speeds;
Figure 13 shows determination of whether a preferred step is feasible;
Figure 14 a pedestrian and a fixed obstacle nearby;
Figure 15 shows a test area around a position to which a pedestrian would prefer to
Figure 16 shows regions of a test area which are free of fixed obstacles;
Figure 17 shows neighbouring pedestrians walking with or against a pedestrian;
Figure 18 shows a pedestrian and a sub-space in which a search is made for a
position to which the pedestrian may step;
Figure 19 is a schematic diagram of a design apparatus;
Figute 20 is a schematic diagram of an alternative design apparatus;
Figure 21 shows a system architecture for a design system;
Figute 22 is a process flow diagram for designing a venue
Figure 23 shows a computer-aided design (CAD) plot of a corridor;
Figure 24 shows another plot of the corridor shown in Figure 23;
Figure 25 illustrates a dialog box for providing model parameters;
Figure 26 shows a magnified plot of a first end of the corridor shown in Figure 24
with an entrance;
Figure 27 illustrates a dialog box for providing entrance parameters;
Figure 28a shows a pulse train of supply of pedestrians through the entrance;
Figure 28b illustrates a dialog box for providing pulse train parameters;
Figure 29 shows a magnified plot of a second end of the comdor shown in Figute
24 with an exit;
Figure 30 shows linking of an entrance to an exit;
Figure 31 shows results of a simulator;
Figure 32 shows another computer-aided design (CAD) plot of a corridor;
Figure 33 shows a corridor divided into focal drift zones;
Figure 34 shows a corridor divided into focal dtift zones and preferred orientation;
Figure 35 shows results of a simulator;
Figure 36 is a process flow diagram for simulating movement of an autonomous
Figure 37 is a process flow diagram for initialisation and
Figure 38 is a process flow diagram fox determining whether a preferred step is
Detailed Description of the Invention
A method of simulating movement of an autonomous entity through an environment according to the present invention is described which is suitable fox use modelling pedestrian crowd movement. Thus, in this context, the terms "agent", "entity" and "pedestrian" may be used interchangeably.
Motion of a pedestrian
Navigating from a current position to an intended destination may be considered as involving two aspects, namely long-range, quasi-static navigation and short-range, dynamic navigation. These are hereinafter referred to as "macro-navigation" and "micro-navigation" respectively.
Navigation: Macro-navigation
Referring to Figure 1, a vacant venue 1 is shown as an architectural plan of the
geometry and positions of walls 2, corridors 3 and fixed obstacles 4.
The walls 2, corridors 3 and fixed obstacles 4 do not change position over time and so they constitute static attributes of the environment. Static features may also include slow-moving obstacles, which are stationary over a timescale of approximately one step, i.e. quasi-static obstacles. For example, a stationary group of people may be treated as a fixed obstacle. Static features may also include moveable obstacles that axe temporarily stationary, such as a barrier or door. Static information is employed to define a compass to indicate an apparent general dixection en route to the ultimate destination.
A pedestrian 5 standing at a current location 6, in this case an entrance .to the venue, usually aims himself or herself at an intended destination 7, such as an exit, by virtue of being familiar with the venue or by consulting a map or sign. In doing so, the pedestrian 5 selects a general direction of travel, which is called the "original dixection". The original direction may be maintained if the intended destination 7 is directly accessible from the current location 6. Alternatively, the original dixection may be successively updated whenever an intermediate landmark 8„ 82 8, is reached, for example when an ultimate destination 9 is invisible or inaccessible from the current location 6. Thus, progress to an ultimate destination 9 comprises updating the pedestrian's current location 6 and, when an intermediate intended destination 7 is reached, setting a new intermediate intended destination, for example fixed on a new landmark 8„ 82) 8,.
The process of selecting a general direction on the basis of long-range quasi-static information, such as the geometry of a venue and the presence of large fixed obstacles, is referred to as "macro-navigation".
Macro-navigation supplies a sequence of such intended intexmediate destinations, starting from an entrance to ending at an exit or other final destination. The sequence may be supplied all at once, on entry to the venue, ox one at a time,
dynamically en route. Macro-navigation supplies an orientation angle $e to a current intexmediate intended destination from any point accessible from within the interior of a venue and at all times.
Macro-navigation may be "hard-wired", implemented heuristically or using a sophisticated algorithm. Fox example, if macro-navigation is "hard-wired", a venue is divided into zones and an intended orientation is provided for each zone. An example using zones is described later.
In an embodiment of the present invention, a rough approximation of an optimal path 9 is determined using a spatial objective, i.e. the ultimate intended destination, in conjunction with the geometry of the venue 1. The rough approximation of the optimal path serves as a compass indicating an intended orientation. The rough approximation of the optimal path 9 is also refexxed to as a provisional path.
Fox example, an optimal path 9 in relation to the geometry of the venue may be considered as a sequence of straight line segments taking the pedestrian from an entry point, around corners and obstacles, through intermediate intended destinations 7 or decision points, to the a final destination.
Thus, macro-navigation supplies an optimal path to a lowest order on the basis of a pedestrian's current position, intended destination and any static ox quasi-static elements of the geometry of a venue. Macro-navigation does not take into account any preferences and attxibutes of each individual or dynamical considerations and is, therefore, subject to adjustments and corrections.

Navigation: Micro-navigation
Referring to Figure 2, the vacant venue 1 is now filled with other pedestrians 10 and
is subject to dynamic events.
A busy railway station, for example, may include large numbers of arriving and departing pedestrians which are moving in different directions, waiting or queuing. Planned events may occur, such as scheduled arrivals and departures of trains. Also, chance events, for example arrival of delayed trains, may occur.
The pedestrian 5 needs to modify its route to avoid other pedestrians 10 and the process of adjusting and correcting for short-range, dynamic interactions is referred to as "micro-navigation". This results in a modified route 9;, This is described in more detail later.
Referring to Figure 3, a simplified plan view of the pedestrian 5 is shown.
The pedestrian 5 advances in whole steps 11, each of duration Δℓ. Thus, if a previous step j—1 began at time tj_t, then the previous step ends and a current
step j starts at tj —tj_j +Δt. Similarly, the current step ends and a subsequent step
begins at tj+J=tJ+Δt.
Walking is a complicated process. Therefore, the process is simplified by making some assumptions.

The effect of pedestrian "zigzagging" may be eliminated or reduced by choosing the centre of the pedestrian's head 12 to represent the position 13 of the pedestrian. This is because the pedestrian's head 12 lies, on average, approximately half way between the two feet in two successive steps. Any residual zigzagging between steps is attributable to spurious noise or intentional changes of direction.

Variations in the walking speed may be assumed to be exclusively due to variations in the step length rather than variations in the step duration
Walking is a non-linear process. Each foot is successively raised, then placed in contact with the ground so as to apply traction for locomotion. Over the course of any one step non-constant forces are exerted that result in irregular acceleration patterns and complicated speed dependencies. Nevertheless, uniform acceleration is assumed. This is a reasonable assumption provided that the duration of a step At is kept small. In this case, the duration of a step for an adult is set as 600ms, i.e.Δ = 0.6 s.
Thus, the pedestrian 5 may be described in terms of three independent variables, namely:
(Equation Removed)
where r is position, V is velocity, a is acceleration and t is time.
Thus, a series or sequence of steps, represented by line segments 11 each of duration Δt, form the path 9.
Preferred speed
An unhurried pedestrian walking on a level surface without any obstacles in sight has a preferred walking speed v0. Preferred walking speed may also be known as "natural walking gait".
Values of preferred speed may be experimentally determined for different populations in different circumstances, such as different venues, surfaces, inclines etc.
There is a linear relationship between speed v and step length £ . Thus, variations in pedestrian speed for fixed step duration may be attributed to variations in step length. Therefore, a preferred step length ℓD may be defined as:
(Equation Removed)
Step length l0 may also be expressed as half a stride interval.
A value of preferred speed is randomly drawn from a prefexzed speed continuous probability distribution. This usually occurs only once per entity when the entity is generated. However, further value of preferred speed may be drawn or existing values modified according to changes in environment
The preferred speed continuous probability distribution is included in a profile and is derived from a statistical analysis of measured values of preferred walking speed for a large number of pedestrians over many steps. A profile includes one or more continuous distribution functions for one or more corresponding attributes, such as preferred speed, which characterise a particular type or "species" of pedestrian.
To a lowest order, step length variability may be approximated by noise or spontaneous random fluctuations. Thus, fluctuations in the step length may be represented as fluctuations in preferred speed. Experiments may be used to measure these variations and thus determine probability distributions.
where α , is a spontaneous value of acceleration.
(Equation Removed)
Thus, a spontaneous preferred-speed noise may be defined as:
A value of δv0(or an) is drawn from a spontaneous preferred-speed probability
distribution also comprised in the profile. However, unlike preferred speed, a value of spontaneous preferred-speed noise is usually drawn once per entity per step.
A macro-navigation module supplies a provisional path for taking a pedesttian from an entry point through a venue to his final destination. The provisional path is corrected and adjusted to account for individual pedestrian preferences.
As explained earlier, at each point in time a pedestrian need only know the next intermediate destination point, such as a corner ot obstacle, and not necessarily the final destination which may only be determinable at a later decision point. It does not matter whether the full optimal path is available from the outset or only the current leg leading up to the next intermediate destination. Once the lowest-order optimal path is available, at least up to the next intermediate destination or decision point, pedestrians or entities invoke micro-navigation.
The micro-navigation process seeks to supply criteria, decision making powers, learning and adaptation faculties that permit an entity to read signals from its surroundings, process these together with the lowest-order optimal path and the knowledge of one's own preferences and attributes so as to deduce a truly optimal path. It also seeks to learn and update memory with up-to-the-moment information, project the intentions of neighbouring entities and negotiate with them and ultimately execute one step so as to stay nearest the true optimal path while at the same time suffexing the least harm or degrading in regard to the pedestrians own well-being.
Every optimal step leading to the final destination belongs to the optimal path. Thus, if a pedestrian has their way, as for example in the empty railway station, the process of achieving the ultimate destination would be accomplished by simply following the optimal path, one step at a time, at the pedestrian's preferred speed.
However, the presence of obstacles and/or other entities and impeding external factors beyond one's control, usually render the optimal step non-viable. Thus, a compromise needs to be made. Micro-navigation is concerned with this situation and includes three stages:
In a first stage, the method comprises receiving the provisional path and the entity's preferences and attributes and determining a preferred step. The result of the first stage is a preferred position for the next step.
In a second stage, the method comprises determining a personal space around said entity and determining whether the preferred step is feasible. This comprises determining whether petsonal space around the entity is infringed by anothet entity or obstacle at any point during the preferred step. This includes determining whether a projected path of the other entity infringes the entity's petsonal space. As will be explained in more detail later, personal space is anisotropic and may depend on a number of factors including the velocity of the entity and apparent velocity of neighbouring entities.
If the preferred step is not feasible, the method includes determining a region in which to seek a compromise step. The result of the second stage is an area in . proximity to the preferred position in which an alternative position is sought Another result is knowledge of the local conditions which will facilitate more prudent decision making in the future, as well as adjustment of the entity's own preferences, such as its preferred speed and size of its personal space.
In a third stage, the method comprises determining whether at least one compromise step is feasible within the specified region. As will be explained in more detail, this process comprises minmising a function referred to as "full dissatisfaction" and seeking compromise steps from the least dissatisfying to the most dissatisfying. Any solution constitutes a compromise in that the entity no longer seeks to satisfy bis or her original preferences (as in the first stage), but rather strives for degraded, adjusted preferences obtained by the end of the second stage. It may include elurnnating candidate solutions due to unavailability, after
negotiating with neighbours by cooperating or competing, and evading fixed obstacles. The result of the third stage is a solution for a compromise step. Thereafter, the step may be taken.
This process is iterated, one step at a time, for each entity until it reaches its destination.
Micro-navigation: Stage I
Referring to Figure 4, the pedestrian completes a step 11, from a previous position 12, to a current position 122, Le. from (xj-1 yj-1) to (Xj,yj-1), and is about to embark on his next step 112.
The pedestrian's objective is to reach intended destination 7, i.e. at target coordinates (x„yt). To achieve this, an orientation angle 0{ is provided corresponding to the lowest-order optimal path.
In effect, the pedestrian uses this orientation angle 9{ as a rough compass. However, to determine a truly optimal next step, the pedestrian's preferences are taken into account
To achieve this, a first Action function Jgis determined and minimised. This is executed without considering any external impediments. The first Action function Jgis herein referred to as "self-dissatisfaction". As will be explained later, another
Action functional JTis determined during later stages of micro-navigation which
includes external impediments and is referred to as "full dissatisfaction" or simply "dissatisfaction".
The pedestrian may take the next step ll2and move to a new position 12] within a dashed circle 14. There are two degrees of freedom represented by two independent variables, namely length t and direction angle 8 of the next step.
Polar coordinates (ℓ,θ) are used instead of Cartesian coordinates (x,y) as a matter of convenience.
If the pedestrian considers step 112 as a candidate for the next step to a virtual position 12s at (Xj-,yj+ )J, then he or she expends work against friction-like forces in traversing the path, namely:
(Equation Removed)
where g is gravitational acceleration, m is the mass of the individual pedestrian, µ is a coefficient of friction and l} is the length of the step actually traversed over time step j.' The coefficient of friction induces the work against friction to be proportional to the softness or hardness between the two surfaces of contact, namely the pedestrian's shoes and the floor. A coarse floor results in a larger value of µ, while a polished floor results in a smaller value.
Hete, "friction' is taken to encompass all possible friction-like fotces depending on the path length and the mass of the moving object Therefore, µ lean be considered more generally as a "coefficient of difficulty". Thus, not only is traversing a coarse floor energetically more costly than traversing a polished floor, i.e. "standard" friction, but also traversing an inclined floor, as opposed to a level floor, will be energetically more expensive. The coefficient is a spatial attribute which can be established empirically by analysing behaviour of pedestrians on different types of floors.
If the pedestrian picks step 112 as the next step, then he or she would end up
moving in a direction different from his apparent present intended orientation θj.
Working against friction so as to move the pedestrian toward the intended destination 7 is acceptable, but not otherwise. Thus, a component 15 of the path
corresponding to the step 112 along the intended direction θJ0, amounts to the useful path. A component ΔWj corresponds to wasteful work, namely:
(Equation Removed)
Thus, ΔWj may be interpreted as one component of perceived inconvenience due
to wasteful work against friction induced by deviating from the intended direction over the course of one step.
The previous and current steps 11„ 1 lz may differ in both length ℓ and angle θ. These changes ate caused by a force and result in acceleration. For example, a force exerted parallel to the direction of travel may cause acceleration which results in ℓj > ℓj_x or conversely deceleration which results in ℓj perpendicular to the direction of travel results in a change of direction from θj-1 to
θj. Thus, equation lc may be written as;
(Equation Removed)
The work ΔW„ expended during step j toward changing direction via a presumed force Fj exerted by the pedestrian, associated with acceleration αJt may be defined as:
(Equation Removed)
The work ΔWj may be considered as a second component of inconvenience.
Thus, a total inconvenience, I, associated with perceptions of wasteful effort over the course of a step may be defined as:
(Equation Removed) where coefficient c,is a context-dependent scaling factor. The scaling factor may be determined by fitting a model to measured data.
So far, the expended work associated with inconvenience may be thought as physical work in a traditional classical mechanical sense.
However, "work" can also be expended in other ways, as we shall now explain.
As we explained earlier, the entity has a velocity that fluctuates about a preferred speed v0 which is an individual attribute of each entity and subject to spontaneous
fluctuations 8v°, namely:
(Equation Removed)
where v0 is the preferred cruising speed and δv° is the spontaneous speed noise for step j. A value of v0 is assigned to each entity and is drawn from a preferred speed distribution function. A value of 6v° is randomly drawn from a corresponding spontaneous speed noise distribution function for each entity for each step. Thus, vo is an instantaneous preferred speed of an individual pedestrian over step j.
A preferred speed, which is self-imposed, is tantamount to a constraint. Thus, it may be classified as an effective potential energy term, as can be shown by invoking variational techniques. Here, a quadratic energy term is assigned:
(Equation Removed)
which has a potential minimum when ℓ} = v°j Δt, i.e. when the length of the step results in an instantaneous speed equal to the preferred cruising speed.
Fj is referred to as "frustration" and considered as virtual, rather than physical, work. It reflects the cost due to differences between the actual instantaneous speed ℓj/Δt and the desired speedV°.
Referring to Figure 5, a plot of frustration against instantaneous speed is shown, wherein w° = 1.3ms"1, c{ — 1.
The sum of inconvenience and frustration is hereby defined as "self-dissatisfaction", i.e.:
(Equation Removed) Figures 6a and 6b show two- and three-dimensional plots of self-dissatisfaction for initial values ℓlt = 1.0 m and θj_, = 50° and current preferences of θj = 90° and Vj = 1.3 ms-1.
Self-dissatisfaction is the perceived undesirable cost contrary to physical and physiological traits. It is self-referential and does not take account of external factors.
In this example, equation 11 is derived using the Lagrangian formalism. Following an approach based on variational techniques, equations of motion can be obtained by determining the stationary point of Action by minimising Δj S(ℓ,θ) or solving the system of differential equations, namely:
(Equation Removed)
The equations of motion may also be obtained by invoking ad-hoc phenomenological forces which lead to an analogous result.
The solution yields the optimal next step, namely:
(Equation Removed)
Equation 14 supplies a single value for the optimal orientation angle df. Equation 15 expresses the step length as a function of orientation angle. In particular, fox any chosen direction j the optimal path fox that angle is given by ℓopt(j) • The optimal
step length is obtained by replacing j by , so that the set (joptℓopt(jopt)) describes the optimal step. The optimal orientation angle opt and optimal step length lm specify the step which the pedestrian would like to take. Thus, they axe
xefexxed to as the "preferred orientation angle" and "preferred step length" respectively.
The values of (opt ℓ opt(iopt)) used in the next stage of micro-navigation.
Pedestrian interactions.
The preferred step described by the set of values (opt ℓ opt(iopt)) is achievable in the
absence of environmental impediments such as fixed obstacles or other pedestrians which may otherwise prohibit it fxonvbeing taken. In practice, however, the
preferred step usually cannot be taken. This may be because the pedestrian is in a densely populated area or due to fixed obstacles.
As will be described in more detail later, the preferred step is not taken if any point along its length is associated with a non-vanishing value of a function referred to as "discomfort". Discomfort arises as a result of infringement of a subjectively determined area known as personal space.
If the preferred step cannot be taken, men a search is made for an acceptable, feasible compromise step.
Potentially, a search space lies within a circle centred on the pedestrian's current location and having a radius equal to the maximum distance possible over the course of one step. However, it is unusual for a pedestrian to consider taking a step backwards when avoiding other pedestrians and obstacles. Similarly, it is rare that the pedestrian will come to a complete stand still or run at full speed. Thus, many potentially feasible next steps can be immediately eliminated. Thus, acceptable compromise steps are picked from narrower range of angles and step lengths
The second stage of micro-navigation comprises establishing criteria for deciding which subset of feasible next steps is worth looking into and applying these criteria to restrict the domain of acceptable solutions from a full circle to a narrow subspacc with fixed angular and step-length boundaries.
A second Action function JT called "dissatisfaction' is used which considers discomfort arising when neighbouring pedestrians and fixed obstacles infringe an entity's personal space.
The interaction of the pedestrian with their surroundings may be considered as competition for space. The pedestrian, by virtue of being a physical object, occupies physical space. At the very least, the area physically available must be sufficient to accommodate the pedestrian's physical space. However, there are also psychological spatial requirements. Pedestrians require personal space, or clearance
from their nearest neighbours and obstacles in order to feel comfortable. In dealing with pedestrian interactions, account is taken of both the physical and psychological requirements for personal space. To achieve this additional attributes and preferences for pedestrians are used.
Pedestrians ate assigned a set of characteristics including intrinsic attributes, such as physical space requirements, and preferences, such as preferred speed. These characteristics are included in a profile.
As explained earlier, a profile includes one or more continuous distribution functions for one or more corresponding attributes, such as preferred speed, which characterise a particular type or "species" of pedestrian. Each continuous distribution function describes empirically established attributes of real population samples which have been measured and analysed.
Core profiles may include pedestrian attributes based on fundamental criteria such as ethnicity, which may represent physical and cultural differences, venue, which represent contextual differences such as behaviour in a railway station as opposed to a stadium, and sex, which reflect physical differences such as physical space occupied or speed. The assignment of a core profile to an entity is a one-off event, for example when generating an entity in a simulation and subsequently remains the same. Some attributes, such as preferred walking speed are drawn only once when the entity is generated. Other attributes may be repeatedly, randomly drawn, for example every step. Attributes described in core profiles are referred to as "intrinsic" attributes.
Secondary or transient features may also be used. These may include physical space occupied due to the carrying of luggage. These attributes can be assigned to the entity at the same time as the core feature, although they may change one or more times.
One aspect of the second Action function Jr, is the introduction of an additional term referred to as "discomfort" which accounts for the perceived reduction of
desired personal space due to external impediments. Thus, a spatial area is defined having a specific form and size which the pedestrian attempts to keep clear of fixed obstacles and neighbouring pedestrians. Another aspect is that it may use modified entity attributes, as for example a modified preferred speed adjusted for local circumstances, rather than the value originally drawn from its profile.
Physical size of a pedestrian
Referring to Figure 7, a physical form or area 16 that a pedestrian occupies may be
approximated by an ellipse. The ellipse 16 is defined in terms of its major and
minor axes a, b, which are referred to here as "shoulder breadth" and "body depth"
Reference is made to "Bodyspace Anthropometry, Ergonomics and the Design of Work" by Stephen Pheasant (2nd Edition, Taylor and Francis, London 1998) which describes numerous population samples selected by ethnicity, sex and age groups. The major and minor axis parameters are drawn from as Gaussian (or normal) distribution or other suitable curves. For a Gaussian representation, four parameters are used to represent each population sample, namely a centroid and a standard deviation of the Gaussian probability distribution curve fox each ellipse axis.
Assigning a physical size to an entity is equivalent to attributing suitable values for the shoulder breadth and body depth axes of the ellipse. However, a simpler form can be used, such as a circle, which requires a single parameter, namely radius, and which is easier to manipulate due to its symmetry. This is useful when considering overlap between the pedestrian and other pedestrians and obstacles.
The ratio of major to minor axis is near constant per population sample for the mean, lower (5%) and higher end (95%) of the Gaussian probability distributions' supplied. For example, for British men the ratio (b/a) is close to 0.637, wherein a is the shoulder breadth (major axis) and b the body depth (minor axis). Thus, sampling one parameter from its proper distribution function, say the shoulder breadth, the other parameter may be determined by the ratio above.
Whereas the net area of the physical space is important, it appears that there is no sensitivity in the form between an ellipse and a circle of equal area. For densities up to about 9.5 persons per square meter (ppsm), which are extremely high and rare, pedestrians maintain a personal space around them that is larger than their physical space. While this is the case, the area of the physical space is entirely contained within the personal space, i.e. psychological considerations take precedence over physical constraints. Under those circumstances the form of physical space is not important so long as the area is preserved and replacing the elliptical form by a circular one has no noticeable quantitative effect. For extremely high densities, again the net area is more important.
Referring to Figure 8, the physical space occupied by a pedestrian may be approximated by a circle 17 of radius 2o,, namely:
(Equation Removed)
and (b/a) is the mean value of the ratio of the two axc6 per population sample.
The radius is derived by setting the area of the ellipse equal to the area of the circle.
In summary, population samples selected by ethnicity, sex, age group and other criteria can be described using a Gaussian probability distribution of shoulder breadth and a mean ratio of shoulder breadth to body depth from empirical measurements.
Physical size of luggage carrying pedestrians
A frequently encountered transient attribute is the increase in physical size due to
the carrying of luggage.
Referring to Figure 9, an increase in size due to carrying luggage can be absorbed into an extended circle 18 with area equal to the sum of the original entity area 17 and that of the luggage 19.
Thus, if R0is the entity radius and a'.b are the length and width respectively of a piece of luggage, then the areas occupied by the entity and the luggage are A = πR2o and a = a'b' respectively. Thus, the effective area is calculated as:
(Equation Removed)
and the effective entity radius is determined to be:
(Equation Removed)
\Referring to Figure 10, Gaussian distribution functions 20„ 20* 203,204 for assorted, small, medium and large luggage are shown. For example, for small luggage, a mean area may be 0.3 m x 0.2 m= 0.06 to1. For medium and Urge luggage, mean areas may be 0.7 m x 0.3 tn= 0.21 m2 and 1.0 m x 0.4 m= 0.04 mz respectively. The Gaussian distribution functions 20„ 202, 20„ 204 are used to assign luggage sizes randomly to designated entities.
Personal space in pedestrain behaviour
Personal space is the area a pedestrian strives to maintain clear of obstacles and
other pedestrians while walking or standing.
-Discomfort arising (torn neighbouring pedestrians-Referring to Figure 11, the pedestrian 5 at current location 122 is evaluating position 12,' as candidate for their next step. The pedestrian 5 is also estimating the personal space that will be available at that position 12,' given that a neighbouring pedestrian 21 may also be competing with them for the space. Other neighbouring pedestrians may also be competing for the space and may also be included. Nevertheless, for the sake of clarity, only one neighbouring pedestrian is shown.
The neighbouring pedestrian 21 previously took a step 22, from a first position 23, to their current position 232 at time j-1 and, from the point of view of the pedestrian 5, appears to be considering taking a step 222 to a new position 23, at time./.
The pedestrian 5 estimates the future position of neighbouring pedestrian 21. The true intention of the neighbouring pedestrian is unknown and so any prediction is based on observations. This prediction is based on an apparent speed and direction of the neighbouring pedestrian 21, namely those of their most recently completed step 22,.
The situation may be described by the following set of equations:
(Equation Removed)
where δrj+1 is the change in position of the pedestrian 5 over step j, j+1 is the targeted position 12,' of the pedestrian 5, δj+] is the projected change of position of the neighbouring pedestrian 21 over step j, rj+1 is the projected position 23,' of the neighbouring pedestrian 21 after step j, δf is the position of neighbouring
pedestrian 21 relative to the pedestrian S after step j and δ6 f is the angle between
the projected position 23,' of neighbouring pedestrian 21 relative to step 112 of the pedestrian 5.
In defining personal space, several considerations may be taken into account:
As described earlier, the clearance sought from surrounding neighbours depends on the position and velocity of both the individual and the surrounding neighbours. The positions of surrounding neighbours are projected by processing available information and prognosticating intentions, i.e. assuming that they will continue to be moving in the same direction and with the same speed over their next step as they were last observed to have in their most recently completed step.
The angular dependence of desired clearance is correlated with speed. In particulat, personal space is distributed uniformly while standing, whereas it is increased in favour of the forward direction when moving forward. Thus, the shape and size of personal space is dynamically adjusted as a function of the pedestrian's motion relative to their surrounding neighbouring pedestrians and obstacles.
The personal space also depends on density. In densely packed crowds individuals tend to relax their requirements and accept less space than they would have under less constrained circumstances. This is a form of adaptation by habituation, which is described in more detail later.
Differentiations in preferences for personal space across species or different population samples selected, for example by ethnicity or context, also exist The origin of these may be either physical, cultural, or contextual, also exist. Furthermore, even within a uniform population sample or species, individuals range in their needs for personal space.
Variations in needs for personal space are described in terms of a "rank". Entities are classified by their rank within their own population. A number between 0 and 1 may be used to indicate the proportion of the population which is more tolerant with regard to requirements of clearance for personal space. Thus, an entity may draw a mean personal space rank Sf.
There are spontaneous variations, or noise, in the individual personal space preferences of pedestrians, similar to speed noise described earlier. Thus, an
instantaneous personal space rank Sf may be defined as: (Equation Removed)
where Sj is the mean personal-space rank and δS1 is the instantaneous noise. S°
and δS/are drawn randomly from probability distribution functions derived from fits to measurements.
Based on these considerations and using standard statistical analysis techniques and fits to empirical data, personal space Rj+1 may be defined as:
(Equation Removed)
where Rj+1, is the desired clearance of pedestrian 5 from neighbouring pedestrian 21
following step j as a function of its instantaneous personal-space rank Sf and the
relative angle δ,j+1 between the pedestrians 5, 21. Parameters c1, C2 are derived
from fitting the model to data, t is the duration of a step and p'j is the pedestrian
density in units of pedestrians per square meter (ppsm), as experienced by the pedestrian 5 at time J.
In equation 26, personal space Rj+1exhibits anisotropic angular dependence. Personal space is also a function of the entity's own speed ℓ'j/t and local density p'j, The dependency of personal space on local density p'j is a manifestation of adaptation by habituation, which will be described n more detail later.
In equation 27, Rj+1, is defined with reference to neighbouring pedestrians by a relative angle δj+1, which takes account of the relative position and projected speed
of the neighbouring entity to the entity. It is individually calculated for each individual pedestrian at each time step.
Referring to Figure 12, plots of personal space Rj+1, for a pedestrian for different
speeds and having a rank equal to the mean obtained from fitting measured personal spaces is shown. First, second, third, fourth and fifth plots 24,, 24z, 24, 244,245 are for a pedestrian at rest and moving at 0.5,1.0,1.5 and 2.0 ms"1 respectively.
The virtual work corresponding to the perceived cost of being deprived of desired personal space is referred to as "discomfort". An effective potential energy term is assigned similar to the potential energy of a compressed spring. Other forms of effective potential energy may be used. The potential energy may vary linearly or non-linearly, logarithmically or exponentially or may include polynomial terms.
The preferred distance of a pedestrian from each of their neighbours is similar to a relaxation length of a spring. Being obliged to keep a shorter distance than the one preferred one is similar to compressing a spring which consequently acquires potential energy equal to the work needed to compress it
Thus, discomfort is the sum of potential energy terms for each neighbour, namely: (Equation Removed)
J+1, is the deficit between the desired clearance Rj+1X and the actual head-to-head distance |r+1 —rj+1| between the pedestrian 5 and an offending neighbour such as

pedestrian 21. VJ+1 is the compression energy arising between the pedestrian 5 and
an offending neighbour, such as pedestrian 21. The step © function ensures that neighbouring entities outside a pedestrian's personal-space do not contribute to discomfort since they are sufficiently far away. The parameter cd is a strength parameter extracted from fits to data. The total discomfort Dneighbours experienced by
pedestrian 5 is the sum of all the 'compression energy* terms of all offending neighbours including neighbouring pedestrian 21.
-Discomfort arising from fixed obstacles -
Discomfort arising from nearby fixed obstacles is treated similarly to discomfort
arising from neighbouring pedestrians save for some minor adjustments.
Referring to Figure 13, a pedestrian 5 is located at position 12i is considering taking the preferred step 112' to position 12,'.
Determining whether the preferred step 112' is feasible comprises determining whether another pedestrian 21 or obstacle 25 is found in their personal space 24. This is performed over the course of the step. Thus, the personal space 24 is moved along the track of the preferred step 112' and a search is conducted within the personal space 24 for other pedestrians 21 or obstacle 25. An instance of a shifted personal space 24' is illustrated. The search may include detennining whether another pedestrian 21, perceived to be taking a projected step 22„ will move to a position 23, which is found in personal space 24.
Referring to Figure 14, an obstacle 25 maintains a fixed position and may be represented by a sequence of segments 26, each segment having a beginning and end 27, 28. Discomfort is evaluated relative to the obstacle 25 by considering only portion 26, of segments infringing their personal space.
Thus, relations similar to equations 19, 20, 21, 22, 23, 24, 28, 29 and 30 may be derived in relation to a pedestrian 5 and a fixed obstacle 25, namely:
(Equation Removed)
where index k identifies the offending obstacle, where δjk is the angle of path of
pedestrian 5 and segment 26 over step J,rj+1is the distance between pedestrian 5
from beginning 27 and end 28, ℓ ABis a portion of a segment portion 26„ angular limits, as seen from the entity's test position, corresponding to the beginning and end 27, 28 of the segment 26 of the obstacle that infringes personal space over step J, hk,is the distance of the pedestrian from segment 26 or the "height" of a triangle formed by the entity's current position and the end points 27,
28 of the segment 26 of the obstacle infringing personal space, hk/cos  is the distance
of an infinitesimal length on segment 26 at angle  relative to the pedestrian's path and ,j+1 is the infringement relative to the preferred clearance Rj+1 () at that angle, Uj+1, is the compression energy of pedestrian 5 relative to segment 26 of obstacle 25
and Dobstancles j+1is the sum of discomforts due to all segment constituents of obstacles
within the personal space of pedestrian 5 over time step j. The parameter c,d is the entity-obstacle interaction strength extracted empirically from fitting to measurements. A cruder approximation of equation 37 may also be used.
Combining equations 30 and 38, the total discomfort is obtained namely:
(Equation Removed)
and a total dissatisfaction is also found, namely:
(Equation Removed)
Micro-navigation: Stage II
A pedestrian who is impeded by external factors, such as a neighbouring pedestrian or fixed obstacle, may be pxevented from taking their preferred step. These external factors are perceived, processed and reconciled with the pedestrian's objectives and preferences. An ultimate decision regarding a least dissatisfying next step is one that better serves the pedestrian's interests.
The information on which this decision is based tends to be local, noisy and imperfect. The faculties that allow perceiving and processing information, learning, adapting and making a decision are characteristics of autonomous intelligent agents. These faculties lead to emergent behaviour known as self-organization.
The second stage of the micro-navigation includes establishing criteria and employing them to limit a search space for suitable next-step candidates. This principally involves finding suitable lower and upper angle bounds within which to seek the direction of the next step and adjusting the preferred speed, as required, to cope better with perceived local conditions.
To make a decision, the following considerations are taken into account, namely the unavailability of physical space due to the presence of neighbours and obstacles, the probability for competition with pedestrians in an apparent coUision course and the necessity for cooperation with pedestrians in a similar course.
Thus, should the preferred next step be unavailable, a pedestrian can seek alternatives by reducing or increasing the length of their next step relative to their preferred length, additionally or alternatively by deviating left or right from their preferred orientation.
A first criterion is employed, namely the principle of habituation, which states that entities become accustomed to enduring certain dissatisfaction over time, commensurate with local conditions. They acquire a memory of dissatisfaction that serves as the yardstick for a rough first assessment of their well-being. Perceived compliance or advantage relative to the norm is reason to stay the intended course. A perceived deficit induces deviating, to seek improvements.
Thus, each entity establishes a norm of dissatisfaction, i.e. a subjective level that it deems acceptable on the basis of what is to be expected locally from previous experience. This norm is effectively a memory of past dissatisfaction levels over a number of previous steps with a rule for updating. Likewise, entities maintain a memory of actual step lengths, or equivalently walking speeds, over the same number of steps and updated by the same rule.
A simple rule for updating information is employed, which gradually phases out old information and incorporates new information at the end of each step.
After completing step j—\ and prior to launching a new search for step j, a
dissatisfaction norm J; and a feasible step length ℓj are updated for each pedestrian, namely:
(Equation Removed)
-where J™ is a current level of instantaneous dissatisfaction, Jj-i is a dissatisfaction norm after completing step j-2, ℓ1j is a current instantaneous step length, ℓ'j_x is a feasible step length norm after completing step j—2 and Nmean is the number of memory steps.
Other updating rules may be used provided the number of memory steps Nmean is obtained a posteriori by fitting empirically to data.
By comparing the current level of instantaneous dissatisfaction AJ^with the norm
Jj-i, it is established whether the current course appears to be satisfactory, if the instantaneous current level of total dissatisfaction JT is inferior than or equal to
the dissatisfaction norm J-1 , or whether dissatisfaction levels are being induced that are higher than what appears to be reasonable to anticipate, if otherwise.
In the latter case, a perceived habituation-adapted dissatisfaction deficit δJ"serves as incentive to deviate, namely:
(Equation Removed)
The dissatisfaction deficit δ J™ is used to establish first rough estimates of angular bounds to the right (lower angles) and left (higher angles) of the pedestrian's preferred orientation Jopt1 given by equation 14 above.
The following assumption is made in order to render the habituation deficit of equation 43 into first angular bounds for the search, namely that a reasonable candidate for the next step j should achieve a step length or walking speed not worse than the norm, it should result in a new position of comparable but not worse density (and thus discomfort) and it should induce a comparable level of inconvenience due to friction as defined in equation 5 above.
Based on these conditions, the dissatisfaction deficit αJT"can be attributed to the
inconvenience due to accelerating/turning defined in equation 16, which yields an angular range:
(Equation Removed)
The imposed conditions are conservative and thus inclusive of ail possible solutions.
So far the angulat range has been estimated relative to the orientation angle j-1of the just completed step j-l. The estimate is refined by scanning the pedestrian's neighbourhood and determining local conditions, as will now be described in more detail:
Referring to Figure 15, a neighbourhood 29, hereinafter referred to as a test area, is defined around the preferred position 123' given by equation 14 and 15 above. Preferably, the test area 29 is in the form of a circle which is large enough to contain a personal space defined by equations 35 and 36 for any feasible pedestrian speed. Thus, the edge of test area 29 is the farthest that the pedestrian need "look" in order to obtain information for making a decision. A typical radius of the test area is between 1.5 and 2.5 metres.
The test area 29 in divided in four quadrants 29„ 29„, 29,,,, 29IV relative to the preferred forward orientation defined in equation 14 above. Each quadrant is scanned independently and so as to extract any relevant information.
The areas of the test area 29 and four quadrants 29,, 29,,, 29„„ 29IV ate given by:
(Equation Removed)
where Rtest is the radius of the test area 29.
For each quadrant 29], 29u, 29tn, 29IV, an estimate is made of the number of neighbours likely to be within it by the time the pedestrian 5 completes step J. This is done by projecting the position of the neighbours at the end of their step on the basis of their velocity and position as prognosticated by the pedestrian 5. It is assumed that a neighbour will continue to move with the same speed and in the same direction when last "observed", namely that of their last completed step. The number of neighbours so counted is denoted Nt, where the subscript X =I, II, III, IV,is the index of the corresponding quadrant 29„ 29„, 29,„, 29,v.
Referring to Figure 16, a scan is performed for fixed obstacles 25,25'. The physical area that is accessible and free of fixed obstacles per quadrant is then calculated. If αois the area occupied or rendered inaccessible by an obstacle 25, 25', then an obstacle free area α1 within a quadrant may be calculated, namely: (Equation Removed)
For example, the obstacles 25, 25' infringe the first, second and third quadrants 29„ 29,,, 29ln.
For first and second quadrants 29j, 29n, the accessible areas of, αj which are free and accessible comprises regions 30u 30„ of quadrants 29u 29„ to the left of the obstacle 25. For the third quadrant 29m which entirely contains a smaller obstacle 25', the accessible area aIII, excludes not only a physical area 31 occupied by the obstacle 25', but also a portion 32 of the quadrant 29,n in the shadow of the obstacle 25' as viewed from the pedestrian 5. Thus, the accessible area afm for the third quadrant 29„, comprises the region 30„, excluding the area 31,32 delimited by a front edge 32 of the obstacle 25 and two lines of sight 33„ 332.
Having estimated the accessible area per quadrant α/x and the number of neighbours contained therein, the personal space per entity α, is estimated, using:
(Equation Removed)
where αwax maximum area allocated per entity, which is an empirically obtained value from fitting date. The personal space per entity a, is the area which is free of
obstacles and which is divided among the neighbouring pedestrians and the pedestrian themselves. However, if the density of pedestrians in the test area 29 is low then the maximum area allocated per entity αwax is used. This is because the
pedestrian expands his or her personal space, the fewer neighbours there are in his or her neighbourhood 29. A larger personal space leads to a greater sense of-well-being. If, however, there are few or no neighbours infringing the pedestrian's neighbourhood 29, then the pedestrian is content with a maximum area available as personal space. Beyond that, they do not care whether more personal space is available.
Having determined how much of neighbourhood 29 is free of obstacles 25, how many neighbours are infringing the test neighbourhood 29 and how much personal space per entity can be expected per quadrant, an area of a lane, αpass required for passage through the neighbourhood 29 is then estimated using:
(Equation Removed)
This area is expected to be available if enough area free of obstacles is available, but not otherwise.
The net free area a, of a quadrant 29„ 29„, 29„„ 29IV and forward spatial availability weights wltk for the first and fourth quadrants 29„ 29,T are estimated using:
(Equation Removed)
The first and fourth quadrants 29„ 29IV are the quadrants where the pedestrian is most likely to look for its next step. The forward spatial availability weights w,j,,

which can take values between zero and unity, express the likelihood that free space is to be found there. Thus, a value of wlk =1, where the indices l,h correspond to
forward low or high angles respectively, i.e. first and fourth quadrants 29„ 291V> means that the entire quadrant 29x is fully available and free of obstacles and neighbours. By contrast, a value of w^ - 0 means that the quadrant 29, is saturated with obstacles and neighbours and there appears to be no area available to be claimed. Thus, the forward spatial availability weights w/Jt is an important indicator when selecting a quadrant 29, that is likely to yield a satisfactory solution.
Having estimated the availability of physical space, the offending neighbours found in the test area 29 are categorized as "friends" or "foes". Cooperation and competition are extremely important in emergent phenomena induced by the interactions of intelligent agents.
Referring to Figure 17, a friend 34 may be classified as a neighbouring pedestrian which appears to be moving in the pedestrian's approximate direction. A foe 35 may be classified on the other hand as a neighbouring pedestrian that is moving in an opposing direction.
If the density of friends 34 in the neighbourhood 29 is very high, it can enforce synchronization. For a high-density pocket of slow-moving friends 34 lying ahead of the pedestrian 5, if there is insufficient space for overtaking, then the pedestrian 5 is forced to slow down. This synchronization effect is a collaborative phenomenon, which causes a slowing down to speed levels below the preferred speed. Likewise, for a fast-moving, high-density pocket of friends lying behind the pedestrian 5, if there is not enough room to move out of the way, then the pedestrian 5 speeds up.
Apart from adjustments to the cruising speed, synchronization may also cause reordering. In extreme situations at high density, the pedestrian may be forced to take a step only after the person directly ahead has moved and no earlier.
The density of friends and the apparent synchronization speed ate considerations to be taken into account since they enforce deviating from one's preferred speed and therefore act as deterrents. These considerations, however, arc only necessary for instantaneous adjustments of the speed and do not need to be "remembered". This is because cruising speed is resumed when synchronization is no longer necessary.
For oncoming neighbours, i.e. foes 35, the considerations to be taken into account arc somewhat different The pedestrian is competing rather than collaborating with their foes.
The higher the density of oncoming foes 35, the higher the probability of collision becomes. Thus, the cost for successfully negotiating and avoiding collision tends to become greater also.
The density of foes 35 and collision probability are important factors for consideration. Unlike synchronization, which can be taken into account instantaneously, collision probability is remembered to facilitate future intelligent decisions. Thus, in high-volume multi-directional traffic one should not only take into account the instantaneous physical presence of oncoming foes, but also any history of foes. The history or memory of past collision probabilities serves to project the likelihood that one might encounter yet-invisible foe downstream, even if not quite yet in sight, by which time it may be too late for corrective manoeuvring.
For friends and foes, a cooperation weight Wkjand competition weight w1kj7 assigned by the pedestrian 5 to each friend 34 and foe 35 respectively who are projected be in the test area 29 by the end of step./ are: (Equation Removed)
The assignment is on the basis of the extent to which the projected direction of motion of a neighbour appears to be parallel or anti-parallel to that of the pedestrian using equations similar to equations 19 to 24 above.
For friends, the position rj and angle  jof a neighbour k relative to the position and direction of pedestrian 5 are calculated using:
(Equation Removed)
These parameters lead to estimates of forward, lateral, and combined proximity weights "*w'*"", namely:
(Equation Removed)
Thus, the nearer a friend 34 is to the pedestrian 5 in both forward and lateral sense, then the more it enforces speed synchronization.
Lastly, weighted counts of friends 34 and foes 35 per quadrant and corresponding densities p1, p1-, P*arc determined
(Equation Removed)
The step 0 function enforces the condition in parenthesis. Thus, if the condition is true, then the © function is equivalent to unity, otherwise zero. The parameter ,'is set empirically to /3 . Thus, neighbours whose direction of motion is to within U on either direction (i e. higher or lower) from that of pedestrian 5 are considered as moving in a similar irection and are counted as friends 34, thus resulting in collaboration and synchronization. Those neighbours, however, whose direction of motion falls outside this range are counted as foes 35 and contribute to competition in the form of higher probability for collisions.
The process described in relation to equations 59 to 66 and extracting information relating to neighbouring pedestrians is referred to as scanning the neighbourhood 29 in the vicinity of the pedestrian 5 and assessing local conditions. The information derived from computation of equations 59 to 66 is subsequently used to establish criteria applied in restricting the search space.
Starting with the density of foes 35, a probability of collision towards lower or higher angles translates into a probability that the pedestrian 5 will be on a collision course with an offending neighbour should it decide to deviate to the right (i.e. lower angles) or left (higher angles) of its optimal orientation as defined in equation 14. This probability requires further refinements of the angular acceptance range derived earlier in equation 53.
In summary, the information relating to the density of foes 35 in the test area 29 is used to impose angular restrictions in the search space of acceptable feasible candidate next steps and to decide whether seeking a solution toward the left or right of the optimal orientation is more profitable.
An instantaneous competition strength ptJl is derived from the instantaneous information foe density pfj, and the estimated personal space per entity a,, namely:
(Equation Removed)
This admits values between zero (collision impossible) and unity (collision certain) for either side (index Hot lower angles, or to the right of the optimal orientation, and h for higher angles or to the left).
A collision probability memory "p1j, maintained by the pedestrian 5 and updated according to the rules described earlier is defined using a dynamic memory length N1 (expressed using C++ programming convention), i.e.:
(Equation Removed)
The memory length N1 corresponds to the number of steps over which memory is maintained and Nm is set to 10. Thus, from the moment a foe 35 is detected, a collision probability memory starts to be built for the pedestrian 5 for up to ten steps. Similarly, when foes 35 are no longer detected, the pedestrian begins to "forget". If no foes are detected over the course of ten consecutive steps, then there is no memory of earlier collision information. Foe collision information begins to accumulate it anew when the next foe is detected. The cap of ten steps (Equation Removed)
amounts to a medium-term memory and has been determined empirically from fitting to data.
There may also be empirical rules for resetting memory. For example, if the environment changes dramatically in such a way that the new conditions no longer correspond to earlier experience, a mechanism may be used to erase memory, reset the memory length and begin rebuilding memory afresh. An example of when this may happen is if the pedestrian steps out of a concourse, characterised by busy multi-directional motion, and into a corridor, characterised by unidirectional low-volume traffic.
Thus, the updated collision probability memory becomes the perceived collision probability of the pedestrian 5 at time step j. This is used to derive the left-tight
asymmetry P4, (expressed using C++ programming convention), namely:
(Equation Removed)
which amounts to a measure of how much mote likely it is to encounter a collision in deviating on one side of the optimal orientation as opposed to the other.
So tat, the asymmetry construed by pedestrian 5 is entirely dynamic, depending exclusively on its own leading of signals from its surroundings. Hence, it is fully emergent. This asymmetry is the main reason for complex emergent patterns such as the spontaneous formation of lanes above a critical density in multi-directional environments.
Spatial or cultural bias may be introduced, should there be need for one, using:
(Equation Removed)
The term P1,, allows introduction of a forced, rather than emergent, bias or
preference to the left or right. Such as bias may be induced, for example using a sign "keep to the right", or a cultural habit, such as keeping to the right in continental Europe or keeping to the left in the UK.
A preliminary range δ,4, relative to the preferred orientation f" of equation 14, may be derived using equation 45, namely:
(Equation Removed)
The left-right asymmetry is used to redistribute the angular range from the least to the more favourable side, which leads to (expressed using C++ programming convention):
(Equation Removed)
which is the range of angles to be removed from an unfavourable side and added to a favourable one. For example, an angular range is derived using equation 54. A first range of angles to be scanned for candidate solutions is to the right of the preferred orientation and a second range of angles is to the left. If the left-tight asymmetry relation turns out to favour the left in preference to the right, a slice of angles i^^» is removed from the tight side and added to the left side. To the extent that the pedestrian 5 deems it more likely to collide with a foe on the tight than on the left, means that the pedestrian 5 does not look as far to the tight for its next step as it would have done if there had been no foes. Instead it looks farther to the left since collisions ate less likely.
Making use if this information, the angular range is finally corrected yielding a final range 'j' of least competition, namely:
(Equation Removed)
This is the range of angles to the tight (j) and left ('j1) relative to the preferred angle f given in equation 14 where the pedestrian 5 seeks an acceptable candidate for the jth step.
Finally, a pteferentiality ptJl to either side is determined, where plJk take on values between zero and unity (expressed using C++ programming convention):
(Equation Removed)
The higher the value of pIJt, the higher the preferentiality.
The density of friends and the effect of synchronization will now be described in more detail:
First, an instantaneous density ux of friends per quadrant of the test area 29 is translated into a strength of cooperation, admitting values between zero and unity:
i(Equation Removed)
The larger the more likely to be forced to synchronize). As explained earlier, cooperation arises as-and-when needed, i.e. instantaneously. It does not help to prevent errors in the future the way the collision probability does. Thus, no memory of it is kept.
A weighted average of step length l„, or equivalently speed, of all the friends in the neighbourhood (per quadrant) is estimated:

(Equation Removed)
Slower neighbours behind the pedestrian do not matter because they do not catch up. Likewise, faster neighbours ahead do not matter since the pedestrian does not catch up. In either case, the pedestrian may continue walking at their preferred speed.
Faster neighbours behind, on the other hand, can have a chasing effect. They may exert pressure on a pedestrian ahead of them to either more faster or get out of the way. Likewise, slower neighbours in front may force an undesirable Blowing down. Hence, synchronization is relevant when there are slower neighbours in front or faster neighbours behind.
This bias is reflected is forward and backward synchronisation weights, u'I,Iy, u'un,m (expressed using C++ programming convention), namely:
(Equation Removed)
The forward and backward synchronization strength u'IJy u'ttJB depend on the
density of friends and the degree of alignment of their orientation with the desired orientation of entity i.
To the extent that u'ljy and u'ajB impose external synchronization due to dynamical
external conditions in the neighbourhood outside the pedestrian's control, the pedestrian is forced to degrade the weight of its own free will, ie. to maintain the preferred step length or preferred speed. This leads to a weight of the pedestrian's
own free µopl which is updated after taking into account external constraints, namely:
(Equation Removed)
Combining the weights of the various components, another estimate may be made of the feasible step length l'^[ on the basis of its own desires adjusted to external constraints (expressed using C++ programming convention), namely:
(Equation Removed)
Thus, the pedestrian will no longer strive to achieve the unrealistic step length ℓjopt which it would have preferred based on equation 21. While searching for a compromise solution, ℓj1opt becomes the "adjusted" preferred stop length which is
inserted in place of the preferred step length when minimir.ing the full dissatisfaction function. By contrast, the instantaneous preferred speed and resultant instantaneous preferred step length were used when minimising seif-dissatisfaction during the first stage. By now, the pedestrian has deemed this preference unrealistic and, after taking into account local information, has learned what is realistic and adjusted their speed preference accordingly. Thus, it considers a
more realistic step length ℓ'1,4, which is the best it can do given the synchronization
constraints imposed upon it by the environment.
A threshold ℓ, empirically set to 5 cm, is introduced to prevent agitation for the conditions:
(Equation Removed)
This may be used, for example, in situations where pedestrians file into a bottleneck and the adjusted step length turns out to be extremely small. According to equation 82, if the feasible step length turns out to be less that the threshold, pedestrians consider themselves blocked and maintain their previous position until their neighbourhood clears. When the neighbourhood clears a longer step length is allowed.
A step length deficit δℓk is defined as:
(Equation Removed)
and is a normalised measure of the difference between the adjusted step length and the preferred step length, taking values between 0 (when the preferred and feasible lengths identical) and 1 (when the difference between preferred and feasible step lengths is greatest. It is a measure of prefer en tiality of the adjusted step length.
A preferentiality of one side over the other may be defined (expressed using C++ programming convention) using:
(Equation Removed)
Preferentiality uses the proximity of an apparent feasible step length on either side to one's own preference as a criterion. If the preferentiality for both left and right is the same, then q, -qr =½.
The second stage of micro-navigation ends with the determination of a favourite side, right (/) or left (A), namely:
(Equation Removed)
In the case of a draw, a dice is thrown.
In summary, the second stage of micro-navigation establishes an angular range for a search, for deviations on either side of the ideal orientation while looking for an acceptable candidate, adjusts the preferred speed (or step length) to a feasible speed as close as possible to the pedestrian's preferred speed and determines the favourite side from which to launch the search.
Micro-navigation; Stage III
During the first stage of micro-navigation, self-dissatisfaction is minimised so as to identify a preferred step to a preferred position. If the preferred position is available and no discomfort is associated with it, the pedestrian can proceed to take this step. However, if either the preferred position is unavailable or there is some discomfort associated with it due the presence of either offending neighbours or fixed obstacles then the second and third stages are brought into play.
During the second stage of micro-navigation, upper and lower angular bounds are found relative to a preferred orientation. Between these angular bounds candidate solutions may be sought. Finally, it is determined which side (left or tight) of the preferred orientation appears preferable when looking for a candidate solution first Thus a subspace is defined. Moreover, the preferred speed requirement is adjusted for each side to reflect dynamical conditions imposed upon the pedestrian by its surroundings, to a value that appears more reasonable to attempt to achieve on the basis of local conditions.
During the third stage, a detailed search is performed to determine and execute the pedestrian's next step. This will now be described in more detail:
Referring to Figure 18, the pedestrian 5 has a preferred orientation  joptindicated by reference numeral 36.
A final search is begun. Starting from the preferred orientation jopt and turning
towards a preferred side 37, for example to the right, a solution is sought which minimizes the total dissatisfaction of equation 40. This comprises solving equations of motion, namely:
(Equation Removed)
A heuristic algorithm is used to solve the equations of motion.
This is contrasted with minimization of self-dissatisfaction during the first stage of micro-navigation, which results in a preferred orientation angle and step length. The main difference is in that whereas the preferred solution is obtained in a self-referential manner without regard to the possible presence of neighbours and obstacles, the final solution takes these into account. In particular, the presence of offending neighbours and obstacles now induces discomfort.
A search for a compromise step is conducted varying orientation angle ';and step length ℓy.
Starting from the preferred angle fopt and turning first towards the preferred side determined using equation 85, step length i is varied starting from ℓ = 0, i.e. the current location. At each orientation angle j, a check is made is whether there are
any entities or obstacles impeding passage. If there is, then the step length ℓ'j is varied only as fax as the entity ox obstacle. Otherwise, the limit is the adjusted step
length ℓ = ℓ1,b. The search continues on the preferred side up to the limit
All the candidate solutions corresponding to incremented step length along the currently tested direction are evaluated. This is achieved in a similar way as described earlier and comprises determining a personal space where now the current step length relative to the position of origin is treated as the actual step length. Thus, the form of personal space is no longer uniform along the path tested in the current direction. A search is performed within the personal space for other pedestrians 21 or obstacles 25. Only sufficient space for passage, or accommodating the entity's physical rather than personal space, is required up to the currently tested position. The full dissatisfaction function is thus evaluated, including discomfort, as obtained for the personal space form corresponding to the currently tested angle and step length in the search. Only the best candidate, namely that of least dissatisfaction, is considered per tested angle. If the candidate is associated with zero discomfort, then the search ends. Otherwise, the best candidate for the current angle is tested against the best candidate of angles tested so far and the "best so-far candidate" information is updated. The search continues until a zero-discomfort candidate is found or the search is exhausted, whereupon the "best so-far" candidate is the winning candidate for a compromise solution.
There ate some differences between the first stage and this stage, when determining a preferred step.
Firstly, in the first stage, only a position at the end of the preferred step is considered as a final destination. In this stage, a plurality of positions, starting at the current location and ending at a position at the end of a step having the adjusted step length, is considered as a possible final position for the step.
Secondly, in first stage, personal space is translated along the preferred path and, as this is done, a check is made as to whether neighbouring entities or obstacles infringe it. In this stage, personal space is not translated. A check is made as to
whether neighbouring entities or obstacles infringe the personal space in respect of a candidate step under consideration.
Should the search toward the favoured side be exhausted without a conclusive success, i.e. no solution with zero discomfort, the search continues on the other less-favoured side with continuous updating of the best candidate over the current search. If the entire search sub space is scanned without success the entity misses a step, i.e. it 'is bottlenecked and cannot move until more space becomes available.
The first least-dissatisfying candidate to be found, amounting to the nearest local minima of equations 86 and 87 is accepted, unless negotiations with interfering offending neighbours result in yielding. For example, in the situation illustrated Figure 18, the paths of a friend 34 and a foe 35 cross into the search subspace 38. If the solution obtained by equations 86 and 87 results in a path from the pedestrian'8 current position to the proposed position which crosses the projected path of a neighbour, then collision-avoidance negations are engaged.
Collision avoidance may be implemented using a game theory algorithm. If the outcome of collision avoidance algorithm is to yield to a neighbour, then the search is interrupted and the pedestrian loses a step, a compromise is worked out between the negotiating entities or the proposed solution is rejected and the search continues towards less favourable solutions.
The method of simulating movement of an entity is used in a simulator and apparatus for designing a venue, as will now be described in more detail:
Design system
Referring to Figure 19, a design system is implemented on a personal computer 39,
a display monitor 40, storage for a project archive 41 and a system database 42. The
personal computer 39 may be workstation or desktop PC and may have a Pentium
IV class processor with clock speeds about or above 1.5 GHz and 512 MB of
random access memory.
The personal computer 39 loads and runs a computer program, which performs the method of simulating movement of the entity. The computer program may be stored on a computer readable medium, such as a compact disc, or downloaded form a computer server.
Referring to Figure 20, the design system may alternatively be implemented using a client computer 43 and a server computer 44. The client computer 43 is connected to the server computer 44 via a network 45, such as the Internet. The project archive 41 is local to the client computer 43 and the system database 42 is local to the server computer 44. A user database 46 is also provided locally to the server computer 44.
Referring to Figure 21, a system architecture 47 for performing the method of
simulating movement of an entity as herein described is shown.
The system architecture 47 is divided into a Universal User Interface (UUI) 48 and a Data, Simulation, and Analysis Framework (DSAF) 49.
The UUI 48 provides an interface for between a user and model design, simulation and analysis systems. The UUI 48 provides project management, data input, and data visualization systems.
The DSAF 49 a Data Storage System (DSS) 50 and a Simulation-Analysis Library (SAL) 51.
The DSS 50 includes a set of systems that are used by the UUI 48 and the SAL51 to access and store data used in the system. The DSS 50 comprises the project archive 41 and the system database 42.
The system database 42 stores empirical measurements for defining simulation object properties and entity characteristics. The database 42 is divided into two
sections. A first section 42, houses system certified measurements and a second section 422 houses user-defined content which is intended to be used across multiple projects. As described earlier, the database 42 may be implemented on a local medium or as a relational database via the server 44.
The project archive 41 is a file-based system for storing model designs and simulation data that are specific to one project.
The SAL 51 is a collection of objects and algorithms that are used to process a fully defined model into simulated data, and analyse and interpret the output. The DSAF 49 is an underlying set of software libraries that allow components to communicate and operate together.
-UUI 48-
The UUI 48 provides means fox a user to interact with all components of the system. The UUI 48 comprises a set of Microsoft Foundation Classes (MFC) controls, dialogs and displays that are used to carry out tasks fox creating and processing a simulation.
The UUI 48 includes a core graphics tendering engine, a CAD interpreter, such as .dxf parser, project archive browser, a set of model objects and property dialogs used in their specification, a data manager, a quality assurance wizard and various toolbars and organizational constructs to facilitate use. The UUI 48 operates under the following modes of interaction: model design, simulation, analysis, data management and browsing. These modes can be selected by the user and are automatically detected in some cases through the context of a specified action.
Model Design is the process of transforming a venue design into a form that can be processed using the SAL 51. To build a model, a user creates or imports a design from a CAD source, supplies additional data fox the simulation of the model and performs error checking and quality assurance on the resulting design. At each step in this process any resulting model is stored in the project archive 41.
A model can be described as an environment with a set of obstacles, such as walls, benches, buildings etc., a population and a schedule of events that occur over a specified time interval. A specification of a model is determined by a set of geometrical primitives describing the environment and a set of profiles and object definitions describing the population and other dynamic elements in the model. A primitive environment and obstacle geometry are supplied by the imported venue design. The remaining items are specified by die user via a model design interface. The specification of these items is facilitated via a component of the interface called a Data Manager (DM).
The function of the DM is to provide an interface that allows the user to access, define and manipulate empirical simulation object data used in the application. The components of the data manager include an MFC control fox importing data from genetic file formats, such as comma separated value (CSV)), and performing data cleansing operations. The DM also provides a suite of dialogs used to specify the characteristics of the various simulation objects and/or access existing values from die system database 42. The data stored in the database are logically organized into relational trees that map a unique key to each stored value. This allows the UUI 48 to maintain lists of the available content via the data keys without requiring that the entire database be loaded into memory. When a user wishes to specify details for an object, he is presented with an interface showing the values that are available in the system database 42 for a particular object type. The user may specify the object's parameters simply by associating the object with the key to the data stored in the database. The actual data ate loaded when required for the performance of a simulation or analysis within the SAL 51, or if requested for visualization within the UUI 48. The user also has the option to manually define object parameters with custom content In this case, the user is given the option to store any custom objects in the database so that they may be available in other projects
The simulation process requires that a model pass a series of tests in order to be verified as simulation-ready. Failure to pass these tests results in a model that will have unexpected results under simulation. In order to help users avoid mistakes a quality assurance wizard (QAW) is used to verify the model and/or the imported
CAD design. The QAW is able to identify flaws or incomplete specifications in a model's design. The QAW begins by performing a battery of tests on the model and then presenting a series of dialogs which show any issues found. Users interact with the provided interfaces and are able to affect any necessary corrections.
The project archive 41 is a file that provides persistent storage for project-specific model designs and simulated data. The project archive 41 logically belongs to the DSAF framework. Objects that can be stored in the archive include full or partially specified model designs, simulation results, and analysis macros. The project archive browser is a UI extension to the archive that allows users to view the contents of an archive and interact with them in various ways. The browser is implemented as a class which inherits from the MFC tree control which uses a directory tree to display the contents of the archive. Users can select objects within the browser and have them opened up in the UUI in the correct context For example, models ate opened in either model design/simulation mode, simulation results are opened in analysis mode.
Simulations are executed by loading a model definition from the project archive 41 and processing it with the SAL 51. The simulation interface in the UUI comprises a visualization system and a toolbar control that allows users to play, stop, pause, restart, and record the simulation. The simulation is displayed as a sequential set of snapshots showing the current position of each entity in the model as it progresses over time. At each time step, the simulation algorithms perform various calculations and update data tables which may be used in online analysis and/or stored in the project archive 41 and later used for offline analysis. Alternatively, they can be generated on demand during replay from the minimal set of data stored in the project archive 41 by default. Analysis of the simulated data is accomplished using a system where the user specifies a region of interest using either a polygon (for areas) or a polyline (for lines). After the user has specified a region, he must associate a function or set of functions to be performed on the entities inside or crossing the region over a specified range of time. As the simulation progresses, the data from each analysis region are updated and shown using the UUI data visualization system. For example, a user may be simulating a large venue such as a football stadium.
However, the user may be interested in viewing statistics dealing with a very small portion of the area that lies around a food vendor. The user is able to filter the data to this exact region by placing an analysis polygon around the 2one of interest. Then by specifying an associated filter, the user will be presented with only the requested data.
-DSAF 49-
The DSAF 49 is a set of underlying software libraries that implement the utilities and communication infrastructure of the entire system. Constituent libraries of the framework may include both 3ri party and in-house developed libraries, namely:
a. I/O system
■ Interface Library
b. DSS
c. Root Manager
d. Neutral Data Structures
■ Simulation and Analysis Library (SAL)
e. Object-Oriented simulation objects and containers
f. Simulation and Analysis algorithms
■ Geometry Library (GeoLib)
g. Geometrical primitives
h. Geometrical algorithms
The ROOT library is a comprehensive data analysis system based on an object-oriented framework that is used for simulation and analysis in particle physics. ROOT has classes for performing data analysis coupled with a system for space intensive data handling and I/O (input/output). The classes borrowed from the ROOT library arc TPile and TTrce, which together form an object serialization and I/O package. The I/O system uses a premise called object serialization, which is the
process of converting a memory-resident instance of a class into an array of byte data which can then be stored. The process is reversible and results in a method which allows the persistent storage and retrieval of program objects. The requirement for building serialized objects is that there must be some definition of a class cast in such a way that the serializing system knows how to translate an instance of an object into a serialised form. ROOT maintains a system for automatically generating these definitions which are called class dictionaries. The TFile class implements file based storage for collections of serialized objects. The TTree class extends this functionality by supplying a framework for storing and accessing large collections of these objects using random access iterators. The cost of using these classes in our framework lies in dealing with an incompatibility between ROOT and the MFC libraries used in the UUI. In the current version ROOT is used only as a matter of convenience. Future versions may dispense with the use of ROOT in favor of a home-grown solution for I/O and object serialization.
-DSS 50-
The system uses a database to store measurements of the characteristics of the
objects and entities that are used in model specification. As explained earlier, the
database may be implemented using two schemes. One scheme uses a network*
server-based solution, and the other a file-based system which resides on a local
The network based system uses the SAP-DB Open Source Release developed by SAP and released under the Gnu Public License (GPL). The file based system uses the I/O system from ROOT, a scientific library in support of particle physics applications developed at CERN and released under an open source license. The system database 42 is implemented as a single relation indexed by a key which maps to a set of properties for each object instance. The database has three different interfaces which provide different levels of access and models of use. The basic mode of access is user-level which is defined in a class called UserDBSession. A user session is allowed read-only access to system data keys and full access (read, write, delete) to user-defined data. The user based mode is typically used for
retrieving lists of the available data in the database, and for managing any custom content defined by the users. The second mode of access is used by the SAL and is defined in a class called SimDBSession. The SAL has read-only access to system data and user-defined data. The SAL only accesses the database to retrieve those items that are required to perform a simulation. The third mode of access, defined by a class called SystemDBSession, is used in building the system database 42. This interface provides full access and control over anything in the database and is used to manage the system database 42 contents. The second aspect of the DSS is the project archive 41 which is implemented via the RootManager class. The use of either SAP DB or the ROOT based TFile are not binding, and other solutions are possible and may be implemented in future releases.
In order to accommodate the ROOT-MFC incompatibility, a wrapper class called RootManager is created to act as an interface and buffer between the two libraries. The purpose of the RootManager class is to render the functionality of the ROOT library accessible from within a conflicting namespace such as MFC (in this context, conflicting refers to platform neutrality as well as the compatibility of two libraries when compiled together.) The I/O system from ROOT is used in conjunction with RootManager to implement the project archive 41. The project archive 41 is a file, based on ROOT'S TFile class and is created and maintained via RootManager. The structure of the project archive 41 is realized as a set of directories each used for storing a particular object type. These directories include categories for model definitions and simulation and analysis results. RootManager provides a wrapper interface that allows for the creation, access, and manipulation of these files that can be used from within the UUI. As stated earlier, one of the costs of implementing the ROOT I/O system is caused by incompatibilities between ROOT and MFC. This limitation extends to all class dictionaries generated by ROOT for the purpose of object serialization. In order to have access to 6uch objects within the UUI framework and reap the benefits of the ROOT I/O system, a twin set of objects were created that allow full disclosure of such class contents within the UUI, and a system fot transforming said objects into a mirroring format that can be used in conjunction with ROOT class dictionaries for object serialization. The
classes consist of a set of classes called the Neutral Data Structures along with a corresponding set of mirror classes called the IO Data Structures.
A Neutral Data Structure refers to a class whose members consist of only native types (int, float, char etc.) or objects generated by home-grown utility libraries (e.g. could contain Geolib objects). By following this paradigm any Buch data structure can be passed between platforms in a wholly independent and neutral fashion. The neutral data structures ate the classes that are used within any endpoint component of the framework. Whenever any such object must be stored persistently, it is transformed into an IO data structure and written to the project archive 41. Upon retrieval, such objects are recast into a neutral format before being given to the requesting application. The advantage of using this method is that the objects are utilizable within any component of the system without the need to affect translations or changes to the objects. In cases where the components use a shared memory, these objects can be direcdy referenced by each component.
The SAL consists of the set of algorithms and data structures that axe used to process a model definition into a set of simulation data, analyze, and interpret those data. The simulation process begins either when a user selects a fully specified model from the project archive 41 or chooses to execute one already in memory. Before the simulation is executed, the user is given the option to record the results of the simulation in the project archive 41. The UUI provides a toolbar interface which allows the uset to play, pause, and inspect individual entities as well as access complex analysis functions and visualizations via the aforementioned analysis toolkit. In addition to the simulation algorithms, the SAL defines a set of classes used to describe the objects and data used in a simulation called Profiles.
A Geometry library (Geolib) comprises two parts, one implementing a basic set of geometrical primitives, and the other implementing specialized algorithms which deal with these primitives. The Geolib primitive library includes objects to describe points, segments, polylines and polygons, circles, and arcs. These objects follow the neutral structure paradigm and are used within die system whenever an object is needed to define some geometrical property. The algorithms library consists of a
toolkit of specialized and generic algorithms used in managing various problems that are encountered in computational geometry. These algorithms include collision/intersection detection, segment overlapping, determination of geometrical encapsulation, and various sorting routines.
Process for, designing a venue
Referring to Figure 22, a process for designing a venue will now be described:
Before any venue is designed, a database of measurements that describe characteristics of a population in various venues is built and made available to the system (step S1).
Then the process of designing a venue can begin.
A first or successive version of a design of a venue is provided.
The user launches the UU1 48 and either imports or manually specifies an architectural specification for a particular venue (step S2). The design of the venue is amended through a process that transforms it into a fully defined model that is able to be simulated and analysed using the SAL 51 (step S3). A simulation is performed on the model and may be viewed, analysed and recorded by the user (step S4). The user will usually return to step S3 to make refinements and improve the model using the results of the simulation visualization and online analysis as feedback. During simulation a limited set of simulated measurements axe calculated and stored in the project archive 41. The user has the option of analysing these data further either on-line or off-line (step S5). Any such data derived by the user may also be stored in the project archive 41 in a raw format or as in human-readable reports.
If the simulation indicates that the design of venue is in some way deficient, then the venue can be re-designed. It is preferable that the results of the simulation are used to re-design the venue. Additionally or alternatively, a process of "trial-and-error" may also be used.
The process for designing a venue will now be described in more detail in terms of preconditions, processing and post conditions:
Step S1: System measurements
A research team identifies which measurements are needed, plans a measurement schedule, performs experiments, collects empirical data and analyses it, Based on the analysis, the research team supplies simulation objects and profiles via a database interface (provided by DSS 50) to be stored in the system database 42.
Profiles are data structures that contain distributions of measurements that describe a single characteristic of a particular species or subspecies within a population. These characteristics may include data for walking speeds, personal space preferences, size, etc. The term "species" is used to refer to the entire population within a single venue and locale. The term "subspecies" is used to refer to a subset of the species that has been constrained to contain only certain individuals, for example men, tourists, etc.
Step S2: Venue design
The user provides a detailed description of the venue, which usually takes the form of an architectural design, together with a specification of the constituents that make up a population to be considered and schedule data describing the dynamic aspects of the venue. The designs may be created using the UUI 48 or imported from prior sources.
Referring to Figure 23, a CAD file of a design of a corridor 52 is created or imported. In this case, the CAD file is in a .dxf file format. For the purpose of illustration, a general path 53 is shown between an entrance 54 and an exit 55.
Referring to Figure 24, if a template is used, then markers 56 may be placed to aid design.
Referring to Figure 25, details regarding properties of the model, such as model dimensions, are supplied through dialog boxes.
The Gle is loaded into the CUI 48, converted into an internally-used format, herein referred to as a ".lgm" format, and stored in a project archive 41. Processing may include annotations to the CAD design in the form of data cleansing and geometrical corrections done for quality assurance.
The project archive 41 is now ready for processing into a model ready for simulation.
Step S3: Model design
The project archive 41 comprises an initial description of the venue to be simulated.
Processing of the model design comprises defining the participant entities and objects to be used in the simulation, specifying event schedules, defining entity sources and sinks, such as entrances, exits, supply rates and limits, creating a high level description of how the simulation should be realized. It usually includes multiple transactions with the project archive 41 and possibly the system database 42 as the model is built and its persistent state in the archive is updated. Transactions with the system database 42 may include downloading pertinent data for designing a model, or uploading custom objects so that they may be available for later reuse.
Thus, a version of the model is fully specified and is stored in the project archive 41 in a 'ready-to-run' state. It may be run in a simulation or reopened for further construction and refinement.
Referring to Figure 26, in a model design mode of interaction, a rectangular entrance 58 is defined. This may involve drawing and "snapping" a rectangle to the corners of the corridor.
Referring to Figures 27 and 28a and 28b, properties of the entrance 58 are defined via a dialog box 59. For example, this may include defining a pulse train 60 in terms of duration and flow which are entered through a dialog box 61.
Referring to Figure 29, a rectangular exit 62 is also defined. Again, this may involve drawing and "snapping" a rectangle to the corners of the corridor.
Referring to Figure 30, a model 63 of the corridor is shown. The user links the entrance and exit and a line 64 is defined between a start point 65 with an intended destination 66.
The file is saved, for example in .dxf format and quality assurance may be performed. The file is also saved as a simulation file, for example with an extension ".ora", in project archive 41.
Step S4: Model refinement, Simulation and Online Analysis A simulation engine loads die model specification, in the form of the simulation file, from the project archive 41 and performs a simulation using the method of navigating according to the present invention. At discrete steps in the simulation, data are stored in the project archive 41, for example in the form of a ".res" file, that can be used to 'replay* the simulation at a later time and perform off-line analysis. The user may view the simulation as it runs and has the option to perform online analysis.
After a simulation is completed, the user has a minimal set of data generated by the simulation that is stored in the project archive 41 by default The user may also optionally have stored reports generated from any online analysis performed during the simulation. High-level detailed data may be generated on-line or off-line from the minimal set in the project archive 41.
Step S5: Offline Analysis and Report Generation
The user interacts with a recorded session of a simulation and performs analysis
using the recorded data. Additional data are generated depending on the analysis
procedure specified by the user. These analysis data are then organized into reports and are finally generated in a human-readable format specified by the user. It is not mandatory that any analysis be performed off-line. In most cases off-line analysis will only be performed on large models due to performance constraints.
The project archive 41 contains the results of the analysis, and any customized analysis scripts/macros created by the user in an automated menu supplied in the UUI 48. Reports generated from the analysis may be stored in the project archive 41 or on disk.
Referring to Figure 31, an example of a path 67 of a pedestrian through the corridor 52 at 600ms intervals is shown.
In the example described above, macro-navigation is very simple because a single intended destination 66 is defined.
However, as described earlier, a mote refined (but still simple) method of macro-navigation may be used, employing intermediate intended destinations.
Referring to Figure 32, the user may divide the corridor 61 using guide lines 68,, 68,.
Referring to Figure 33, a pair of intermediate destinations 691, 692 referred to here as foci, are defined in when defining the model. Corresponding areas 70„ 70„ referred to here as focal drift zones, are also defined. When located in the first focal drift zone 70, the user drafts towards the first focus 69,. Likewise, when located in the second focal drift zone 702 the user drifts towards the second focus 693. A requirement is also set that a pedestrian should be at least 0.5 m from a wall.
Referring to Figure 34, the focal drift zones 70„ 702 are shown together with the preferred orientation angles 71„ 71z.
The model is stored and run by the simulator, this time navigating the pedestrian from one intermediate destination to another.
Referring to Figure 35, a revised path 67' of a pedestrian through the corridor 52 at 600ms intervals is shown.
Having examined the simulation, the designer may consider that the time taken to pass down the corridor is too long. To reduce the time, they may decide to "roundoff corners, introduce a straighter or wider corridor.
It will be appreciated that mote comphcated models may be defined using a plurality of entrances and exits and mote detailed models. For example, a mote complicated model of a corridor using bi-directional flow, may show that pedestrians are likely to bump into one another. This may prompt the designer to make appropriate changes in design or consider the use of signs or barriers to guide pedestrians.
Referring to Figures 36, 37 and 38, a process flow diagram is shown of the method
of simulating movement of an autonomous entity through an environment. For
example it may be used to determine the path taken by the pedestrian through the
corridor as described earlier. Parts of the process axe described in more detail
The simulator is initialised (step S5) and includes loading the model including spatial information regarding the venue (step S5.1) and determining zones, for example by partitioning the venue into different regions, such as waiting zones and drift zones (step S5.2). Attributes, as specified during model building, are ascribed to the zones. Timers are generated (step S5.3). These include timers for controlling arrival/departure profiles from the demand data and rimers associated with objects eithez supplied by the usex ox established experimentally from measurements. These later timers may include waiting times fox entities buying a ticket from a vending machine, getting information from an information booth or consulting a bulletin board.
Initialisation also includes retrieving information from the system database 42 (Figure 20) needed to generate profiles used in the simulation and generating new profiles from existing profiles (step S5.4). Entities are represented by one of these profiles. The method includes populating the zones (step S5.5) by dispersing entities throughout the venue. Each entity has a profile and a destination objective. Thus, this provides a snapshot of the venue at time zero, when the simulation starts.
In the example described above, macro-navigation is "hardwired". Nevertheless, macro-navigation may be more sophisticated and may comprise calculating lowest-order optimal paths associating every point in the venue with every destination objective specified in the model via a suitable direction angle (step S5.6). This comprises calculating a continuous field per destination objective, from where entities will subsequently seek their 0 at each step throughout the simulation. This information is stored as multi-layered spatial grids.
Finally, initialisation includes calculating the number of time steps (jj) for the simulation (step S5.7). This may be calculated by dividing a duration specified by the designer, for example 6000 seconds, by the step duration 0.6 seconds.
The simulation then begins at the first step (step S6).
New entities are created at entrances accotding to so-called "demand data" specified by the user during model building (step S7). The demand data specifies arrival distributions as a function of time, broken down by profile and objective. For example, for a railway station, data are supplied relating to the distributions of people arriving at various entry points, with percentages of profiles represented in these populations, such as male commuters, tourist couples etc., as well as percentages of people with certain objectives, such as heading to a particular platform to catch train departing at a particular time. Entities are also eliminated when they exit the simulation, for example through an exit or departing train.
Generating an entity comprises randomly positioning a new entity just outside an entrance and attributing to it a destination objective and profile as prescribed by the demand data, and also attribute to it randomly drawn values from appropriate attribute continuous distribution functions pertaining to the profile which represents the entity.
For example, a profile defined by a locale, such as the UK, and venue, such as a railway Station, has associated with it a plurality of distribution functions including preferred speed, spontaneous speed noise, clearance tolerance, clearance tolerance noise, physical space radius and, optionally, luggage area. Thus, generating an entity for a UK train station comprises randomly drawing a value of preferred speed, a value of clearance tolerance, a value of physical size and, optionally, a value of luggage size form respective distribution functions and positioning the entity at an initial position just outside an entry point at a time commensurate with the "demand data". Subsequently, on its first successful step the entity will enter the simulated venue and proceed to advance toward its destination objective as described earlier.
The number of entities is updated (step S8). The order in which entities are considered and moved is shuffled (step S9). However, there may be regions where entities synchronised and this may be corrected (step S9).
A first entity is chosen and the process of determining a step begins (step S10).
A value of instantaneous speed v° is determined based upon preferred speed v0 and a freshly obtained value of preferred speed noise δv0 (steps Sll to S13).
Macro-navigation provides an orientation angle  (step S14). The entity recalls information regarding the previous step, namely previous step length ℓj-1 and previous orientation angle j_} (step S1 5). A preferred step may then be detettoined in terms of preferred orientation 'f and preferred step length ℓopt (step St 6). A new position is then determined (step S17).
A process of determining whether the preferred step can be taken is executed (steps S 18 to S35).
This comprises determining a test area 29 (Figure 15) and identifying neighbouring entities and obstacles within the test area 29 (steps Si8 to S20). The position and identity of the entities is 6tored in a spatial grid, which i6 updated at the end of a step. Identifying neighbouring entities comprises overlaying said test area and said grid.
A density of neighbours is identified by counting the number of entities within the test area 29 (Figure 15) and dividing by the area (step S27).
Referring to Figure 38, a process of determining whether the preferred step is feasible is then determined (step S35)
Step-increment and neighbour counters ate set (steps S35.1 & 35.2). Fot a plurality
of positions ℓ along the step and for each neighbour and obstacle R]+1 and f+1
are calculated (steps S35.3 to S35.18). If j+1,is positive, then the step is deemed
not to be feasible. This is done for each position t along the step (steps S35.16 & S35.17), for each neighbour k (steps S35.5 to S35.7) and for each segment of each obstacle (steps S35.8 to S35.13). If no such neighbour or obstacle is found, then the preferred step is accepted (step S35.18).
If the step is found to be unfeasible, then the second and third stages of micro-navigation are employed (steps S36 to S90).
An angular range over which to conduct a search is determined (steps S36 to S40), a preferred side and adjusted step length are also detettnined (steps S41 to S57). This is described in detail earlier. Steps S41 to S57 comprise a learning and adaptation routine.
A process of conducting a search for a compromise step within a sub-region 37 (Figure 18) and determining whether potential compromise steps are feasible is then conducted (steps S58 to 81). For each potential compromise step expressed in terms of a current angle  and current step length ℓ self-dissatisfaction JiJ+1., is calculated based on inconvenience and frustration.
Dneighboursj+1 is determined (step S62). This comprises looping over candidate offending neighbours, calculating RJ+1t for each in the loop, calculating V£t for each in the loop and summing contributions throughout the loop so as to determine DJ+11*00. Dobstaols is determined (step S63) in a similar fashion. Dj+1., and J™, are determined (steps S64 & S65).
A check is made whether the path of the step is intersected by another entity (step S66). If the path of the step is intersected by another entity, then game theory (step
570) may be used to determine whether the entity can ignore the neighbour (step
571) or yield to the neighbour (step S72) and find a compromise (step S73).
Otherwise, based upon the position of the step (Step S68), it is determined whether the current step is acceptable (step S69). This involves determining whether the total dissatisfaction AJ™tat current position is less than the total dissatisfaction of
the best solution so far and, if so, updating the best solution to be the current step. Then a check is performed as to whether the current step length is equal to feasible step length for the current angle, namely ℓ = ℓf1 If so and if the total
discomfort Jj+1, = 0, then the current step is determined to be acceptable. Otherwise, a check is carried out whether the current angle is the last angle, namely  =f" +j'h. If so, the best solution so far is kept and determined to be acceptable.
If not, it is determined whether the current step length is equal to a "feasible" step length (step S74). If not, the step length is lengthened (step S 75) and a new compromise step is considered (step S61). If the feasible step length is reached, then it is determined whether the preferred side has been swept (step S76). Is not, a wider orientation angle is used (step S77). If so, then the non-preferred side is swept (step S78 & S79).
Thus, the search continues towards less favourable solutions. If no solution is found, then the entity does not take a step.
The entity takes their step (step S81). Values for JT:j and ℓj are determined and stored (steps S82 and S83), i.e. the entity "remembers" these values.
The process moves onto the next entity (step S84) and continues for each existing entity (step S85). Once all the entities have moved, those entities which leave the venue axe removed (step S86 & S87). The process moves onto the next step (step S88).
Thus, the process is repeated for each entity for each step for the duration of the simulation (step S89). At the end of the simulation, data regarding each entity and each step is outputted and can be saved as a file (step S90). The data can be displayed so as to show the path of one or more of the entities as they move through the venue.
From reading the present disclosure, other variations and modifications will be apparent to persons skilled in the art Such variations and modifications may involve equivalent and other features which are already known in methods of simulating movement of an entity and may be used instead of or in addition to features already described herein. For example, many of the formulas derived above are based on defining an action and minimising energy-work expenditures using variational techniques- However, other derivations may be used, whose methods are analogous. Furthermore, although the methods herein described are suitable for simulating movement of an entity, they may be adapted for controlling and
navigating entities, such as a robot. The methods of simulating and controlling movement of an entity are suitable for multi-level structures. A step may be replaced by a unit of translation.
It will be appreciated that functions such as discomfort, frustration and dissatisfaction may be expressed differendy, merged or separated into one or more functions and still have substantially the same effect. It will be appreciated that whereas a function may be minimised, a corresponding function may be found which can be maximised and thereby achieve substantially the same result
It will also be appreciated that stages such as the first and second stages can be merged or separated into one or more stages.
Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure of the present invention also includes any novel features or any novel combination of features disclosed herein either explicitly or implicitly or any generalisation thereof, whether or not it xelates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as does the present invention. The applicants hereby give notice that new claims may be formulated to such features and/or combinations of such features during me prosecution of the present application or of any further application derived therefrom.

1. Apparatus for simulating movement of an autonomous entity through an environment, the apparatus comprising:
An interface that provides a provisional path through a model of the environment from a current location to an intended destination and that provides profile for said autonomous entity; and
one or more processors that determines a preferred step towards said intended destination based upon cost of a step, said profile and said provisional path, that determines a personal space around said autonomous entity, and that determines whether said preferred step is feasible by considering whether obstructions infringe said personal space; and
a memory that records a feasible preferred step so as to allow movement of said autonomous entity to be determined.




1394-delnp-2005-complete specification (granted).pdf



1394-delnp-2005-description (complete).pdf













Patent Number 246342
Indian Patent Application Number 1394/DELNP/2005
PG Journal Number 09/2011
Publication Date 04-Mar-2011
Grant Date 24-Feb-2011
Date of Filing 06-Apr-2005
# Inventor's Name Inventor's Address
PCT International Classification Number G06F 17/50
PCT International Application Number PCT/US2003/050616
PCT International Filing date 2003-09-09
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 10/237,178 2002-09-09 U.S.A.