Patent Description:
Some vehicles are configured to operate autonomously. For example, some vehicles are configured to navigate around an environment autonomously.

<CIT> (CROWN EQUIP CORP [US]) discloses to amend a costmap in a restricted region where an autonomous vehicle travels. This leads to the fact, that this region is blocked for other autonomous vehicles.

It would be desirable to improve or enhance autonomous vehicle operation.

According to various, but not necessarily all, embodiments there is provided an apparatus comprising means for performing:.

In some examples, amending a costmap of the autonomous vehicle comprises amending a costmap of the autonomous vehicle based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle and the at least one of the at least one other autonomous vehicle to cause the autonomous vehicle to travel towards a predetermined side of a determined collision zone.

In some examples, the means are configured to determine the velocity and position of the autonomous vehicle, based, at least in part, on sensor information.

In some examples, the means are configured to control transmission of information at least indicative of the velocity, the position and at least a portion of the current trajectory of the autonomous vehicle.

In some examples, determining if a collision between the autonomous vehicle and at least one of the at least one other autonomous vehicle will occur comprises determining a probability distribution for the position of the at least one other autonomous vehicle along the current trajectory of the at least one other autonomous vehicle as a function of time.

In some examples, determining if a collision between the autonomous vehicle and at least one of the at least one other autonomous vehicle will occur comprises determining a probability distribution for the position of the autonomous vehicle along the current trajectory of the autonomous vehicle as a function of time.

In some examples, determining a probability distribution comprises using a trained Markov-model.

In some examples, the means are configured to:.

According to various, but not necessarily all, embodiments there is provided a method comprising:.

In some examples, the method comprises controlling transmission of information at least indicative of the velocity, the position and at least a portion of the current trajectory of the autonomous vehicle.

According to various, but not necessarily all, embodiments there is provided a computer program comprising instructions which, when executed by an apparatus, cause the apparatus to perform at least the following:.

According to various, but not necessarily all, examples there is provided examples as claimed in the appended claims.

According to various, but not necessarily all, embodiments there is provided an apparatus comprising.

According to various, but not necessarily all, embodiments there is provided an apparatus comprising means for performing at least part of one or more methods disclosed herein.

Certain features and views of the figures can be shown schematically or exaggerated in scale in the interest of clarity and conciseness. For example, the dimensions of some elements in the figures can be exaggerated relative to other elements to aid explication. Similar reference numerals are used in the figures to designate similar features. For clarity, all reference numerals are not necessarily displayed in all figures.

Examples of the disclosure relate to apparatus, methods, and/or computer programs for and/or involved in autonomous vehicle control.

Examples of the disclosure relate to apparatus, methods, and/or computer programs for and/or collision avoidance in autonomous vehicles.

Examples of the disclosure relate to apparatus, methods, and/or computer programs for and/or involved in predicting and avoiding a collision between autonomous vehicles.

The following description and FIGs describe various examples of an apparatus <NUM> comprising means for performing:.

The means can comprise at least one processor; and at least one memory including computer program code, the at least one memory storing instructions that, when executed by the at least one processor, cause performance of the apparatus.

As used herein, an apparatus and/or device and/or component for performing one or more actions should also be considered to disclose an apparatus and/or device and/or component configured to perform the one or more actions.

Similarly, as used herein, an apparatus and/or device and/or component configured to perform one or more actions should also be considered to disclose an apparatus and/or device and/or component for performing the one or more actions.

<FIG> schematically illustrates an example of an apparatus <NUM>.

Various features referred to in relation to <FIG> can be found in the other FIGs.

In the example of <FIG> the apparatus <NUM> is configured to receive information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM>.

Receiving information <NUM> can comprise receiving at least one signal and/or message <NUM>.

The apparatus <NUM> can be comprised and/or integrated in a device or devices. The apparatus <NUM> can be comprised and/or integrated in any suitable device or devices.

For example, the apparatus <NUM> can be comprised and/or integrated in an autonomous vehicle <NUM>. See, for example, <FIG>.

For example, the apparatus <NUM> can be configured on a virtual machine in the cloud and can be configured to communicate with autonomous vehicle(s) <NUM> via appropriate interfaces.

The apparatus <NUM> can be considered a device and/or electronic device.

In examples, the apparatus <NUM> is configured to determine if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur, based, at least in part, on the received information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM> and a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of the autonomous vehicle <NUM>.

The apparatus <NUM> can be configured to determine the velocity <NUM> and position <NUM> of the autonomous vehicle <NUM>, based, at least in part, on sensor information <NUM>.

The apparatus <NUM> can be configured to determine at least a portion of a current trajectory <NUM> of the autonomous vehicle <NUM>.

In examples, the apparatus <NUM> is configured to control transmission of information <NUM> at least indicative of the velocity <NUM>, the position <NUM>, and at least a portion of the current trajectory <NUM> of the autonomous vehicle <NUM>.

Determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur can comprise determining a probability distribution for the position of the at least one other autonomous vehicle <NUM> along the current trajectory <NUM> of the at least one other autonomous vehicle <NUM> as a function of time.

Determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur can comprise determining a probability distribution for the position of the autonomous vehicle along the current trajectory <NUM> of the autonomous vehicle <NUM> as a function of time.

Determining a probability distribution can comprise using a trained Markov-model.

In examples, the apparatus <NUM> is configured to, if it is determined that a collision will occur, amend a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to manipulate cost in the costmap <NUM> in and/or around an area of a predicted collision zone <NUM>.

Amending a costmap <NUM> of the autonomous vehicle <NUM> can comprise amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to cause the autonomous vehicle <NUM> to travel towards a predetermined side <NUM> of a determined collision zone <NUM>.

Amending a costmap <NUM> can comprise transmitting at least one signal <NUM> and/or message.

