Vehicle path planning

EP4762326A1Pending Publication Date: 2026-06-24QUALCOMM INC

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
QUALCOMM INC
Filing Date
2023-08-15
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Existing path planning algorithms for autonomous vehicles do not effectively account for the vehicle's turning constraints, such as minimum turning radii, leading to impractical or obstructed paths.

Method used

The proposed solution involves determining a path by segmenting it into candidate segments, where the processor determines the present location and heading of the vehicle, and identifies candidate intermediate destination points based on the vehicle's turning radii and location constraints.

Benefits of technology

This approach allows for the determination of a practical, low-cost path that avoids obstacles and optimizes distance and angles of travel, while ensuring the path is feasible given the vehicle's turning constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023113102_20022025_PF_FP_ABST
    Figure CN2023113102_20022025_PF_FP_ABST
Patent Text Reader

Abstract

A method (1100), for determining a path of a vehicle between an origin and a destination, includes: determining a plurality of segments, that together form the path, including determining candidate segments for the plurality of segments by: determining a present location of the vehicle; determining a heading of the vehicle; and determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.
Need to check novelty before this filing date? Find Prior Art

Description

VEHICLE PATH PLANNINGBACKGROUND

[0001] DESCRIPTION OF RELATED ART

[0002] Autonomous vehicles (also known as self-driving vehicles) are becoming more popular. The potential for reduced vehicle collisions, improved traffic flow efficiency, increased vehicle efficiency (e.g., miles per gallon of gasoline, miles per kilowatt of electricity, etc. ) , increased user efficiency (e.g., freeing a would-be driver to perform other tasks while in transit) , etc. is pushing demand for autonomous vehicles. In order to gain approval and acceptance of autonomous vehicles, vehicle designers and manufacturers are working to address numerous considerations (especially safety considerations) so that autonomous vehicles can have acceptable performance, e.g., acceptable collision avoidance.

[0003] Various techniques exist for determining a path from an origin to a destination for an autonomous vehicle, which may be useful to provide instructions to the autonomous vehicle to drive from the origin to the destination. For example, the A*( “A-star” ) algorithm may be used to find a shortest path between two nodes. The A*algorithm may be provided by f (n) =g (h) +h (n)      (1)

[0004] where n is a next node on a path, g (n) is a cost of the path from a start node to node n, h (n) is a heuristic function that estimates the cost of a lowest-cost path from node n to the destination (also called the goal) . Using the A*algorithm, a starting node and a target node are set. An open list is started to track nodes (vertices) to be evaluated for inclusion in the shortest path between the starting node and the target node. Initially, the open list may be populated with the starting node and assigned a cost of zero. While the open list contains at least one member, the node with the lowest total cost on the open list is found, with the total cost for an evaluated node being a sum of a tentative cost from the starting node to the evaluated node and an estimated cost from the evaluated node to the target node. Once evaluated, the evaluated node is removed from the open list and added to a closed list. Once the target node is added to the closed list, the shortest path has been found.SUMMARY

[0005] An example apparatus includes: at least one memory; at least one processor communicatively coupled to the at least one memory and configured to determine a path of a vehicle between an origin and a destination, wherein to determine the path the at least one processor is configured to determine a plurality of segments that together form the path, and wherein to determine candidate segments for the plurality of segments the at least one processor is configured to: determine a present location of the vehicle; determine a heading of the vehicle; and determine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0006] An example method, for determining a path of a vehicle between an origin and a destination, includes: determining a plurality of segments, that together form the path, including determining candidate segments for the plurality of segments by: determining a present location of the vehicle; determining a heading of the vehicle; and determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0007] Another example apparatus includes: at least one memory; and means, communicatively coupled to the at least one memory, for determining a plurality of segments that together form a path of a vehicle between an origin and a destination, including means for determining candidate segments for the plurality of segments, the means for determining candidate segments comprising: means for determining a present location of the vehicle; means for determining a heading of the vehicle; and means for determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0008] An example non-transitory, processor-readable storage medium includes processor-readable instructions to cause at least one processor of an apparatus to: determine a plurality of segments that together form a path of a vehicle between an origin and a destination, wherein the processor-readable instructions to cause the at least one processor to determine the plurality of segments comprise processor-readable  instructions to cause the at least one processor to determine candidate segments for the plurality of segments, and wherein the processor-readable instructions to cause the at least one processor to determine the candidate segments comprise processor-readable instructions to cause the at least one processor to: determine a present location of the vehicle; determine a heading of the vehicle; and determine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] FIG. 1 is a top view of a driving environment.

[0010] FIG. 2 is a block diagram of an example apparatus.

[0011] FIG. 3 is a flow diagram of a method of determining a path from an origin to a destination for a vehicle.

[0012] FIG. 4 is a diagram of an example grid map.

[0013] FIG. 5 is an example illustration of a conversion of a grid map to a vector map.

[0014] FIG. 6A is an example of an open list initiated with an origin vertex.

[0015] FIG. 6B is an example of the open list shown in FIG. 6A with multiple candidate intermediate destination vertexes added.

[0016] FIG. 6C is an example of the open list shown in FIG. 6B with the origin vertex removed.

[0017] FIG. 6D is an example of the open list shown in FIG. 6C with multiple candidate intermediate destination vertexes added.

[0018] FIG. 7 is a top view of a vehicle, possible turning circles, and example location constraints for candidate intermediate destination points.

[0019] FIG. 8 is a top view of the vehicle shown in FIG. 7 showing candidate paths.

[0020] FIG. 9 is a top view of the vehicle shown in FIG. 8 and obstacles near the vehicle.

[0021] FIG. 10 is an example of a candidate path list.

[0022] FIG. 11 is a block flow diagram of an example method for determining a path of a vehicle between an origin and a destination.DETAILED DESCRIPTION

[0023] Techniques are discussed herein for determining a path for an autonomous vehicle from an origin to a destination while accounting for turning constraints of the vehicle. For example, a vehicle may have a minimum turning radius (for each of right-hand turns and left-hand turns, which will typically be the same) and the minimum turning radius may be used to determine a viable path from the origin to the destination. For example, starting from the origin, potential points along potential paths may be determined based on the minimum turning radius of the vehicle, a heading of the vehicle, and a location constraint on the potential points. For example, the location constraint may be a circle centered at the vehicle such that the potential points are sampled points on a portion of the circle, i.e., an arc, between a smallest left-hand-turn circle tangent to a center of the vehicle and a smallest left-hand-turn circle tangent to a center of the vehicle. As another example, the location constraint may be a field of view from the center of the vehicle and bisected by the vehicle heading. Each potential point may be evaluated for viability, with a path through a viable point being able to avoid any objects and a path through non-viable point passing through an object or not being able to be adjusted beyond the non-viable point to avoid an object. Viable path segments may be compiled until the destination is reached to form a viable path option. Different location constraints may be applied to find multiple viable path options, and a path with a lowest cost, from among multiple viable path options, may be chosen as a path to be used. Other configurations, implementation, and / or operations, however, may be used.

