METHOD FOR DETERMINING A ROUTE FOR AT LEAST ONE SELF-DRIVING MOBILE, MANEUVERING AUTOMATIC, COMPUTER PROGRAM AND SOFTWARE PRODUCT

DE502024000474D1Active Publication Date: 2025-12-24ROBERT BOSCH GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE502024000474
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-03-22
Filing Date
2024-03-19
Publication Date
2025-12-24
Estimated Expiration
2044-03-19

AI Technical Summary

Technical Problem

Existing methods for determining routes for self-driving vehicles, especially in production environments, are inefficient due to the need to consider numerous boundary conditions and require adaptation when vehicle properties change, limiting computational efficiency and precision.

Method used

The method employs motion primitives, such as 'forward', 'left turn', and 'right turn', to construct routes piecemeal, using graph-based search algorithms like A* to determine optimal paths, considering time-dependent area requirements and collisions, without relying on vehicle properties.

Benefits of technology

This approach simplifies route calculation, enhances computational efficiency, and ensures precise, collision-free paths adaptable to changing conditions, allowing higher traffic density and efficient use of resources.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

State of the art

[0001] In production engineering, products and product components are sometimes transported by automated systems. For example, products or product components are moved from one processing station to the next. This is sometimes done using autonomous vehicles that can move without a rigid guide (e.g., a rail). Such vehicles exist in various sizes, with different speeds, carrying different numbers of products, and covering different distances. The vehicles are typically controlled by a software system.

[0002] Document IT 2019 0001 1520 A1 concerns techniques for planning a trajectory followed by a road vehicle, defined by a vehicle state comprising position and orientation information related to a control input by a differential kinematic model, wherein a set of control input constraints and a set of state constraints are given, the trajectory connects a given initial state and a given target state, and the method includes obtaining the trajectory by computing a state trajectory comprising a sequence of vehicle states linked by a given number of respective path segments, in particular of different types, selected from a given finite set of different types of motion primitives that the road vehicle can execute in a given maneuver time.and wherein the computation process involves minimizing functional costs over the types of path segments that comprise the state trajectory, where the functional costs comprise a sum of conditional motion costs over the number of path segment types.

[0003] Disclosure US 2019 / 361450 A1 covers techniques for developing efficient motion primitives with approximate path coordinates suitable for rapid planning in autonomous driving scenarios. These primitives are approximate in that certain quantities, such as path length, acceleration, and track offset trajectory, are known with a degree of certainty, and values ​​that depend on the curvature of the reference path can be bound. Such approximate motion primitives can be used to guide the autonomous vehicle to follow the trajectory within an environment.

[0004] US patent 2021 / 020045 A1 discloses an autonomous vehicle guidance system that generates a path for controlling an autonomous vehicle, at least partially, based on a data structure that is generated, at least partially, from sensor data capable of indicating the occupied space in an environment surrounding the autonomous vehicle. The guidance system can receive a grid and generate a grid linked to the data structure. Additionally or alternatively, the guidance system can dynamically subsample the grid (transversely and / or longitudinally), at least partially based on features determined from the data structure. The guidance system can identify a path, at least partially, based on a set of pre-calculated motion primitives, their associated costs, and / or a heuristic cost diagram indicating the lowest cost for moving from one pose to another. Disclosure of the invention

[0005] The invention relates to a method for determining a route, in particular a transport route, for at least one self-driving, unoccupied vehicle. The invention also relates to a maneuvering automation system, a computer program, and a software product.

[0006] Preferred or advantageous embodiments of the invention will become apparent from the dependent claims, the description and / or the accompanying figures.

[0007] The invention relates to a method for determining, in particular calculating, a route, especially a transport path, for at least one self-driving, especially unoccupied, vehicle. The vehicle is specifically designed as an autonomous vehicle. Alternatively, the vehicle is designed as a hovering or flying vehicle. In particular, the vehicle is designed to be unmanned. Alternatively or additionally, the vehicle is designed to transport exclusively goods or the like. For example, the vehicle is implemented as a transport robot, low-floor vehicle, etc. Preferred designations are AGV (Automated Guided Vehicle) and / or FTF (Driverless Transport Vehicle). This invention relates in particular to such vehicles that transport small quantities quickly over short distances and are preferably used for transport within a production line.Optionally, trains consisting of a train vehicle and a number of trailers are also used as mobile units.