Amending a costmap <NUM> can comprise interacting with at least one application programming interface (API).

In examples, the apparatus <NUM> is configured to determine that a collision between the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> will occur despite amending the costmap <NUM> of the autonomous vehicle <NUM>; and to control movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM>.

In examples, the apparatus <NUM> can comprise any number of additional elements not illustrated in the example of <FIG>.

<FIG> schematically illustrates an example of an autonomous vehicle <NUM>.

The autonomous vehicle <NUM> can comprise any suitable autonomous vehicle <NUM>. In some examples, the autonomous vehicle <NUM> is an autonomous ground vehicle.

According to various, but not necessarily all, examples of the disclosure an autonomous vehicle <NUM> can be considered a vehicle that can operate autonomously.

For example, an autonomous vehicle <NUM> can be considered a vehicle that, given at least one goal, can operate autonomously to achieve the at least one goal, without human input. The at least one goal can be provided by a human.

According to various, but not necessarily all, examples of the disclosure, an autonomous vehicle <NUM> can be considered a vehicle that can navigate autonomously through and/or around an environment.

For example, an autonomous vehicle <NUM> can be considered a vehicle that, given at least one goal, can navigate autonomously through and/or around an environment to the at least one goal and/or to achieve the at least one goal, without human input. The at least one goal can be provided by a human.

According to various, but not necessarily all, examples of the disclosure, an autonomous vehicle <NUM> can be considered a vehicle that is configured to sense its environment and operate autonomously.

For example, an autonomous vehicle <NUM> can be considered a vehicle that is configured, given at least one goal, to sense its environment and operate to achieve the at least one goal, without human input. The at least one goal can be provided by a human.

The autonomous vehicle <NUM> can be considered at least one of: an unmanned vehicle, a driverless vehicle, a robot, a drone and so on.

In the example of <FIG>, the autonomous vehicle <NUM> comprises at least one transceiver <NUM>, at least one sensor <NUM> and an apparatus <NUM> as described in relation to <FIG>.

In some examples, the autonomous vehicle <NUM> can be considered an apparatus.

The at least one transceiver <NUM> can comprise any suitable transceiver <NUM> or transceivers <NUM>. For example, the at least one transceiver <NUM> can comprise any suitable transceiver(s) <NUM> for transmitting and/or receiving at least one signal <NUM>.

In examples, the at least one transceiver <NUM> is configured to transmit and/or receive at least one signal using wired and/or wireless communication. Any suitable wired and/or wireless communication protocol or protocols can be used. For example, Wi-Fi and/or Bluetooth, and/or cellular communication protocol(s) can be used.

In some examples, at least one separate transmitter and receiver can be used instead of or in addition to the at least one transceiver <NUM>.

In examples, the at least one transceiver <NUM> is configured to receive information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM>.

In examples, the at least one transceiver <NUM> is configured to transmit information <NUM> at least indicative of a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of the autonomous vehicle <NUM>.

The at least one sensor <NUM> can comprise any suitable sensor <NUM> or sensors <NUM>.

For example, the at least one sensor <NUM> can comprise any suitable sensor <NUM> or sensors <NUM> configured to allow/enable, at least in part, the autonomous vehicle <NUM> to function/operate autonomously.

For example, the at least one sensor <NUM> can comprise any suitable sensor that can be used in determining a velocity <NUM> and/or a position <NUM> of the autonomous vehicle <NUM>.

In examples, the at least one sensor <NUM> can comprise any suitable sensor <NUM> configured to provide sensor information <NUM> to the apparatus <NUM> to allow/enable the apparatus <NUM> to determine a velocity <NUM> and/or a position <NUM> of the autonomous vehicle <NUM>.

For example, the at least one sensor <NUM> can comprise, at least one motion sensor, at least one inertial measurement unit, at least one lidar and so on. The at least one sensor can be used in performing odometry.

In examples, the at least one sensor <NUM> provides sensor information <NUM> to the apparatus <NUM>, the apparatus <NUM> determines the velocity <NUM> and position <NUM> of the autonomous vehicle <NUM> and controls transmission of information <NUM> comprising the velocity <NUM>, the position <NUM> and at least a portion of the current trajectory <NUM> of the autonomous vehicle <NUM> via the at least one transceiver <NUM>.

In examples, the at least one transceiver <NUM> can be considered at least one sensor <NUM>.

As discussed herein, the apparatus <NUM> is configured to amend, if a collision is predicted, the costmap <NUM> of the autonomous vehicle <NUM>.

For the purposes of clarity, not all elements of the autonomous vehicle <NUM> are illustrated in the example of <FIG>, and, in examples, the autonomous vehicle <NUM> can comprise any number of additional components.

Signal(s) <NUM> can be communicated between the different elements of the autonomous vehicle <NUM> and the apparatus <NUM> in the example of <FIG>.

Accordingly, as illustrated in the example of <FIG>, the at least one transceiver <NUM> and the at least one sensor <NUM> are operationally coupled to the apparatus <NUM> and any number of intervening elements can exist between them (including no intervening elements).

Additionally, or alternatively, one or more elements of the autonomous vehicle <NUM> illustrated in the example of <FIG> can be integrated or combined.

<FIG> illustrates an example of a method <NUM>.

One or more features discussed in relation to <FIG> can be found in one or more of the other FIGs.

In examples, method <NUM> can be considered a method of autonomous vehicle control.

In examples, method <NUM> can be considered a method of avoiding collisions in autonomous vehicles.

In examples, method <NUM> can be considered a method of predicting and avoiding a collision between autonomous vehicles.

Method <NUM> can be performed by any suitable apparatus comprising any suitable means for performing the method <NUM>.