[0024] Items and / or techniques described herein may provide one or more of the following capabilities, as well as other capabilities not mentioned. A path from an origin to a destination for a vehicle may be determined that accounts for turning constraints of the vehicle. A lowest-cost path may be selected from among multiple determined paths from an origin to a destination for a vehicle that account for turning constraints of the vehicle. A practical, low-cost path may be determined for a vehicle in view of physical constraints of the vehicle and an environment for the vehicle between an origin and a destination of the vehicle. A smooth, continuous, unobstructed path from an origin to a destination may be determined for a turning-radius-limited vehicle, and the path may be optimized in terms of distance and / or angles of travel. Other  capabilities may be provided and not every implementation according to the disclosure must provide any, let alone all, of the capabilities discussed.

[0025] Referring to FIG. 1, a driving environment 100 includes a vehicle 110 disposed among objects 120, 121, 122, 123. The vehicle 110 may be an autonomous vehicle, capable of self-driving (i.e., without human input) as well as being capable of manual driving (i.e., with human input) . As part of autonomous driving, it may be desirable to provide the vehicle 110 with a path from an origin 130 to a destination 140. To help ensure that the path is viable, the determination of the path may account for physical constraints of the vehicle 110 and of the environment 100. For example, while a shortest-path algorithm may determine a path 150 that avoids the objects 120-123, the path may be impractical if the vehicle 110 cannot rotate in place and instead is constrained by a minimum turning radius. For example, due to the minimum turning radius of the vehicle 110, the vehicle 110 may be able to follow a path 160 around the object 121, but the path 160 would not be viable as the path 160 intersects the object 122 (e.g., a building) . A practical path 170 may be determined using techniques discussed herein that accounts for the minimum turning radius of the vehicle 110. The discussion herein focuses on driving and terrestrial-based autonomous-driving vehicles, but the discussion may be applied to other implementations and / or purposes.

[0026] Referring also to FIG. 2, an apparatus 200 (e.g., a transmission / reception point (TRP) , a user equipment (UE) such as the vehicle 110, or a server) may comprise a computing platform including a processor 210, memory 220 including software (SW) 222, optionally one or more sensors 225, and optionally a transceiver 230. The processor 210, the memory 220, and the transceiver 230 may be communicatively coupled to each other by a bus 235 (which may be configured, e.g., for optical and / or electrical communication) . One or more of the shown components (e.g., a wireless transceiver) may be omitted from the apparatus 200. The processor 210 may include one or more hardware devices, e.g., a central processing unit (CPU) , a microcontroller, an application specific integrated circuit (ASIC) , etc. The processor 210 may comprise multiple processors (e.g., including a general-purpose / application processor, a DSP, a modem processor, a video processor, and / or a sensor processor) . The memory 220 may be a non-transitory storage medium that may include random access memory (RAM) ) , flash memory, disc memory, and / or read-only memory (ROM) , etc. The memory 220 may store the software 222 which may be processor-readable, processor-executable  software code containing instructions that are configured to, when executed, cause the processor 210 to perform various functions described herein. Alternatively, the software 222 may not be directly executable by the processor 210 but may be configured to cause the processor 210, e.g., when compiled and executed, to perform the functions. The description herein may refer to the processor 210 performing a function, but this includes other implementations such as where the processor 210 executes software and / or firmware. The description herein may refer to the processor 210 performing a function as shorthand for one or more of the processors contained in the processor 210 performing the function. The description herein may refer to the apparatus 200 performing a function as shorthand for one or more appropriate components of the apparatus 200 performing the function. The processor 210 may include a memory with stored instructions in addition to and / or instead of the memory 220. Functionality of the processor 210 is discussed more fully below. The apparatus 200 may be a server and may include one or more devices (e.g., the processor 210 and the transceiver 230) to determine the location of the vehicle 110 from information provided by the vehicle 110 and / or one or more other devices, e.g., one or more base stations.

[0027] The transceiver 230 may include a wireless transceiver 240 and / or a wired transceiver 250 configured to communicate with other devices through wireless connections and wired connections, respectively. For example, the wireless transceiver 240 may include a wireless transmitter 242 and a wireless receiver 244 coupled to one or more antennas 246 for transmitting (e.g., on one or more downlink channels) and / or receiving (e.g., on one or more uplink channels) wireless signals 248 and transducing signals from the wireless signals 248 to guided (e.g., electromagnetic, electrical, and / or optical) signals and from guided (e.g., electromagnetic, electrical, and / or optical) signals to the wireless signals 248. Thus, the wireless transmitter 242 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wireless receiver 244 may include multiple receivers that may be discrete components or combined / integrated components. The wireless transceiver 240 may be configured to communicate signals according to a variety of radio access technologies (RATs) such as 5G New Radio (NR) , GSM (Global System for Mobiles) , UMTS (Universal Mobile Telecommunications System) , AMPS (Advanced Mobile Phone System) , CDMA (Code Division Multiple Access) , WCDMA (Wideband CDMA) , LTE  (Long Term Evolution) , LTE Direct (LTE-D) , 3GPP LTE-V2X (3rd Generation Partnership Protocol LTE-Vehicle-to-Everything) (PC5) , IEEE 802.11 (Institute of Electrical and Electronics Engineers 802.11, including IEEE 802.11p) ,  wireless communication protocol,  Direct wireless communication protocol,  wireless communication protocol,  wireless communication protocol, etc. The wired transceiver 250 may include a wired transmitter 252 and a wired receiver 254 configured for wired communication, e.g., a network interface that may be utilized to communicate with an NG-RAN (Next Generation Radio Access Network) to send communications to, and receive communications from, a TRP, for example, and / or one or more other network entities. The wired transmitter 252 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wired receiver 254 may include multiple receivers that may be discrete components or combined / integrated components. The wired transceiver 250 may be configured, e.g., for optical communication and / or electrical communication.

[0028] The description herein may refer to the processor 210 performing a function, but this includes other implementations such as where the processor 210 executes software (stored in the memory 220) and / or firmware. The description herein may refer to the apparatus 200 performing a function as shorthand for one or more appropriate components (e.g., the processor 210 and the memory 220) of the apparatus 200 performing the function. The processor 210 (possibly in conjunction with the memory 220 and, as appropriate, the transceiver 230) may include a path determination unit 250. The path determination unit 250 is discussed further below, and the description may refer to the processor 210 generally, or the apparatus 200 generally, as performing any of the functions of the path determination unit 250, with the apparatus 200 being configured to perform the function (s) .

[0029] The one or more sensors 225 may be configured to provide a location and / or heading of the vehicle 110 and / or one or more measurements from which the location and / or heading of the vehicle 110 may be determined. For example, the apparatus 200 may be the vehicle and the sensor (s) 225 may include one or more devices to determine information from which a location of the vehicle 110 may be determined and / or to determine a location of the vehicle 110. For example, the sensor (s) 225 may include an SPS receiver (Satellite Positioning System receiver) including any appropriate antenna (s) , and / or may include an IMU (Inertial Measurement Unit) including, e.g., one  or more accelerometers (e.g., collectively responding to acceleration of the vehicle 110 in three dimensions) and / or one or more gyroscopes (e.g., three-dimensional gyroscope (s) ) . The sensor (s) 225 may include the one or more magnetometers (e.g., three-dimensional magnetometer (s) ) to determine orientation (e.g., relative to magnetic north and / or true north) that may be used for any of a variety of purposes, e.g., to determine vehicle heading. The apparatus 200 may transmit one or more measurements for determining vehicle location and / or heading to one or more other devices, e.g., a server, and / or may transmit location and / or heading of the apparatus to one or more other devices.

