AUTONOMOUS VEHICLE CONTROL GUIDED BY OCCUPANCY SCORES
20240059315 ยท 2024-02-22
Assignee
Inventors
Cpc classification
G05D1/242
PHYSICS
B60W60/001
PERFORMING OPERATIONS; TRANSPORTING
B60W2556/50
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method of controlling an autonomous vehicle, which is movable on a surface, includes obtaining a model (world model) of the surface, by which each area of the surface is associated with a probabilistic occupancy score; determining, on the basis of the area's position, an occupancy threshold to be applied to an area of the surface; enabling movement of the AV into the area if the associated occupancy score is less than the determined occupancy threshold; and otherwise disabling movement into the area. In one embodiment, where the model is obtained or updated based on measurement data from one or more sensors carried by the autonomous vehicle, the occupancy threshold is determined to be relatively lower if the area is outside a field of view of the sensors carried by the AV and relatively higher if the area is inside the field of view.
Claims
1. A computer-implemented method of controlling an autonomous vehicle, AV, which is movable on a surface, the method comprising: obtaining, by processing circuitry of a computer system, a model of the surface, by which each area of the surface is associated with a probabilistic occupancy score; determining, by the processing circuitry, an occupancy threshold to be applied to an area of the surface; enabling, by the processing circuitry, movement of the AV into the area if the associated occupancy score is less than the determined occupancy threshold; otherwise disabling, by the processing circuitry, movement into the area; and determining, by the processing circuitry, the occupancy threshold on the basis of the area's position.
2. The method of claim 1, further comprising: determining, by the processing circuitry, a position of the AV, wherein the occupancy threshold is determined to be relatively higher if the area is relatively closer to the AV and relatively lower if the area is relatively farther from the AV.
3. The method of claim 2, wherein the closeness of the area is measured relative to an approximate center of the AV.
4. The method of claim 2, wherein the closeness of the area is measured relative to an approximate horizontal contour of the AV.
5. The method of claim 2, wherein the closeness of the area is measured relative to an approximately rectangular shape aligned and moving with the AV.
6. The method of claim 1, wherein the model is obtained and/or updated based on measurement data from one or more sensors carried by the AV; and the occupancy threshold is determined to be relatively higher if the area is outside a field of view of the sensors carried by the AV and relatively lower if the area is inside the field of view.
7. The method of claim 6, wherein the sensors apply at least one of the following measuring principles: optical, electromagnetic reflection, electromagnetic scattering, electromagnetic diffraction, lidar, color-depth sensing, millimeter-wave radar, ultra-wideband radar.
8. The method of claim 1, further comprising: updating, by the processing circuitry, the occupancy threshold in accordance with a current position of the AV.
9. The method of claim 8, further comprising: updating, by the processing circuitry, the occupancy threshold in accordance with a current orientation of the AV.
10. The method of claim 1, further comprising: controlling, by the processing circuitry, a speed of the AV such that the AV is at least one stopping distance away from any areas into which movement is disabled.
11. The method of claim 1, further comprising: generating, by the processing circuitry, a route of the AV towards a destination, said route passing only via such areas into which movement is enabled, and estimating a time of arrival at the destination.
12. The method of claim 1, wherein the model includes an occupancy grid with a plurality of cells representing a partition of the surface into areas.
13. The method of claim 12, wherein the occupancy grid has a uniform spatial resolution.
14. A vehicle controller configured to control at least one autonomous vehicle, AV, which is movable on a surface, wherein the autonomous vehicle is controlled on the basis of a model of the surface, by which each area of the surface is associated with a probabilistic occupancy score, the vehicle controller comprising processing circuitry configured to: determine an occupancy threshold to be applied to an area of the surface; enable movement of the AV into the area if the associated occupancy score is less than the determined occupancy threshold; otherwise disable movement into the area; and wherein the processing circuitry is configured to determine the occupancy threshold on the basis of the area's position.
15. An autonomous vehicle comprising the vehicle controller of claim 14.
16. A computer program comprising program code to cause the vehicle controller of claim 14 to execute the steps of the method of claim 1.
17. A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry of a computer system, cause the processing circuitry to perform the method of claim 1.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Aspects and embodiments are now described, by way of example, with reference to the accompanying drawings, on which:
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
DETAILED DESCRIPTION
[0026] The aspects of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, on which certain embodiments of the invention are shown. These aspects may, however, be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and to fully convey the scope of all aspects of the invention to those skilled in the art. Like numbers refer to like elements throughout the description.
[0027]
[0028] The AV 110 is assumed to be under the control of a vehicle controller 130. The vehicle controller 130 may be any programmable general-purpose computer with suitable input/output interfaces. It can be mounted in the vehicle AV 110 or be external to the AV 110. As shown in detail
[0029] The sensor interface 134 is adapted for at least receiving data from sensors 112, such as a camera, a lidar and a radio receiver. The sensors 112 may use one or more of the following measuring principles: optical, electromagnetic reflection, electromagnetic scattering, electromagnetic diffraction, lidar, color-depth sensing, millimeter-wave radar, ultra-wideband radar. For these measuring principles, which rely on rectilinear propagation of energy, a sensor's FOV can usually be accurately estimated by tracing straight lines to or from the sensor. The sensors 112 may be carried by (e.g., installed in) the AV 110 or they may be external to the AV 110. The external sensors 112 may be fixedly mounted on a building or another structure, or they may be mobile, in particular carried by other vehicles.
[0030] The control interface 136 is compatible with the communication interface 114 of the AV 110. It may be used for conveying instructions suitable for execution by actuators in the AV 110, either directly (machine-level commands) or after conversion into machine-level commands by a processor carried in the AV 110.
[0031] The operator interface 138 is configured to receive higher-level or long-term commands, such as transport missions to be carried out by the AV 110 or strategic instructions, from a human operator or from an executing software application authorized to control the AV 110.
[0032] It is seen in
[0033] Functionally, the occupancy grid is an example of a model in the sense of the appended claims. In particular, the occupancy grid may be characterized as a world model, i.e., a data structure to be used as guidance for vehicle control, including routing and vehicle coordination, which is a (simplified) representation of a region of the physical world. Specifically, the cells of the occupancy grid constitute areas each associated with an occupancy score. As an alternative to an occupancy grid, sufficient information for supporting the vehicle control could be provided by a map or a map-like structure in computer-readable form, an object list, or any other suitable data structure which associates areas of the surface 110 with locally valid occupancy score values.
[0034] Two example embodiments of a method 200 suitable for controlling an AV of the type illustrated in
[0035] In a first embodiment of the method 200, an initial step 202 includes obtaining a model (world model). The model associates an occupancy score, denoted p(m.sub.i), with each area m.sub.i of the surface 100. The vehicle controller 130 can obtain the model by receiving a data structure representing the model, or retrieving it from a shared memory. Alternatively, the vehicle controller 130 can obtain the model, or update it, based on measurement data from the sensors 112. In particular, measurement data from sensors 112 in the AV 110 itself can be used to generate the model.
[0036] In a next step 206, for at least one area m.sub.i of the surface 100, an occupancy threshold t(m.sub.i) is determined. The occupancy threshold t(m.sub.i) is determined on the basis of the position of the area m.sub.i where the occupancy threshold is to be applied. The position dependence of the occupancy threshold can be defined according to one of the following options.
[0037] In such implementations of the method 200 where the position of the AV 110 is not determined, a static division into zones of the surface 100 may be used. One option is to define, with reference to the AV's 110 normal area of operation, one near zone and one far zone, wherein a relatively lower occupancy threshold is applied in the far zone. It is recalled that an area with a lower occupancy threshold represents a stricter condition to fulfil in order to enable movement into the area. Another option is to define one well-known and one not yet explored zone, wherein a relatively lower occupancy threshold is applied in the not yet explored zone. Yet another option is to define one low-risk and one high-risk zone, e.g. based on the presence of vulnerable road users, sensitive equipment or the like, wherein a relatively lower occupancy threshold is applied in the high-risk zone.
[0038] In such implementations of the method 200, where a position or orientation of one of the sensors 112 is determined, a dynamic division into zones of the surface 100 dependent on the sensor position/orientation may be used. For example, a FOV of said one of the sensors 112 can be determined in relation to the surface 100. The FOV may correspond to those areas on the surface 110 from which straight lines can impinge on an aperture of the sensor 112. Geometrically, said areas can be determined by an inverse approach, namely, by projecting a solid angle corresponding to the sensor's 112 aperture and collocated with the sensor 112 onto the surface 110. The projection thus obtained can then be converted into a set of areas based on a conversion rule, e.g., that an area m.sub.i shall be included in the set of areas if at least 50% or at least 75% or some other percentage overlaps with the projection. Regardless of the method by which the FOV is determined, the FOV can be defined to be one zone of the surface 100 where the occupancy threshold is relatively lower (corresponding to a more lenient condition on movement), whereas the complement, outside the FOV, is defined as a zone where the occupancy threshold is relatively higher (corresponding to a stricter condition on movement).
[0039]
[0040]
[0041] It is important to note, for each of these static and dynamic options, that the determination 206 of the occupancy threshold t(m.sub.i) in no way interfereslet alone modifiesthe data of the model data. The occupancy threshold is independent from the model, and independent from the occupancy scores p(m.sub.i) in particular.
[0042] With reference to the flowchart in
p(m.sub.i)<t(m.sub.i)
If the inequality is true, then movement of the AV 110 into the area m.sub.i is enabled 210a. Otherwise, if it is found that
p(m.sub.i)?t(m.sub.i)
then movement of the AV 110 into the area m.sub.i is disabled 210b.
[0043] The occupancy threshold determination 206 and assessment 208 may be repeated as desired for sufficiently many areas m.sub.i to cover a region of interest of the surface 100. For example, the region of interest may be the region currently under consideration for route planning. Alternatively, the region of interest may be a corridor extending from the AV 110 to a next destination assigned by a transport mission that is in progress; the width of the corridor can be chosen based on earlier runs, e.g., the smallest width that has been found to allow efficient route planning in normal circumstances.
[0044] The decision to enable 210a or disable 210b movement may remain in force until the assessing step 208 is repeated. The assessing step 208 can be repeated in response to an updating of the model and/or an updating of the occupancy thresholds. To repeat the assessing step 208 in these cases, it may or may not be necessary to execute all of the preceding steps anew.
[0045] In a second embodiment, the method 200 comprises a further step 204 in which a current position of the AV 110 is determined. The position may be determined based on data from a global navigation satellite system (GNSS) receiver, cellular-network positioning, inertial measurements, an optical or radio-frequency (RF) fiducial deployed at a known reference location, or the like. Using the current position of the AV 110, it is possible to define a dynamic division of the surface 100 into two or more zones.
[0046] A simple option is to split the surface 100 into two zones M.sub.far, M.sub.near and to define the occupancy threshold as follows:
where the constants t.sub.1, t.sub.2 satisfy t.sub.1<t.sub.2. The near zone M.sub.near may be defined as all points on the surface 100 which are closer than a predefined distance to a reference point on the AV 110, such as an approximate center, or a driver position. Alternatively, the near zone M.sub.near may be defined as all points on the surface 100 which are closer than a predefined distance to a nearest point on an approximate horizontal contour of the AV 110. The horizontal contour may alternatively be described as the ground projection of the AV 110. Ways of converting such point sets into equivalent sets of areas m.sub.i in the model have been suggested above in connection with sensor FOVs.
[0047] A somewhat more complex option is to divide the surface 100 into three or more zones M.sub.1, M.sub.2, M.sub.3, . . . . The zones may be concentric on a reference point on the AV 100, and they may have a circular-annular shape or a shape approximating the horizontal contour of the AV 110. In the case of three zones, the occupancy threshold can be defined as follows:
where t.sub.1<t.sub.2<t.sub.3 and M.sub.1 represents the farthest, M.sub.2 the intermediate and M.sub.3 the nearest zone. A variation is illustrated in
[0048] A still further option is to define the occupancy threshold continuously, as per:
t(m.sub.i)=?(d(m.sub.i,X.sub.110)),
where d is a distance function, X.sub.110 denotes the position of the AV 110, and j is a nonincreasing function. For example, one may use ?(s)=min{t.sub.0, 1/s}, where t.sub.0 is a preset maximum occupancy threshold to be applied.
[0049] In each of the first and second embodiments, the method 200 may include one or more of the following optional steps after the enabling 210a or disabling 210b of movement into areas m.sub.i of the surface 100.
[0050] In one optional step 212 of the method 200, the speed of the AV 110 is controlled such that the AV 110 is at least one stopping distance away from any areas m.sub.i into which movement is disabled. It is known that the stopping distance is a (generally superlinear) function of speed, which may have a further dependence on road conditions. The criterion of having at least one stopping distance away from any areas m.sub.i into which movement is disabled may be relaxed so that it applies only for areas m.sub.i ahead of the AV 110, e.g., areas m.sub.i belonging to a frontal halfplane relative to the AV 110.
[0051] In another optional step 214, a route of the AV 110 towards a destination is generated, wherein the route passes only via such areas into which movement has been enabled 210a. Further a time of arrival at the destination is estimated. The estimation may take into account a velocity profile of the route; the velocity profile may observe one of the criteria stated in step 212.
[0052] In a further optional step 216, the current position of the AV 110 is determined and the occupancy threshold t) is updated. The execution of step 216 may end after the current position of the AV 110 has been determined and found to differ by less than a predefined threshold distance from the previous position of the AV 110; in this case the new occupancy threshold t) may be set equal to the previous occupancy threshold t).
[0053] In a further development of step 216, the updating of the occupancy threshold t) takes into account a current orientation of the AV 110. The orientation may for example affect the FOV of a vehicle-carried sensor 112 relative to the surface 110. Further, a change of AV orientation may further lead to a corresponding change in the orientation of a contour that moves with the AV 110, such as one of the contours 722, 724 illustrated in
[0054] The present disclosure has proposed various ways of safeguarding a desired deterministic behavior of an AV that could also circumvents issues with possible blind spots of the sensor setup. It does so without strict requirements as to how a model (world model) shall be represented, but rather uses an interpretation of the uncertainties inherent to the representation so as to combine a pessimistic behavior (which, in isolation, could lead to low productivity) with an optimistic behavior (which, in isolation, might produce an unsafe system). The invention reaps the benefits of these two behaviors into a balanced model where the interpretation of the modeland thus the behavior of the ego vehicleis be made dependent on the closeness to the ego vehicle. As seen in some embodiments, a pessimistic behavior is applied close to the ego vehicle, whereas further away a more optimistic behavior is configured. This leads to higher productivity while maintaining a safety-oriented pessimism in respect of areas close to the ego vehicle.
[0055] As mentioned, the example methods disclosed herein may be carried out by the vehicle controller 130, which can be implemented as a computer system. The computer system is adapted to execute instructions from a computer-readable medium to perform these and/or any of the functions or processing described herein. The computer system may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. While only a single device is illustrated, the computer system may include any collection of devices that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Accordingly, any reference in the disclosure and/or claims to a computer system, computing system, computer device, computing device, control system, control unit, electronic control unit (ECU), processor device, processing circuitry, etc., includes reference to one or more such devices to individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. For example, control system may include a single control unit or a plurality of control units connected or otherwise communicatively coupled to each other, such that any performed function may be distributed between the control units as desired. Further, such devices may communicate with each other or other devices by various system architectures, such as directly or via a Controller Area Network (CAN) bus, etc.
[0056] The computer system may comprise at least one computing device or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein. The computer system may include processing circuitry 132 (e.g., processing circuitry including one or more processor devices or control units), a memory, and a system bus (solid lines). The computer system may include at least one computing device having the processing circuitry. The system bus provides an interface for system components including, but not limited to, the memory and the processing circuitry. The processing circuitry may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory. The processing circuitry 132 may, for example, include a general-purpose processor, an application specific processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a circuit containing processing components, a group of distributed processing components, a group of distributed computers configured for processing, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processing circuitry 132 may further include computer executable code that controls operation of the programmable device.
[0057] The system bus may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of bus architectures. The memory may be one or more devices for storing data and/or computer code for completing or facilitating methods described herein. The memory may include database components, object code components, script components, or other types of information structure for supporting the various activities herein. Any distributed or local memory device may be utilized with the systems and methods of this description. The memory may be communicably connected to the processing circuitry (e.g., via a circuit or any other wired, wireless, or network connection) and may include computer code for executing one or more processes described herein. The memory may include non-volatile memory (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory (e.g., random-access memory (RAM)), or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a computer or other machine with processing circuitry. A basic input/output system (BIOS) may be stored in the non-volatile memory and can include the basic routines that help to transfer information between elements within the computer system.
[0058] The computer system may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
[0059] Computer-code which is hard- or soft-coded may be provided in the form of one or more modules. The module(s) can be implemented as software and/or hard-coded in circuitry to implement the functionality described herein in whole or in part. The modules may be stored in the storage device and/or in the volatile memory, which may include an operating system and/or one or more program modules. All or a portion of the examples disclosed herein may be implemented as a computer program stored on a transitory or non-transitory computer-usable or computer-readable storage medium (e.g., single medium or multiple media), such as the storage device, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry to carry out actions described herein. Thus, the computer-readable program code of the computer program can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry. In some examples, the storage device may be a computer program product (e.g., readable storage medium) storing the computer program thereon, where at least a portion of a computer program may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry. The processing circuitry may serve as a controller or control system for the computer system that is to implement the functionality described herein.
[0060] The computer system may include an input device interface configured to receive input and selections to be communicated to the computer system when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry through the input device interface(s) 134, 138 coupled to the system bus but can be connected through other interfaces, such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computer system may include an output device interface 136 configured to forward output, such as to a display, a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system may include a communications interface suitable for communicating with a network as appropriate or desired.
[0061] The operational actions described in any of the exemplary aspects herein are described to provide examples and discussion. The actions may be performed by hardware components, may be embodied in machine-executable instructions to cause a processor to perform the actions, or may be performed by a combination of hardware and software. Although a specific order of method actions may be shown or described, the order of the actions may differ. In addition, two or more actions may be performed concurrently or with partial concurrence. The aspects of the present disclosure have mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.