In examples, method <NUM> can be performed by the apparatus of <FIG> and/or the apparatus <NUM> of <FIG> and/or the autonomous vehicle <NUM> of <FIG>.

At block <NUM>, method <NUM> comprises receiving, at an autonomous vehicle <NUM>, information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM>.

Block <NUM> can be performed in any suitable way using any suitable method.

In examples, receiving, at an autonomous vehicle <NUM>, information <NUM> comprises receiving at least one signal <NUM> and/or message.

The information <NUM> can be received directly or indirectly from the at least one other autonomous vehicle <NUM>. For example, each of the at least one other autonomous vehicle <NUM> can transmit the information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of the other autonomous vehicle <NUM>.

In examples, each of the at least one other autonomous vehicle <NUM> broadcasts its information <NUM>.

In some examples, the information <NUM> can be received from an entity that is separate from the at least one other autonomous vehicle <NUM>.

Receiving the information <NUM> can comprise a low-bandwidth message exchange between the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM>.

The information <NUM> can be received, at the autonomous vehicle <NUM>, according to any suitable timing and/or schedule. In some examples, the information <NUM> is transmitted/received periodically.

In examples, information <NUM> can be received from different ones of the at least one other autonomous vehicle <NUM> at different times.

The autonomous vehicle <NUM> can comprise any suitable autonomous vehicle <NUM>. For example, the autonomous vehicle <NUM> can comprise an autonomous vehicle <NUM> as described in relation to <FIG>.

In examples, the autonomous vehicle <NUM> is an autonomous ground vehicle. In examples, the autonomous vehicle <NUM> can be considered an unmanned vehicle.

The at least one other autonomous vehicle <NUM> can comprise any suitable autonomous vehicle <NUM>. For example, the at least one other autonomous vehicle <NUM> can comprise an autonomous vehicle <NUM> as described in relation to <FIG>.

In examples, the at least one other autonomous vehicle <NUM> comprises at least one other autonomous ground vehicle.

The at least one other autonomous vehicle <NUM> can be the same as or different to the autonomous vehicle <NUM>.

In examples, from the point of view of the at least one other autonomous vehicle <NUM>, the at least one other autonomous vehicle <NUM> can be considered the autonomous vehicle <NUM> and the autonomous vehicle <NUM> can be considered, at least part of, the at least one other autonomous vehicle <NUM>.

Accordingly, there can be a plurality of autonomous vehicles <NUM> and from the point of view of each autonomous vehicle <NUM> the remaining autonomous vehicle(s) <NUM> can be considered the at least one other autonomous vehicle <NUM>.

Accordingly, in examples, any of the plurality of autonomous vehicles <NUM> can be considered the autonomous vehicle <NUM> and, correspondingly, at least part of the at least one other autonomous vehicle <NUM>.

Accordingly, in examples, any of the plurality of autonomous vehicles <NUM> can be configured to perform at least part of one or more methods described herein. For example, any of the plurality of autonomous vehicles <NUM> can be configured to perform method <NUM>.

The information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM> can comprise any suitable information having any suitable form.

In some examples, the information <NUM> comprises the velocity <NUM>, position <NUM>, and/or at least a portion of the current trajectory <NUM> of at least one other autonomous vehicle <NUM>.

In some examples, the information <NUM> comprises information that can be processed to determine the velocity <NUM>, position <NUM>, and/or at least a portion of the current trajectory <NUM> of at least one other autonomous vehicle <NUM>.

The information <NUM> can comprise the estimated velocity <NUM>, position <NUM> and at least portion of the current trajectory <NUM> of at least one other autonomous vehicle <NUM> when the estimation was made.

The at least a portion of the current trajectory <NUM> can be considered the intent and/or short-term intent of the at least one other autonomous vehicle <NUM>.

The at least a portion of the current trajectory <NUM> can be considered the currently pursued segment of the trajectory <NUM>.

In examples, the at least a portion of the current trajectory <NUM> is configured to allow other autonomous vehicles to know if, for example, an autonomous vehicle <NUM> aims to continue straight, take a left turn, take a right turn and so on.

In examples, the at least a portion of the current trajectory <NUM> is configured to allow other autonomous vehicles to know the motion vector of the autonomous vehicle. In examples, a motion vector can comprise a pair of linear and angular velocity or a pair of tangential velocity and turn radius.

The position of the at least one other autonomous vehicle <NUM> can be considered the pose of the at least one other autonomous vehicle <NUM>.

At least part of the information <NUM> for the at least one other autonomous vehicle <NUM> can be determined from local sensor(s) on the at least one other autonomous vehicle <NUM>.

Accordingly, in examples, each of the at least one other autonomous vehicle <NUM> determines its velocity <NUM>, position <NUM>, and at least a portion of its current trajectory <NUM> and broadcasts this information <NUM> to other autonomous vehicles <NUM>, <NUM> in the vicinity.

At block <NUM>, method <NUM> comprises determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur, based, at least in part, on the received information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM> and, at least, a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of the autonomous vehicle <NUM>.

In examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur at block <NUM> comprises determining and/or estimating if the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will be at an intersection of their respective trajectories at the same or similar time such that a collision will occur.

In examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur at block <NUM> comprises determining an estimated position of the at least one of the at least one other autonomous vehicle <NUM> as a function of time and/or determining an estimated position of the autonomous vehicle <NUM> as a function of time.

The velocity <NUM>, position <NUM>, and at least a portion of the current trajectory <NUM> of the autonomous vehicle <NUM> can be determined in any suitable way using any suitable method.

In examples, information can be received and/or processed to determine the velocity <NUM>, position <NUM>, and at least a portion of the current trajectory <NUM> of the autonomous vehicle <NUM>.

