Vehicle travel path determination
By using shrinking hypercube optimization and node connector path determination, the problem of determining the fast and safe driving path of autonomous vehicles in complex road environments has been solved, improving navigation efficiency and safety.
Patent Information
- Application Number
- CN202380094991.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-29
- Filing Date
- 2023-04-14
- Publication Date
- 2025-10-24
AI Technical Summary
Existing technologies struggle to quickly and safely determine travel paths when navigating autonomous or semi-autonomous vehicles, especially when avoiding obstacles in complex road environments.
By employing shrinking hypercube optimization, the search space for the travel path is reduced. Combined with node connector path determination, the travel path is quickly and accurately determined using the vehicle's computing system.
It enables the rapid and safe determination of driving routes in complex road environments, reduces the risk of collisions with obstacles, and improves navigation efficiency.
Smart Images

Figure CN120835983A_ABST
Abstract
Description
Cross Reference to Related Applications
[0001] This application claims the benefit of the priority date of U.S. Provisional Patent Application No. 63 / 435,905, filed December 29, 2022. BACKGROUND
[0002] Autonomous or semi-autonomous vehicles navigate through an environment based on sensor and other data. Mapping data of the environment can be used to determine a travel path through road lanes and intersections. BRIEF DESCRIPTION OF DRAWINGS
[0003] Figure 1 is an example environment in which a platoon management system and a vehicle including one or more components of an autonomous system can be implemented;
[0004] Figure 2 is a diagram of one or more systems of a vehicle including an autonomous system;
[0005] Figure 3 is Figure 1 and Figure 2 a diagram of one or more devices and / or components of one or more systems;
[0006] Figure 4 is a diagram of certain components of an autonomous system;
[0007] Figure 5 is a diagram of a travel path;
[0008] Figure 6 is a diagram of an example of a process to determine a travel path;
[0009] Figure 7 is a diagram of a road lane;
[0010] Figures 8A-8E is a diagram of a road lane;
[0011] Figure 9 is a diagram of a node in a road lane;
[0012] Figure 10 is a diagram of an example of a process to determine a travel path;
[0013] Figures 11A-11C is a diagram defining a shrinking hypercube of a node;
[0014] Figure 12 is a diagram of an example of a process to determine a connector path;
[0015] Figure 13 is a diagram of a connector path. DETAILED DESCRIPTION
[0016] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, to one skilled in the art that the embodiments described herein can be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the aspects of the present disclosure.
[0017] In the drawings, for ease of description, specific arrangements or orders of illustrative elements (such as those representing systems, devices, modules, instruction blocks, and / or data elements, etc.) are illustrated. However, one skilled in the art will understand that, unless explicitly described, the specific order or arrangement of the illustrative elements in the drawings is not intended to mean that a particular processing order or sequence, or separation of processing, is required. Moreover, unless explicitly described, inclusion of an illustrative element in the drawings is not intended to mean that such element is required in all embodiments, nor is it intended to mean that the features represented by such element cannot be included in some embodiments or combined with other elements in some embodiments.
[0018] Further, in the drawings, connecting elements (such as solid or dashed lines or arrows, etc.) are used to illustrate connections, relationships or associations between or among two or more other illustrative elements, and the absence of any such connecting elements is not intended to imply that a connection, relationship or association cannot exist. In other words, some connections, relationships or associations between elements are not illustrated in the drawings to not obscure the disclosure. Additionally, for ease of illustration, a single connecting element can be used to represent multiple connections, relationships or associations between elements. For example, if a connecting element represents communication of signals, data or instructions (e.g., “software instructions”), one skilled in the art will appreciate that such element can represent one or more signal paths (e.g., buses) that can be required for communication to occur.
[0019] Although the terms “first,” “second,” and / or “third” and / or the like are used to describe various elements, these elements should not be limited by these terms. The terms “first,” “second,” and / or “third” are merely used to distinguish one element from another. For example, a first contact could be termed a second contact, and similarly, a second contact could be termed a first contact, without departing from the scope of the described embodiments. The first contact and the second contact are both contacts, but they are not the same contact.
[0020] The terminology used in the description of the various embodiments described herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various embodiments and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and / or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” and / or “has a” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0021] As used herein, the terms “communication” and “in communication” mean at least one of receiving, receiving, transmitting, transferring, and / or providing, among others, information (or information represented by, for example, data, signals, messages, instructions, and / or commands). For a unit (e.g., a device, a system, a component of a device or system, and / or a combination thereof, among others) to be in communication with another unit means that the one unit is capable of either directly or indirectly receiving information from and / or transmitting (e.g., sending) information to the other unit. This can refer to a direct or indirect connection that is wired and / or wireless in nature. Additionally, two units can be in communication with each other even though information that is transmitted can be modified, processed, relayed, and / or routed between the first and second unit. For example, a first unit can be in communication with a second unit even though the first unit passively receives information and does not actively transmit information to the second unit. As another example, a first unit can be in communication with a second unit if at least one intermediary unit (e.g., a third unit positioned between the first and second units) processes information received from the first unit and transmits the processed information to the second unit. In some embodiments, a message can refer to a network packet (e.g., a data packet, among others) that includes data.
[0022] As used herein, the term “if’ is, optionally, interpreted as meaning “when,” “while,” “in response to a determination that,” and / or “in response to a detection that,” among others, depending on the context. Similarly, the phrase “if it is determined” or “if [stated condition or event] is detected” is, optionally, interpreted as meaning “upon a determination that,” “in response to a determination that,” or “upon a detection that [stated condition or event],” and / or “in response to a detection that [stated condition or event],” among others, depending on the context. Also, as used herein, the terms “have,” “has,” or “having” or variants thereof are intended to be open-ended terms. Further, the phrase “based on” is intended to be similarly open-ended, unless otherwise stated.
[0023] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description of embodiments, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments can be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
[0024] OVERVIEW
[0025] In some aspects and / or embodiments, the systems, methods, and computer program products described herein include and / or implement techniques for determining a travel path for a vehicle, such as an autonomous or semi-autonomous vehicle. In some embodiments, a search space for a travel path can be limited to a narrowed road lane based on curbs, parking, and other features. In some embodiments, a contracted hypercube optimization process is used to determine nodes of a travel path.
[0026] With implementation of the systems, methods, and computer program products described herein, a travel path can be determined more quickly (e.g., in real-time or near real-time) by reducing a search space for the travel path. The determined travel path can be better in one or more aspects than a travel path defined by other processes, e.g., safer by avoiding obstacles near a road lane. In some embodiments, travel path determination can be accelerated by using a contracted hypercube optimization process for determining nodes of a travel path. In some embodiments, connector paths between travel paths can be determined quickly by one or more of: (i) search space reduction in areas (e.g., intersections) between travel paths, and (ii) a node-based connector path determination process. Thus, travel paths can be accurately, quickly, and efficiently determined with a computing system remote from a vehicle and / or with a computing system on-board the vehicle itself.
[0027] Reference is now made to Figure 1 , an example environment 100 is illustrated in which vehicles including autonomous systems and vehicles not including autonomous systems operate. As illustrated, the environment 100 includes vehicles 102a-102n, objects 104a-104n, routes 106a-106n, an area 108, vehicle-to-infrastructure (V2I) devices 110, a network 112, a remote autonomous vehicle (AV) system 114, a platoon management system 116, and a V2I system 118. The vehicles 102a-102n, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the autonomous vehicle (AV) system 114, the platoon management system 116, and the V2I system 118 are interconnected (e.g., connections for communication are established, etc.) via wired connections, wireless connections, or a combination of wired or wireless connections. In some embodiments, the objects 104a-104n are interconnected with at least one of the vehicles 102a-102n, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the autonomous vehicle (AV) system 114, the platoon management system 116, and the V2I system 118 via wired connections, wireless connections, or a combination of wired or wireless connections.
[0028] The vehicles 102a-102n, individually referred to as a vehicle 102 and collectively referred to as vehicles 102, include at least one device configured to transport goods and / or people. In some embodiments, the vehicles 102 are configured to communicate with the V2I devices 110, the remote AV system 114, the platoon management system 116, and / or the V2I system 118 via the network 112. In some embodiments, the vehicles 102 include cars, buses, trucks, and / or trains, among others. In some embodiments, the vehicles 102 are the same as or similar to the vehicles 200 described herein (see Figure 2 ) In some embodiments, vehicles 200 of a set of vehicles 200 are associated with an autonomous platoon manager. In some embodiments, the vehicles 102 travel along respective routes 106a-106n, individually referred to as a route 106 and collectively referred to as routes 106, as described herein. In some embodiments, one or more vehicles 102 include an autonomous system (e.g., an autonomous system that is the same as or similar to the autonomous system 202).
[0029] Objects 104a-104n (individually referred to as object 104 and collectively as objects 104) include, for example, at least one vehicle, at least one pedestrian, at least one cyclist, and / or at least one construction (e.g., a building, a sign, a fire hydrant, etc.), among others. Each object 104 is stationary (e.g., located at a fixed location and for a period of time) or moving (e.g., has a velocity and is associated with at least one trajectory). In some embodiments, objects 104 are associated with respective locations in region 108.
[0030] Routes 106a-106n (individually referred to as route 106 and collectively as routes 106) are each associated with (e.g., prescribed) a sequence of actions (also referred to as a trajectory) connecting states along which AV can navigate. Each route 106 begins at an initial state (e.g., a state corresponding to a first spatiotemporal location and / or velocity, among others) and ends at a final target state (e.g., a state corresponding to a second spatiotemporal location different from the first spatiotemporal location) or a target region (e.g., a subspace of acceptable states (e.g., terminal states)). In some embodiments, the first state includes a location at which one or more individuals are to be picked up by the AV, and the second state or region includes one or more locations at which the one or more individuals picked up by the AV are to be dropped off. In some embodiments, route 106 includes a plurality of sequences of acceptable states (e.g., a plurality of sequences of spatiotemporal locations), which are associated with (e.g., define) a plurality of trajectories. In an example, route 106 includes only high-level actions or imprecise state locations, such as a sequence of connected roads indicating a turn at an intersection, among others. Additionally or alternatively, route 106 can include more precise actions or states, such as, for example, a specific target lane or precise location within a lane region and a target velocity at these locations, among others. In an example, route 106 includes a plurality of sequences of precise states along at least one high-level action with a limited look-ahead to an intermediate target, where a combination of successive iterations of the limited look-ahead state sequence cumulatively corresponds to a plurality of trajectories collectively forming a high-level route that terminates at a final target state or region. When route 106 is associated with a spatial trajectory within and / or between road lanes or other roadways to be followed by vehicle 102, route 106 can be referred to as a “driving path.”
[0031] The region 108 includes a physical region (e.g., a geographic area) that the vehicle 102 can navigate. In examples, the region 108 includes at least one state (e.g., a country, a province, an individual state included in a country, etc.), at least a portion of a state, at least one city, at least a portion of a city, etc. In some embodiments, the region 108 includes at least one named thoroughfare (referred to herein as a “road”), such as a highway, an interstate, a parkway, a city street, etc. Additionally or alternatively, in some examples, the region 108 includes at least one unnamed road, such as a driveway, a section of a parking lot, a section of an empty lot and / or undeveloped area, a dirt road, etc. In some embodiments, a road includes at least one lane (e.g., a portion of the road that the vehicle 102 can traverse). In examples, a road includes at least one lane associated with (e.g., identified based on) at least one lane marker.
[0032] The vehicle-to-infrastructure (V2I) device 110 (sometimes referred to as a vehicle-to-infrastructure or vehicle-to-anything (Vehicle-to-Everything) (V2X) device) includes at least one device configured to communicate with the vehicle 102 and / or the V2I system 118. In some embodiments, the V2I device 110 is configured to communicate with the vehicle 102, the remote AV system 114, the platoon management system 116, and / or the V2I system 118 via the network 112. In some embodiments, the V2I device 110 includes a radio frequency identification (RFID) device, a sign, a camera (e.g., a two-dimensional (2D) and / or a three-dimensional (3D) camera), a lane marker, a streetlight, a parking meter, etc. In some embodiments, the V2I device 110 is configured to directly communicate with the vehicle 102. Additionally or alternatively, in some embodiments, the V2I device 110 is configured to communicate with the vehicle 102, the remote AV system 114, and / or the platoon management system 116 via the V2I system 118. In some embodiments, the V2I device 110 is configured to communicate with the V2I system 118 via the network 112.
[0033] The network 112 includes one or more wired and / or wireless networks. In examples, the network 112 includes a cellular network (e.g., a long-term evolution (LTE) network, a third generation (3G) network, a fourth generation (4G) network, a fifth generation (5G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, etc., and / or a combination of one or more of the foregoing networks.
[0034] The remote AV system 114 includes at least one device configured to communicate with the vehicle 102, the V2I devices 110, the network 112, the queue management system 116, and / or the V2I system 118 via the network 112. In an example, the remote AV system 114 includes a server, a group of servers, and / or other similar devices. In some embodiments, the remote AV system 114 is co-located with the queue management system 116. In some embodiments, the remote AV system 114 involves installation of some or all of the components of the vehicle, including autonomous systems, autonomous vehicle computing, and / or software implemented by autonomous vehicle computing, etc. In some embodiments, the remote AV system 114 maintains (e.g., updates and / or replaces) these components and / or software during the life of the vehicle.
[0035] The queue management system 116 includes at least one device configured to communicate with the vehicle 102, the V2I devices 110, the remote AV system 114, and / or the V2I system 118. In an example, the queue management system 116 includes a server, a group of servers, and / or other similar devices. In some embodiments, the queue management system 116 is associated with a carpool company (e.g., an organization for controlling operations of multiple vehicles (e.g., vehicles including autonomous systems and / or vehicles not including autonomous systems), etc.). The queue management system 116 can provide route data and / or travel path data to the vehicle 102 for the vehicle 102 to navigate based on the route data and / or travel path data.
[0036] In some embodiments, the V2I system 118 includes at least one device configured to communicate with the vehicle 102, the V2I devices 110, the remote AV system 114, and / or the queue management system 116 via the network 112. In some examples, the V2I system 118 is configured to communicate with the V2I devices 110 via a connection different from the network 112. In some embodiments, the V2I system 118 includes a server, a group of servers, and / or other similar devices. In some embodiments, the V2I system 118 is associated with a municipal authority or a private organization (e.g., a private organization for maintaining the V2I devices 110, etc.).
[0037] Provided Figure 1 The number and arrangement of illustrated components are Figure 1 There can be additional components, fewer components, different components, and / or differently arranged components than those shown. Additionally or alternatively, at least one component of the environment 100 can be implemented by Figure 1Additionally or alternatively, the at least one element set of the environment 100 can perform one or more functions described as being performed by a different at least one element set of the environment 100.
[0038] Reference is now made to Figure 2 The vehicle 200 (which can be the same as or similar to the vehicle 102 of Figure 1 includes or is associated with an autonomy system 202, a powertrain control system 204, a steering control system 206, and a braking system 208. In some embodiments, the vehicle 200 is the same as or similar to the vehicle 102 (see Figure 1 ). In some embodiments, the autonomy system 202 is configured to impart autonomous driving capabilities to the vehicle 200 (e.g., to implement at least one driving automated or maneuver-based function, feature, and / or device that enables the vehicle 200 to operate partially or fully without human intervention, including but not limited to fully autonomous vehicles (e.g., vehicles that relinquish reliance on human intervention, such as Level 5 ADS operating vehicles, etc.), highly autonomous vehicles (e.g., vehicles that relinquish reliance on human intervention in certain situations, such as Level 4 ADS operating vehicles, etc.), and / or conditionally autonomous vehicles (e.g., vehicles that relinquish reliance on human intervention in limited situations, such as Level 3 ADS operating vehicles, etc.), etc.). In one embodiment, the autonomy system 202 includes operational or tactical functionality required for the vehicle 200 to operate in on-road traffic and to continuously perform part or all of a dynamic driving task (DDT). In another embodiment, the autonomy system 202 includes an advanced driver assistance system (ADAS) that includes driver support features. The autonomy system 202 supports various levels of driving automation ranging from no driving automation (e.g., Level 0) to full driving automation (e.g., Level 5). For detailed descriptions of fully autonomous vehicles and highly autonomous vehicles, reference can be made to SAE International's standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, the entirety of which is incorporated by reference. In some embodiments, the vehicle 200 is associated with an autonomous platoon manager and / or a ride-share company.
[0039] Autonomous system 202 includes a sensor suite comprising one or more devices, such as a camera 202a, a LiDAR sensor 202b, a Radar sensor 202c, and a microphone 202d. In some embodiments, autonomous system 202 may include more, fewer, and / or different devices (e.g., ultrasonic sensors, inertial sensors, a GPS receiver (discussed below), and / or an odometer sensor for generating data associated with an indication of the distance traveled by vehicle 200). In some embodiments, autonomous system 202 uses one or more devices included in autonomous system 202 to generate data associated with environment 100, as described herein. The data generated by one or more devices of autonomous system 202 may be used by one or more systems described herein to observe the environment in which vehicle 200 is located (e.g., environment 100). In some embodiments, autonomous system 202 includes a communication device 202e, autonomous vehicle computing 202f, a drive-by-wire (DBW) system 202h, and a safety controller 202g.
[0040] The camera 202a includes a camera configured to communicate with the communication device 202e, the autonomous vehicle computer 202f, and / or the safety controller 202g via a bus (e.g., Figure 3 The camera 202a includes at least one device for communicating with the bus 302 (the same or similar bus as the bus 302). The camera 202a includes at least one camera (e.g., a digital camera using a light sensor such as a charge coupled device (CCD), a thermal camera, an infrared (IR) camera, and / or an event camera, etc.) to capture images including physical objects (e.g., cars, buses, curbs and / or people, etc.). In some embodiments, the camera 202a generates camera data as output. In some examples, the camera 202a generates camera data including image data associated with the image. In this example, the image data may specify at least one parameter corresponding to the image (e.g., image characteristics such as exposure, brightness, and / or image timestamp, etc.). In such an example, the image may be in a format (e.g., RAW, JPEG, and / or PNG, etc.). In some embodiments, the camera 202a includes a plurality of independent cameras configured (e.g., positioned) on the vehicle to capture images for the purpose of stereoscopic imaging (stereo vision). In some examples, the camera 202a includes a computer system that generates image data and transmits the image data to the autonomous vehicle computing 202f and / or a fleet management system (e.g., with Figure 1multiple cameras of the same or similar queue management system as the queue management system 116. In such examples, the autonomous vehicle computing 202f determines a depth to one or more objects in a field of view of at least two of the multiple cameras based on image data from the at least two cameras. In some embodiments, the camera 202a is configured to capture images of objects within a distance (e.g., up to 100 meters and / or up to 1 kilometer, etc.) relative to the camera 202a. Accordingly, the camera 202a includes features such as sensors and lenses that are optimized for perceiving objects at one or more distances relative to the camera 202a.
[0041] In embodiments, the camera 202a includes at least one camera configured to capture one or more images associated with one or more traffic lights, street signs, and / or other physical objects that provide visual navigation information. In some embodiments, the camera 202a generates traffic light data associated with one or more images. In some examples, the camera 202a generates TLD (traffic light detection) data associated with one or more images including a format (e.g., RAW, JPEG, and / or PNG, etc.). In some embodiments, the camera 202a that generates TLD data differs from other systems incorporating cameras described herein in that the camera 202a can include one or more cameras with a wide field of view (e.g., a wide-angle lens, a fisheye lens, and / or a lens with an angle of view of about 120 degrees or greater, etc.) to generate images related to as many physical objects as possible.
[0042] A Light Detection and Ranging (LiDAR) sensor 202b includes one or more LiDAR sensors configured to communicate with the communication device 202e, the autonomous vehicle computing 202f, and / or the safety controller 202g via a bus (e.g., a CAN bus, a MOST bus, and / or a FlexRay bus, etc.) and / or a wireless communication link. In some embodiments, the LiDAR sensor 202b is configured to generate data associated with a three-dimensional map of a surrounding environment of the autonomous vehicle 200. In some examples, the LiDAR sensor 202b is configured to generate data associated with a three-dimensional map of a surrounding environment of the autonomous vehicle 200 within a distance (e.g., up to 100 meters and / or up to 1 kilometer, etc.) relative to the LiDAR sensor 202b. Accordingly, the LiDAR sensor 202b includes features such as sensors and lenses that are optimized for perceiving objects at one or more distances relative to the LiDAR sensor 202b. Figure 3LiDAR sensor 202b includes at least one device in communication with communication device 202e, autonomous vehicle computing 202f, and / or safety controller 202g via a bus (e.g., the same or similar bus as bus 302). LiDAR sensor 202b includes a system configured to emit light from a light emitter (e.g., a laser emitter). The light emitted by LiDAR sensor 202b includes light outside of the visible spectrum (e.g., infrared light, etc.). In some embodiments, during operation, the light emitted by LiDAR sensor 202b encounters a physical object (e.g., a vehicle) and is reflected back to LiDAR sensor 202b. In some embodiments, the light emitted by LiDAR sensor 202b does not penetrate the physical object that the light encounters. LiDAR sensor 202b also includes at least one light detector that detects the light after the light emitted from the light emitter encounters a physical object. In some embodiments, at least one data processing system associated with LiDAR sensor 202b generates an image (e.g., a point cloud and / or a combined point cloud, etc.) representing objects included in the field of view of LiDAR sensor 202b. In some examples, at least one data processing system associated with LiDAR sensor 202b generates an image representing a boundary of a physical object and / or a surface of a physical object (e.g., a topology of a surface), etc. In such examples, the image is used to determine the boundary of the physical object in the field of view of LiDAR sensor 202b.
[0043] Radio Detection and Ranging (Radar) sensor 202c includes at least one device in communication with communication device 202e, autonomous vehicle computing 202f, and / or safety controller 202g via a bus (e.g., the same or similar bus as bus 302). Radar sensor 202c includes a system configured to emit (pulsed or continuous) radio waves. The radio waves emitted by Radar sensor 202c include radio waves within a predetermined frequency spectrum. In some embodiments, during operation, the radio waves emitted by Radar sensor 202c encounter a physical object and are reflected back to Radar sensor 202c. In some embodiments, the radio waves emitted by Radar sensor 202c are not reflected by some objects. In some embodiments, at least one data processing system associated with Radar sensor 202c generates a signal representing objects included in the field of view of Radar sensor 202c. For example, at least one data processing system associated with Radar sensor 202c generates an image representing a boundary of a physical object and / or a surface of a physical object (e.g., a topology of a surface), etc. In some examples, the image is used to determine the boundary of the physical object in the field of view of Radar sensor 202c. Figure 3
[0044] Microphone 202d includes at least one device configured to communicate with communication device 202e, autonomous vehicle computing 202f, and / or safety controller 202g via a bus (e.g., the same or similar bus as bus 302 of Figure 3 Microphone 202d includes one or more microphones (e.g., array microphones and / or external microphones, etc.) that capture audio signals and generate data associated with (e.g., representative of) the audio signals. In some examples, microphone 202d includes transducer devices and / or the like. In some embodiments, one or more systems described herein can receive data generated by microphone 202d and determine a location (e.g., distance, etc.) of an object relative to vehicle 200 based on the audio signals associated with the data.
[0045] Communication device 202e includes at least one device configured to communicate with camera 202a, LiDAR sensor 202b, Radar sensor 202c, microphone 202d, autonomous vehicle computing 202f, safety controller 202g, and / or DBW (drive-by-wire) system 202h. For example, communication device 202e can include the same or similar devices as communication interface 314 of Figure 3 In some embodiments, communication device 202e includes a vehicle-to-vehicle (V2V) communication device (e.g., a device for enabling wireless communication of data between vehicles).
[0046] Autonomous vehicle computing 202f includes at least one device configured to communicate with camera 202a, LiDAR sensor 202b, Radar sensor 202c, microphone 202d, communication device 202e, safety controller 202g, and / or DBW system 202h. In some examples, autonomous vehicle computing 202f includes devices such as client devices, mobile devices (e.g., cellular phones and / or tablets, etc.), and / or servers (e.g., computing devices including one or more central processing units and / or graphics processing units, etc.). In some embodiments, autonomous vehicle computing 202f is the same as or similar to autonomous vehicle computing 400 described herein. Additionally or alternatively, in some embodiments, autonomous vehicle computing 202f is configured to communicate with autonomous vehicle systems (e.g., the same or similar autonomous vehicle systems as remote AV systems 114 of Figure 1 queue management systems (e.g., the same or similar queue management systems as queue management systems 116 of Figure 1 V2I devices (e.g., the same or similar V2I devices as V2I devices 110 of Figure 1 and / or V2I systems (e.g., the same or similar V2I systems as V2I systems 112 of Figure 1The V2I system 118 communicates with the V2I system 118 of the vehicle 200.
[0047] The safety controller 202g includes at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the communication device 202e, the autonomous vehicle computing 202f, and / or the DBW system 202h. In some examples, the safety controller 202g includes one or more controllers (e.g., electrical controllers and / or electromechanical controllers, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (e.g., the powertrain control system 204, the steering control system 206, and / or the braking system 208, etc.). In some embodiments, the safety controller 202g is configured to generate control signals that take precedence over (e.g., override) control signals generated and / or transmitted by the autonomous vehicle computing 202f.
[0048] The DBW system 202h includes at least one device configured to communicate with the communication device 202e and / or the autonomous vehicle computing 202f. In some examples, the DBW system 202h includes one or more controllers (e.g., electrical controllers and / or electromechanical controllers, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (e.g., the powertrain control system 204, the steering control system 206, and / or the braking system 208, etc.). Additionally or alternatively, one or more controllers of the DBW system 202h are configured to generate and / or transmit control signals to operate at least one different device of the vehicle 200 (e.g., turn signal lights, headlamps, door locks, and / or windshield wipers, etc.).
[0049] The powertrain control system 204 includes at least one device configured to communicate with the DBW system 202h. In some examples, the powertrain control system 204 includes at least one controller and / or actuator, etc. In some embodiments, the powertrain control system 204 receives control signals from the DBW system 202h, and the powertrain control system 204 causes the vehicle 200 to perform longitudinal vehicle motion (such as start moving forward, stop moving forward, start moving backward, stop moving backward, accelerate in a certain direction, decelerate in a certain direction, etc.), or to perform lateral vehicle motion (such as make a left turn and / or make a right turn, etc.). In examples, the powertrain control system 204 causes energy (e.g., fuel and / or electricity, etc.) provided to a motor of the vehicle to increase, remain the same, or decrease, thereby causing at least one wheel of the vehicle 200 to rotate or not rotate.
[0050] The steering control system 206 includes at least one device configured to cause one or more wheels of the vehicle 200 to rotate. In some examples, the steering control system 206 includes at least one controller and / or actuator, etc. In some embodiments, the steering control system 206 causes two front wheels and / or two rear wheels of the vehicle 200 to rotate to the left or right to cause the vehicle 200 to turn left or right. In other words, the steering control system 206 causes the activity required to modulate the y- component of the vehicle’s motion.
[0051] The braking system 208 includes at least one device configured to cause one or more brakes to actuate to cause the vehicle 200 to decelerate and / or remain stationary. In some examples, the braking system 208 includes at least one controller and / or actuator configured to cause one or more calipers associated with one or more wheels of the vehicle 200 to close on a respective rotor of the vehicle 200. Additionally or alternatively, in some examples, the braking system 208 includes an automatic emergency braking (AEB) system and / or a regenerative braking system, etc.
[0052] In some embodiments, the vehicle 200 includes at least one on-board sensor (not explicitly illustrated) for measuring or inferring a property of a state or condition of the vehicle 200. In some examples, the vehicle 200 includes an on-board sensor such as a global positioning system (GPS) receiver, an inertial measurement unit (IMU), a wheel rate sensor, a wheel brake pressure sensor, a wheel torque sensor, an engine torque sensor, and / or a steering angle sensor, etc. Although the braking system 208 is illustrated as being proximal to the vehicle 200 in Figure 2 The braking system 208 can be located anywhere in the vehicle 200.
[0053] Reference is now made to Figure 3, which illustrates a schematic diagram of an apparatus 300. As illustrated, the apparatus 300 includes a processor 304, a memory 306, a storage component 308, an input interface 310, an output interface 312, a communication interface 314, and a bus 302. In some embodiments, the apparatus 300 corresponds to: at least one device of the vehicle 102 (e.g., at least one device of a system of the vehicle 102), at least one device of the remote AV system 114, at least one device of the fleet management system 116, at least one device of the vehicle-to-infrastructure system 118, and / or one or more devices of the network 112 (e.g., one or more devices of a system of the network 112). In some embodiments, one or more devices of vehicle 102 (e.g., one or more devices of a system of vehicle 102), one or more devices of remote AV system 114, one or more devices of queue management system 116, one or more devices of vehicle-to-infrastructure system 118, and / or one or more devices of network 112 (e.g., one or more devices of a system of network 112) include at least one device 300 and / or at least one component of device 300. Figure 3 As shown, apparatus 300 includes a bus 302 , a processor 304 , a memory 306 , a storage component 308 , an input interface 310 , an output interface 312 , and a communication interface 314 .
[0054] Bus 302 includes components that enable communication between components of device 300. In some cases, processor 304 includes a processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), and / or an accelerated processing unit (APU), etc.), a microphone, a digital signal processor (DSP), and / or any processing component that can be programmed to perform at least one function (e.g., a field programmable gate array (FPGA) and / or an application-specific integrated circuit (ASIC), etc.). Memory 306 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic and / or static storage device (e.g., flash memory, magnetic memory, and / or optical memory, etc.) that stores data and / or instructions for use by processor 304.
[0055] The storage component 308 stores data and / or software related to the operation and use of the device 300. In some examples, the storage component 308 includes a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid-state disk, etc.), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a magnetic tape, a CD-ROM, a RAM, a PROM, an EPROM, a FLASH-EPROM, an NV-RAM, and / or another type of computer-readable medium, and a corresponding drive.
[0056] Input interface 310 includes components that permit device 300 to receive information, such as via user input (e.g., touch screen display, keyboard, keypad, mouse, button, switch, microphone, and / or camera, etc.). Additionally or alternatively, in some embodiments, input interface 310 includes sensors (e.g., global positioning system (GPS) receiver, accelerometer, gyroscope, and / or actuator, etc.) to sense information. Output interface 312 includes components that provide output information from device 300 (e.g., display, speaker, and / or one or more light emitting diodes (LED), etc.).
[0057] In some embodiments, communication interface 314 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter) that enables device 300 to communicate with other devices via a wired connection, a wireless connection, or a combination of wired and wireless connections. In some examples, communication interface 314 enables device 300 to receive information from another device and / or provide information to another device. In some examples, communication interface 314 includes an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi® interface, a Bluetooth® interface, a Zigbee® interface, a near-field communication (NFC) interface, a Global Positioning System (GPS) interface, and / or a cellular network interface, among others.
[0058] In some embodiments, device 300 performs one or more processes described herein. Device 300 performs these processes based on processor 304 executing software instructions stored by a computer-readable medium, such as memory 306 and / or storage component 308. A computer-readable medium (e.g., a non-transitory computer-readable medium) is defined herein as a non-transitory memory device. A non-transitory memory device includes a memory space within a single physical storage device or a memory space spread across multiple physical storage devices.
[0059] In some embodiments, software instructions are read from another computer-readable medium or from another device via communication interface 314 into memory 306 and / or storage component 308. The software instructions stored in memory 306 and / or storage component 308, when executed, cause processor 304 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry is used in place of or in combination with software instructions to perform one or more processes described herein. Thus, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.
[0060] Memory 306 and / or storage component 308 include a data store or at least one data structure (e.g., a database, etc.). Apparatus 300 can receive information from, store information in, communicate information to, or retrieve information from the data store or at least one data structure in memory 306 or storage component 308. In some examples, the information includes network data, input data, output data, or any combination thereof.
[0061] In some embodiments, apparatus 300 is configured to execute software instructions stored in memory 306 and / or a memory of another apparatus (e.g., another apparatus that is the same as or similar to apparatus 300). As used herein, the term “module” refers to at least one instruction stored in memory 306 and / or a memory of another apparatus that, when executed by processor 304 and / or a processor of another apparatus (e.g., another apparatus that is the same as or similar to apparatus 300), causes apparatus 300 (e.g., at least one component of apparatus 300) to perform one or more processes described herein. In some embodiments, a module is implemented in software, firmware, and / or hardware, etc.
[0062] Provided are Figure 3 The number and arrangement of components shown in FIG. 3 are provided as an example. In some embodiments, apparatus 300 can include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 3. Additionally or alternatively, a set of components (e.g., one or more components) of apparatus 300 can perform one or more functions described as being performed by another component or set of components of apparatus 300. Figure 3 Apparatus 300 can include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 3. Additionally or alternatively, a set of components (e.g., one or more components) of apparatus 300 can perform one or more functions described as being performed by another component or set of components of apparatus 300.
[0063] Reference is now made to Figure 4, an example block diagram of an autonomous vehicle computing 400 (sometimes referred to as an“AV stack”) is illustrated. As illustrated, the autonomous vehicle computing 400 includes a perception system 402 (sometimes referred to as a perception module), a planning system 404 (sometimes referred to as a planning module), a localization system 406 (sometimes referred to as a localization module), a control system 408 (sometimes referred to as a control module), and a database 410. In some embodiments, the perception system 402, the planning system 404, the localization system 406, the control system 408, and the database 410 are included in and / or implemented in an autonomous navigation system of a vehicle (e.g., the autonomous vehicle computing 202f of the vehicle 200). Additionally or alternatively, in some embodiments, the perception system 402, the planning system 404, the localization system 406, the control system 408, and the database 410 are included in one or more standalone systems (e.g., one or more systems that are the same as or similar to the autonomous vehicle computing 400, etc.). In some examples, the perception system 402, the planning system 404, the localization system 406, the control system 408, and the database 410 are included in one or more standalone systems located in a vehicle and / or at least one remote system as described herein. In some embodiments, any and / or all of the systems included in the autonomous vehicle computing 400 are implemented in software (e.g., software instructions stored in memory), computer hardware (e.g., by a microprocessor, a microcontroller, an application specific integrated circuit (ASIC), and / or a field programmable gate array (FPGA), etc.), or a combination of computer software and computer hardware. It will also be understood that, in some embodiments, the autonomous vehicle computing 400 is configured to communicate with remote systems (e.g., an autonomous vehicle system that is the same as or similar to the remote AV system 114, a queue management system that is the same as or similar to the queue management system 116, and / or a V2I system that is the same as or similar to the V2I system 118, etc.).
[0064] In some embodiments, the perception system 402 receives data associated with at least one physical object in the environment (e.g., data used by the perception system 402 to detect the at least one physical object) and classifies the at least one physical object. In some examples, the perception system 402 receives image data captured by at least one camera (e.g., the camera 202a) that is associated with (e.g., represents) one or more physical objects within a field of view of the at least one camera. In such examples, the perception system 402 classifies the at least one physical object based on one or more groupings of physical objects (e.g., bicycles, vehicles, traffic signs, and / or pedestrians, etc.). In some embodiments, based on the perception system 402 classifying the physical objects, the perception system 402 transmits data associated with the classification of the physical objects to the planning system 404.
[0065] In some embodiments, the planning system 404 receives data associated with a destination and generates data associated with at least one route (e.g., the route 106) that a vehicle (e.g., the vehicle 102) can travel toward the destination. In some embodiments, the planning system 404 receives data (e.g., the data described above associated with the classification of physical objects) from the perception system 402 periodically or continuously, and the planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by the perception system 402. In other words, the planning system 404 can perform tasks related to the tactical functions needed for the vehicle 102 to operate in on-road traffic. Tactical efforts involve maneuvering the vehicle in traffic during a journey, which includes but is not limited to deciding whether and when to pass another vehicle, changing lanes, or choosing appropriate speed, acceleration, deceleration, etc. In some embodiments, the planning system 404 receives data associated with updated locations of the vehicle (e.g., the vehicle 102) from the localization system 406, and the planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by the localization system 406.
[0066] In some embodiments, the localization system 406 receives data associated with (e.g., representing) a location of a vehicle (e.g., the vehicle 102) in an area. In some examples, the localization system 406 receives LiDAR data associated with at least one point cloud generated by at least one LiDAR sensor (e.g., the LiDAR sensor 202b). In certain examples, the localization system 406 receives data associated with at least one point cloud from a plurality of LiDAR sensors, and the localization system 406 generates a combined point cloud based on the individual point clouds. In these examples, the localization system 406 compares the at least one point cloud or the combined point cloud to a two-dimensional (2D) and / or a three-dimensional (3D) map of the area stored in the database 410. Then, based on the localization system 406 comparing the at least one point cloud or the combined point cloud to the map, the localization system 406 determines a position of the vehicle in the area. In some embodiments, the map includes a combined point cloud of the area generated prior to navigation of the vehicle. In some embodiments, the map includes, but is not limited to, a high-precision map of the geometry of a carriageway, a map describing connectivity properties of a road network, a map describing physical properties of a carriageway such as traffic speed, traffic flow, number of vehicle and bicycle traffic lanes, lane width, traffic direction of lanes, or type and location of lane markings, or a combination thereof, and a map describing spatial locations of road features such as pedestrian crossings, traffic signs, or various types of other driving signals. In some embodiments, the map is generated in real-time based on data received by the perception system.
[0067] In another example, the localization system 406 receives global navigation satellite system (GNSS) data generated by a global positioning system (GPS) receiver. In some examples, the localization system 406 receives GNSS data associated with a location of a vehicle in an area, and the localization system 406 determines a latitude and a longitude of the vehicle in the area. In such examples, the localization system 406 determines a position of the vehicle in the area based on the latitude and the longitude of the vehicle. In some embodiments, the localization system 406 generates data associated with the position of the vehicle. In some examples, based on the localization system 406 determining the position of the vehicle, the localization system 406 generates data associated with the position of the vehicle. In such examples, the data associated with the position of the vehicle includes data associated with one or more semantic properties corresponding to the position of the vehicle.
[0068] In some embodiments, the control system 408 receives data associated with the at least one trajectory from the planning system 404, and the control system 408 controls operation of the vehicle. In some examples, the control system 408 receives data associated with the at least one trajectory from the planning system 404, and the control system 408 controls operation of the vehicle by generating and transmitting control signals to cause a powertrain control system (e.g., the DBW system 202h and / or the powertrain control system 204, etc.), a steering control system (e.g., the steering control system 206), and / or a braking system (e.g., the braking system 208) to operate. For example, the control system 408 is configured to perform operational functions such as lateral vehicle motion control or longitudinal vehicle motion control. Lateral vehicle motion control causes activities needed to regulate a y-axis component of vehicle motion. Longitudinal vehicle motion control causes activities needed to regulate an x-axis component of vehicle motion. In an example, where the trajectory includes a left turn, the control system 408 transmits control signals to cause the steering control system 206 to adjust a steering angle of the vehicle 200, thereby causing the vehicle 200 to turn left. Additionally or alternatively, the control system 408 generates and transmits control signals to cause other devices of the vehicle 200 (e.g., headlamps, turn signal lights, door locks, and / or windshield wipers, etc.) to change state.
[0069] In some embodiments, the perception system 402, the planning system 404, the localization system 406, and / or the control system 408 implement at least one machine learning model (e.g., at least one multi-layer perceptron (MLP), at least one convolutional neural network (CNN), at least one recurrent neural network (RNN), at least one autoencoder, and / or at least one transformer, etc.). In some examples, the perception system 402, the planning system 404, the localization system 406, and / or the control system 408 implement the at least one machine learning model individually or in combination with one or more of the systems described above. In some examples, the perception system 402, the planning system 404, the localization system 406, and / or the control system 408 implement the at least one machine learning model as part of a pipeline (e.g., a pipeline for identifying one or more objects located in an environment, etc.).
[0070] The database 410 stores data transmitted to, received from, and / or updated by the perception system 402, the planning system 404, the localization system 406, and / or the control system 408. In some examples, the database 410 includes a storage component (e.g., a memory, a hard drive, etc.) used to store data and / or software related to operation and used by at least one system of the autonomous vehicle computing 400 (e.g., the perception system 402, the planning system 404, the localization system 406, and / or the control system 408, etc.). Figure 3The database 410 can be implemented across multiple devices. In some examples, the database 410 is included in a vehicle (e.g., a vehicle that is the same as or similar to the vehicle 102 and / or the vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system that is the same as or similar to the remote AV system 114), a fleet management system (e.g., a fleet management system that is the same as or similar to the fleet management system 116), a queue management system (e.g., a queue management system that is the same as or similar to the queue management system 118), a V2I system (e.g., a V2I system that is the same as or similar to the V2I system 118), and / or the like.
[0071] In some embodiments, the database 410 can be implemented across multiple devices. In some examples, the database 410 is included in a vehicle (e.g., a vehicle that is the same as or similar to the vehicle 102 and / or the vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system that is the same as or similar to the remote AV system 114), a fleet management system (e.g., a fleet management system that is the same as or similar to the fleet management system 116), a queue management system (e.g., a queue management system that is the same as or similar to the queue management system 118), a V2I system (e.g., a V2I system that is the same as or similar to the V2I system 118), and / or the like. Figure 1 Figure 1 In some embodiments, the database 410 can be implemented across multiple devices. In some examples, the database 410 is included in a vehicle (e.g., a vehicle that is the same as or similar to the vehicle 102 and / or the vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system that is the same as or similar to the remote AV system 114), a fleet management system (e.g., a fleet management system that is the same as or similar to the fleet management system 116), a queue management system (e.g., a queue management system that is the same as or similar to the queue management system 118), a V2I system (e.g., a V2I system that is the same as or similar to the V2I system 118), and / or the like.
[0072] In some embodiments, a vehicle (such as the vehicle 102 and / or the vehicle 200) navigates based on a travel path through an environment. The travel path includes one or more points and / or trajectories in and / or through one or more drivable regions, which can be used for one or more purposes. In some implementations, the travel path is used to guide navigation of a vehicle, e.g., of an autonomous or semi-autonomous vehicle. In some implementations, the travel path is used to predict movements of nearby vehicles. For example, based on sensor data indicative of nearby vehicles, the nearby vehicles can be assigned predicted travel paths that the nearby vehicles are likely to follow, and an autonomous or semi-autonomous vehicle can determine its own navigation based on the predicted travel paths.
[0073] The determination and / or use of travel paths is not limited to direct contexts of vehicle navigation. For example, in some implementations, a set of travel paths for an environment can be used to predict traffic behavior of the environment. As another example, one or more travel paths can be used to model vehicle movement for autonomous vehicle simulation (e.g., training of at least one machine learning model) and / or for safety research.
[0074] In some implementations, a travel path is a baseline travel path that defines a reference path of vehicle navigation through one or more road lanes. The baseline travel path can define an ideal travel path that a vehicle would follow in the absence of objects and / or conditions indicative of deviation from the baseline travel path. In some implementations, multiple baseline travel paths can be defined for a given portion of an environment. For example, different baseline travel paths can correspond to different vehicles (e.g., different vehicle sizes), different time conditions (e.g., rush hour compared to other times), different weather conditions (e.g., rain compared to sunny weather), and / or different routes to travel (e.g., a first baseline travel path in a road lane for a vehicle to proceed along the road lane and continue straight at an intersection, and a second baseline travel path through a road lane for a vehicle to proceed along the road lane and turn left at an intersection).
[0075] For example, in some embodiments, the database 410 or another element of the autonomous vehicle computing 400 of the autonomous vehicle stores data indicative of baseline travel paths through road lanes in an environment. The baseline travel paths can be received at the autonomous vehicle computing 400 from a remote source (e.g., a queue management system 116 that can determine the baseline travel paths in accordance with some embodiments of the present disclosure), and / or can be determined by the autonomous vehicle computing 400 (e.g., by the planning system 404 or another element of the autonomous vehicle computing 400).
[0076] A baseline travel path can include portions through one or more road lanes, intersections, and / or other drivable areas. With reference to Figure 5 The environment 500 includes a first road lane 502, a second road lane 504, and an intersection 506 between the first road lane 502 and the second road lane 504. A baseline travel path 510 is defined through the environment 500, the baseline travel path 510 including a first portion 512a through the first road lane 502, a second portion 512b through the second road lane 504, and a connector portion 512c between the first portion 512a and the second portion 512b (e.g., through the intersection 506). The portions 512a, 512b, 512c can be referred to individually as travel paths.
[0077] In some embodiments, a travel path such as baseline travel path 510 is defined by a plurality of nodes such as Dubins nodes (e.g., nodes 514a, 514b). Each Dubins node is associated with a location and a heading. Figure 5 As shown, a location can be represented by absolute coordinates (e.g., GPS coordinates or longitude and latitude coordinates) and / or local coordinates (e.g., x and y values relative to a reference position). A heading can be represented by absolute coordinates (e.g., angle relative to the north direction) and / or local coordinates (e.g., angle relative to a reference position). A set of Dubins nodes defines a driving path between Dubins nodes, such that a vehicle navigating on the driving path passes through each Dubins node and has a heading of the Dubins node at each Dubins node. A pair of Dubins nodes defines a driving path between Dubins nodes. Given a first Dubins node with a heading, driving is performed along the heading for small discrete distances (e.g., a few centimeters) relative to the first Dubins node. The heading is then recalculated by interpolation so that as the vehicle iteratively travels along the path, the heading value slowly changes from the heading of the first Dubins node to the heading of the second Dubins node. A travel path may additionally or alternatively be defined based on another type of node, such as a set of nodes where the vehicle travels on a linear path between each pair of adjacent nodes.
[0078] When navigating in environment 500, an autonomous or semi-autonomous vehicle may default to traveling along a baseline travel path 510, which may, for example, approximately track the center of a road lane. For example, in some embodiments, planning system 404 generates trajectories that follow baseline travel path 510, which are provided to control system 408 to cause corresponding movement of the vehicle. However, data received by planning system 404 may cause the navigated trajectory to deviate from baseline travel path 510. The deviation(s) from baseline travel path 510 may be based on obstructing object(s), changes in road conditions, changes in traffic regulations (e.g., road signs or traffic signals), and / or other reasons. For example, one or more sensors (e.g., one or more sensors of autonomous system 202) may detect an object 514 in or near the roadway that would obstruct the vehicle's navigation along baseline travel path 510. Accordingly, in some embodiments, planning system 404 determines a trajectory along a modified travel path (e.g., modified travel path 516 that avoids object 514). In some embodiments, modified travel path 516 is determined to return to baseline travel path 510 , thereby representing a temporary deviation from baseline travel path 510 .
[0079] Some embodiments according to the present disclosure relate to a process for determining a driving path (such as a baseline driving path and other types of driving paths) based on narrowing road lanes using a reduced search space. As used herein, the term "road lane" refers not only to the basic lanes of roads, streets, highways, and other roadways, but also to other bounded areas that a vehicle can navigate, such as private driveways, roundabouts, paths within garages, and off-road paths.
[0080] Now refer to Figure 6 , processing 600 can be performed by a system on the autonomous or semi-autonomous vehicle (e.g., by the autonomous vehicle computing 400), by one or more systems remote from the vehicle (e.g., the fleet management system 116 and / or the vehicle to infrastructure system 118), or a combination thereof.
[0081] Process 600 includes obtaining mapping data indicating a boundary of a first road lane (602). Figure 7 As shown, mapping data may spatially describe an environment 700 and indicate boundaries 702a, 702b (generally referred to as boundaries 702) of one or more road lanes 704a, 704b (generally referred to as road lanes 704). In various embodiments, boundaries 702 may track one or more types of environmental features. Figure 7 In the example shown in FIG. 7 , boundary 702 tracks guardrail 706, road paint 708, curb 710, parking space 714, construction area 716, and curb protrusion 718, each of which is an example of an environmental feature. In some embodiments, boundary 702 indicated by mapping data can be defined more broadly; for example, boundary 702 can track guardrail 706, road paint 708, and curb 710 to indicate a wider road lane that may include one or more of parking space 714, construction area 716, and curb protrusion 718. In some implementations, boundary 702 accounts for some environmental features, such as permanent or semi-permanent features (such as parking space 714 and curb protrusion 718), but excludes other environmental features, such as temporary features, such as construction area 716 (e.g., so that the initially provided road lane includes a construction area). Various configurations of boundary 702 that include / exclude various types of environmental features are within the scope of the present disclosure.
[0082] The mapping data may be obtained from one or more sources. In some embodiments, the mapping data is at least partially stored locally in the computing system performing process 600 (e.g., in storage device 308 of device 300 of vehicle 102 or in fleet management system 116). In some embodiments, the mapping data is at least partially obtained from a remote source (e.g., by downloading the mapping data via network 112). In some embodiments, environmental features are indicated in the mapping data.
[0083] The environmental features can be permanent or semi-permanent (e.g., the railing 706 and the curb 710) and / or can be transient (e.g., the construction area 716). While some environmental features, such as the curb bump 718 and the railing 706, can be obstacles that a vehicle can collide with, some embodiments include environmental feature(s) that are not obstacles, such as a crosswalk indicator, a curb ramp, a sign, and any other feature in the environment 700, etc. Other examples of environmental features include vehicles (whether moving or parked), pedestrians and other road users, and flora such as trees. As described in further detail below, any one or more of these and / or other types of environmental features can be used as a basis for narrowing a road lane to obtain a narrowed road lane.
[0084] In some embodiments, each road lane 704 is associated with a direction 712 in the mapping data for indicating a direction of travel in the road lane 704. The mapping data can be in any format suitable for analysis to determine a travel path, such as data for indicating lane properties (e.g., path offsets and / or stop offsets), etc.
[0085] Determining a travel path through a road lane can include analyzing one or more candidate travel paths to determine a particular travel path that satisfies one or more criteria. Referring now to Figure 8A , the candidate travel paths 802a, 802b extend through the road lane 704b. The travel path 804, in addition to extending through the road lane 704b, further extends beyond the road lane 704b, thereby encroaching on the construction area 716. Thus, in some embodiments, the travel path 802a will not be considered in determining a travel path; the determination can exclude any travel path that will extend beyond certain boundaries, such as the boundaries 702b of the road lane 704b, etc. Thus, the road lane 704b defines a search space for determining a particular travel path. As described in further detail below, the two candidate travel paths 802a, 802b that do remain within the road lane 704b can be analyzed, e.g., by computing a cost associated with each candidate travel path 802a, 802b. For example, the candidate travel path with the lowest cost can be determined to be the travel path. In contrast, no cost is computed for the travel path 804 because the travel path 804 is outside of the search space defined by the road lane 704b.
[0086] However, determining a travel path based on a search space of the road lane 704b can be computationally heavy and / or result in a poor selection of the travel path. This is at least because there are candidate travel paths within the road lane 704b that would still be a poor selection of the travel path (e.g., a poor selection of the baseline travel path). For example, the candidate travel path 802a, while not extending into the construction area 716, passes in close proximity to the construction area 716. The close proximity can be closer than a width of the vehicle, such that if the vehicle were to travel along the candidate travel path 802a, an edge of the vehicle would encroach on the construction area 716. Alternatively, even if the vehicle would not encroach on the construction area 716, it can be more preferable for the vehicle to be further away from certain types of environmental features, e.g., for safety reasons. Thus, the computation of a cost associated with the candidate travel path 802a (and / or other computational analysis of the candidate travel path 802a, depending on how the travel path is determined) represents wasted computation, which extends the time consumed in determining a particular travel path and / or increases the computational resources (e.g., processor and / or memory resources) consumed in making the computation.
[0087] According to some embodiments of the present disclosure, with reference again to Figure 6 Rather than directly using a first road lane (e.g., the road lane 704b, hereinafter referred to as the “first” road lane 704b) indicated by mapping data as a search space for travel path determination, a portion of the first road lane is identified as a “narrowed” road lane (604). The narrowed road lane has a reduced width in at least a portion of the narrowed road lane as compared to a corresponding width of the first road lane. Thus, the narrowed road lane represents a respective reduced search space, such that determination of a particular travel path can be made more computationally efficient.
[0088] Various methods and criteria can be used to identify the narrowed road lane. In some implementations, the narrowed road lane is defined based at least in part on one or more environmental features in proximity to the first road lane. For example, a region of the first road lane that includes an area adjacent to at least one of the environmental features can be excluded from the narrowed road lane. As Figure 8BAs shown, the narrowed road lane 806b does not include areas adjacent to the road paint 708, the construction area 716, the parking spot 714, the curb 710, and the curb bumpout 718. For example, at the first driveway portion 808a, the first road lane 704b has a width 810a, while the narrowed road lane 806b has a width 810b that narrows a first width 812a adjacent to the road paint 708 and a second width 812b adjacent to the curb 710. At the second driveway portion 808b, the first road lane 704b has a width 810c, while the narrowed road lane 806b has a width 810d that narrows the first width 812a adjacent to the road paint 708 and a third width 812c adjacent to the parking spot 714.
[0089] In various embodiments, the widths 812a, 812b, 812c (collectively, widths 812) adjacent to the environmental features that define the narrowed width of the narrowed road lane 806b can be the same as or different from one another. In some embodiments, the widths 812 are determined based at least on the type of environmental feature, where certain type(s) of environmental features can correspond to higher widths 812 than other types of environmental features. For example, other conditions being equal, in some embodiments, a curb feature or a parking spot can result in a wider adjacent area of the first road lane being excluded than a railing, as a pedestrian can be more likely to be adjacent to a curb feature or a parking spot than a railing, such that it can be desirable for a vehicle to remain further away from a curb feature or a parking feature than from a railing / wall feature.
[0090] In some embodiments, the widths 812 are determined based on one or more characteristics of the driveway of the road lane. For example, the widths 812 can be determined based on one or more of a curvature of the driveway (e.g., a curvature at the location defining the width) such as a greater width at a location of higher curvature, and a driveway type of the driveway such as a greater width for an urban street and a smaller width for an urban freeway. Determining a particular driving path to use the narrowed road lane as a search space such that the narrowed road lane can be used in part as a coarse safety mechanism to shift the movement of the vehicle toward a safer road location. In some embodiments, the widths 812 are instead or additionally determined based on a size of the vehicle (e.g., as referenced Figures 8C-8E above) and / or based on a geometry of the road lane or driveway, e.g., to be closer to a center of the road lane or driveway (e.g., as referenced Figure 8C above).
[0091] Reference is made to Figure 6 and Figure 8BBased on the narrowed road lane, a reduced search space is used to determine a specific travel path through the narrowed road lane (606). The narrowed road lane spatially restricts candidate travel paths (defined by nodes in some embodiments, as described in more detail below) evaluated (e.g., searched / tested) when performing one or more search processes (such as optimization processes) to determine a travel path from a plurality of candidate travel paths. For the narrowed road lane 806b, candidate travel paths 814a, 814b extending within the narrowed road lane 806b are eligible to be included in the reduced search space, while travel path 816 extending outside the narrowed road lane 806b is not eligible to be included in the reduced search space, e.g., is not subject to analysis during determination of the travel path, or is rejected early in the determination process as a possible travel path, thereby receiving less consideration / analysis compared to candidate travel paths 814a, 814b.
[0092] Determining a travel path from the candidate travel paths of the reduced search space includes one or more suitable analysis processes to select a candidate travel path that best satisfies one or more criteria. The candidate travel paths can be analyzed in parallel and / or sequentially, e.g., using one or more pathfinding algorithms in an iterative process. The analysis processes can include computation of a cost corresponding to the candidate travel paths. A non-limiting example of an algorithm is the A* algorithm. In the A* algorithm, a series of candidate travel paths are iteratively extended from a start point (e.g., a beginning of a road lane) to an end point (e.g., an end of a road lane), thereby attempting to minimize a cost of a cost function computed based on a route of the candidate travel paths. When a narrowed road lane is used as a reduced search space, the A* algorithm does not test candidate travel paths that extend outside the narrowed road lane.
[0093] The cost function can be based on one or more parameters of the candidate travel paths. Non-limiting examples of such parameters include: a distance of the candidate travel path relative to the road lane (e.g., the narrowed road lane, the first road lane, or a carriageway of the narrowed road lane and the first road lane); a curvature of the candidate travel path (e.g., a lower curvature can be associated with a lower cost to produce a straighter travel path that can be easier to navigate); a distance of the candidate travel path relative to the environmental feature(s) (e.g., a longer distance relative to the environmental feature can be associated with a lower cost to produce a travel path further away from the obstacle); and a total length of the candidate travel path (e.g., a shorter total length can be associated with a lower cost to enable travel path navigation efficiency).
[0094] In some embodiments, the reduction in the search space associated with the use of narrowing road lanes acts as a pre-filter for candidate travel paths, making the remaining candidate travel paths within the reduced search space more likely to be close to a particular travel path, e.g., more likely to have a lower cost than the travel paths excluded from the reduced search space. In some embodiments, this can speed up travel path determination. For example, when iteratively analyzing candidate travel paths until the cost falls below a threshold, using initial candidate travel paths with lower costs (based on the fact that narrowing road lanes are generally associated with lower costs) can reduce the number of iterations required to bring the cost below the threshold. Furthermore, because the search space itself is smaller, fewer iterations may be required to explore the search space, further reducing the computational time / cost associated with determining a particular travel path.
[0095] In some embodiments, narrowing road lanes are identified based on the width of the vehicle. The vehicle may be, for example, a standard vehicle associated with a vehicle queue (e.g., a vehicle queue managed by the queue management system 116). In some embodiments, different narrowing road lanes are identified for different vehicles of different sizes, and different specific travel paths are determined for different vehicles based on the different narrowing road lanes.
[0096] like Figure 8C As shown, vehicle 822 has a vehicle width 820. From the lateral boundaries of first road lane 704b (as defined by environmental features in the environment), first road lane 704b is contracted (826) to obtain a narrowing road lane 806c having a lane width 824 (over at least a portion of narrowing road lane 806c) based on vehicle width 820. In some embodiments, lane width 824 is at least vehicle width 820. For example, lane width 824 can be equal to vehicle width 820 or greater than vehicle width 820 by a predetermined factor or amount (e.g., lane width 824 can be equal to 1.1 times vehicle width 820). In some cases, when lane width 824 is less than vehicle width 820, this can reduce computational instability associated with cost determination. The lane width 824 may be obtained by shrinking the first road lane 704b equally from each lateral boundary over at least a portion of the narrowing road lane 806c to obtain a narrowing road lane 806c equidistantly centered relative to the lateral boundaries, and / or, for example, as described with reference to FIG. Figure 8BThe first road lane 704b can contract in width on each side of at least a portion of the narrowed road lane 806c by different amounts. Thus, on at least a portion of the narrowed road lane 806c, the narrowed road lane 806c is identified based on the width 820 of the vehicle 822. Further, the narrowed road lane 806d is laterally centered with respect to the first road lane 704b, which is generally desirable for vehicle navigation.
[0097] Figure 8D Another example of identifying a narrowed road lane based on a vehicle width 820 of the vehicle 822 is illustrated. In this example, on at least a portion of the narrowed road lane 806d, the narrowed road lane 806d is spaced apart from the lateral boundaries of the first road lane 704b by a spacing 828, where the spacing 828 is based on the vehicle width 820 (e.g., as described for the lane width 824). The width of the narrowed road lane 806d can be variable to accommodate the spacing 828 from the boundaries (e.g., environmental features) on each side. In some embodiments, at location(s) such as location 830, where the spacing 828 would leave no space for the narrowed road lane 806d, or otherwise cause the narrowed road lane 806d to have a width below a minimum width, the spacing (e.g., spacing 832) can be set to be less than the spacing 828 based on the width 820 of the vehicle 822. For portions of the narrowed road lane 806d that are spaced apart from environmental features by the spacing 828, where the spacing 828 is (in some embodiments) at least the width 820 of the vehicle 822, the vehicle 822 can avoid contact with the environmental features as long as a portion of the vehicle remains within the narrowed road lane 806d (e.g., following a travel path within the narrowed road lane 806d). Thus, the narrowed road lane 806d provides a reasonable reduced search space upon which to base a determination of a travel path.
[0098] Figure 8EAnother example illustrates identifying a pinch road lane based on a vehicle width 820 of the vehicle 822. In this example, over at least a portion of the pinch road lane 806e, the pinch road lane 806e is spaced apart from the lateral boundary of the first road lane 704b by a spacing 836, where the spacing 836 is based on a width 834 that is half of the vehicle width 820. In some embodiments, the spacing 836 is at least the width 834. For example, the spacing 836 can be equal to the width 834 or greater than the width 834 by a predetermined factor or amount. In some embodiments, the spacing can be set to be less than the spacing 836 at locations where the spacing 836 would leave no space for the pinch road lane 806e or otherwise cause the pinch road lane 806e to have a width below a minimum width. For portions of the pinch road lane 806e that are spaced apart from the environmental feature by the spacing 836 (where the spacing 836 is, in some embodiments, at least the width 834 that is half of the vehicle width 820 of the vehicle 822), the vehicle 822 can avoid contact with the environmental feature as long as the lateral center of the vehicle remains within the pinch road lane 806e (e.g., following a travel path within the pinch road lane 806e). Thus, the pinch road lane 806e provides a reasonable reduced search space on which to base determining a travel path, as in some embodiments, the travel path will be navigated by the vehicle 822 with the lateral center of the vehicle 822 along the state of the travel path.
[0099] In some embodiments, a particular travel path is defined by nodes. Determining a particular travel path (e.g., in the element 606) can include determining nodes, for example, by analyzing a set of candidate nodes that, in some embodiments, define candidate travel paths. Figure 9 An example of a particular travel path 900 defined by a plurality of nodes 902. In different embodiments, the nodes 902 can have one or more types that possess various characteristics. In Figure 9 In an example, the nodes 902 are Dubins nodes each associated with a location (e.g., longitude and latitude) and a heading (e.g., the headings 904) that define a direction of the travel path 900 at the nodes 902. Other type(s) of nodes are also within the scope of the present disclosure for determining a travel path. For example, in some embodiments, a travel path is a Bezier curve defined by a plurality of nodes (e.g., a combination of end points and control points). In some embodiments, a travel path is defined by a plurality of nodes associated with headings, where the headings have a heading in both a horizontal direction and a vertical direction (e.g., an increase in dimension compared to some Dubins nodes that limit the heading to a single plane).
[0100] To determine a node-based travel path, candidate nodes can be moved, added, removed, and / or altered (e.g., altered in heading) in an iterative process to arrive at a node set that satisfies one or more criteria or defines a travel path that satisfies one or more criteria. For example, a candidate node set can define a candidate travel path through a road lane. If the candidate travel path satisfies one or more criteria (e.g., a cost based on a cost function such as described above that is less than a threshold value), the candidate travel path is determined to be a travel path. If the candidate travel path does not satisfy one or more criteria, at least one node is moved, added, removed, or altered to define another candidate travel path. This process can continue in an iterative manner to determine a travel path. In some embodiments, the iterative process searches for a particular travel path that has a cost that is a local or global minimum cost compared to other candidate travel paths; the particular travel path is determined to satisfy one or more criteria.
[0101] In some embodiments, when determining a node-based travel path using a reduced search space of a constricted road lane, the iterative process does not include analysis of travel paths defined by nodes outside of the constricted road lane. For example, the locations of candidate nodes during travel path determination are limited to the constricted road lane. Referring to FIG. 9, node 908 has a location within constricted road lane 906, and in some cases, can be a candidate Dubins node that defines a candidate travel path during determination of particular travel path 900. In contrast, node 910 has a location outside of constricted road lane 906, and thus is not eligible to define a candidate travel path during determination of particular travel path 900. Figure 9
[0102] In some embodiments, an initial node set is defined to start the iterative process, and the initial node set is limited to locations within constricted road lane 906. In some embodiments, as the iterative process continues, as the locations of one or more candidate nodes are adjusted, and / or as one or more additional candidate nodes are added, the adjusted locations and / or the locations of the one or more additional candidate nodes are limited to locations within constricted road lane 906. Thus, constricted road lane 906 represents a reduced search space that can reduce the number of iterations to be made in determining particular travel path 900, and / or otherwise mitigate the computational burden of determining particular travel path 900.
[0103] In some embodiments, a shrunk hypercube optimization process is used to determine nodes for defining a travel path. The shrunk hypercube optimization process can be used in conjunction with a reduced search space associated with a constricted road lane, or can be used on a “unconstricted” road lane (e.g., first road lane 704b).
[0104] As Figure 10 shown, in an example of the process 1000 that includes shrink hypercube optimization, map drawing data is obtained (1002) that indicates boundaries of a first road lane. For example, the element 1002 can be made as described above for the element 602. The process 1000 can be made by a system of an autonomous or semi-autonomous vehicle (e.g., by the autonomous vehicle computing 400), by one or more systems remote from the vehicle (e.g., the fleet management system 116 and / or the vehicle-to-infrastructure system 118), or a combination thereof.
[0105] A set of hypercubes is identified (e.g., initialized) in the first road lane (1004). As used herein, a “hypercube” includes a hyperparallelepiped, where, for example, the dimensions of the hyperparallelepiped in each dimension need not be equal. In some embodiments, each hypercube is associated with a location range and a heading range. Figures 11A-11C An example is illustrated of a hypercube 1102 identified in the first road lane 1100. In this example, each hypercube 1102 is a three-dimensional hypercube (cube) associated with a range of longitude, a range of latitude, and a range of heading, the three ranges defining respective dimensions of the hypercube 1102. The range of longitude and the range of latitude each represent a range of locations of nodes (e.g., Dubins nodes) corresponding to the hypercube 1102. “Longitude” and “latitude” are non-limiting examples of position coordinates that can have ranges defined by a hypercube; in some implementations, each hypercube is associated with a range of x-coordinates and a range of y-coordinates in a global or local frame of reference, or with another pair of coordinate ranges that together define a range of locations of nodes associated with the hypercube. The range of heading represents a range of headings of nodes corresponding to the hypercube 1102. Thus, a set of nodes (each node located within a respective hypercube) defines a corresponding set of candidate travel paths.
[0106] For example, a given identified hypercube 1102 has a center location (x0, y0, h0), where x0is longitude, y0is latitude, and h0is heading (e.g., an angle based on cardinal directions, such as 0° for true north and 90° for true east, etc.). The hypercube 1102 also has edge lengths Dx, Dy, Dh that define a range of longitude x0- Dx / 2 < x < x0+ Dx / 2, a range of latitude y0- Dy / 2 < y < y0+ Dy / 2, and a range of heading h0- Dh / 2 < h < h0+ Dh / 2. A given coordinate (x, y, h) within the hypercube defines a Dubins node, and a set of {x, y, h} for the set of hypercubes 1102 in the first road lane 1100 defines a set of candidate travel paths defined by Dubins nodes. As Figure 11AAs shown, candidate travel paths 1104 are defined by the centers {x0, y0, h0} of each hypercube 1102.
[0107] In different embodiments, the hypercubes 1102 can be initialized in various ways. In some embodiments, the hypercubes 1102 are initialized with locations that are approximately at the lateral center of the road lane 906 (e.g., within 10% or 20% of the lateral center). The initialization can be partially random, e.g., randomly distributed hypercube locations within a specified range. In some implementations, the partially random initialization conforms to a distribution, such as locations distributed with a Gaussian distribution or a uniform distribution around the lateral center of the road lane 906, etc. In some embodiments, the hypercubes 1102 are initialized with equal or approximately equal spacing between each other. In some embodiments, a point reduction algorithm such as the Douglas-Peucker algorithm or the Visvalingam-Whyatt algorithm is applied to a set of points in the road lane, such as a set of lateral center points in the road lane 906; for each point remaining after the point reduction, a hypercube is initialized to be centered at or near (e.g., with a random lateral location as described above) the point (in longitude and latitude).
[0108] In the shrinking hypercube optimization process as described herein, the hypercubes are iteratively shrunk (1006) based on at least a cost function associated with locations and headings of the hypercubes. In some embodiments, the shrinking hypercubes are shrunk over the search space using a cost function computed over two or more dimensions of each point / node in the search space. N coordinates within each hypercube are selected (e.g., uniformly distributed or randomly distributed coordinates), where N > 1, and the N coordinates from each hypercube are distributed into N coordinate sets, where each coordinate set includes coordinates from the hypercubes. The N coordinate sets define N candidate travel paths. A respective cost (based on the cost function as described above) is determined for each of the N candidate travel paths. Based on the respective costs, a displacement-shrinking process is performed in which at least one of the hypercubes 1102 is shrunk in at least one dimension (e.g., at least one of Ax, Ay, and Ah is reduced for at least one hypercube 1102) and at least one of the hypercubes is displaced (moving its center (x0, y0, h0)) to obtain a new hypercube 1106 (1006). For example, in some embodiments, the center of each new iterated hypercube 1106 is an average between the previous center of the corresponding hypercube 1102 and a coordinate within that hypercube that defines a candidate travel path having a lowest cost among the N computed costs. In some embodiments, the amount of shrinkage of each hypercube 1106 compared to the corresponding hypercube 1102 is based on the amount of displacement of the center of the hypercube 1106 compared to the hypercube 1102: for lower displacements, the amount of shrinkage can be greater, which corresponds to a higher confidence of the iteration of the hypercube towards the optimal value. Other displacement and / or shrinkage processes are also within the scope of the present disclosure.
[0109] In some embodiments, the shrinking hypercube optimization process includes a “search space process” in which a new set of hypercubes is initialized and iterated. For example, the search space process can be performed if the costs of the analyzed candidate travel paths fail to converge (e.g., after a predetermined number of displacement-shrink iterations) and / or if the costs of the analyzed candidate travel paths fail to satisfy a threshold condition (e.g., after a predetermined number of displacement-shrink iterations).
[0110] The displacement contraction process can continue (in some embodiments, with one or more search space processes) until one or more stopping conditions are met. For example, in some implementations, the displacement contraction process continues until (i) a candidate travel path 1110 defined by coordinates within the hypercube 1106 (e.g., defined by the center of the hypercube 1106) has a cost that is less than a threshold cost, and (ii) other candidate travel paths defined by coordinates within the hypercube 1106 have higher costs than the candidate travel path 1110; this combination of conditions can represent convergence of the contracting hypercube optimization process. The candidate travel path 1110 (in this example, through the Dubins nodes defined by the center of the hypercube 1106 and the candidate travel paths defined by these Dubins nodes) is determined to be a particular travel path for the road lane 1100. Other and / or additional stopping conditions for terminating the contracting hypercube optimization process and determining a resulting particular travel path are also within the scope of this disclosure.
[0111] In some embodiments, the contracting hypercube optimization as used for the determination of nodes to determine travel paths can be particularly well suited to the particular task of travel path determination. This can provide faster and / or lower computational requirement results compared to other processes for determining travel paths. Further, in some embodiments, the travel paths determined by the contracting hypercube optimization are more optimal (e.g., have lower computed costs) compared to travel paths determined by other processes.
[0112] In some implementations, some computational aspects of the contracting hypercube optimization process can be conducted as described in “Optimization of High-Dimensional Functions through Hypercube Evaluation” Abiyev & Tunay (2015) (incorporated by reference in its entirety herein) which describes general single hypercube optimization without reference to travel paths or nodes.
[0113] As noted above, the contracting hypercube optimization to determine nodes for travel lanes need not but can be applied to provide contracted search spaces for contracted road lanes. Reference is made to Figure 11C , for example, as reference is made to Figures 8A-8EThe narrowed road lane 1112 is identified (as compared to the first road lane 1100). A set of hypercubes 1114 is initialized, the hypercubes 1114 being spatially limited to the narrowed road lane 1112 (e.g., having a spatial center (x0, y0) within the narrowed road lane and / or having spatial bounds that do not extend outside the narrowed road lane). The hypercubes 1114 can have characteristics as described for the hypercubes 1102 / 1106, e.g., ranges of respective longitude, latitude, and heading. As referenced above, the hypercubes 1114 are iteratively shrunk / shifted. In the displacement-shrinking process, subsequent iterations of the hypercubes 1114 are also spatially limited to the narrowed road lane 1112. After one or more than one iteration, a particular travel path is determined based on the iterated hypercubes, e.g., a travel path defined by coordinates within the hypercubes. Because the narrowed road lane 1112 (i) restricts / guides the location of the initialized hypercubes 1114 and (ii) restricts the spatial search space, in some embodiments, the particular travel path can be more desirable (e.g., have a lower computed cost) and / or use fewer iterations or otherwise consume fewer computational resources than a comparable travel path determined based on the first, un-narrowed road lane. Figures 11A-11B
[0114] As shown in Table 1 below, computational experiments were conducted using the shrinking hypercube optimization with and without a narrowed lane. Using the narrowed lane, the computational time consumed in determining a particular travel path was reduced by 82% as compared to using the un-narrowed lane. Additionally, the distance error associated with the determined particular travel path was reduced by 60% for in-lane travel paths and by 6% for connector paths (described in more detail below) as compared to a particular travel path determined by an expert based on best navigation practices. Moreover, the error rate in determining lane connections (generating lane connections that were not generated by the expert) was reduced by 38%. That is, using the reduced search space can both make the particular travel path determination more computationally efficient and improve the quality of the particular travel path (“win-win” results). Table 1
[0115] In some embodiments, the node-based path determination is extended to determine a “connector path” between two road lanes. For example, the two road lanes can be joined by an intersection or a third road lane, and a travel path (e.g., a baseline travel path) can be determined for a vehicle navigating from one road lane to the other road lane through the intersection or the third road lane.
[0116] As Figure 12 As shown, in the example of process 1200, a first plurality of nodes and a second plurality of nodes are determined (1202). The first plurality of nodes defines a first travel path in a first road lane, and the second plurality of nodes defines a second travel path in a second road lane. Process 1200 can be performed by a system of an autonomous or semi-autonomous vehicle (e.g., by autonomous vehicle computing 400), by one or more systems remote from the vehicle (e.g., by fleet management system 116 and / or vehicle-to-infrastructure system 118), or a combination thereof.
[0117] Referring to Figure 13 , environment 1300 includes a first road lane 1302 and a second road lane 1304. A first travel path 1306 defined by nodes 1308a, 1308b, 1308c (e.g., Dubins nodes) is defined to pass through first road lane 1302, and a second travel path 1310 defined by nodes 1312a, 1312b is defined to pass through second road lane 1304. An intersection 1316 joins road lanes 1302, 1304. Travel paths 1306, 1310 can be determined as described throughout this disclosure (e.g., with reference to Figure 6 , Figures 8A-8E , Figure 9 , Figure 10 and Figures 11A-11C ), such as to make a narrowing road lane and / or use a contractive hypercube optimization.
[0118] Process 1200 includes determining a first cost associated with a first candidate travel path that joins a closest pair of nodes between the first plurality of nodes and the second plurality of nodes (1204). For example, candidate travel path 1314 joins a closest pair of nodes 1308c and 1312a between the two travel paths 1306, 1310. Candidate travel path 1314 is defined by the two nodes 1308c, 1312a, e.g., by respective locations and headings of nodes 1308c, 1312a in a Dubins node formula that maintains an uninterrupted continuous sequence of travel paths 1306, 1314, 1310. The cost of candidate travel path 1314 can be determined as described above using a cost function, e.g., based on a cost function of one or more of: a curvature of candidate travel path 1314; a distance of candidate travel path 1314 from an environmental feature (such as an environmental feature defining a boundary of intersection 1316, etc.); a total length of candidate travel path 1314; and whether candidate travel path 1314 extends beyond a boundary of intersection 1316 (which has an effectively infinite cost in some embodiments that makes candidate travel path 1314 impermissible).
[0119] In some embodiments, the determined cost is compared to a threshold condition. If the determined cost satisfies the threshold condition (e.g., has a value below a threshold), the candidate travel path 1314 is selected as the connector path through the intersection 1316 (1208), e.g., as a baseline travel path that the vehicle would navigate along in the absence of sensor data that prevents navigation. However, if the cost does not satisfy the threshold condition, further candidate travel paths can be analyzed until a candidate travel path is identified that satisfies the threshold condition. Alternatively, in some embodiments, after determining the cost for the first candidate travel path 1314, one or more other candidate travel paths are analyzed and the candidate travel path with the lowest cost is selected as the connector path, e.g., without reference to satisfying the threshold condition.
[0120] In some embodiments, a cost is determined for one or more other candidate travel paths between the next closest nodes (1206). For example, after analyzing the candidate travel path 1314 between the nodes 1308c and 1312a, a cost can be determined for the candidate travel path 1318 between the nodes 1308b and 1312a. Alternatively or additionally, a cost can be determined for a candidate travel path (not illustrated) between the nodes 1308c and 1312b. In some cases, these candidate travel paths can be understood to represent earlier preparation for a turn. For example, a human driver can alter their navigation to prepare for a turn earlier (e.g., at the node 1308b) rather than waiting until very close to the intersection 1316 to prepare for the turn (at the node 1308c). The nodes of a candidate travel path that “retrace” (through later nodes of either or both of the first travel path 1306 and the second travel path 1310) can represent this behavior in a relatively simple manner computationally.
[0121] In some embodiments, when a candidate travel path is determined that has a cost that satisfies the threshold condition, that candidate travel path is determined to be the connector path. In some embodiments, a predetermined number of candidate travel paths are analyzed and the candidate travel path with the lowest cost is determined to be the connector path. For example, the candidate travel paths can be “retraced” by two to analyze the candidate travel path 1314, the candidate travel path 1318, a candidate travel path between the node 1308c and the node 1312b, and a candidate travel path between the node 1308b and the node 1312b. The candidate travel path of these four candidate travel paths with the lowest cost is determined to be the connector path through the intersection 1316.
[0122] The determined connector path can at least partially determine navigation through two road lanes (e.g., between road lanes 1302 and 1304 of intersection 1316). When an autonomous or semi-autonomous vehicle is to navigate from first road lane 1302 to second road lane 1304, the autonomous or semi-autonomous vehicle can follow the connector path as a baseline driving path.
[0123] In some implementations, as described above, the connector path is determined based on a reduced search space resulting from a constricted carriageway. The constricted carriageway can be a constricted version of road lanes 1302, 1304 as described above (e.g., a constricted version based on which nodes 1308, 1312 are determined as described above) and / or a constricted intersection 1316. As described above, intersection 1316 can be constricted by bringing its boundaries closer to each other based on an environmental feature (e.g., a construction area) and / or based on a width of the vehicle. The constricted carriageway for connector path determination affects a cost associated with the connector path, for example, by altering a distance between a given connector path and a boundary of a (constricted or unconstricted) road lane or intersection. In some cases, a cost associated with a constricted carriageway can be more useful than a cost associated with an unconstricted carriageway, e.g., can indicate a connector path that is more similar to an expert-determined connector path.
[0124] Once a particular driving path(s) for a given environment is determined, it can be used to guide navigation of one or more vehicles. In some embodiments, the particular driving path is determined by one or more computing systems remote from the vehicle, and the particular driving path is provided to the vehicle for use by the vehicle. For example, fleet management system 116 can receive mapping data for a given environment (e.g., a city), determine particular driving paths for road lanes in the environment (in some embodiments, including connector paths), and provide the particular driving paths to one or more vehicles 102. Vehicle 102 can store the particular driving paths (such as in planning system 404 or database 410). Vehicle 102 (e.g., planning system 404) can determine a route to navigate based on the stored particular driving paths. For example, in the absence of sensor or other data indicating that vehicle 102 should deviate from a baseline driving path (e.g., due to an obstacle, lane closure, etc.), the particular driving path can define a baseline driving path along which vehicle 102 is to ideally navigate.
[0125] In some embodiments, the particular travel path is determined by the vehicle (e.g., by the planning system 404 of the vehicle 102). Based on the high computational efficiency of one or more processes described herein, such as lane-contract-based path determination with contract hypercube optimization and / or node-based path determination, etc., the particular travel path for a given road lane can be determined very quickly (e.g., in real-time or near real-time). Thus, in some embodiments, the autonomous vehicle computing 400 determines a travel path based on sensor data provided by the perception system 402. For example, the sensor data can indicate the presence of an environmental feature near the road lane (e.g., a transient environmental feature that is not known to a remote system such as the queue management system 116). The autonomous vehicle computing 400 can identify a contract road lane based on the at least one environmental feature, e.g., by excluding areas adjacent to the environmental feature, and determine the particular travel path based on the contract road lane. The autonomous vehicle computing 400 can then cause the vehicle 102 to navigate on the road lane using the particular travel path (e.g., using the particular travel path as a baseline travel path). Thus, navigation can be improved using sensor data obtained in real-time shortly before the vehicle navigates on the road lane.
[0126] In the foregoing description, aspects and embodiments of the present disclosure have been described with reference to a number of specific details that can vary depending on implementation. Thus, the description and drawings should not be seen as limiting, but rather as illustrative. The sole and exclusive indicator of the scope of the application, and what is or is intended to be the true scope of the application, is the literal and equivalent scope of the claims as issued by the US Patent and Trademark Office, any subsequent correction or issues, including any subsequent amendments made to the claims after grant. Any definitions expressly set forth herein for terms and phrases used herein are to be considered as part of the description and are intended to be given their broadest possible interpretation. In addition, as used in the specification and the appended claims, the singular forms "a," "an" and "the" include plural referents unless the context clearly dictates otherwise.
Claims
1. A method comprising: obtaining, with at least one processor, mapping data for characterizing an environment, the mapping data for indicating a boundary of a first road lane in the environment; identifying, with the at least one processor, a portion of the first road lane as a pinch road lane, the pinch road lane having a reduced width in at least a portion of the pinch road lane as compared to a width of the first road lane; evaluating, with the at least one processor, a plurality of candidate travel paths in a search space, the search space including the pinch road lane and excluding at least a portion of the first road lane that is not included in the pinch road lane; and determining, with the at least one processor, a particular travel path for a vehicle to travel through the pinch road lane based on the evaluation of the plurality of candidate travel paths, wherein the plurality of candidate travel paths includes the particular travel path.
2. The method of claim 1, further comprising: identifying, with the at least one processor, the pinch road lane using an environmental feature proximate to the first road lane. identifying the pinch road lane includes identifying the pinch road lane based on a parking feature, a curb feature, or a construction feature.
3. The method of claim 2, wherein, identifying the portion of the first road lane as the pinch road lane includes:
4. The method of claim 2 or 3, wherein, excluding, from the pinch road lane, an area adjacent to the environmental feature as compared to the first road lane.
5. The method of any one of claims 1-4, further comprising: identifying, with the at least one processor, the pinch road lane using a width of the vehicle.
6. The method of any one of claims 1-5, further comprising: identifying, with the at least one processor, the pinch road lane based on a center of the first road lane. determining the particular travel path for the vehicle to travel through the pinch road lane includes applying an optimization process to determine the particular travel path, the method further comprising:
7. The method of any one of claims 1 to 6, wherein, applying, with the at least one processor, the optimization process to determine a plurality of nodes in the pinch road lane, wherein the particular travel path is based on at least the plurality of nodes. applying the optimization process includes applying a contract hypercube optimization process.
8. The method of claim 7, wherein, applying the contract hypercube optimization process includes identifying a plurality of hypercubes each associated with a location in the environment and a heading in the environment.
9. The method of claim 8, wherein, determining the plurality of nodes includes determining the plurality of nodes as centers of the plurality of hypercubes.
10. The method of claim 9, wherein, the particular travel path is a first travel path, wherein the plurality of nodes is a first plurality of nodes, and wherein the method includes:
11. The method of claim 7, wherein, determining, with the at least one processor, a connector path joining the first travel path through the pinch road lane to a second travel path through a second road lane, the second travel path determined based on at least a second plurality of nodes, wherein determining the connector path includes: determining a cost associated with a first candidate travel path that joins a first node of the first plurality of nodes to a second node of the second plurality of nodes, wherein the first node and the second node are a closest pair of nodes between the first plurality of nodes and the second plurality of nodes.
12. The method of claim 11, wherein, the mapping data indicates a boundary of a first intersection between the first road lane and a second road lane, and wherein determining the connector path comprises: identifying a portion of the first intersection as a pinch intersection, the pinch intersection having a reduced area compared to the first intersection; and determining the first candidate travel path as a path through the pinch intersection.
13. The method of claim 11 or 12, wherein, determining the connector path comprises: determining that the cost satisfies a threshold condition; and based at least on determining that the cost satisfies the threshold condition, determining that the connector path comprises the first candidate travel path.
14. The method of claim 11 or 12, wherein, determining the connector path comprises: determining that the cost does not satisfy a threshold condition; and based at least on determining that the cost does not satisfy the threshold condition, determining a second cost associated with a second candidate travel path that joins the first node to a third node of the second plurality of nodes, wherein a distance between the first node and the second node is less than a distance between the first node and the third node.
15. The method of any one of claims 1 to 14, comprising: providing, with the at least one processor, a path for use in navigation of the first road lane to a vehicle.
16. A system comprising: at least one processor; and at least one memory having instructions stored thereon that, when executed by the at least one processor, cause the at least one processor to: obtain mapping data for characterizing an environment, the mapping data for indicating a boundary of a first road lane in the environment; identify a portion of the first road lane as a pinch road lane, the pinch road lane having a reduced width in at least a portion of the pinch road lane compared to a width of the first road lane; evaluate, with the at least one processor, a plurality of candidate travel paths in a search space, the search space including the pinch road lane and excluding at least a portion of the first road lane that is not included in the pinch road lane; and determine, with the at least one processor, a particular travel path for a vehicle through the pinch road lane based on the evaluation of the plurality of candidate travel paths, wherein the plurality of candidate travel paths includes the particular travel path.
17. The system of claim 16, wherein, the instructions further cause the at least one processor to identify the pinch road lane using an environmental feature proximate to the first road lane.
18. The system of claim 16 or 17, wherein, determining the particular travel path for the vehicle through the pinch road lane comprises applying an optimization process to determine the particular travel path, and wherein the instructions further cause the at least one processor to: apply the optimization process to determine a plurality of nodes in the pinch road lane, wherein the particular travel path is based on at least the plurality of nodes.
19. A non-transitory computer-readable medium comprising instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform operations comprising: obtaining mapping data for characterizing an environment, the mapping data to indicate boundaries of a first road lane in the environment; identifying a portion of the first road lane as a pinch road lane, the pinch road lane having a reduced width in at least a portion of the pinch road lane as compared to a width of the first road lane; evaluating, with the at least one processor, a plurality of candidate travel paths in a search space, the search space including the pinch road lane and excluding at least a portion of the first road lane that is not included in the pinch road lane; and determining, with the at least one processor, a particular travel path for a vehicle to travel through the pinch road lane based on the evaluation of the plurality of candidate travel paths, wherein the plurality of candidate travel paths includes the particular travel path. the operations further comprising identifying the pinch road lane using an environmental feature proximate to the first road lane.
20. The non-transitory computer-readable medium of claim 19, wherein, 21. A method comprising: obtaining, with at least one processor, mapping data for characterizing an environment, the mapping data to indicate boundaries of a first road lane in the environment; identifying, with the at least one processor, a plurality of hypercubes in the first road lane, wherein each of one or more hypercubes of the plurality of hypercubes is associated with at least one location in the environment and at least one heading in the environment; shrinking, with the at least one processor, the plurality of hypercubes based at least on locations and headings of the one or more hypercubes using a cost function; determining, with the at least one processor, coordinates within each of the one or more hypercubes as path nodes in response to a value of the cost function satisfying a threshold condition; and determining, with the at least one processor, a travel path for the first road lane as a path through one or more path nodes defined as the coordinates within the one or more hypercubes.