[0030] Referring to FIG. 3, with further reference to FIGS. 1 and 2, a method 300 of determining a path from an origin (e.g., the origin 130) to a destination (e.g., the destination 14) includes the stages shown. The method 300 is, however, an example only and not limiting. The method 300 may be altered, e.g., by having one or more stages added, removed, rearranged, combined, performed concurrently, and / or by having one or more single stages split into multiple stages. The method 300 is an angle-based global path planning method that uses a map, e.g., an entire map, that includes the origin and the destination to determine the path from the origin to the destination.

[0031] At stage 305 the method 300 includes obtaining a navigation map. The navigation map is a map containing multiple cells. For example, the processor 210 may receive the navigation map via the transceiver 230. As another example, the processor 210 may retrieve the navigation map from the memory 220 (e.g., having been previously received via the transceiver 230 and stored in the memory 220) . The cells of the navigation map are typically laid out in a grid, and each of the cells may be rectangular (e.g., square) in shape. The navigation map will typically be in a format that a vehicle, e.g., the vehicle 110, understands and that the apparatus 200 understands.

[0032] At stage 310, vertexes of the navigation map are labeled. For example, the processor 210 (e.g., the path determination unit 250) may label each cell of the navigation map with coordinates of a center of the cell. The center of the cell may be called a vertex, e.g., because potential path segments may be determined that emanate from the vertex. Labeling vertexes of the cells is an example, and other another labeling of the cells may be used, e.g., mathematically describing each of the cells.

[0033] At stage 315, the apparatus 200, e.g., the path determination unit 250, may generate a cost map. The cost map may indicate a cost, e.g., as a shortest distance, to  reach the destination from each of the vertexes. For example, the path determination unit 250 may use the A*algorithm to calculate the shortest distance from each vertex to the destination. For example, referring also to FIG. 4, a cost map 400 includes 6x4 grid of cells 410, with the cells 410 not corresponding to an object 420 each having an associated distance (shown as a respective numerical value in each cell) to a goal cell 430 determined by the A*algorithm according to

[0034] where dik is the distance from the respective vertex i to the vertex k of the goal cell 430.

[0035] Referring also to FIG. 5, at stage 320, the apparatus 200, e.g., the path determination unit 250, may convert the navigation map to a vector map. For example, the apparatus 200 may convert a navigation map 510 to a vector map 520. While the navigation map 510 is defined in terms of cells or pixels, the vector map 520 may be defined in terms of distance coordinates (e.g., in meters, in centimeters, etc., as opposed to the cost distances corresponding to the cost map) . The vector map is a higher-resolution map than the navigation map such that positions in addition to positions corresponding to the vertexes may be selected to reveal a cost from the selected position to the destination. The vector map 520 may be effectively continuous, e.g., with any position within resolution of a selecting device being able to have a corresponding cost calculated (e.g., calculated by the A*algorithm or to have a cost of the position calculated through interpolation between two or more values calculated by the A*algorithm) . The vector map 520 contains no obstacles. In the navigation map 510, each cell may have one of three statuses, with one of three corresponding values, e.g., open (no object in the cell) , occupied (an object in the cell) , or unknown (unknown if an object is in the cell) . In this example, an open cell may be represented by a value of zero (0) and / or a blank cell, an occupied cell may be represented by a value of 1 and / or a solid black cell, and an unknown cell may be represented by a value of 0.5 and / or a patterned cell. For example, a possible object 515 may be represented by a patterned cell in the map 510 and a patterned rectangle 525 in the map 520.

[0036] At stage 325, parameters for evaluating candidate (potential) points along candidate (potential) paths from the origin to the destination are initiated. For example, one or more values defining a location constraint for potential path points are established. For example, a location constraint may be a circle (although other shapes may be used) and a radius of a circle to which potential path points will be constrained  may be initiated. Multiple iterations each with a different size of circle may be evaluated, with each of the circles called a step circle. The sizes of the step circles may be based on one or more factors, e.g., density obstacles in an environment containing the origin and destination for the vehicle 110 and / or a minimum turn radius of the vehicle 110 and / or one or more other factors. A radius of the step circle may be used to limit a length of movement of the vehicle 110 (e.g., a path segment) until a next evaluation point for a path. The step circle is an iteration increment to find a next path segment in a path from the origin in order to attempt to reach the destination. As another example, a Field of View (FoV) may be defined relative to a heading of the vehicle, e.g., an angular FoV bisected by a heading of the vehicle, or a line normal to the heading of the vehicle a located a specified distance from a center of the vehicle. As another example of initiated values, values of a smoothing weight (α) and an angular deviation weight (β) (discussed further below) may be initiated.

[0037] At stage 330, referring also to FIG. 6A, an open list 600 of candidate points for evaluation is initiated. Initially, the path determination unit 250 populates the open list 600 with an initial vertex 610, here the origin 130, e.g., x-y coordinates (x0, y0) of a vertex nearest to the origin 130 in the navigation map. The open list 600 is shown as a hierarchical structure to help illustrate operation of the method 300, but an actual open list may be simple memory stack that operates in a FIFO (first in, first out) manner.

[0038] At stage 335, the path determination unit 250 determines whether a there is an available iteration of the location constraint. If there is no available location constraint for evaluation, e.g., all step circles have been evaluated, then the method 300 proceeds to stage 385 discussed below to determine whether any viable path has been determined and if multiple viable paths have been determined, to select one of the viable paths. If there is an available location constraint for evaluation, as with the initial evaluation, then the method 300 proceeds to stage 340.

[0039] At stage 340, the path determination unit 250 determines whether the destination (e.g., the destination 140) is within the span of the presently-evaluated location constraint on candidate path positions, e.g., the destination is within the presently-evaluated step circle (i.e., closer than a perimeter of the step circle) . If the destination is within the presently-evaluated location constraint, then a viable path has been found and the method 300 proceeds to stage 370 discussed below. If the destination is within the presently-evaluated location constraint, then the method 300 proceeds to stage 345 for  evaluation of potential path points, if any remain to be evaluated for the presently-evaluation location constraint.

[0040] At stage 345, the path determination unit 250 determines whether the open list 600 is empty. If the open list 600 is empty, then the method 300 proceeds to stage 375 discussed below for iterating the location constraint to a new presently-evaluated location constraint (if any available location constraint has not yet been evaluated) . If the open list 600 is not empty, and thus contains at least one candidate path point (which may be called a vertex) to be evaluated is present in the open list 600, then the method 300 proceeds to stage 350. Initially, as shown in FIG. 6A, the open list is not empty because the open list 600 contains coordinates for the origin 610.

[0041] At stage 350, the path determination unit 250 selects a vertex from the open list 600. For example, the path determination unit 250 may select a vertex from the open list 600 based on vertex cost for each vertex in the open list 600. For each vertex, a vertex cost may be determined according to the following example vertex cost function Fvertex (i) = α*Fsmooth (i) + Fheuristic (i) + β*Fangle (i)   (3)