In examples, the at least a portion of a current trajectory of an autonomous vehicle <NUM> is received from a navigation stack of the autonomous vehicle <NUM>.

In examples, a navigation stack comprises at least one component configured to perform at least one method to determine a trajectory from a first point/location (point/location A) to a second, different point (point/location B) using, for example, shortest-path algorithm with respect to the costmap <NUM>.

Any suitable shortest-path algorithm or algorithms can be used. For example, any suitable algorithm or algorithms that finds the shortest path within the constraints imposed by, for example, the costmap <NUM> can be used. For example, A* algorithm and/or Dijkstra algorithm can be used.

In some examples, method <NUM> comprises determining the velocity <NUM> and position <NUM> of the autonomous vehicle <NUM>, based, at least in part, on sensor information <NUM>.

For example, sensor information <NUM> from one or more sensors <NUM> of the autonomous vehicle <NUM> can be used in determining the velocity <NUM> and position <NUM> of the autonomous vehicle <NUM>. See, for example, <FIG>.

In some examples, method <NUM> comprises controlling transmission of information <NUM> at least indicative of the velocity <NUM>, the position <NUM>, and at least a portion of the current trajectory <NUM> of the autonomous vehicle <NUM>.

Accordingly, in examples, the autonomous vehicle <NUM> can transmit and/or broadcast its own information <NUM> to other autonomous vehicles <NUM>, which can receive the information <NUM> as described in relation to block <NUM>.

Accordingly, as previously discussed, the autonomous vehicle <NUM> can, from the point of view of other autonomous vehicle(s) behave as, at least part of, the at least one other autonomous vehicle <NUM>.

In some examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises determining a probability distribution <NUM> for the position of the at least one other autonomous vehicle <NUM> along the current trajectory <NUM> of the at least one other autonomous vehicle <NUM> as a function of time.

In some examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises determining a probability distribution <NUM> for the position of the autonomous vehicle <NUM> along the current trajectory <NUM> of the autonomous vehicle <NUM> as a function of time.

Determining a probability distribution <NUM> for the position of an autonomous vehicle <NUM> (and therefore also at least one other autonomous vehicle <NUM>) can be performed in any suitable way using any suitable method.

In examples determining a probability distribution <NUM> comprises using the velocity <NUM>, <NUM>, position <NUM>, <NUM>, and/or at least a portion of the current trajectory <NUM>, <NUM> of the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> in at least one model.

For example, the velocity <NUM>,<NUM>, position <NUM>,<NUM> and/or at least a portion of the current trajectory <NUM>,<NUM> can be used as inputs into at least one model.

In examples, any suitable model or models can be used. In some examples, a travel-time estimation model that allows prediction of when autonomous vehicles <NUM> will reach different waypoints along their trajectory <NUM>, and hence predict future collisions, can be used.

In examples, the at least one model can comprise at least one trained model. For example, the at least one model can comprise at least one model that has been trained based, at least in part, on the circumstances in which the autonomous vehicles <NUM>, <NUM> are operating and/or the characteristics and/or configuration of the autonomous vehicles <NUM>, <NUM> and so on.

A Markov-model can be used in any suitable way. In some examples, the information <NUM> of the velocity <NUM>, <NUM> position <NUM>, <NUM> and current trajectory <NUM>, <NUM> of the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> is passed to a Markov-model.

The Markov-model can be configured to output a conditional distribution of an autonomous vehicle's position as a function of time.

For example, the Markov-model can return an m x n matrix, where the columns represent waypoints along the current trajectory <NUM> and rows represent a timestep into the future. Hence, in such examples, each row represents the conditional distribution of an autonomous vehicle's position, given the timestep corresponding to that row.

By way of example, reference is made to the example of <FIG>.

In the example of <FIG>, estimated position of an autonomous vehicle <NUM> after an amount of time is shown. In the example of <FIG>, the estimated position of an autonomous vehicle <NUM> after four timesteps of one second is shown.

In the illustrated example, probability is indicated on the Y-axis <NUM> and position, in the form of waypoints along a trajectory <NUM>, is indicated on the X-axis <NUM>.

In the example of <FIG>, the true position <NUM> of the autonomous vehicle <NUM> is indicated by a star for comparison.

In <FIG>, line <NUM> represents the predicted position for the autonomous vehicle <NUM> at that time using a Markov model. The line <NUM> represents smoothed data from the Markov model.

It can be seen that the Markov model estimation corresponds well to the true position <NUM> of the autonomous vehicle <NUM>.

By way of comparison, line <NUM> represents a prediction based on average-velocity extrapolation. It can be seen that average velocity extrapolation does not, in the example of <FIG>, represent the true position <NUM> of the autonomous vehicle <NUM> well.

Returning to the example of <FIG>, in some examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises processing the determined probability distributions <NUM> for the positions of the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM>.

In examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises comparing the determined probability distributions <NUM> for the positions of the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> to determine if a collision will and/or is likely to occur.

For example, determined probability distributions <NUM> for the positions of the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> can be analyzed, and/or checked, and/or compared to determine if there is at least one time where the autonomous vehicles <NUM>, <NUM> will attempt to cross the same point/area at the same and/or similar time.

In some examples, determined probability distributions <NUM> for the positions of the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> can be analyzed, and/or checked, and/or compared to determine if there is at least one time where the autonomous vehicles <NUM>, <NUM> will attempt to cross the same waypoint at the same and/or similar time.

In examples, at each future timestep it is checked whether the distance between the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> is less than the sum of their radiuses. For example, if this condition holds true, it indicates a future collision.

In examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises determining a probability that a collision will occur.

Determining a probability that a collision will occur can be performed in any suitable way using any suitable method.

In examples, determining a probability that a collision will occur comprises processing/using the probability of an autonomous vehicle <NUM> to be at a location/waypoint and the probability of an other autonomous vehicle <NUM> to be at a location/waypoint.