[0008] The route, or more specifically the transport route, has a starting point and a destination point as nodes. The starting point might be, for example, a loading point for the vehicle, and the destination point might be, for example, an unloading point. Optionally, the route or transport route can also have further intermediate points, such as via points, which could be configured as intermediate stations.

[0009] A mobile device is associated with a dataset of movement primitives, which is specifically specific to the device. In particular, the dataset comprises at least three, preferably at least five, and specifically at least seven movement primitives. The movement primitives represent simple basic movements of the mobile device. Each movement primitive has a start point and an end point, which are connected by a trajectory. The start point and end point thus form the nodes connected by the trajectory.

[0010] The trajectory is specifically defined as the actual and / or physical trajectory of the vehicle.

[0011] Within the scope of the invention, it is proposed that the travel path, in particular the transport path, be determined based on the motion primitives. It is thus proposed that the travel path / transport path be formed from a sequence of motion primitives representing the basic movements of the vehicle. This approach has the advantage that the travel path / transport path cannot be implemented as an arbitrarily defined freeform shape, but is instead formed from the basic shapes of the motion primitives. By reducing the vehicle's freedom of movement to the motion primitives, the number of possible, different travel paths / transport paths is significantly reduced, so that the corresponding algorithms for determining the travel path / transport path require less computational effort and can therefore operate more efficiently.In particular, other methods for calculating routes / transport paths can be used that are not waypoint-based. Unlike waypoint-based methods, these calculate the route much more precisely and have more degrees of freedom. This allows for the calculation of more collision-free paths and enables higher traffic density.

[0012] When planning routes / transport paths, a multitude of boundary conditions play a role in the execution of the transport, such as... Temporal (e.g., time-coordinated behavior with production machines), geometric (e.g., the dynamic area requirement of the mobile unit, especially if the mobile unit has trailers (tow curve)), kinematic (e.g., adhering to maximum acceleration values), topological (e.g., avoiding certain areas due to the risk of product contamination), logistical (e.g., prioritizing transport), optimality (e.g., avoiding delays caused by other mobile units avoiding them).

[0013] These boundary conditions are currently only considered in a simplified manner. The usual approach in the prior art is to define waypoints and calculate a motion trajectory through all waypoints. This has two significant limitations: 1. For mathematical reasons, only a limited number of boundary conditions can be considered. 2. The characteristics of the vehicle must be known during the development of the process. This means that if significant factors change during operation (different vehicles, longer trains, larger products, etc.), the process may need to be adapted.

[0014] The proposed method addresses these problems: One idea is that the procedure for determining travel distances / transport routes does not rely directly on the vehicle's properties, but rather on simple basic movements as motion primitives (e.g., "forward," "left turn," "right turn") that are possible for the vehicle. The method thus no longer aims to calculate the entire travel distance / transport route while adhering to all boundary conditions, but can instead construct the movement piecemeal from permissible motion primitives.

[0015] New properties of the mobile device and / or the topology of the environment can be taken into account without changing the procedure by adjusting the set or data set of possible motion primitives.

[0016] Since both the starting point and the destination point, as well as the start and end points, are each represented as nodes, and the start and end points are each connected by a trajectory, it is preferred that the route / transport path be determined using a graph-based search algorithm based on the nodes and connecting edges. Such graph-based search algorithms have the property of determining the optimal route / transport path in a graph according to specific predefined criteria. These types of graph-based search algorithms are widely used, making the procedure simple and reliable to implement with known determination algorithms.

[0017] In a preferred implementation, the route / transport path is determined using an A* algorithm. Specifically, the A* algorithm is used to calculate the shortest path along the edges between two nodes in a graph. Alternatively, Dijkstra's algorithm can be used. The A* algorithm belongs to the class of informed search algorithms. In computer science, it is used to calculate the shortest path between two nodes in a graph with positive edge weights. Unlike uninformed search algorithms, the A* algorithm uses an estimator (heuristic) to search in a targeted manner and thus reduce the runtime.