[0042] where Fsmooth (i) is a smoothness cost function of the vertex i in the vector map (the smoothness of a path) , Fheuristic is a heuristic function that estimates a cost of a cheapest path from the present vertex i to the destination, Fangle is an angular deviation from the present vertex i to the destination, α is a smoothing weight, and β is an angular deviation weight. A grid path to a continuous path may be compared to measure the smoothness of the continuous path. A continuous distance of a present vertex may be divided by the grid distance from the origin to the present vertex to obtain the value of Fsmooth according to

[0043] where d_continue (k, k-1) is the distance between a vertex k and a vertex (k-1) in the vector map, and dist (start, i) is the distance from the origin to the vertex i in the grid map. Equation (4) may be used to determine a best path by summing individual distances of segments calculated per Equation (5) . The vector map may be used to determine the numerator of Equation (4) and the grid map may be used to determine the denominator of Equation (4) . The distance of a continuous path in the vector map may be defined as the arc length between two vertices according to

[0044] where d_continue (i, j) is the distance between the present vertex i and the vertex j in the vector map, Rj is the turning radius of the vehicle from the present vertex i to the vertex j, xi is the x-coordinate of the vertex i in the vector map, and yi is the y-coordinate of the vertex i in the vector map. The grid cost map from the present vertex i to the destination may be used as a guide for the continuous path. The heuristic function

[0045] Fheuristic may be determined according to Fheuristic (i) = dist (i, goal)       (6)

[0046] where Fheuristic is the heuristic cost function of the vertex i in the vector map, and dist (i, goal) is the distance from the vertex i to the destination in the grid map (determined by the A*algorithm) . Further, the condition of an end-point angle may be added to make path planning meet angle and distance requirements. For example, the value of Fangle may be determined by

[0047] where Fangle (i) is the angle cost function of the present vertex i, anglegoal is the angle of the destination vertex, anglei is the angle of the present vertex i, dist (i, goal) is the distance from the present vertex i to the destination in the grid map an is generated by the A*algorithm, R_step is the radius of the step circle, and Max_corner is the maximum turning angle of the vehicle.

[0048] At stage 355, the path determination unit 250 determines a set of candidate intermediate destination points. Respective line segments from the present vertex to the candidate intermediate destination points are candidate path segments for potential inclusion in a path from the origin to the destination.

[0049] Referring also to FIG. 7, the path determination unit 250 may be configured to determine a set of candidate intermediate destination points based on a heading 710 of the vehicle 110, a left-hand turning radius 720 of the vehicle 110, a right-hand turning radius 730 of the vehicle 110, and a location constraint (here the step circle) . For example, the path determination unit 250 may determine one or more criteria (e.g., a  definition of an arc as discussed below) for the set of candidate intermediate destination points, even if particular points are not specifically identified. In this example, the vehicle may be simulated (e.g., a virtual vehicle) by the path determination unit 250 to determine a path between an origin and a destination. A simulated (e.g., virtual) or actual location of the vehicle may be referred to as a present location 750 of the vehicle 100, or simply the present location. The turning radii 710, 720 may be equal and may be a minimum turning radius of the vehicle 110 such that the circle 722 represents a maximum left-hand turn path and the circle 732 represents a maximum right-hand turn path. The path determination unit 250 may be configured to determine the candidate intermediate destination points to be within a field of view 740 that includes a first point 721 on a left-hand turning circle 722 passing through the present location 750 tangent to the heading 710 and having the left-hand turning radius 720, a second point 731 on a right-hand turning circle 732 passing through the present location 750 tangent to the heading 710 and the left-hand turning circle and having the right-hand turning radius, and a third point 711 along the heading. That is, the circle 722 is defined by the turning radius 720, and passes through the present location 750 tangent to the heading 710, and the circle 732 is defined by the turning radius 730, and passes through the present location 750 tangent to the heading 710 and tangent to the circle 722. The location constraint of the set of candidate intermediate destination points in this example is a step circle 760 centered at the present location 750. The path determination unit 250 may constrain the set of candidate intermediate destination points to be on a portion of the location constraint, here a portion of the step circle 760, i.e., an arc 762, between where (at the point 721) the step circle 760 intersects the circle 722 and where (at the point 731) the step circle 760 intersects the circle 732, with the arc 762 intersecting the heading at a point 711. A location constraint other than a step circle may be used. For example, a sector defining a field of view and bisected by the heading 710 may be used, e.g., a sector corresponding to the FoV 740. As another example, the location constraint may be a line (e.g., a line 770) displaced from a center of the vehicle 110, i.e., the present location 750, by a variable distance 771 (a different distance used for each viable-path-determination iteration) and perpendicular (normal) to the heading 710.

[0050] At stage 360, referring also to FIG. 8, the path determination unit 250 may sample the domain of the set of candidate intermediate destination points to identify particular points (locations) comprising the set of candidate intermediate destination  points. In this example, the map destination unit 250 may sample the arc 762 at a point 810 at the intersection of the heading 710, and at three points 811, 812, 813 between the heading 710 and the circle 722 and at three points 814, 815, 816 between the heading 710 and the circle 732. The sample points 810-816 correspond to potential paths 820, 821, 822, 823, 824, 825, 826, respectively, with each of the potential paths 820-826 having a respective potential path segment between the present location 750 and the arc 762. The number of sample points of the domain of the candidate intermediate destination points (here, the arc 762) may be a fixed or dynamic number, e.g., based on the environment containing the origin and destination for the vehicle 110. The number of sample points may be changed, e.g., if no valid intermediate destination point is identified at stage 365.

[0051] At stage 365, referring also to FIG. 9, the path determination unit 250 may determine which, if any, of the initially-determined set of candidate intermediate destination points are valid (viable) intermediate destination points, and thus correspond to valid potential paths. For example, the path determination unit 250 may project the potential paths 820-826 from the navigation map 520 to the grid map 510. In this example, with the potential paths 820-826 projected onto the grid map 510, the potential paths 820, 821, 824, and 825 all intersect with a respective object, here the objects 512, 514, 513, respectively. The path determination unit 250 may determination than any potential path that intersects with an object is not valid, e.g., in this example, that the potential paths 820, 821, 824, 825 are not valid (e.g., viable as a portion of a path that can be navigated from the origin to the destination) . Consequently, the path determination unit 250 may determine that the potential paths 822, 823, 826 do not intersect any objects and are therefore valid (with segments of the potential paths 822, 823, 826 between the present location 750 and the arc 762 along these paths being valid path segments) . The path determination unit 250 may determine that a path of the potential paths 820, 821, 824, 825 is valid, even though they intersect an objection, if the respective object could be avoided if the path was altered at the respective point 810, 811, 814, 815 that the respective path 820, 821, 824, 825 intersects the arc 762. The path determination unit 250, having determined that the potential paths 822, 823, 826 are valid, and thus that the points 812, 813, 816 are valid candidate intermediate destination points, adds the points 812, 813, 816, and their respective turning radii (r1, r2, r3) and turning circle centers (c1, c2, c3) to the open list 600, as shown in FIG. 6B,  as valid vertexes Candidate1, Candidate2, Candidate3 for future evaluation. The open list may include a vertex number for each vertex in a candidate path.