In examples, the probability that a collision will occur can be determined by the product of the probability of an autonomous vehicle <NUM> to be at waypoint x at time t and other autonomous vehicle <NUM> to be at waypoint y at time t, where the distance between waypoint x and waypoint y is less than the sum of the radiuses of the autonomous vehicles <NUM>, <NUM>.

In examples, determining if a collision between the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> will occur comprises determining if the determined probability that a collision will occur is above a value.

Any suitable value can be used, for example the value can be any suitable value above zero. Accordingly, in some examples, the value can be set at zero, that is it is determined that a collision will occur if the determined probability is above zero.

In the example of <FIG> an example of determining if a collision between an autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> is shown.

In the illustrated example, advertised position 20a and current trajectory 22a of the autonomous vehicle <NUM> is shown.

In addition, advertised position 20b and current trajectory 22b of the at least one other autonomous vehicle <NUM> is shown.

Advertised information can be considered the information transmitted/broadcast by the autonomous vehicles.

The actual, true position 40a of the autonomous vehicle <NUM> is also indicated in the example of <FIG>.

Also shown in the example of <FIG> are probability distributions 52a, 52b, for the positions of the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> along their trajectories after a time.

In the illustrated example, the probability distributions <NUM> indicate the probability of the position of the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> along their respective trajectories 22a, b, after four timesteps of one second.

The probability scales 54a, 54b, for the illustrated probability distributions 52a, 52a are shown to the right of <FIG>.

In the example of <FIG>, it is determined that, after four timesteps of one second, a collision will occur between the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> with a high likelihood.

The predicted collision zone <NUM> is indicated in the example of <FIG>. The predicted collision zone <NUM> can be considered the position and/or area in which it is determined that the collision will/is likely to occur.

Returning to the example of <FIG>, at block <NUM>, method <NUM> comprises if it is determined that a collision will occur, amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle <NUM> and that at least one of the at least one other autonomous vehicle <NUM> to manipulate cost in the costmap <NUM> in and/or around an area of a predicted collision zone <NUM>.

Consequently, <FIG> illustrates a method <NUM> comprising:.

In examples, block <NUM> can comprise if it is determined that a collision will occur, amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to manipulate cost in the costmap <NUM> in and/or around an area of a predicted collision zone <NUM> to avoid, and/or prevent, and/or avert, if possible, the determined collision.

In examples, block <NUM> can comprise if it is determined that a collision will occur, amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to manipulate cost in the costmap <NUM> in and/or around an area of a predicted collision zone <NUM> to cause the autonomous vehicle <NUM> to alter and/or amend its current trajectory <NUM>, if possible, to avoid, and/or prevent, and/or avert the determined collision.

In examples, a costmap <NUM> can be considered a two-dimensional occupancy grid where each cell has an associated value representing the cost of traversing the cell. In examples, the cell values can be in the range <NUM> to <NUM>.

In some examples, unoccupied cells are assigned low-cost values whereas cells that are occupied are assigned high-cost values to prevent autonomous vehicles <NUM> from traversing occupied cells.

Amending a costmap <NUM> can be considered changing, and/or altering, and/or updating, and/or modifying a costmap <NUM>.

Relative positioning and/or trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> can comprise the relative positioning and/or trajectories before, during and/or after the determined collision.

Relative positioning of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> can comprise the positions of the autonomous vehicles <NUM>, <NUM> relative to one another.

In examples, the relative positioning of the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> can be determined based, at least in part, on the advertised/determined positions and/or the predicted positions.

For example, the relative positioning of the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> can be determined based, at least in part, on the positions <NUM> of the autonomous vehicles <NUM>, <NUM> determined based, at least in part, on sensor information <NUM>.

For example, the relative positioning of the autonomous vehicle <NUM> and at least one of the at least one other autonomous vehicle <NUM> can be determined based, at least in part, on the predicted positions determined at block <NUM>.

Relative trajectories of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> can comprise the relative locations and/or directions of the advertised respective trajectories relative to one another.

In some examples, amending the costmap <NUM> of the autonomous vehicle <NUM> is based, at least in part, on the velocity <NUM>, <NUM> of the autonomous vehicles <NUM>, <NUM>. For example, amending the costmap <NUM> of the autonomous vehicle <NUM> can be based, at least in part, on the relative velocity of the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM>.

The costmap <NUM> can be amended in any suitable way to manipulate cost in and/or around an area of a predicted collision zone <NUM>.

For example, the costmap <NUM> can be amended in any suitable way to manipulate cost in and/or around an area of a predicted collision zone <NUM> to cause the autonomous vehicle <NUM> to alter and/or amend its current trajectory <NUM>, if possible, to avoid, and/or prevent, and/or avert the determined collision.

Manipulating cost in the costmap <NUM> can be performed in any suitable way using any suitable method.

In examples, manipulating cost in the costmap <NUM> can comprise at least one of: increasing cost in the costmap <NUM>, inflating cost in the costmap <NUM>, raising cost in the costmap <NUM> in and/or around an area of a predicted collision zone <NUM>.

Manipulating a costmap <NUM> can comprise interacting with and/or using an API.

An area of a predicted collision zone <NUM> can comprise any suitable area in and/or around a predicted collision zone <NUM>.

In examples, the area of a predicted collision zone <NUM> comprises the area in which it is determined that the collision will and/or is likely to happen.

In examples, the area of a predicted collision zone <NUM> the area in which it is determined that the likelihood of a collision is above a value, for example above zero.

In some examples, the collision-zone is determined as the set of waypoints/locations along the trajectory of the autonomous vehicle <NUM> where a collision is likely to happen, for example the likelihood is above zero.