[0018] According to the invention, the motion primitives can be arranged on a grid of a common, regular, two-dimensional dot matrix. In particular, the motion primitives can always be arranged such that the start point and the end point lie on the same point of the dot matrix. The grid dimension is application-dependent and is preferably less than 30 cm, ideally less than 15 cm. Alternatively or additionally, the grid dimension is greater than 1 cm, preferably greater than 5 cm. The grid dimension denotes the distance between two adjacent points in the dot matrix along the grid lines. By reducing the motion primitives of the mobile device to the dot matrix, the possibilities of the motion primitives are limited, and the possible travel path / transport route is reduced. In this way, the determination algorithms can be implemented particularly easily.The start and end points of a motion primitive are separated by an integer multiple of the grid dimension (in the X and Y directions).

[0019] In particular, the route / transport path is generated or formed by a combination of nodes, where the nodes are represented as points in the point grid, and trajectories, where the trajectories are represented by the motion primitives. Thus, the route / transport path is defined by a chain of nodes connected by the trajectories. Alternatively or additionally, when searching for a route / transport path, only nodes of the graph that are the endpoint of a possible motion primitive, which has its starting point at the current node, are considered.

[0020] In a possible further development of the invention, each motion primitive contains time information, where the time information describes the time required to carry out the movement of the mobile along the motion primitive. This time information makes it possible to determine the travel distance / transport route as the shortest path in terms of time. Alternatively, a compromise between the shortest path in terms of length and the shortest path in terms of time can be determined.

[0021] According to the invention, the motion primitives have area information, wherein the area information describes the area required to execute the movement of the mobile along the motion primitives. A set of boundary points (relative to the start point and / or end point) is stored in the motion primitive, which must be exclusively available to the mobile for the execution of the movement. The boundary points can be arranged in a grid. Thus, the specification of the boundary points together with the grid dimension is equivalent to the area requirement. In particular, the area information defines a lateral extent perpendicular to the trajectory of the respective motion primitives. From an application perspective, the mobiles have a physical width, which can also depend on the respective load and / or on one or more trailers.By taking surface information into account, it is ensured that the route / transport path is guided in such a way that the vehicle can travel from the starting point to the destination without collisions. In particular, collisions with obstacles can be avoided.

[0022] The space requirement is stored and checked, particularly during the determination process. Only movement primitives are used where there is no conflict regarding space requirement (at the relevant time). A conflict can arise, for example, from the movement of another vehicle.

[0023] To minimize the computational effort, it is preferred that the motion primitives, along with the area information, can be arranged planarly within the grid spacing of the point grid. In particular, the boundary points of a motion primitive are separated from each other and from the start and end points by an integer multiple of the grid spacing (in the X and Y directions).

[0024] This specification makes it particularly easy to plan the routes / transport paths in the determination algorithms.

[0025] It is particularly preferred that, when determining the route / transport path, the time-dependent area requirement of the route / transport path is determined and optionally checked. For the time-dependent area requirement, both the time information and the area information of the motion primitives can be used. Overall, a route / transport path is created that includes the time-dependent area requirement along the trajectory and / or the overall trajectory.

[0026] In a simplification, the motion primitive is divided into arbitrary time intervals, with the area requirement along the motion primitive's trajectory being determined for each interval. During a time interval, the area requirement along the trajectory is used as a quasi-stationary disturbance contour in the collision check. For example, the motion primitive is divided into two or n equal time intervals, with the area requirement along the trajectory in the first time interval being used as a quasi-stationary disturbance contour during the first time interval, and the area requirement along the trajectory in the subsequent time interval(s) being used as a quasi-stationary disturbance contour in the collision check during the subsequent time interval(s). Specifically, each node of the motion primitive maintains a list of time intervals in which it is reserved.For a motion primitive to be permissible, all nodes used must be "free" during the collision check within the relevant time window. The more accurately the time requirement for each individual node is known, the more efficiently the area can be used.

[0027] A collision check is particularly preferred when determining the route / transport path. For a collision check with stationary objects, a time-independent space requirement is sufficient. However, the mobile's surroundings along the route / transport path are not necessarily stationary, but rather contain quasi-stationary objects, such as new or changing arrangements of objects, like stored goods. By determining the time-dependent space requirement along the entire trajectory, a collision check of the mobile with its surroundings, especially the quasi-stationary objects, can be easily performed.