[0052] Each verified path segment may be defined mathematically. For example, each path segment may be defined using nine values: two coordinates defining a start position of the segment (e.g., the present location 750) ; a segment angle at the start position, with the segment angle being an angle between a heading of the vehicle and a reference direction (e.g., an x-axis 840 shown in FIG. 8) ; two coordinates defining an end position of the segment (e.g., the candidate intermediate destination point on the arc 762) ; a segment angle at the end position; two coordinates defining an arc center; and one value defining a radius of the arc of the path segment. A vertex of the start position of the segment may be called a parent vertex and the vertex of the end position of the segment may be called a child vertex. A straight path segment may have an infinite radius, or an undefined radius, or a very-high value radius (e.g., 10,000 (see Equation (5) or more) .

[0053] At stage 367, the path determination unit 250 may remove the present vertex under evaluation from the open list 600. For example, referring also to FIG. 6C, the path determination unit 250 may remove the origin 610 from the open list 600. The path determination unit 250 may, for example, remove the origin from a bottom of a memory stack comprising the open list 600.

[0054] From stage 367, the method 300 may return to stage 340, where the path determination unit 250 determines whether the destination is closer than the limit of the location constraint, here within a radius of the step circle. If not, then the method 300 may proceed to stage 345 where, in this example, the path determination unit 250 determines that the open list 600 is not empty, here containing the points 812, 813, 816. The point 812 may be evaluated similarly to how the origin was evaluated previously. The evaluation of the point 812 in the stages 350, 355, 360, 365 may, for example, result in additional valid candidate points Cand4 and Cand5, corresponding turning radii r4, r5, and corresponding turning circle centers c4, c5 being added to the open list as shown in FIG. 6D. At stage 367, the point 812 will be removed from the open list, and the stages 340, 345, 350, 355, 360, 365, 367 repeated until all identified valid potential intermediate destination points have been evaluated or a valid path has been identified. If the vertex with the lowest vertex cost is selected at stage 350, then once a valid path is determined, e.g., by the destination being within the step circle at stage 340, then the  other vertexes, if any, in the open list 600 need not be evaluated as the lowest-cost path using the presently-evaluated step circle will have been found.

[0055] At stage 370, referring also to FIG. 10, with the destination being within the location constraint, e.g., within the radius of the presently-evaluated step circle, the path comprising the sequence of identified valid intermediate destination points (and corresponding valid path segments) may be added to a candidate path list. For example, Path1, that is determined using the first step circle, StepCircle1, may be added to a candidate path list 1000. Once the candidate path list is updated at stage 370, if a valid path was determined, or the open list 600 is determined to be empty (and thus there are no further valid intermediate destination points to evaluate) , the method 300 proceeds to stage 375.

[0056] At stage 375, the path determination unit 250 may select a next iteration of the location constraint, e.g., a next step circle size, if any is available (i.e., yet to be evaluated) . From stage 375, the method 300 proceeds to stage 380.

[0057] At stage 340, the path determination unit 250 may reset the open list 600 and inserts the origin into the open list, e.g., as shown in FIG. 6A. The method 300 proceeds to stage 335 so that a similar evaluation as described above may be carried out for the next iteration of the location constraint, e.g., the next step circle size. The method 300 may repeat stages 335, 340, 345, 350, 355, 360, 365, 367, 370, 375, 380 until all the available location constraints have been evaluated, and the candidate path list 1000 is filled in with one or more potential paths, if any were determined. For example, the potential path list 1000 includes the path Path1 corresponding to one step circle StepCircle1 of one step circle size (e.g., the largest step circle size that the apparatus 200 is configured to evaluate) , a path Path2 corresponding to a second step circle StepCircle2, and a path Path3 corresponding to a third step circle StepCircle3 (e.g., a smallest step circle that the apparatus 200 is configured to evaluate) . If no valid path is determined for a particular location constraint (e.g., step circle) , then the candidate path list may include a null value corresponding to that location constraint.

[0058] At stages 385, 390, 395, the path determination unit 250 may determine and select a best candidate path, if any were identified, for the vehicle 110 to travel from the origin to the destination, or, otherwise, end without identifying such a path. At stage 385, the path determination unit 250 may determine whether the candidate path list 1000 is empty. If the path determination unit 250 determines that the list 1000 is empty,  then the method 300 may proceed to stage 395 where an indication that no valid (viable) path was identified for the vehicle 110 to travel from the origin to the destination may be provided, and the method 300 may end. If the path determination unit 250 determines that the list 1000 is not empty, then the method 300 may proceed to stage 390. At stage 390, the path determination unit 250 may select the sole path if the list 1000 contains only one candidate path, or may select the best path if the list 1000 contains multiple candidate paths. For example, the path determination unit 250 may evaluate the path cost of each of multiple candidate paths at select the candidate path with the lowest path cost. The path determination unit 250 may be configured to determine the path lost according to

[0059] where Fpath is the path cost function, with smaller values of path cost being better, d_continuei is the distance between the present vertex i and the next vertex i+1 in the path, delta_anglek is the angle change between the vertex k and the vertex k+1 in the path, and lcar is the width of the vehicle 110. Using the method 300, a practical path may be determined between the origin and the destination, and a selected path may be the lowest-cost path determinable based on the set of location constraints evaluated and one or more maneuverability constraints (e.g., turning radius) of the vehicle 110.

[0060] Referring to FIG. 11, with further reference to FIGS. 1-10, a method 1100 for determining a path of a vehicle between an origin and a destination includes the stages shown. The method 1100 is, however, an example only and not limiting. The method 1100 may be altered, e.g., by having one or more stages added, removed, rearranged, combined, performed concurrently, and / or having one or more single stages split into multiple stages.

[0061] At stage 1110, the method 1100 includes determining a plurality of segments, that together form the path, including determining candidate segments for the plurality of segments by: determining a present location of the vehicle; determining a heading of the vehicle; and determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points. For example, the apparatus 200 (e.g., a server) may determine a present location of the vehicle 110, e.g., by receiving an indication of this location via the transceiver 230 (e.g., the wireless receiver 244 and the antenna 246  and / or the wired receiver 254) . As another example, the apparatus 200 (e.g., a vehicle) may determine the present location as an actual location of the vehicle 110. Also or alternatively, the apparatus 200 may simulate a present location of the vehicle 110, e.g., in response to a request indicating an origin of a trip. The processor 210, possibly in combination with the memory 220, possibly in combination with at least one of the sensor (s) 225, possibly in combination with the transceiver 230 (e.g., the wireless receiver 244 and the antenna 246, and / or the wired receiver 254) may comprise means for determining the present location of the vehicle. At least one of the sensor (s) 225 may be used to determine the heading of the vehicle, e.g., by measuring the magnetic field of the Earth or by receiving, via the transceiver 230, one or more measurements of the magnetic field of the Earth or by receiving, via the transceiver 230, an indication of the heading. The processor 210, possibly in combination with the memory 220, possibly in combination with at least one of the sensor (s) 225, possibly in combination with the transceiver 230 (e.g., the wireless receiver 244 and the antenna 246, and / or the wired receiver 254) may comprise means for determining the heading of the vehicle. The path determination unit 250 may, at stage 255 determine a set of candidate intermediate destination points. The processor 210, possibly in combination with the memory 220, possibly in combination with the transceiver 230 (e.g., the wireless receiver 244 and the antenna 246, and / or the wired receiver 254) may comprise means for determining the set of candidate intermediate destination points.

[0062] Implementations of the method 1100 may include one or more of the following features. In an example implementation, the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading. For example, within a field of view dictated by sharpest turns that the vehicle may take, a bound may be implemented to define a domain of possible intermediate destination points, from the present location, corresponding to possible path segments each potentially forming a portion of the path from the origin to the destination. The location constraint may take any of a variety of forms, but being a regular shape (e.g., a circle, a straight line) may help avoid complexity and therefore cost in determining  possible intermediate destination points. As another example, the location constraint may be discrete points of a regular shape (e.g., a point every X° of a circle) rather than an infinite number of points associated with a continuous shape. In a further example implementation, the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle. For example, the line segment may be a portion of a straight line, e.g., the portion of the line 770 between the points 721, 731, or a portion of a non-straight line such as a portion of a circle, e.g., the arc 762. In a further example implementation, the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle. For example, the line segment may be a portion of the step circle 760 centered at the present location 750 of the vehicle such that the line segment is the arc 762. In a further example implementation, determining the set of candidate intermediate destination points comprises sampling the portion of the circle centered at the present location of the vehicle. For example, the path determination unit 250 may select points along the arc 762 to narrow the domain of possible intermediate destination points to a reduced-quantity (e.g., seven as shown in FIG. 7) of possible intermediate destination points (i.e., possible points in paths from the origin to the destination and that are between the origin and destination) . The processor 210, possibly in combination with the memory 220, may comprise means for sampling the set of candidate intermediate destination points. In another further example implementation, the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment. For example, the line segment may be a portion of a straight line, e.g., the portion of the line 770 between the points 721, 731

[0063] Also or alternatively, implementations of the method 1100 may include one or more of the following features. In an example implementation, the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle. In another example implementation, the method 1100 further includes determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment. For example, at stage 365 the path  determination unit 365 may determine whether one or more of, e.g., each of, the candidate intermediate destination points corresponds to an arced path that does not intersect and object, or that may be altered at or beyond the location constraint to avoid any objects. The processor 210, possibly in combination with the memory 220, may comprise means for determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point. In a further example implementation, determining whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprises determining whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc. For example, the path determination unit 250 may determine whether any of the potential paths 820-826 intersect an object ever or within a distance along the respective potential path beyond the location constraint (e.g., beyond the points 810-816, respectively) where altering the path (e.g., changing direction to a maximum turn) will not avoid intersection with an object. In another further example implementation, the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the method further comprises determining a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle. For example, the path determination unit 250 may evaluate the point 812 (e.g., at stages 355, 360, 365) as a new present location based on the point 812 having been identified (at stage 365) as a valid intermediate destination point and selected (at stage 350) for evaluation.

[0064] Also or alternatively, implementations of the method 1100 may include one or more of the following features. In an example implementation, the method 1100 further includes converting a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to the destination, and the vector map  having a finer resolution than the grid map and corresponding distances to the destination. For example, the path determination unit 250 may convert the grid map 510 to the vector map 520 such that finer-resolution locations within the vector map 520 than vertexes in the grid map 510 may be evaluated as possible points along a path from an origin, e.g., the origin 130, to a destination, e.g., the destination 140.

[0065] Implementation examples

[0066] Implementation examples are provided in the following numbered clauses.

[0067] Clause 1. An apparatus comprising:

[0068] at least one memory;

[0069] at least one processor communicatively coupled to the at least one memory and configured to determine a path of a vehicle between an origin and a destination, wherein to determine the path the at least one processor is configured to determine a plurality of segments that together form the path, and wherein to determine candidate segments for the plurality of segments the at least one processor is configured to:

[0070] determine a present location of the vehicle;

[0071] determine a heading of the vehicle; and

[0072] determine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0073] Clause 2. The apparatus of clause 1, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.