The size of the set can be set to one, which means the collision-zone is the first waypoint along the trajectory of the autonomous vehicle <NUM> where a collision is likely to happen. Here 'first' waypoint refers to the waypoint that is the closest to the autonomous vehicle's current position.

In some examples, manipulating cost in the costmap <NUM> comprises manipulating at least one value in at least one cell comprising at least part of the area of the predicted collision zone <NUM>.

In examples, amending a costmap <NUM> of the autonomous vehicle <NUM> comprises amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories and/or velocity of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to cause the autonomous vehicle <NUM> to avoid the determined collision, if possible, without introducing a further predicted collision.

In examples, amending a costmap <NUM> of the autonomous vehicle <NUM> comprises amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories and/or velocity of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to cause the autonomous vehicle <NUM> to avoid the determined collision, if possible, without causing another predicted collision between the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM>.

In examples, amending a costmap <NUM> of the autonomous vehicle <NUM> comprises amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories and/or velocity of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to cause the autonomous vehicle <NUM> to avoid the determined collision in a predetermined way.

In some examples, amending a costmap <NUM> of the autonomous vehicle <NUM> comprises amending a costmap <NUM> of the autonomous vehicle <NUM> based, at least in part, on relative positioning and/or trajectories and/or velocity of the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> to cause the autonomous vehicle <NUM> to travel towards a predetermined side <NUM> of a determined collision zone <NUM>.

Accordingly, in examples, the costmaps <NUM> of different autonomous vehicles <NUM>, <NUM> involved in a determined collision can be amended differently due to the different relative positioning and/or trajectories and/or velocity of the autonomous vehicles <NUM>, <NUM>.

In examples, the conflict zone <NUM> in each autonomous vehicle's costmap <NUM> is manipulated to yield conflict and oscillation-free replanning strategies.

<FIG> shows examples of amendment of a costmap <NUM> of an autonomous vehicle <NUM>.

In part A of <FIG>, an example of a costmap <NUM> of an autonomous vehicle <NUM> and other autonomous vehicle <NUM> is shown. In part A of <FIG> the costmaps <NUM> for the autonomous vehicles <NUM>, <NUM> are the same.

Each cell of the costmap <NUM> has an associated value or cost. The scale <NUM> of the costmap <NUM> is also shown to the right of the costmap <NUM>.

In part A of <FIG>, the cost associated with all cells is the same.

Also illustrated in part A of <FIG> are an autonomous vehicle <NUM> and other autonomous vehicle <NUM>. The autonomous vehicles <NUM>, <NUM> are configured to perform method <NUM> and the advertised position <NUM>, <NUM> velocity <NUM>, <NUM> and current trajectory <NUM>, <NUM> of the autonomous vehicles <NUM>, <NUM> are indicated.

As can be seen in part A of the example of <FIG>, the autonomous vehicles <NUM>, <NUM> are heading straight towards each other, and the autonomous vehicles <NUM>, <NUM> have determined that a collision will occur at a predicted collision zone <NUM>.

Part B of <FIG> is similar to part A, but shows an amended costmap <NUM> of the autonomous vehicle <NUM>.

In part B of <FIG>, the costmap <NUM> of the autonomous vehicle <NUM> has been amended and cost in three cells <NUM> in and around the area of the predicted collision zone <NUM> has been manipulated. In particular, cost in the three cells <NUM> has been increased.

As can be seen in the example of part B of <FIG>, the cost in cell where the collision is predicted to occur has been increased. However, the cost in cells towards and to the left of the cell in where the collision has been predicted to occur has also been increased.

The costs have therefore been increased towards the left-hand side of the collision zone <NUM>.

This causes the autonomous vehicle <NUM> to replan its trajectory to avoid the collision zone <NUM> to the right of the collision zone <NUM>. The costmap <NUM> has therefore been updated to cause the autonomous vehicle to travel towards a predetermined side <NUM> of the determined collision zone <NUM>.

The updated trajectory <NUM> of the autonomous vehicle <NUM> is indicated in part B of <FIG>.

Part C of <FIG> is similar to part B of <FIG>, but shows the amended costmap <NUM> of the other autonomous vehicle <NUM>.

In the amended costmap <NUM> of the other autonomous vehicle <NUM> cell values <NUM> have been increased towards the right-hand side of the collision zone <NUM>, causing the other autonomous vehicle <NUM> to replan towards the left of the determined collision zone <NUM>.

Accordingly, the determined collision is avoided without causing a further collision between the autonomous vehicles <NUM>, <NUM>.

Furthermore, the autonomous vehicles <NUM>, <NUM> are moved away from each other before getting too close to the determined collision zone <NUM> to create a safe distance between the autonomous vehicles <NUM>, <NUM>.

Accordingly, this allows the collision to be avoided without needing access to and/or without tampering with a navigation stack <NUM> of the autonomous robots <NUM>, <NUM>.

From the point of view of the other autonomous vehicle <NUM>, the other autonomous vehicle <NUM> would be the autonomous vehicle <NUM> (and the autonomous vehicle <NUM> would be the other autonomous vehicle <NUM>). However, the reference numerals have been maintained through parts A, B and C for the purpose of clarity.

In examples, once a conflict is predicted, the autonomous vehicles <NUM>, <NUM> are alerted of the anticipated collision point without tampering with their navigation stack.

In examples, to achieve this, the costmaps <NUM> of the autonomous vehicles <NUM>, <NUM> are manipulated, via, for example, an exposed API.

In examples, the collision zone <NUM> is drawn in the costmap <NUM> by increasing the value of the cells <NUM> where the collision <NUM> is likely to happen.

Upon receiving the costmap updates, the autonomous vehicle's internal navigation stack <NUM> will replan to find the new lowest cost trajectory towards the robot's goal.