[0028] Alternatively or additionally, dynamic objects are also present in the environment, such as other autonomously driving, unoccupied vehicles. These dynamic objects also form dynamic interference contours that must be considered when determining the route / transport path. By determining the time-dependent space requirement along the overall trajectory, a collision check of the vehicle with other vehicles can be easily performed.

[0029] It is particularly preferred that the method determines at least two travel routes / transport paths for at least two different mobile units. By determining these at least two travel routes / transport paths, the time-dependent space requirement along the overall trajectory of each mobile unit can be checked in relation to the other mobile unit. In a further generalization of the method, n travel routes / transport paths for m different mobile units can be determined, whereby a collision check, performed to determine the time-dependent space requirement, ensures that the mobile units do not collide with each other.

[0030] It is particularly preferred that the n different mobiles are assigned different datasets of movement primitives (n>2; p>2).

[0031] In particular, the motion primitives or the dataset of motion primitives are designed to be vehicle-dependent, so that, for example, different curve radii or different loads can be considered for different vehicles when representing a curve as a motion primitive. Similarly, different acceleration capabilities, different area information, and / or different time information, etc., can be taken into account in the different datasets.

[0032] Optionally, kinematic properties of the vehicle along the route / transport path, such as acceleration (especially acceleration or braking jerk) and lateral acceleration, can be derived from the motion primitive parameters. A feasibility check of the route / transport path for the vehicle can then be implemented. If the kinematic properties exceed predefined limits, the route / transport path can be modified.

[0033] The movement primitives can optionally include the following basic movements with parameterization: Straight-ahead travel, parameters: e.g., length of straight-ahead travel, speed; Right turn, parameters: curve radius, length of entry, length of exit, speed; Left turn, parameters: curve radius, length of entry, length of exit, speed; Lateral offset, parameters: width of lateral offset, length of entry, length of exit, speed; Temporary standstill, parameters: duration of standstill; Rotation of the vehicle, optionally stationary or superimposed with a linear movement, generally superimposed movements.

[0034] The movement primitive "temporary standstill" can, as an exception, have the same starting and ending point and is used, for example, to allow another mobile or other dynamic object to pass.

[0035] Furthermore, there may be special cases where superimposed movement is desired, especially if the mobile unit is a planar drive and allows more than just movement in the x and y directions. Examples include changing the z-height, fluid swiveling, anti-sloshing functionality, etc.

[0036] In particular, the route / transport route is transferred to the vehicle, which then travels along the route / transport route.

[0037] In particular, the route / transport path is transferred to the vehicle for controlling the vehicle according to the transport path.

[0038] Another object of the invention relates to a maneuvering machine, in particular designed as a digital data processing device, wherein it is designed to perform the method as previously described.

[0039] Another aspect of the invention relates to a computer program configured to perform the method described above when the computer program is executed on a digital data processing device and / or on the maneuvering machine.

[0040] Another aspect of the invention relates to a machine-readable storage medium containing the computer program.

[0041] Further advantages, features, and effects of the invention will become apparent from the following description of preferred embodiments of the invention and the accompanying figures. These show: Figure 1 a schematic representation of a vehicle's route / transport path in a dot matrix; Figure 2 a flowchart as an example of the method.

[0042] The Figure 1illustrates the implementation of a procedure for determining a route / transport route 1 for at least one self-driving, unoccupied vehicle 2.

[0043] The route is referred to below, without loss of generality, as transport route 1. Transport route 1 is arranged in a grid 3, which has a plurality of points 4 regularly spaced in the X and Y directions. The grid spacing can be, for example, 10 cm. The points 4 in the grid 3 serve as possible positions of nodes 5, which, together with intervening trajectories 6, form transport route 1 and / or a modeled overall trajectory of transport route 1. Transport route 1 has a starting point 7 and a destination point 8, where the starting point 7 and the destination point 8 each form one of the nodes 5 on a point 4 of the grid 3.

[0044] Transport path 1 consists of a sequence of motion primitives 9 a - e. Each motion primitive 9 a - e has a start point 10 and an end point 11. The start point 10 and the end point 11 each form one of the nodes 5 on one of the points 4 of the grid 3. The start point 10 and the end point 11 of a common motion primitive 9 a - e are connected to each other via one of the trajectories 6.