[0074] Clause 3. The apparatus of clause 2, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.

[0075] Clause 4. The apparatus of clause 3, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the  right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.

[0076] Clause 5. The apparatus of clause 4, wherein to determine the set of candidate intermediate destination points the at least one processor is configured to sample the portion of the circle centered at the present location of the vehicle.

[0077] Clause 6. The apparatus of clause 3, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.

[0078] Clause 7. The apparatus of clause 1, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.

[0079] Clause 8. The apparatus of clause 1, wherein the at least one processor is further configured to determine whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.

[0080] Clause 9. The apparatus of clause 8, wherein to determine whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable the at least one processor is configured to determine whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.

[0081] Clause 10. The apparatus of clause 8, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the at least one processor is further configure to determine a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.

[0082] Clause 11. The apparatus of clause 1, wherein the at least one processor is configured to convert a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to the destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.

[0083] Clause 12. A method, for determining a path of a vehicle between an origin and a destination, comprising:

[0084] determining a plurality of segments, that together form the path, including determining candidate segments for the plurality of segments by:

[0085] determining a present location of the vehicle;

[0086] determining a heading of the vehicle; and

[0087] determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0088] Clause 13. The method of clause 12, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.

[0089] Clause 14. The method of clause 13, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.

[0090] Clause 15. The method of clause 14, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.

[0091] Clause 16. The method of clause 15, wherein determining the set of candidate intermediate destination points comprises sampling the portion of the circle centered at the present location of the vehicle.

[0092] Clause 17. The method of clause 14, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.

[0093] Clause 18. The method of clause 12, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.

[0094] Clause 19. The method of clause 12, further comprising determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.

[0095] Clause 20. The method of clause 19, wherein determining whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprises determining whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.

[0096] Clause 21. The method of clause 19, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the method further comprises determining a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.

[0097] Clause 22. The method of clause 12, further comprising converting a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to the destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.

[0098] Clause 23. An apparatus comprising:

[0099] at least one memory; and

[0100] means, communicatively coupled to the at least one memory, for determining a plurality of segments that together form a path of a vehicle between an origin and a destination, including means for determining candidate segments for the plurality of segments, the means for determining candidate segments comprising:

[0101] means for determining a present location of the vehicle;

[0102] means for determining a heading of the vehicle; and

[0103] means for determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0104] Clause 24. The apparatus of clause 23, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.

[0105] Clause 25. The apparatus of clause 24, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.

[0106] Clause 26. The apparatus of clause 25, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.

[0107] Clause 27. The apparatus of clause 26, wherein the means for determining the set of candidate intermediate destination points comprise means for sampling the portion of the circle centered at the present location of the vehicle.

[0108] Clause 28. The apparatus of clause 25, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.

[0109] Clause 29. The apparatus of clause 23, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.

[0110] Clause 30. The apparatus of clause 23, further comprising means for determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.

[0111] Clause 31. The apparatus of clause 30, wherein the means for determining whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprise means for determining whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.