Drawing the collision-zone similarly in the costmap <NUM> of each autonomous vehicle that is part of the future collision might yield to autonomous vehicles replanning around the collision only to find themselves in yet another collision; or what is commonly known as the 'reciprocal dance'.

In examples, this is avoided by drawing the collision zone <NUM> in a way that invokes autonomous vehicles to choose the different sides to pass each other.

In examples, to achieve this, it is evaluated whether the autonomous vehicle <NUM> is to the left or right of the other autonomous vehicle's position and/or trajectory:
If the autonomous vehicle's position and/or trajectory is to the right of the other autonomous vehicle's position and/or trajectory, then the collision-zone <NUM> is drawn to inflate the cost towards the left-hand side of the collision-point to encourage the autonomous vehicle <NUM> to keep right by replanning to the right of the collision-point.

If the autonomous vehicle's position and/or trajectory is to the left of the other autonomous vehicle's position and/or trajectory, the collision-zone <NUM> is drawn to inflate the cost towards the right-hand side to encourage the autonomous vehicle to keep left by replanning towards the left-hand side of the collision.

Returning to the example of <FIG>, in examples, if it is determined that no collision will occur, no amendment of the costmap <NUM> of the autonomous vehicle <NUM> is performed.

In some examples, method <NUM> comprises determining that a collision between the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> will occur despite amending the costmap <NUM> of the autonomous vehicle <NUM>; and controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM>.

Determining that a collision between the autonomous vehicle <NUM> and the at least one of the at least one other autonomous vehicle <NUM> will occur despite amending the costmap <NUM> can be performed in any suitable way using any suitable method.

In examples, determining that the collision cannot be avoided comprises determining that no alternative trajectory can be determined.

In examples, determining that the collision cannot be avoided comprises determining that the autonomous vehicle <NUM> has reached a proximity threshold to the determined conflict zone <NUM>.

Any suitable proximity threshold can be used. For example, any suitable proximity threshold equal to or greater than the sum of the radiuses of the autonomous vehicles <NUM>, <NUM> can be used.

In examples, to account for, for example, communication and/or computation delays and/or sensor noise, a safety margin `s' can be added to the proximity threshold such that the proximity threshold >= radius_12 + radius_24 + s.

Accordingly, increasing the value of `s' increases the proximity threshold. In examples, `s' can be considered a margin that factors in uncertainty of localization, message propagation time, and/or travel-time estimation.

In examples, determining that the collision cannot be avoided comprises determining that the autonomous vehicle <NUM> has reached a proximity threshold to at least one other autonomous vehicle <NUM>.

In examples, at least one identifier of the autonomous vehicle <NUM> can be transmitted, for example with information <NUM>, to allow the autonomous vehicles <NUM> to determine the priority order when collisions cannot be avoided using costmap manipulation.

Controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> can be performed in any suitable way using any suitable method.

In examples, controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> comprises controlling speed of the autonomous vehicle <NUM>.

In examples, controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> comprises operating at least one braking mechanism of the autonomous vehicle <NUM>.

In examples, controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> comprises operating a handbrake of the autonomous vehicle <NUM>.

In some examples, controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> comprises stopping the autonomous vehicle <NUM>. For example, controlling movement of the autonomous vehicle <NUM> to avoid the collision can comprise operating at least one braking mechanism of the autonomous vehicle <NUM>, such as a handbrake of the autonomous vehicle <NUM>, to stop the autonomous vehicle <NUM>.

Accordingly, in some examples, the autonomous vehicle <NUM> will stop and yield to the at least one other autonomous vehicle <NUM> to avoid the collision, when the at least one other autonomous vehicle <NUM> has a higher priority than the autonomous vehicle <NUM>.

By way of example, reference is made to <FIG>.

<FIG> illustrates an example where manipulation of a costmap <NUM> will not avoid a determined collision.

Part A of <FIG> is similar to part A of <FIG>. However, in the example of <FIG> two autonomous vehicles <NUM>, <NUM> approach an intersection.

The autonomous vehicles <NUM>, <NUM> have determined that a collision will occur at the intersection and the costmaps <NUM> of the autonomous vehicles have been amended accordingly. The amended costmap <NUM> of the autonomous vehicle <NUM> is shown in part B of <FIG>.

However, due to the nature of the intersection, the collision will still occur despite amendment of the costmap <NUM>, as no alternative trajectories are available.

In the example, of <FIG>, the autonomous vehicle <NUM> has priority and therefore the other autonomous vehicle <NUM> operates its handbrake to allow the autonomous vehicle <NUM> to pass through the collision zone first, thus avoiding the collision.

Accordingly, while some scenarios can be resolved with costmap manipulation, others can only be resolved by having one robot yield the right of way to the other robots. This is akin to two people trying to enter a room at the same time, or meeting at a crossroad.

In examples, handbrake manipulation is designed to address these scenarios.

In some examples, after autonomous vehicles <NUM> detect a conflict and reflect the conflict in their costmap <NUM> using costmap manipulation as described herein, the autonomous vehicle's internal navigation stack <NUM> might fail to find an alternative path.

In examples, in addition to manipulating the costmap <NUM>, the autonomous vehicles <NUM> perform a local election, based, at least in part on the priority order of the autonomous vehicles <NUM> for example using pre-learned or advertised identifiers, to determine the leader and the follower in a conflict. The follower starts an event to pull the handbrake when it is close to the conflict zone. A user-specified threshold value can determine how close the follower can get to the conflict zone.

Once the follower reaches the threshold, it indicates that the leader and follower failed to find an alternative path, and subsequently, the follower pulls the handbrake yielding the right of way to the leader.