[0045] The starting point 10 of the first movement primitive 9a corresponds to the starting point 7, the endpoint 11 of the last movement primitive 9a-e corresponds to the destination point 8. In the case of successive movement primitives 9a-e, the endpoint 11 of the preceding movement primitive 9a-e and the starting point 10 of the immediately following movement primitive 9a-e form a common node 5.

[0046] The motion primitive 9 a represents a left turn, the motion primitive 9 b represents a straight-ahead journey, the motion primitive 9 c represents a right turn, the motion primitive 9 d represents a lateral offset, the motion primitive 9 e represents a temporary standstill.

[0047] Furthermore, in the Figure 1 For each movement primitive 9 a - e, an envelope 12 is plotted, which represents the area required by the vehicle 2 along the transport path 1, in particular for the respective movement primitive 9 a - e. Figuratively speaking, the vehicle 2 uses the area required by the envelope 12 when traveling along the transport path 1. Figure 1The width of Mobile 2 is schematically represented by only two boxes in the dot grid 3. In reality, the width of Mobile 2 is significantly larger, so the envelope 12 for the area requirement will occupy a large number of boxes in the dot grid 3. The area requirement is assigned to the respective movement primitive 9 a - e as area information and thus forms a data-related component of the respective movement primitive 9 a - e. For example, in each movement primitive 9 a - e, boundary points 13 can be entered relative to the start point 10 and / or end point 11, whereby the boundary points 13 and the start point 10 and / or end point 11 each lie on one of the points 4 of the dot grid 3. The boundary points 13 are in the Figure 1 only partially shown.

[0048] In addition, time information can be assigned to each movement primitive 9 a - e, which describes the time required by Mobil 2 to pass through the movement primitive 9 a - e.

[0049] The movement primitives 9 a - e thus include at least: Start and end points 10, 11 of the motion primitive 9 a - e. The area required to carry out the motion (envelope 12), in particular in the form of the boundary points 13. The time required to carry out the motion.

[0050] The Figure 2 shows in a schematic representation a flowchart for the procedure for determining the transport route 1 for the at least one self-driving, unoccupied vehicle 2.

[0051] In step 100 a, b, c, a dataset of mobile-specific movement primitives 9 a - e is provided for Mobile 2. Three different steps 100 a, b, c are shown to illustrate this, representing different datasets for different Mobile 2s. In particular, the movement primitives 9 a - e of the different datasets differ because they are assigned to different Mobile 2s.

[0052] The data set can include any selection of data related to the Figure 1 The described motion primitives 9a-e are present. It is also possible that the motion primitives 9a-e are parameterized to provide a wider selection for determining transport path 1. The motion primitives 9a-e can be parameterized as follows: Motion primitive 9a: Left turn, parameters: curve radius, length of entry, length of exit; Motion primitive 9b: Straight ahead, parameters: e.g., length of straight ahead; Motion primitive 9c: Right turn, parameters: curve radius, length of entry, length of exit; Motion primitive 9d: Lateral offset, parameters: width of lateral offset, length of entry, length of exit; Motion primitive 9e: Temporary standstill, parameters: duration of standstill.

[0053] Optionally, rotation of the mobile can be added as a superimposed movement.

[0054] In step 200, transport path 1 is created based on the respective motion primitive 9 a - e, for example, using an A* algorithm as the determination algorithm. This A* algorithm is modified to handle time information. The nodes 5 and intervening edges (not shown) are used in this process. The determination considers stationary or quasi-stationary objects in the environment. Stationary objects can be represented, for example, by an environment model. Other mobiles, as dynamic objects, and their transport paths 1 are also considered. This is done by means of a collision check with the stationary, quasi-stationary, and dynamic objects. To avoid collisions, a temporary standstill of mobile 2 can be integrated into transport path 1 to allow another mobile 2 to pass.

[0055] The determination of transport paths 1 is carried out using a graph-based search algorithm, such as the (modified) A* algorithm. This exploits the fact that the movement primitives 9 a - e are each represented as a combination of nodes 5 with edges.

[0056] To simplify the determination, the motion primitives 9 a - e are adapted to the point grid 3 such that the nodes 5 always lie on points 4 of the point grid 3. Furthermore, the envelopes 12 of the motion primitives 9 a - e are also adapted to the point grid 3 such that the boundary points 13 are arranged on the points 4 of the point grid 3.