[0112] Clause 32. The apparatus of clause 30, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the apparatus further comprises means for determining a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.

[0113] Clause 33. The apparatus of clause 23, further comprising means for converting a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to a destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.

[0114] Clause 34. A non-transitory, processor-readable storage medium comprising processor-readable instructions to cause at least one processor of an apparatus to:

[0115] determine a plurality of segments that together form a path of a vehicle between an origin and a destination, wherein the processor-readable instructions to cause the at least one processor to determine the plurality of segments comprise processor-readable  instructions to cause the at least one processor to determine candidate segments for the plurality of segments, and wherein the processor-readable instructions to cause the at least one processor to determine the candidate segments comprise processor-readable instructions to cause the at least one processor to:

[0116] determine a present location of the vehicle;

[0117] determine a heading of the vehicle; and

[0118] determine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.

[0119] Clause 35. The non-transitory, processor-readable storage medium of clause 34, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.

[0120] Clause 36. The non-transitory, processor-readable storage medium of clause 35, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.

[0121] Clause 37. The non-transitory, processor-readable storage medium of clause 36, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.

[0122] Clause 38. The non-transitory, processor-readable storage medium of clause 37, wherein the processor-readable instructions to cause the at least one processor to determine the set of candidate intermediate destination points comprise processor-readable instructions to cause the at least one processor to sample the portion of the circle centered at the present location of the vehicle.

[0123] Clause 39. The non-transitory, processor-readable storage medium of clause 36, wherein the line segment connecting the first point along the left-hand turning radius of  the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.

[0124] Clause 40. The non-transitory, processor-readable storage medium of clause 34, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.

[0125] Clause 41. The non-transitory, processor-readable storage medium of clause 34, further comprising processor-readable instructions to cause the at least one processor to determine whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.

[0126] Clause 42. The non-transitory, processor-readable storage medium of clause 41, wherein the processor-readable instructions to cause the at least one processor to determine whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprise processor-readable instructions to cause the at least one processor to determine whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.

[0127] Clause 43. The non-transitory, processor-readable storage medium of clause 41, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the non-transitory, processor-readable storage medium further comprises processor-readable instructions to cause the at least one processor to determine a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.

[0128] Clause 44. The non-transitory, processor-readable storage medium of clause 34, further comprising processor-readable instructions to cause the at least one processor to convert a grid map to a vector map, with each of a plurality regions of the  grid map having a distance from a reference point to a destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.

[0129] Other considerations

[0130] Other examples and implementations are within the scope of the disclosure and appended claims. For example, due to the nature of software and computers, functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or a combination of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.

[0131] As used herein, the singular forms “a, ” “an, ” and “the” include the plural forms as well, unless the context clearly indicates otherwise. Thus, reference to a device in the singular (e.g., “a device, ” “the device” ) , including in the claims, includes at least one, i.e., one or more, of such devices (e.g., “a processor” includes at least one processor (e.g., one processor, two processors, etc. ) , “the processor” includes at least one processor, “a memory” includes at least one memory, “the memory” includes at least one memory, etc. ) . The phrases “at least one” and “one or more” are used interchangeably and such that “at least one” referred-to object and “one or more” referred-to objects include implementations that have one referred-to object and implementations that have multiple referred-to objects. For example, “at least one processor” and “one or more processors” each includes implementations that have one processor and implementations that have multiple processors.

[0132] Also, as used herein, “or” as used in a list of items (possibly prefaced by “at least one of” or prefaced by “one or more of” ) indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C, ” or a list of “one or more of A, B, or C” or a list of “A or B or C” means A, or B, or C, or AB (A and B) , or AC (A and C) , or BC (B and C) , or ABC (i.e., A and B and C) , or combinations with more than one feature (e.g., AA, AAB, ABBC, etc. ) . Thus, a recitation that an item, e.g., a processor, is configured to perform a function regarding at least one of A or B, or a recitation that an item is configured to perform a function A or a function B, means that the item may be configured to perform the function regarding A, or may be configured to perform the function regarding B, or may be configured to perform the function regarding A and B.  For example, a phrase of “a processor configured to measure at least one of A or B” or “a processor configured to measure A or measure B” means that the processor may be configured to measure A (and may or may not be configured to measure B) , or may be configured to measure B (and may or may not be configured to measure A) , or may be configured to measure A and measure B (and may be configured to select which, or both, of A and B to measure) . Similarly, a recitation of a means for measuring at least one of A or B includes means for measuring A (which may or may not be able to measure B) , or means for measuring B (and may or may not be configured to measure A) , or means for measuring A and B (which may be able to select which, or both, of A and B to measure) . As another example, a recitation that an item, e.g., a processor, is configured to at least one of perform function X or perform function Y means that the item may be configured to perform the function X, or may be configured to perform the function Y, or may be configured to perform the function X and to perform the function Y. For example, a phrase of “a processor configured to at least one of measure X or measure Y” means that the processor may be configured to measure X (and may or may not be configured to measure Y) , or may be configured to measure Y (and may or may not be configured to measure X) , or may be configured to measure X and to measure Y (and may be configured to select which, or both, of X and Y to measure) .

[0133] As used herein, unless otherwise stated, a statement that a function or operation is “based on” an item or condition means that the function or operation is based on the stated item or condition and may be based on one or more items and / or conditions in addition to the stated item or condition.

[0134] Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and / or particular elements might be implemented in hardware, software (including portable software, such as applets, etc. ) executed by a processor, or both. Further, connection to other computing devices such as network input / output devices may be employed. Components, functional or otherwise, shown in the figures and / or discussed herein as being connected or communicating with each other are communicatively coupled unless otherwise noted. That is, they may be directly or indirectly connected to enable communication between them.

[0135] The systems and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as  appropriate. For instance, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.

[0136] Specific details are given in the description herein to provide a thorough understanding of example configurations (including implementations) . However, configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. The description herein provides example configurations, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations provides a description for implementing described techniques. Various changes may be made in the function and arrangement of elements.

[0137] The terms “processor-readable medium, ” “machine-readable medium, ” and “computer-readable medium, ” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. Using a computing platform, various processor-readable media might be involved in providing instructions / code to processor (s) for execution and / or might be used to store and / or carry such instructions / code (e.g., as signals) . In many implementations, a processor-readable medium is a physical and / or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media include, for example, optical and / or magnetic disks. Volatile media include, without limitation, dynamic memory.

[0138] Having described several example configurations, various modifications, alternative constructions, and equivalents may be used. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the disclosure. Also, a number of operations may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.

[0139] Unless otherwise indicated, “about” and / or “approximately” as used herein when referring to a measurable value such as an amount, a temporal duration, and the like, encompasses variations of ±20%or ±10%, ±5%, or ±0.1%from the specified  value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein. Unless otherwise indicated, “substantially” as used herein when referring to a measurable value such as an amount, a temporal duration, a physical attribute (such as frequency) , and the like, also encompasses variations of ±20%or ±10%, ±5%, or ±0.1%from the specified value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein.