Returning to the example of <FIG>, in examples block <NUM> is not performed and therefore costmap manipulation is not performed. Instead, in examples, determined collisions are avoided using a predetermined priority order for the autonomous vehicles.

Accordingly, in examples, determined collisions are avoided by controlling movement of the autonomous vehicle <NUM> to avoid the collision based, at least in part, on a predetermined priority order for the autonomous vehicle <NUM> and the at least one other autonomous vehicle <NUM> as described above.

Controlling movement of the autonomous vehicle <NUM> be as described herein. For example, controlling movement of the autonomous vehicle <NUM> can comprise operating at least one braking mechanism of the autonomous vehicle <NUM>, such as a handbrake of the autonomous vehicle <NUM>, to stop the autonomous vehicle <NUM>.

Consequently, in some examples <FIG> illustrates a method <NUM> comprising: receiving, at an autonomous vehicle <NUM>, information <NUM> at least indicative of at least a velocity <NUM>, a position <NUM>, and at least a portion of a current trajectory <NUM> of at least one other autonomous vehicle <NUM>;.

<FIG> illustrates an example overview of examples of the disclosure.

<FIG> schematically illustrates an autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM>.

The autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> are configured to perform one or more methods described herein. For example, the autonomous vehicle <NUM> and at least one other autonomous vehicle <NUM> can be configured to perform method <NUM>.

As illustrated in the example of <FIG> the functionality described herein can sit on top of a navigation stack <NUM> and operate without altering and/or tampering with the navigation stack <NUM>.

Examples of the disclosure are advantageous and/or provide technical benefits.

For example, examples of the disclosure enable autonomous vehicles to anticipate and avoid collisions without causing further collisions.

For example, examples of the disclosure enable collision avoidance in autonomous vehicles without affecting and/or altering a navigation stack of the autonomous vehicle. Examples of the disclosure are therefore agnostic to the navigation stack/planner of the autonomous vehicle.

<FIG> illustrates an example of a controller <NUM> suitable for use in an apparatus, such as apparatus <NUM> of <FIG> and/or <FIG>. In examples, controller <NUM> can be considered an apparatus <NUM>.

Implementation of a controller <NUM> may be as controller circuitry. The controller <NUM> may be implemented in hardware alone, have certain aspects in software including firmware alone or can be a combination of hardware and software (including firmware).

The memory <NUM> stores a computer program <NUM> comprising computer program instructions (computer program code) that controls the operation of the apparatus when loaded into the processor <NUM>. The computer program instructions, of the computer program <NUM>, provide the logic and routines that enables the apparatus to perform the methods illustrated in the accompanying Figs. The processor <NUM> by reading the memory <NUM> is able to load and execute the computer program <NUM>.

The apparatus comprises:
at least one processor <NUM>; and.

As illustrated in <FIG>, the computer program <NUM> may arrive at the apparatus via any suitable delivery mechanism <NUM>. The delivery mechanism <NUM> may be, for example, a machine readable medium, a computer-readable medium, a non-transitory computer-readable storage medium, a computer program product, a memory device, a record medium such as a Compact Disc Read-Only Memory (CD-ROM) or a Digital Versatile Disc (DVD) or a solid-state memory, an article of manufacture that comprises or tangibly embodies the computer program <NUM>. The delivery mechanism may be a signal configured to reliably transfer the computer program <NUM>. The apparatus may propagate or transmit the computer program <NUM> as a computer data signal.

A computer program comprising instructions which, when executed by an apparatus, cause the apparatus to perform at least the following:.

In examples the memory <NUM> comprises a random-access memory <NUM> and a read only memory <NUM>. In examples the computer program <NUM> can be stored in the read only memory <NUM>. See, for example, <FIG>.

In examples the memory <NUM> can be split into random access memory <NUM> and read only memory <NUM>.

References to 'computer-readable storage medium', 'computer program product', `tangibly embodied computer program' etc. or a 'controller', 'computer', 'processor' etc. should be understood to encompass not only computers having different architectures such as single /multi- processor architectures and sequential (Von Neumann)/parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processing circuitry.

The blocks illustrated in the accompanying Figs may represent steps in a method and/or sections of code in the computer program <NUM>. The illustration of a particular order to the blocks does not necessarily imply that there is a required or preferred order for the blocks and the order and arrangement of the block may be varied. Furthermore, it may be possible for some blocks to be omitted.

Thus, the apparatus can comprise means for:.

In examples, an apparatus can comprise means for performing one or more methods, and/or at least part of one or more methods, as disclosed herein.

In examples, an apparatus can be configured to perform one or more methods, and/or at least part of one or more methods, as disclosed herein.

Claim 1:
An apparatus (<NUM>) comprising means configured to: receive, at an autonomous vehicle (<NUM>), information (<NUM>) at least indicative of at least a velocity (<NUM>), a position (<NUM>), and at least a portion of a current trajectory (<NUM>) of at least one other autonomous vehicle (<NUM>); determine if a collision between the autonomous vehicle (<NUM>) and at least one of the at least one other autonomous vehicle (<NUM>) will occur, based, at least in part, on the received information (<NUM>) at least indicative of at least a velocity (<NUM>), a position (<NUM>), and at least a portion of a current trajectory (<NUM>) of at least one other autonomous vehicle (<NUM>) and a velocity (<NUM>), a position (<NUM>) and at least a portion of a current trajectory (<NUM>) of the autonomous vehicle (<NUM>); and if it is determined that a collision will occur, to amend a costmap (<NUM>) of the autonomous vehicle (<NUM>) based, at least in part, on relative positioning and/or trajectories of the autonomous vehicle (<NUM>) and the at least one of the at least one other autonomous vehicle (<NUM>) to manipulate cost in the costmap (<NUM>) in and/or around an area of a predicted collision zone (<NUM>).