[0057] Motion primitives 9 a - e described in this way can now be used by standard graph-based search algorithms for shortest paths (e.g. A*) with a few extensions: In the iterative search for a transport route, only nodes 5 of the graph are considered that are endpoint 11 of a possible movement primitive 9 a - e, which has its starting point 10 at the current node 5. The space requirement is stored and checked during the search. Only movement primitives 9 a - e are used for which there is no conflict regarding space requirement (at the relevant time). A conflict can arise, for example, from the movement of another vehicle 2.

[0058] The following additional configurations are possible in an extension: More detailed information on the area / time requirements, e.g., the area required for the first half of the movement and the second half of the movement of a motion primitive. Parameters of the motion of a motion primitive. Kinematic properties (acceleration, jerk, possibly implemented as a function of the parameters). Preconditions and postconditions. For example, only acceleration is possible from a standstill.

[0059] A particular advantage is that the method for determining transport paths does not rely directly on the properties of Mobile 2, but rather on simple basic movements ("motion primitives," e.g., "forward," "left turn," "right turn") that are possible for Mobile 2. The method thus no longer aims to calculate the entire transport process while adhering to all boundary conditions, but can instead construct the movement piecemeal from permissible motion primitives 9a-e. This yields two significant advantages: 1. The calculation method is significantly simplified. Known and efficient methods such as the A* algorithm can be used with minor modifications. 2. New properties of the mobiles, the product as cargo, and the topology of the environment can be taken into account without changing the calculation method by adjusting the set of possible motion primitives 9 a - e.

Claims

1. Method for determining a route, in particular a transport route (1), for at least one autonomously driving mobile unit (2), the route comprising a starting point (7) and a destination (8) as nodes (5), the mobile unit (2) having an assigned data set of movement primitives (9 a - e), each movement primitive (9 a - e) comprising a starting point (10) and a terminal point (11) of the movement primitive (9 a - e) as nodes (5) and representing a trajectory (6), the trajectory (6) connecting the starting point (10) to the terminal point (11), the movement primitives (9 a - e) with the nodes (5) being able to be arranged in one grid dimension of a common, regular, two-dimensional point grid (3), the movement primitives (9a - e) comprising area information, the area information describing the area required for performing the movement of the mobile unit (2) along the movement primitives (9a - e), the movement primitive (9a - e) containing a saved set of boundary points (13) that needs to be available exclusively to the mobile unit for performing the movement, the boundary points (13) being able to be arranged in the grid dimension, wherein the route is determined on the basis of the movement primitives (9 a - e).

2. Method according to Claim 1, characterized in that the route is determined using a graph-based search algorithm.

3. Method according to Claim 1 or 2, characterized in that the route is determined using an A* algorithm.

4. Method according to one of the preceding claims, characterized in that the route is produced by a combination of nodes (5), the nodes (5) being in the form of points (4) in the point grid (3), and trajectories (6), the trajectories (6) being in the form of the movement primitives (9 a - e).

5. Method according to one of the preceding claims, characterized in that the movement primitives (9 a - e) comprise time information, the time information describing the time required for performing the movement of the mobile unit (2) along the movement primitives (9 a - e).

6. Method according to Claim 1, characterized in that the movement primitives (9 a - e) with the area information are able to be arranged two-dimensionally in the grid dimension of the point grid (3).

7. Method according to Claim 1 or 6, characterized in that determining the route involves the time-dependent area requirement of the route being determined.

8. Method according to one of the preceding claims, characterized in that the method involves at least two the routes of at least two different mobile units (2) being determined.

9. Method according to Claim 8, characterized in that the at least two different mobile units (2) have different assigned data sets of the movement primitives (9 a - e).

10. Method according to Claims 7 to 9, characterized in that determining the route involves a check for collision with other mobile units (2), stationary objects and / or quasi-stationary objects being performed.

11. Automatic manoeuvrer, the programming and / or circuitry of the automatic manoeuvrer being designed to carry out the method according to one of the preceding claims.

12. Computer program product, the computer program product being designed to carry out the method according to one of Claims 1 to 10 when the computer program product is executed on a digital data processing device and / or on the automatic manoeuvrer according to Claim 11.

13. Machine-readable storage medium, the storage medium storing the computer program product according to Claim 12.