[0140] A statement that a value exceeds (or is more than or above) a first threshold value is equivalent to a statement that the value meets or exceeds a second threshold value that is slightly greater than the first threshold value, e.g., the second threshold value being one value higher than the first threshold value in the resolution of a computing system. A statement that a value is less than (or is within or below) a first threshold value is equivalent to a statement that the value is less than or equal to a second threshold value that is slightly lower than the first threshold value, e.g., the second threshold value being one value lower than the first threshold value in the resolution of a computing system.

Claims

1.An apparatus comprising:at least one memory;at least one processor communicatively coupled to the at least one memory and configured to determine a path of a vehicle between an origin and a destination, wherein to determine the path the at least one processor is configured to determine a plurality of segments that together form the path, and wherein to determine candidate segments for the plurality of segments the at least one processor is configured to:determine a present location of the vehicle;determine a heading of the vehicle; anddetermine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.2.The apparatus of claim 1, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.3.The apparatus of claim 2, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.4.The apparatus of claim 3, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.5.The apparatus of claim 4, wherein to determine the set of candidate intermediate destination points the at least one processor is configured to sample the portion of the circle centered at the present location of the vehicle.6.The apparatus of claim 3, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.7.The apparatus of claim 1, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.8.The apparatus of claim 1, wherein the at least one processor is further configured to determine whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.9.The apparatus of claim 8, wherein to determine whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable the at least one processor is configured to determine whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.10.The apparatus of claim 8, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the at least one processor is further configure to determine a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction  of the viable candidate path segment at the selected point as a second heading of the vehicle.11.The apparatus of claim 1, wherein the at least one processor is configured to convert a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to the destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.12.A method, for determining a path of a vehicle between an origin and a destination, comprising:determining a plurality of segments, that together form the path, including determining candidate segments for the plurality of segments by:determining a present location of the vehicle;determining a heading of the vehicle; anddetermining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.13.The method of claim 12, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.14.The method of claim 13, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.15.The method of claim 14, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand  turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.16.The method of claim 15, wherein determining the set of candidate intermediate destination points comprises sampling the portion of the circle centered at the present location of the vehicle.17.The method of claim 14, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.18.The method of claim 12, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.19.The method of claim 12, further comprising determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.20.The method of claim 19, wherein determining whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprises determining whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.21.The method of claim 19, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the method further comprises determining a second set of candidate intermediate destination points by using a  selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.22.The method of claim 12, further comprising converting a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to the destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.23.An apparatus comprising:at least one memory; andmeans, communicatively coupled to the at least one memory, for determining a plurality of segments that together form a path of a vehicle between an origin and a destination, including means for determining candidate segments for the plurality of segments, the means for determining candidate segments comprising:means for determining a present location of the vehicle;means for determining a heading of the vehicle; andmeans for determining a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.24.The apparatus of claim 23, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.25.The apparatus of claim 24, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the  first point on the left-hand turning circle to the second point on the right-hand turning circle.26.The apparatus of claim 25, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.27.The apparatus of claim 26, wherein the means for determining the set of candidate intermediate destination points comprise means for sampling the portion of the circle centered at the present location of the vehicle.28.The apparatus of claim 25, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.29.The apparatus of claim 23, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.30.The apparatus of claim 23, further comprising means for determining whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.31.The apparatus of claim 30, wherein the means for determining whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprise means for determining whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.32.The apparatus of claim 30, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the apparatus further comprises means for determining a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.33.The apparatus of claim 23, further comprising means for converting a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to a destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.34.A non-transitory, processor-readable storage medium comprising processor-readable instructions to cause at least one processor of an apparatus to:determine a plurality of segments that together form a path of a vehicle between an origin and a destination, wherein the processor-readable instructions to cause the at least one processor to determine the plurality of segments comprise processor-readable instructions to cause the at least one processor to determine candidate segments for the plurality of segments, and wherein the processor-readable instructions to cause the at least one processor to determine the candidate segments comprise processor-readable instructions to cause the at least one processor to:determine a present location of the vehicle;determine a heading of the vehicle; anddetermine a set of candidate intermediate destination points based on the heading, the present location, a right-hand turning radius of the vehicle, a left-hand turning radius of the vehicle, and a location constraint for the set of candidate intermediate destination points.35.The non-transitory, processor-readable storage medium of claim 34, wherein the location constraint constrains the set of candidate intermediate destination points to be within a field of view including a first point on a left-hand turning circle passing through the present location tangent to the heading and having the left-hand turning radius, a second point on a right-hand turning circle passing through the present location tangent to the heading and the left-hand turning circle and having the right-hand turning radius, and a third point along the heading.36.The non-transitory, processor-readable storage medium of claim 35, wherein the location constraint constrains the set of candidate intermediate destination points to be along a line segment connecting the first point on the left-hand turning circle to the second point on the right-hand turning circle.37.The non-transitory, processor-readable storage medium of claim 36, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a portion of a circle centered at the present location of the vehicle.38.The non-transitory, processor-readable storage medium of claim 37, wherein the processor-readable instructions to cause the at least one processor to determine the set of candidate intermediate destination points comprise processor-readable instructions to cause the at least one processor to sample the portion of the circle centered at the present location of the vehicle.39.The non-transitory, processor-readable storage medium of claim 36, wherein the line segment connecting the first point along the left-hand turning radius of the vehicle to the second point along the right-hand turning radius of the vehicle comprises a straight line segment.40.The non-transitory, processor-readable storage medium of claim 34, wherein the left-hand turning radius of the vehicle and the right-hand turning radius of the vehicle are each equal to a minimum turning radius of the vehicle.41.The non-transitory, processor-readable storage medium of claim 34, further comprising processor-readable instructions to cause the at least one processor to determine whether each point of the set of candidate intermediate destination points is a valid candidate intermediate destination point corresponding to a viable candidate path segment.42.The non-transitory, processor-readable storage medium of claim 41, wherein the processor-readable instructions to cause the at least one processor to determine whether a candidate path segment between the present location of the vehicle and a selected candidate intermediate destination point is viable comprise processor-readable instructions to cause the at least one processor to determine whether a maximum-radius arc including the present location of the vehicle and the selected candidate intermediate destination point intersects with an object at least within a threshold distance along the maximum-radius arc that is beyond the selected candidate intermediate destination point and unavoidable by the vehicle once at the selected candidate intermediate destination point along the maximum-radius arc.43.The non-transitory, processor-readable storage medium of claim 41, wherein the set of candidate intermediate destination points is a first set of candidate intermediate destination points, the present location of the vehicle is a first present location of the vehicle, and the heading of the vehicle is a first heading of the vehicle, and wherein the non-transitory, processor-readable storage medium further comprises processor-readable instructions to cause the at least one processor to determine a second set of candidate intermediate destination points by using a selected point of the first set of candidate intermediate destination points that is determined to be valid as a second present location of the vehicle, and using a direction of the viable candidate path segment at the selected point as a second heading of the vehicle.44.The non-transitory, processor-readable storage medium of claim 34, further comprising processor-readable instructions to cause the at least one processor to convert a grid map to a vector map, with each of a plurality regions of the grid map having a distance from a reference point to a destination, and the vector map having a finer resolution than the grid map and corresponding distances to the destination.