Patent Description:
Several computer based navigation systems that are configured for aiding navigation and/or control of vehicle have been proposed and implemented in the prior art. These systems range from more basic map-aided localization based solutions - i.e. use of a computer system to assist a driver in navigating a route from a starting point to a destination point; to more complex ones - computer-assisted and/or driver-autonomous driving systems.

Some of these systems are implemented as what is commonly known as a "cruise control" system. Within these systems, the computer system boarded on the vehicles maintains a user-set speed of the vehicle. Some of the cruise control systems implement an "intelligent distance control" system, whereby the user can set up a distance to a potential car in front (such as, select a value expressed in a number of vehicles) and the computer system adjusts the speed of the vehicle at least in part based on the vehicle approaching the potential vehicle in front within the pre-defined distance. Some of the cruise control systems are further equipped with a collision control system, which systems upon detection of the vehicle (or other obstacle) in front of the moving vehicle, slow down or stop the vehicle.

Some of the more advanced systems provide for a fully autonomous driving of the vehicle without direct control from the operator (i.e. the driver), so-called Self-Driving Cars (SDCs). A given SDC includes computer systems that can cause the SDC to accelerate, brake, stop, change lane and self-park.

One of the technical challenges in implementing the above computer systems is planning an SDC operation when approaching a turn.

<NPL>et al. has been cited during examination of the present patent. This paper discloses a local motion planning method combined with High-Definition (HD) maps. Through the HD map defined by OpenStreetMap, the local motion planner can obtain the prior knowledge of traffic scenarios and achieve path planning and optimization accordingly. In order to improve the safety and comfort of the obstacle avoiding process, we also propose an inertia-like path selection algorithm based on this planning method. We evaluated the proposed method on our designed autonomous driving experimental platform 'Pioneer' and participated in the <NUM> Intelligent Vehicles Future Challenge. In the competition, the 'Pioneer' successfully completed all the races and won the championship without any manual intervention.

It is an object of the present technology to ameliorate at least some of the inconveniences present in the prior art. Embodiments of the present technology may provide and/or broaden the scope of approaches to methods of achieving the aims and objects of the present technology.

A Self-Driving Car (SDC) is typically equipped with an electronic device and various sensors. For example, the electronic device may be configured to receive and process data about lanes on a road segment on which the SDC is travelling, such as data indicative of lane geometry, shape and boundaries, for example. Also, the electronic device may be configured to receive and process data about objects in the surroundings of the SDC, such as data indicative of object types, movement of objects, and geometry of objects, for example.

It should be noted that lanes may have various characteristics and shapes. For instance, some lanes may be substantially straight lanes, while others may have a curve (such as a curve on a highway), may be U-shaped lanes and/or L-shaped lanes, such as turning lanes. Also, lanes on a road segment can typically be defined by a left boundary and a right boundary, and by having a center line in between those boundaries.

Developers of the present technology have realized that, under normal conditions, a reference path of a vehicle, i.e. the anchor point of the lane along which the vehicles ought to move along is the center line of a given lane. This can be done for safety purposes, for example. Hence, under normal conditions, a SDC ought to be travelling along a default reference path that corresponds to the center line of the lane. In one example, a midpoint of the rear axel of the SDC may be used a reference point between the SDC and the center line of the lane for ensuring that the SDC is travelling along the center line of the lane.

Developers of the present technology have realized that a default reference path for the SDC may be represented by a plurality of anchor points (e.g., positional points in the lane) that fall on the center line of the lane and which the SDC ought to follow while operating in the lane.

Developers of the present technology have also devised an electronic device that may be configured to continuously verify whether the SDC is currently following the default reference path in the lane and whether or not the SDC is falling within constraints on the road segment. For example, the constraints on the road segment may include boundaries of the lane in which the SDC is travelling. Also, the developers of the present technology have devised an electronic device that may be configured to take action, under certain conditions, for amending the default reference path in order to fall within the constraints of the road segment and to trigger the SDC to operate in accordance with the amended path.

However, developers of the present technology have appreciated at least one technical problem associated with the prior art approaches. More specifically, they have realised that amending a given reference path may be a technically challenging task.

For example, when the lane is not straight, such as a turning lane, there is a risk that during the turning maneuver a portion of the SDC falls outside the boundaries of the turning lane. In at least some embodiments of the present technology, developers of the present technology have devised methods and systems for avoiding such unsafe situations by amending a default reference path of the SDC on the turning lane and thereby determining an amended path that the SDC ought to follow in the turning lane in order to fall within the constraints of the road segment (e.g., boundaries of the lane).

In at least some embodiments of the present technology, developers of the present technology have devised methods and systems that allow determining safe deviation intervals along a road segment for the SDC and which form a safe deviation corridor for the SDC. The amended reference path may then be determined by using the safe deviation corridor to ensure that the SDC walls within the constraints of the road segment. As a result, at least some embodiments of the present technology have a technical effect of generating operation control data for the SDC that may increase safety of the passengers and others on the road segment.

In other embodiments of the present technology, developers of the present technology have devised methods and systems allowing for determination of a predicted reference path for a neighboring vehicle (to the SDC) and then determine the amended (predicted) reference path for that neighbouring vehicle. These embodiments of the present technology have a technical effect of generating operation control data for the SDC which takes into account the amended (predicted) reference path that the neighbouring vehicle is predicted to follow on the road segment - when the operation of the SDC is controlled in accordance with this operation control data, the risk of collision between the neighbouring vehicle and the SDC is reduced.

To that end, the developers have devised a system that, in some embodiments of the present technology, comprises an electronic device <NUM> and a plurality of sensors <NUM>, as depicted in <FIG>. Such system may be mounted, equipped or otherwise coupled to a given SDC. The electronic device <NUM>, for example, may be configured to implement: a perception module <NUM>, a lane geometry tracker <NUM>, a bounding box modeling module <NUM>, an optional dynamic objects tracker <NUM>, an optional dynamic object reference history database <NUM>, and a reference path calculation module <NUM>. It should be noted that a given module in the context of the present specification may refer to one or more computer-implemented procedures that the electronic device is able to implement for performing processing and/or generation of data as described herein. Alternatively, the given module can be a physical electronic device. Alternatively, several modules (or all modules) can be implemented in a single electronic device.

In some non-limiting embodiments, the plurality of sensors <NUM> may be configured to continuously acquire data about the surroundings of the SDC, including but not limited to: data about a current lane in which the SDC is travelling, a geometry of the current lane, geometry of neighbor lanes (and data about the road segment in general on which the SDC is travelling), data about dynamic objects and their positions in the neighbor lanes, kinematic data associated with these objects, and geometric data about these objects (and data about objects in general that are in proximity to the SDC). The sensor data may be provided to the perception module <NUM> for further processing. In some cases, the purpose of the perception module <NUM> is to process and transmit data that other parts of the system may require for additional processing.

Developers of the present technology have realized that the present technology may be used, not only for determining an amended path for the SDC, but can also be used for determining a predicted path of dynamic objects in the surroundings of the SDC. In some embodiments, it is contemplated that similar methods may be employed in order to (i) determining an amended path for the SDC and (ii) determining a predicted path of dynamic objects in the surroundings of the SDC.

A first scenario in which the system is configured to determine an amended path for the SDC will now be briefly discussed. In such a scenario, the lane geometry tracker <NUM> may receive data, from the perception module <NUM>, for example, about the width of the current lane in which the SDC is travelling. In other cases, this data may be acquired from an HD map of the road segment, which is either stored locally on the electronic device <NUM> or remotely from the electronic device <NUM>. The lane geometry tracker <NUM> may determine positional data indicative of a center line of the current lane. In one embodiment of the present disclosure, the lane geometry tracker <NUM> may determine the positional data in a form of a polyline. Such polyline may include vertices and edges. The electronic device <NUM> may be configured to transform such a polyline into a continuous line via a spline interpolation procedure. In some cases, the center line of the current lane may be used by the reference path calculation module <NUM> for determining a default reference path of the SDC in the current lane.

In the first scenario, it is contemplated that the bounding box modelling module <NUM> may be configured to build a bounding box which is a simulated representation of the SDC on the road segment and which corresponds to an area covered by the SDC on the road segment.

In some non-limiting embodiments, the bounding box modelling module <NUM> may be configured to build a polygon that is an enlarged simulated representation of the SDC and which covers an area on the road segment that is larger than the actual area covered by the SDC on the road segment.

In other non-limiting embodiments, the bounding box corresponding to the area covered by the SDC may be built, and then, can be rotated about an axis passing through the middle of the rear axle of the SDC (+/- <NUM> degrees, for example) which results in an enlarged polygon. This enlarged polygon is also an enlarged simulated representation of the SDC and covers an area on the road segment that is larger than the actual area covered by the SDC on the road segment.

In some cases, the bounding box modelling module <NUM> may be configured to transmit data to the reference path calculation module <NUM> for further processing. The reference path calculation module <NUM> may be configured to verify that the SDC is currently travelling along the default reference path and, if necessary, amend the default reference path so that the SDC falls within the constraints of the current lane in which it travels. For example, the reference path calculation module <NUM> may receive data about the default reference path from the lane geometry tracker <NUM> and about a simulated representation of the SDC from the bounding box modelling module <NUM>, and in turn may be configured to simulate whether or not following the default reference path will result in the SDC falling outside the constraints of the current lane. In some non-limiting embodiments of the present technology, the constraints of the current lane can be implemented as lane left and right boundary (which can be marked or unmarked in a physical sense of the world, such as by lane markings).

It is contemplated that the reference path calculation module <NUM> may be configured to analyze the default reference path as a plurality of anchor points in the current lane. The reference path calculation module <NUM> may be configured to simulate movement of the SDC in the current lane as if the midpoint of the rear axle of the SDC is moved from one anchor point to next anchor point in the current lane, and may be configured to verify if any portion of the SDC, if the SDC is so-moved in the current lane, falls outside the boundaries of the current lane.

In one non-limiting embodiment of the present disclosure, instead of so-moving the simulated representation of the SDC, the reference path calculation module <NUM> may be configured to employ an enlarged simulated representation of the SDC, as mentioned above, and simulate movement of the enlarged simulated representation of the SDC in the current lane as if the enlarged simulated representation is moved from one anchor point to the next anchor point.

In some embodiments, the reference path calculation module <NUM> may be configured to determine and store leftmost and rightmost points where the bounding box falls within the current lane. Developers of the present technology have realized that this data may allow determining a safety deviation corridor in the current lane such that when the SDC is travelling within the safety deviation corridor of the current lane, the SDC will fall within constraints (e.g., boundaries) of the current lane.

In some embodiments of the present technology, the electronic device <NUM> may be configured to determine an amended path (or sometimes referred herein as an "amended reference path") such that the amended path falls within the safety deviation corridor. For example, the electronic device <NUM> may be configured to determine a polyline that passes through the safety deviation corridor. In some non-limiting embodiments, such polyline may be further processed by the electronic device <NUM> via an interpolation procedure or other known methods for determining a "smoothed out" amended path in the safety deviation corridor. It is contemplated that smoothing out an amended path may allow the SDC to increase the comfort of its passengers and/or to further reduce dangerous manoeuvers of the road segment.

In some cases, the electronic device may determine that there is no amended path that will allow the SDC to fall within the boundaries of the current lane. In such cases, the electronic device <NUM> may be configured to determine a given amended path where the reference path calculation module <NUM> is configured to amend the default reference path in a way that results in the SDC falling equally outside the left and the right boundaries of the current lane.

In a second scenario, the electronic device <NUM> may be configured to determine a predicted path for dynamic objects in the surroundings of the SDC. In some embodiments, the electronic device <NUM> may also trigger operation of the SDC such that its operation is adjusted in view of the predicted path of the dynamic object for avoiding a collision and for other safety purposes.

In this second scenario, the dynamic object tracker <NUM> may receive data, from the perception module <NUM>, for example, in respect to detected objects moving on the neighbor lanes. This data may include inter alia a geometric size of the dynamic objects and their positions in lanes. The dynamic object tracker <NUM> may be configured to assign IDs to respective detected dynamic object and store the respective data about the dynamic objects in association with the respective IDs in a path history database.

Developers of the present technology have realized that by storing and analyzing data about the dynamic objects in neighboring lanes, the electronic device <NUM> may be configured to determine reference paths for respective dynamic objects relative to the center lines of the respective lanes where the given object is moving.

In some cases, the dynamic objects tracker may be configured to detect when the position of the dynamic object relating to the center line of the respective lane increases, and as a result, determine that the dynamic object is attempting a lane-changing maneuver. Data indicative of such determination by the dynamic object tracker <NUM> may be transmitted to the reference path calculation module <NUM>.

In the second scenario, the bounding box modelling module <NUM> may be configured for processing the dynamic object similarly to how the bounding box modelling module <NUM> is configured in the first scenario for processing the data in regard to the SDC. Also, the reference path calculation module <NUM> may be configured in the second scenario for a respective dynamic object similarly to how the reference path calculation module <NUM> is configured for the SDC in the first scenario. In such a case, developers of the present technology have devised methods and systems where the reference path calculation module <NUM> is configured to determine amended paths that follow the assumption that the normal behaviour of dynamic objects is to follow a default reference path that falls within the boundaries of the respective lanes.

In some embodiments, when the dynamic objects tracker <NUM> transmits data indicative of the dynamic object attempting a lane-changing maneuver, the reference path calculation module <NUM> may be configured to determine a lane-changing reference path based on the historical data about the dynamic object and the center line of the respective lane.

In a first broad aspect of the present technology, there is provided a computer-implemented method of amending a reference path associated with a vehicle. The reference path is a path along a road segment that the vehicle is estimated to follow. The method is executable by an electronic device. The method comprises acquiring, by the electronic device, road segment data and reference path data. The road segment data is indicative of constraints of the road segment. The reference path data has a plurality of anchor points defining the reference path along the road segment. The method comprises using, by the electronic device, the road segment data and the reference path data to determine a safe deviation interval for each one of the plurality of anchor points. A given safe deviation interval for a given anchor point is indicative of an acceptable deviation of the vehicle from the reference path, such that if the vehicle is located within the given safe deviation interval the vehicle falls within the constraints of the road segment. The method comprises using, by the electronic device, the safe deviation intervals to determine an amended path for the vehicle instead of the reference path, such that by following the amended path the vehicle falls within the constraints of the road segment.

In some embodiments of the method, the safe deviation intervals form a safe deviation corridor for the vehicle, and where the safe deviation corridor defines a section of the road segment in which the vehicle falls within the constraints of the road segment.

In some embodiments of the method, the amended path falls within the safe deviation corridor.

In some embodiments of the method, the constraints comprise at least one of (i) physical constraints on the road segment, and (ii) road rule constraints on the road segment.

In some embodiments of the method, the electronic device is associated with a Self-Driving Car (SDC).

In some embodiments of the method, the vehicle is the SDC.

In some embodiments of the method, the method further comprises generating the reference path.

In some embodiments of the method, the SDC is different from the vehicle, and where the method further comprises generating the reference path by accessing a database of historical maneuvers associated with the vehicle and generating a prediction of the reference path.

In some embodiments of the method, the method further comprises generating, by the electronic device, operation-control data for controlling operation of the SDC. The operation-control data represents computer commands for the SDC to follow the amended path along the road segment.

In some embodiments of the method, the SDC is located in proximity to the vehicle on the road segment.

In some embodiments of the method, the method further comprises using, by the electronic device, the amended path of the vehicle for modifying a current path of the SDC along the road segment.

Using the road segment data and the reference path data to determine safe deviation intervals further comprises: (i) generating, by the electronic device, a simulated representation of the vehicle for a respective anchor point from the plurality of anchor points on a simulated representation of the road segment, and (ii) determining, by the electronic device, the safe deviation intervals of the respective anchor points form the plurality of anchor points based on the respective simulated representation of the vehicle on the simulated representation of the road segment.

In some embodiments of the method, the simulated representation of the vehicle covers an artificially increased surface on the simulated representation of the road segment. The artificially increased surface is larger than an actual surface that the vehicle covers of the road segment.

In some embodiments of the method, the simulated representation of the vehicle covers an actual surface on the simulated representation of the road segment, and where the method further comprises as part of the determining the safe deviation intervals of the respective anchor points rotating the simulated presentation using a pre-determined angle to generate an enlarged projection of the vehicle onto the road segment.

In some embodiments of the method, the using the safe deviation intervals to determine the amended path comprises: (i) determining, by the electronic device, amended anchor points for the respective safe deviation intervals, such that a given amended anchor point falls within the respective safe deviation interval, and (ii) determining, by the electronic device the amended path as being a sequence of the amended anchor points.

In some embodiments of the method, the given amended anchor point corresponds to a midpoint of the respective safe interval.

In some embodiments of the method, the sequence of the amended anchor points comprises a polyline.

In some embodiments of the method, comprising defining the plurality of anchor points.

In some embodiments of the method, the defining is based on at least a velocity of the vehicle.

In a second broad aspect of the present technology, there is provided an electronic device for amending a reference path associated with a vehicle. The reference path is a path along a road segment that the vehicle is estimated to follow. The electronic device is configured to acquire road segment data and reference path data. The road segment data is indicative of constraints of the road segment. The reference path data has a plurality of anchor points defining the reference path along the road segment. The electronic device is configured to use the road segment data and the reference path data to determine a safe deviation interval for each one of the plurality of anchor points. A given safe deviation interval for a given anchor point is indicative of an acceptable deviation of the vehicle from the reference path, such that if the vehicle is located within the given safe deviation interval the vehicle falls within the constraints of the road segment. The electronic device is configured to use the safe deviation intervals to determine an amended path for the vehicle instead of the reference path, such that by following the amended path the vehicle falls within the constraints of the road segment.

In some embodiments of the electronic device, the safe deviation intervals form a safe deviation corridor for the vehicle, and where the safe deviation corridor defines a section of the road segment in which the vehicle falls within the constraints of the road segment.

In some embodiments of the electronic device, the amended path falls within the safe deviation corridor.

In some embodiments of the electronic device, the constraints comprise at least one of (i) physical constraints on the road segment, and (ii) road rule constraints on the road segment.

In some embodiments of the electronic device, the electronic device is associated with a Self-Driving Car (SDC).

In some embodiments of the electronic device, the vehicle is the SDC.

In some embodiments of the electronic device, the method further comprises generating the reference path.

In some embodiments of the electronic device, the SDC is different from the vehicle, and wherein the method further comprises generating the reference path by accessing a database of historical maneuvers associated with the vehicle and generating a prediction of the reference path.

In some embodiments of the electronic device, the method further comprises generating, by the electronic device, operation-control data for controlling operation of the SDC, and where the operation-control data representing computer commands for the SDC to follow the amended path along the road segment.

In some embodiments of the electronic device, the SDC is located in proximity to the vehicle on the road segment.

In some embodiments of the electronic device, the method further comprises using, by the electronic device, the amended path of the vehicle for modifying a current path of the SDC along the road segment.

In some embodiments of the electronic device, the simulated representation of the vehicle covers an artificially increased surface on the simulated representation of the road segment, and where the artificially increased surface is larger than an actual surface that the vehicle covers of the road segment.

In some embodiments of the electronic device, the simulated representation of the vehicle covers an actual surface on the simulated representation of the road segment, and wherein the method further comprises as part of the determining the safe deviation intervals of the respective anchor points rotating the simulated presentation using a pre-determined angle to generate an enlarged projection of the vehicle onto the road segment.

In some embodiments of the electronic device, the using the safe deviation intervals to determine the amended path comprises: (i) determining, by the electronic device, amended anchor points for the respective safe deviation intervals, such that a given amended anchor point falls within the respective safe deviation interval, and (ii) determining, by the electronic device the amended path as being a sequence of the amended anchor points.

In some embodiments of the electronic device, the given amended anchor point corresponds to a midpoint of the respective safe interval.

In some embodiments of the electronic device, the sequence of the amended anchor points comprises a polyline.

In some embodiments of the electronic device, the electronic device is further configured to define the plurality of anchor points.

In some embodiments of the electronic device, the electronic device defines the plurality of anchor points based on at least a velocity of the vehicle.

In the context of the present specification, a "server" is a computer program that is running on appropriate hardware and is capable of receiving requests (e.g. from client devices) over a network, and carrying out those requests, or causing those requests to be carried out. The hardware may be implemented as one physical computer or one physical computer system, but neither is required to be the case with respect to the present technology. In the present context, the use of the expression a "server" is not intended to mean that every task (e.g. received instructions or requests) or any particular task will have been received, carried out, or caused to be carried out, by the same server (i.e. the same software and/or hardware); it is intended to mean that any number of software elements or hardware devices may be involved in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request; and all of this software and hardware may be one server or multiple servers, both of which are included within the expression "at least one server".

In the context of the present specification, "electronic device" is any computer hardware that is capable of running software appropriate to the relevant task at hand. In the context of the present specification, the term "electronic device" implies that a device can function as a server for other electronic devices and client devices, however it is not required to be the case with respect to the present technology. Thus, some (non-limiting) examples of electronic devices include personal computers (desktops, laptops, netbooks, etc.), smart phones, and tablets, as well as network equipment such as routers, switches, and gateways. It should be understood that in the present context the fact that the device functions as an electronic device does not mean that it cannot function as a server for other electronic devices. The use of the expression "an electronic device" does not preclude multiple client devices being used in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.

In the context of the present specification, "client device" is any computer hardware that is capable of running software appropriate to the relevant task at hand. In the context of the present specification, in general the term "client device" is associated with a user of the client device. Thus, some (non-limiting) examples of client devices include personal computers (desktops, laptops, netbooks, etc.), smart phones, and tablets, as well as network equipment such as routers, switches, and gateways It should be noted that a device acting as a client device in the present context is not precluded from acting as a server to other client devices. The use of the expression "a client device" does not preclude multiple client devices being used in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.

In the context of the present specification, the expression "information" includes information of any nature or kind whatsoever capable of being stored in a database. Thus information includes, but is not limited to audiovisual works (images, movies, sound records, presentations etc.), data (location data, numerical data, etc.), text (opinions, comments, questions, messages, etc.), documents, spreadsheets, etc..

In the context of the present specification, the expression "software component" is meant to include software (appropriate to a particular hardware context) that is both necessary and sufficient to achieve the specific function(s) being referenced.

In the context of the present specification, the expression "computer information storage media" (also referred to as "storage media") is intended to include media of any nature and kind whatsoever, including without limitation RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc. A plurality of components may be combined to form the computer information storage media, including two or more media components of a same type and/or two or more media components of different types.

In the context of the present specification, the words "first", "second", "third", etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns. Thus, for example, it should be understood that, the use of the terms "first database" and "third server" is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the server, nor is their use (by itself) intended imply that any "second server" must necessarily exist in any given situation. Further, as is discussed herein in other contexts, reference to a "first" element and a "second" element does not preclude the two elements from being the same actual real-world element. Thus, for example, in some instances, a "first" server and a "second" server may be the same software and/or hardware components, in other cases they may be different software and/or hardware components.

Implementations of the present technology each have at least one of the above-mentioned object and/or aspects, but do not necessarily have all of them. It should be understood that some aspects of the present technology that have resulted from attempting to attain the above- mentioned object may not satisfy this object and/or may satisfy other objects not specifically recited herein.

The examples and conditional language recited herein are principally intended to aid the reader in understanding the principles of the present technology and not to limit its scope to such specifically recited examples and conditions. It will be appreciated that those skilled in the art may devise various arrangements which, although not explicitly described or shown herein, nonetheless embody the principles of the present technology and are included within its spirit and scope.

The functions of the various elements shown in the figures, including any functional block labelled as a "processor", may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.

Moreover, explicit use of the term "processor" or "controller" should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read-only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.

Referring initially to <FIG>, there is depicted a computer system <NUM> suitable for use with some implementations of the present technology, the computer system <NUM> comprising various hardware components including one or more single or multi-core processors collectively represented by processor <NUM>, a solid-state drive <NUM>, a memory <NUM>, which may be a random-access memory or any other type of memory. Communication between the various components of the computer system <NUM> may be enabled by one or more internal and/or external buses (not shown) (e.g. a PCI bus, universal serial bus, IEEE <NUM> "Firewire" bus, SCSI bus, Serial-ATA bus, etc.), to which the various hardware components are electronically coupled.

In at least some embodiments of the present technology, the solid-state drive <NUM> stores program instructions suitable for being loaded into the memory <NUM> and executed by the processor <NUM> for determining a presence of an object. For example, the program instructions may be part of a vehicle control application executable by the processor <NUM>.

In at least some embodiments of the present technology, it is contemplated that the computer system <NUM> may have additional and/or optional components, such as a network communication module <NUM> for communication, via a communication network (for example, a communication network <NUM> depicted in <FIG>) with other electronic devices and/or servers, localization modules (not depicted), and the like.

<FIG> illustrates a networked computer environment <NUM> suitable for use with some embodiments of the systems and/or methods of the present technology. The networked computer environment <NUM> comprises an electronic device <NUM> associated with a vehicle <NUM>, or associated with a user (not depicted) who can operate the vehicle <NUM>, a server <NUM> in communication with the electronic device <NUM> via the communication network <NUM> (e.g. the Internet or the like, as will be described in greater detail herein below). Optionally, the networked computer environment <NUM> can also include a GPS satellite (not depicted) transmitting and/or receiving a GPS signal to/from the electronic device <NUM>. It will be understood that the present technology is not limited to GPS and may employ a positioning technology other than GPS. It should be noted that the GPS satellite can be omitted altogether.

The vehicle <NUM>, with which the electronic device <NUM> is associated, may comprise any leisure or transportation vehicle such as a private or commercial car, truck, motorbike or the like. The vehicle may be user operated or a driver-less vehicle. It should be noted that specific parameters of the vehicle <NUM> are not limiting, these specific parameters including: vehicle manufacturer, vehicle model, vehicle year of manufacture, vehicle weight, vehicle dimensions, vehicle weight distribution, vehicle surface area, vehicle height, drive train type (e.g. 2x or 4x), tyre type, brake system, fuel system, mileage, vehicle identification number, and engine size.

The implementation of the electronic device <NUM> is not particularly limited, but as an example, the electronic device <NUM> may be implemented as a vehicle engine control unit, a vehicle CPU, a vehicle navigation device (e.g. TomTom™, Garmin™), a tablet, and a personal computer built into the vehicle <NUM> and the like. Thus, it should be noted that the electronic device <NUM> may or may not be permanently associated with the vehicle <NUM>. Additionally or alternatively, the electronic device <NUM> can be implemented in a wireless communication device such as a mobile telephone (e.g. a smart-phone or a radio-phone). In certain embodiments, the electronic device <NUM> has a display <NUM>.

The electronic device <NUM> may comprise some or all of the components of the computer system <NUM> depicted in <FIG>. In certain embodiments, the electronic device <NUM> is on-board computer device and comprises the processor <NUM>, solid-state drive <NUM> and the memory <NUM>. In other words, the electronic device <NUM> comprises hardware and/or software and/or firmware, or a combination thereof, for determining a trajectory of the vehicle <NUM> at a given road segment considering obstacles therein, as will be described in greater detail below.

In the non-limiting embodiments of the present technology, the electronic device <NUM> comprises or has access to a sensor system <NUM>. According to these embodiments, the sensor system <NUM> may comprise a plurality of sensors allowing for various implementations of the present technology. Examples of the plurality of sensors include but are not limited to: cameras, LIDAR sensors, and RADAR sensors, etc. The sensor system <NUM> is operatively coupled to the processor <NUM> for transmitting the so-captured information to the processor <NUM> for processing thereof, as will be described in greater detail herein below.

The sensor system <NUM> can be mounted on an interior, upper portion of a windshield of the vehicle <NUM>, but other locations are within the scope of the present disclosure, including on a back window, side windows, front hood, rooftop, front grill, or front bumper of the vehicle <NUM>. In some non-limiting embodiments of the present technology, the sensor system <NUM> can be mounted in a dedicated enclosure (not depicted) mounted on the top of the vehicle <NUM>.

Further, the spatial placement of the sensor system <NUM> can be designed taking into account the specific technical configuration thereof, configuration of the enclosure, weather conditions of the area where the vehicle <NUM> is to be used (such as frequent rain, snow, and other elements) or the like.

In the non-limiting embodiments of the present technology, the sensor system <NUM> may comprise a sensor configured to capture an image of a surrounding area <NUM>. In this regard the sensor system <NUM> may be a camera or a plurality thereof (not separately depicted).

How the camera is implemented is not particularly limited. For example, in one specific non-limiting embodiments of the present technology, the camera can be implemented as a mono camera with resolution sufficient to detect objects at pre-determined distances of up to about <NUM> (although cameras with other resolutions and ranges are within the scope of the present disclosure).

In some embodiments of the present technology, the camera (or one or more cameras that make up the implementation of the sensor system <NUM>) is configured to capture a pre-determined portion of the surrounding area <NUM> around the vehicle <NUM>. In some embodiments of the present technology, the camera is configured to capture an image (or a series of images) that represent approximately <NUM> degrees of the surrounding area <NUM> around the vehicle <NUM> that are along a movement path of the vehicle <NUM>.

In other embodiments of the present technology, the camera is configured to capture an image (or a series of images) that represent approximately <NUM> degrees of the surrounding area <NUM> around the vehicle <NUM> that are along a movement path of the vehicle <NUM>. In yet additional embodiments of the present technology, the camera is configured to capture an image (or a series of images) that represent approximately <NUM> degrees of the surrounding area <NUM> around the vehicle <NUM> that are along a movement path of the vehicle <NUM> (in other words, the entirety of the surrounding area around the vehicle <NUM>).

In a specific non-limiting example, the camera can be of the type available from FLIR Integrated Imaging Solutions Inc. , <NUM> Riverside Way, Richmond, BC, V6W 1K7, Canada. It should be expressly understood that the camera can be implemented in any other suitable equipment.

In the non-limiting embodiments of the present technology, the sensor system <NUM> may further comprise a LIDAR instrument (not separately depicted). Lidar stands for LIght Detection and Ranging. It is expected that a person skilled in the art will understand the functionality of the LIDAR instrument, but briefly speaking, a transmitter (not depicted) of the LIDAR sends out a laser pulse and the light particles (photons) are scattered back to a receiver (not depicted) of the LIDAR instrument. The photons that come back to the receiver are collected with a telescope and counted as a function of time. Using the speed of light (~<NUM>×<NUM><NUM> m/s), the processor <NUM> can then calculate how far the photons have travelled (in the round trip). Photons can be scattered back off of many different entities surrounding the vehicle <NUM>, such as other particles (aerosols or molecules) in the atmosphere, other card, stationary objects or potential obstructions in front of the vehicle <NUM>.

In a specific non-limiting example, the LIDAR instrument comprised in the sensor system <NUM> can be implemented as the LIDAR based sensor that may be of the type available from Velodyne LiDAR, Inc. of <NUM> Hellyer Avenue, San Jose, CA <NUM>, United States of America. It should be expressly understood that the LIDAR instrument can be implemented in any other suitable equipment.

In some embodiments of the present technology, the LIDAR instrument comprised in the sensor system <NUM> can be implemented as a plurality of LIDAR based sensors, such as three, for example, or any other suitable number.

In the non-limiting embodiments of the present technology, the sensor system <NUM> may further comprise a RAdio Detection And Ranging (RADAR) instrument (not separately depicted). Briefly speaking, the RADAR instrument is a detection instrument using radio waves to determine a range, angle and/or velocity of objects. The RADAR instrument includes a transmitter producing electromagnetic waves, an antenna used for transmitting and receiving electromagnetic waves, a receiver, and a processor to determine properties of the detected objects.

In alternative embodiments of the present technology, there may be a separate antenna for receiving waves, and a separate antenna for transmitting waves. The processor used for determining properties of surrounding objects may be the processor <NUM>.

In some embodiments of the present technology, the RADAR instrument used in the sensor system <NUM> may comprise long-range, medium-range and short-range RADAR sensors. As a non-limiting example, the long-range RADAR sensor may be used for adaptive cruise control, automatic emergency braking, and forward collision warning, while the medium and short-range RADAR sensors may be used for park assist, cross-traffic alert, junction assist, and blind side detection.

In a specific non-limiting example, the RADAR instrument comprised in the sensor system <NUM> may be of the type available from Robert Bosch GmbH of Robert-Bosch-Platz <NUM>, <NUM> Gerlingen, Germany. It should be expressly understood that the RADAR instrument can be implemented in any other suitable equipment.

In some non-limiting embodiments of the present technology, the sensor system <NUM> may be used, by the processor <NUM>, for image calibration. For example, using an image captured by the camera and the LIDAR point cloud captured by the LIDAR instrument, the processor <NUM> is configured to identify a given region of the image to correspond to a given region of the LIDAR point cloud captured by the LIDAR instrument. In other embodiments of the present technology, the sensor system <NUM> are calibrated such that for the image captured by the camera, the LIDAR point cloud captured by the LIDAR instrument, and the RADAR data captured by the RADAR instrument, the processor <NUM> is configured to identify a given region of the image to correspond to a given region of the LIDAR point cloud and the RADAR data.

In the non-limiting embodiments of the present technology, the vehicle <NUM> further comprises or has access to other sensors (not separately depicted). The other sensors include one or more of: an inertial measurement unit (IMU), a Global Navigation Satellite System (GNSS) instrument, ground speed RADARs, ultrasonic SONAR sensors, odometry sensors including accelerometers and gyroscopes, mechanical tilt sensors, magnetic compass, and other sensors allowing operation of the vehicle <NUM>.

As a non-limiting example, the IMU may be fixed to the vehicle <NUM> and comprise three gyroscopes and three accelerometers for providing data on the rotational motion and linear motion of the vehicle <NUM>, which may be used to calculate motion and position of the vehicle <NUM>.

In some embodiments of the present technology, the communication network <NUM> is the Internet. In alternative non-limiting embodiments, the communication network <NUM> can be implemented as any suitable local area network (LAN), wide area network (WAN), a private communication network or the like. It should be expressly understood that implementations of the communication network <NUM> are for illustration purposes only. How a communication link (not separately numbered) between the electronic device <NUM> and the communication network <NUM> is implemented will depend inter alia on how the electronic device <NUM> is implemented. Merely as an example and not as a limitation, in those non-limiting embodiments of the present technology where the electronic device <NUM> is implemented as a wireless communication device such as a smartphone or a navigation device, the communication link can be implemented as a wireless communication link. Examples of wireless communication links include, but are not limited to, a <NUM> communication network link, a <NUM> communication network link, and the like. The communication network <NUM> may also use a wireless connection with a server <NUM>.

In some embodiments of the present technology, the server <NUM> is implemented as a conventional computer server and may comprise some or all of the components of the computer system <NUM> of <FIG>. In one non-limiting example, the server <NUM> is implemented as a Dell™ PowerEdge™ Server running the Microsoft™ Windows Server™ operating system, but can also be implemented in any other suitable hardware, software, and/or firmware, or a combination thereof. In the depicted non-limiting embodiments of the present technology, the server is a single server. In alternative non-limiting embodiments of the present technology (not shown), the functionality of the server <NUM> may be distributed and may be implemented via multiple servers.

In some non-limiting embodiments of the present technology, the processor <NUM> of the electronic device <NUM> can be in communication with the server <NUM> to receive one or more updates. The updates can be, but are not limited to, software updates, map updates, routes updates, weather updates, and the like.

In some embodiments of the present technology, the processor <NUM> can also be configured to transmit to the server <NUM> certain operational data, such as routes travelled, traffic data, performance data, and the like. Some or all data transmitted between the vehicle <NUM> and the server <NUM> may be encrypted and/or anonymized.

In <FIG>, there is also depicted a storage <NUM> communicatively coupled to the server <NUM>. In some embodiments, however, the storage <NUM> may be communicatively coupled to the electronic device <NUM> and/or may be implemented within the electronic device <NUM> and/or may be communicatively coupled to any other processor of the networked computer environment <NUM>.

In at least some embodiments, it is contemplated that the storage <NUM> may be used by the server <NUM>, the electronic device <NUM> and/or any other processor of the networked computer environment <NUM> as a memory device for storing information. The storage <NUM> is configured to store information extracted, determined and/or generated by the processor <NUM> of the server <NUM> and/or the electronic device <NUM>. Generally speaking, the storage <NUM> may receive data from the processor <NUM> which was generated by the processor <NUM> during processing for temporary and/or permanent storage thereof and may provide stored data to the processor <NUM> for use thereof. It is contemplated that the storage <NUM> may be split into several distributed storages, for providing a fault-tolerant storage system for example, without departing from the scope of the present technology.

It should be noted that in at least some embodiments of the present technology, the storage <NUM> may be implemented locally on the electronic device <NUM> and/or the server <NUM> (such as on a local memory, for example). It is also contemplated however that the storage <NUM> may be implemented remotely from the electronic device <NUM> and/or the server <NUM> (such as on a remote memory, for example).

Broadly speaking, the electronic device <NUM> may be configured to control operation or otherwise trigger control of the operation of the vehicle <NUM>. In some embodiments of the present technology, the electronic device <NUM> may be implemented in a similar manner to how the electronic device <NUM> of <FIG> is implemented.

More specifically, the electronic device <NUM> may be configured to control operation or otherwise trigger control of the operation of the vehicle <NUM> when approaching a turn and/or when the vehicle <NUM> is about to perform a turning manoeuver.

In one example, the electronic device <NUM> may be configured to determine operation-control data for controlling operation of the vehicle <NUM> when the vehicle <NUM> is approaching a given turn on a road segment. In another example, the electronic device <NUM> may also be configured to determine operation-control data for controlling operation of the vehicle <NUM> when the vehicle <NUM> is performing a turning manoeuver. To better illustrate this, reference will now be made to <FIG> depicted a birds-eye view representation <NUM> of the vehicle <NUM> approaching a turn.

It is contemplated that in at least one non-limiting embodiment of the present technology, the electronic device <NUM> may be configured to simulate and render the birds-eye view representation <NUM> on the display <NUM> for example. However in other non-limiting embodiments of the present technology, the birds-eye view representation <NUM> is generated for processing purposes only, without any displaying thereof.

The electronic device <NUM> may be configured to acquire road segment data for generating a simulated representation of a road segment <NUM>. Broadly speaking, the road segment data acquired by the electronic device <NUM> is indicative of constraints of the road segment <NUM> on which the vehicle <NUM> is travelling.

It should be noted that the constraints of the road segment <NUM> may take many forms and, as such, may comprise at least one of (i) physical constraints on the road segment, and (ii) road rule constraints on the road segment <NUM>.

Broadly speaking, physical constraints of the road segment <NUM> may include one or more parameters that define geometry of the road segment <NUM>. For example, the physical constraints of the road segment <NUM> may include one or more radii of the road segment <NUM> (e.g., that can be used to parametrized the turn associated with the road segment <NUM>), one or more distances (such as widths and/or lengths, for example) associated with portions of the road segment <NUM>, one or more positions (such as positions of various objects and/or boundaries, for example) associated with the road segment <NUM>, one or more angles associated with the road segment <NUM>, and the like. In some non-limiting embodiments of the present technology, it is contemplated that data indicative of the physical constraints may be acquired by the electronic device <NUM> from the sensor system <NUM>, as explained above.

Broadly speaking, road rule constraints of the road segment <NUM> may include one or more road rules that regulate traffic on the road segment <NUM>. For example, the road rule constraints may include road signs, one or more lane lines, and the like. In some non-limiting embodiments of the present technology, it is contemplated that data indicative of the road rule constraints may be acquired by the electronic device <NUM> from the sensor system <NUM> and/or from the server <NUM>, as explained above.

In some cases, the electronic device <NUM> may employ data indicative of the road rule constraints and data indicative of the physical constraints in a complementary manner during data processing. For example, data indicative of physical lane boundaries and data indicative of that those lane boundaries are provided for regulating traffic in the lane (so as to avoid collisions, for example) may be employed by the electronic device <NUM> such that the electronic device <NUM> has access to information regarding (i) a position of a given lane boundary on the road segment <NUM>, and (ii) that it is prohibited to cross over the given lane boundary when travelling in that lane.

It is contemplated that the electronic device <NUM> may be configured to generate the simulated representation of the road segment <NUM> as depicted in <FIG> based on the data indicative of constraints of the road segment <NUM>. As appreciated from the illustration of <FIG>, the road segment <NUM> has a lane <NUM>, which is defined by a left boundary <NUM> and a right boundary <NUM>. In this case, it can be said that the left boundary <NUM> and the right boundary <NUM> of the lane <NUM> are part of the constraints of the road segment <NUM> and allow regulating traffic on the road segment <NUM>.

Also depicted in <FIG> is a bounding box <NUM> that is a simulated representation of the vehicle <NUM>. It should be noted that the electronic device <NUM> may be configured to generate the bounding box <NUM> based on data associated with the vehicle <NUM>, such as data indicative of geometry, configuration, and size of the vehicle <NUM>.

For example, the bounding box <NUM> depicted in <FIG> occupies a substantially same area on the simulated representation of the road segment <NUM> as the surface area occupied by the vehicle <NUM> on the road segment <NUM>. In the same example, the electronic device <NUM> may be configured to generate a simulated representation of a rear axle <NUM> of the vehicle <NUM> within the bounding box <NUM> and a simulated representation of an axis <NUM> passing through a midpoint of the rear axle <NUM> of the vehicle <NUM>. It should be noted that the axis <NUM> extends upwardly and perpendicular to the ground surface upon which the vehicle <NUM> is travelling.

Hence, it can be said that the electronic device <NUM> may be configured to generate the simulated representation of the vehicle <NUM> by generating the bounding box <NUM>, the rear axle <NUM> and the axis <NUM> based on data associated with the vehicle <NUM>. It should be noted that in some embodiments of the present technology, the electronic device <NUM> may be configured to employ (i) a simulated representation of a front axle with, or instead of, the simulated representation of the rear axle <NUM>, (ii) a simulated representation of an axis of the front axle, with or instead of, the simulated representation of the axis <NUM> in the context of the present technology and depending on inter alia the geometry, the configuration (e.g., front wheel drive, rear wheel drive, 4x4) and size of the vehicle <NUM>.

In some embodiments, the electronic device <NUM> may be configured to implement a bounding box modelling module. For example, the bounding box modelling module may be configured to generate the bounding box <NUM> as described above. In another example, the bounding box modelling module may also be configured to generate a given bounding box for neighbouring vehicles of the vehicle <NUM> in a similar manner to how the bounding box modelling module is configured to generate the bounding box <NUM>.

In some non-limiting embodiments of the present technology, it is contemplated that the electronic device <NUM> may be configured to acquire reference path data that is indicative of a reference path <NUM>. It should be noted that the reference path <NUM> is a path along the road segment <NUM> that the vehicle <NUM> is estimated to follow.

In some cases, the reference path data may be acquired by the electronic device <NUM> from the server <NUM>, for example. In other cases, the electronic device <NUM> may be configured to acquire the reference path data by generating the reference path <NUM>.

For example, the electronic device <NUM> may be configured to generate the reference path <NUM> by defining a plurality of anchor points (not numbered) along the road segment <NUM>. As illustrated, the plurality of anchor points includes a first anchor point <NUM>, a second anchor point <NUM>, a third anchor point <NUM>, and a fourth anchor point <NUM> along the road segment <NUM>.

In some embodiments, the electronic device <NUM> may be configured to define anchor points of a given reference path as geometric points along a centre line of a lane in which the vehicle <NUM> is currently travelling. For example, the electronic device <NUM> may be configured to determine the first anchor point <NUM>, the second anchor point <NUM>, the third anchor point <NUM>, and the fourth anchor point <NUM> as a plurality of geometric points along the centre line of the lane <NUM>.

It is contemplated that the electronic device <NUM> may be configured to determine the centre line of the lane <NUM> by identifying the centre line as being a midline between the left boundary <NUM> and the right boundary <NUM> (e.g., based on the physical constraints of the road segment <NUM>) and then may be configured to determine the plurality of anchor points along that midline.

It should be noted that the reference path <NUM> may sometimes be referred as a "default" reference path of the vehicle <NUM>, since, it is assumed that in normal conditions the vehicle <NUM> is ought to travel along the centre line of a given lane by default. Indeed, developers of the present technology have realized that in normal conditions, such as for example when the vehicle <NUM> is travelling along a straight lane, the vehicle <NUM> ought to be travelling along the centre line of that lane for safety purposes. Put another way, it is assumed that in normal conditions the vehicle <NUM> ought to be travelling along a current lane such that the axis <NUM> is aligned with the centre line of the current lane.

It should be noted that the electronic device <NUM> may be configured to determine the plurality of anchor points with different distances between the respective anchor points. It is contemplated that distances between the respective anchor points may be pre-selected by the electronic device <NUM> in different manners for a given application.

In some embodiments of the present technology, the electronic device <NUM> may implement a lane geometry tracking module, or a lane geometry tracker. It is contemplated that the lane geometry tracker of the electronic device <NUM> may be configured to receive data about the lane <NUM> and determine based on that data the centre line of the lane <NUM>. In some cases, the centre line of the lane <NUM> may be calculated by the lane geometry tracker in a form of a polyline having a plurality of vertices. It is contemplated that the plurality of vertices may be used as the plurality of anchor points of a respective default reference path.

However, developers of the present technology have also realized that travelling along the centre line of a given lane is not always a best and/or safest option for the vehicle <NUM>. For example, and as illustrated in <FIG>, some lanes such as the lane <NUM> are not straight, but are rather turning lanes and may include a curve (an angle of which depends on the specific road geometry, of course). In such cases where the vehicle <NUM> is to travel on the road segment <NUM> having the turning lane <NUM>, if the electronic device <NUM> is configured to trigger the vehicle <NUM> to travel along the reference path <NUM>, at least parts of the vehicle <NUM> may cross over the left boundary <NUM> and/or the right boundary <NUM> (e.g., fall outside the constraints of the road segment <NUM>). The vehicle <NUM> at least partially crossing over boundaries of the lane <NUM> is against the road rules and may be unsafe for passengers and/or other vehicles travelling in the proximity of the vehicle <NUM>.

It should be noted that in the scenario depicted in <FIG>, it is assumed that at least parts of the vehicle <NUM> will cross over the left boundary <NUM> if the vehicle <NUM> follows the reference path <NUM>. However, as explained above, depending on the geometry, configuration, and/or size of the vehicle <NUM>, at least parts of the vehicle <NUM> may, alternatively or in addition to crossing the left boundary <NUM>, cross over the right boundary <NUM> during a left turn. Such a situation may occur when the vehicle <NUM> is implemented as a school bus, for example, where a rear of the vehicle <NUM> extends more rearwardly from the rear axle of the vehicle <NUM> than what is depicted in the scenario of <FIG>.

For at least those reasons, the developers of the present technology have devised methods and systems that allow amending a given reference path associated with the vehicle <NUM> and thereby generating a given amended path that allows the vehicle <NUM> to fall within the boundaries of a given turning lane.

As it will become apparent from the description herein further below, the electronic device <NUM> may be configured to determine a safe deviation corridor <NUM> (see <FIG>) in the lane <NUM> which defines a section of the lane <NUM> (e.g., of the road segment <NUM>) in which the vehicle <NUM> falls within the constraints of the road segment <NUM> if the vehicle <NUM> travels in the safe deviation corridor <NUM>. Put another way, it can be said that the electronic device <NUM> may be further configured to generate an amended path <NUM> (see <FIG>) that is within the safe deviation corridor <NUM> such that if the vehicle <NUM> travels along the amended path <NUM> (e.g., the axis <NUM> of the vehicle <NUM> is aligned with the amended path <NUM>), the vehicle <NUM> will fall within the constraints of the road segment <NUM> (e.g., will not cross over the left boundary <NUM> or the right boundary <NUM>).

How the electronic device <NUM> is configured to determine the safe deviation corridor <NUM> and the amended path <NUM> will now be described in turn.

During the generating process of the safe deviation corridor <NUM>, the electronic device <NUM> may be configured to perform an anchor-by-anchor verification procedure to determine whether or not the vehicle <NUM> may safely deviate from a respective anchor point of the reference path <NUM>. In other words, the electronic device <NUM> may be configured to determine for each anchor point of the reference path <NUM> a respective safety deviation interval that is indicative of an acceptable deviation of the vehicle <NUM> from the reference path <NUM> such that if the vehicle <NUM> is located within the given safe deviation interval, the vehicle <NUM> falls within the constraints of the road segment <NUM>.

With reference to <FIG>, there is depicted a representation <NUM> of the electronic device <NUM> performing the verification procedure for the first anchor point <NUM>. To that end, as seen in <FIG>, the electronic device <NUM> may be configured to simulate a situation where the bounding box <NUM> is located on the road segment <NUM> such that the axis <NUM> is aligned with the first anchor point <NUM>. As a result, the electronic device <NUM> may be configured to determine a pair of safe deviation distances for the first anchor point <NUM>, including a safe deviation distance <NUM> and a safe deviation distance <NUM>.

It should be noted that the safe deviation distance <NUM> is a shortest distance between any point of the left boundary <NUM> and any point of the bounding box <NUM> when the bounding box <NUM> is positioned such that the axis <NUM> is aligned with the first anchor point <NUM> and that the forward direction of travel is tangent to the reference path <NUM> at the first anchor point <NUM>. Also, the safe deviation distance <NUM> is a shortest distance between any point of the right boundary <NUM> and any point of the bounding box <NUM> when the bounding box <NUM> is positioned such that the axis <NUM> is aligned with the first anchor point <NUM> that the forward direction of travel is tangent to the reference path <NUM> at the first anchor point <NUM>. Hence, it can be said that the bounding box <NUM> may be deviated by the safe deviation distance <NUM> to the left and/or by the safe deviation distance <NUM> to the right while still falling within the constraints of the road segment <NUM>.

It should be noted that the electronic device <NUM>, may be configured to determine a pair of safe deviation distances for each anchor point of the reference path <NUM> similarly to how the electronic device <NUM> is configured to determine the pair of safe deviation distances <NUM> and <NUM> for the first anchor point <NUM>.

With reference to <FIG>, during the generating process of the safe deviation corridor <NUM>, the electronic device <NUM> is configured to determine a respective safe deviation interval for a respective anchor point based on the respective pair of safe deviation distances. The electronic device <NUM> is configured to determine a first safe deviation interval <NUM> for the first anchor point <NUM> based on the pair of safe deviation distances <NUM> and <NUM>.

The first safe deviation interval <NUM> is bounded by a pair of safe deviation boundaries, including a safe deviation boundary <NUM> and a safe deviation boundary <NUM>. It should be noted that the electronic device <NUM> may be configured to determine the deviation boundary <NUM> as being a given point on the road segment <NUM> that is separated from the first anchor point <NUM> by the safe deviation distance <NUM>. Similarly, the electronic device <NUM> may be configured to determine the safe deviation boundary <NUM> as being a given point on the road segment <NUM> that is separated from the first anchor point <NUM> by the distance <NUM>.

Put another way, the electronic device <NUM> may be configured to determine the pair of safe deviation boundaries <NUM> and <NUM> of the first safe deviation interval <NUM> such that if the axis <NUM> of the vehicle <NUM> is positioned anywhere between the pair safe deviation boundaries <NUM> and <NUM>, the vehicle <NUM> will fall within the constraints of the road segment <NUM>.

The electronic device <NUM> may be configured to determine (i) a second safe deviation interval <NUM> for the second anchor point <NUM>, (ii) a third safe deviation interval <NUM> for the third anchor point <NUM>, and (iii) a fourth safe deviation interval <NUM> for the fourth anchor point <NUM>, similarly to how the electronic device <NUM> is configured to determine the first safe deviation interval <NUM> for the first anchor point <NUM>. Put another way, the electronic device <NUM> may be configured to determine (i) a pair of safe deviation boundaries <NUM> and <NUM> for the second anchor point <NUM> based on the pair of safe deviation distances associated with the second anchor point <NUM>, (ii) a pair of safe deviation boundaries <NUM> and <NUM> for the third anchor point <NUM> based on the pair of safe deviation distances associated with the third anchor point <NUM>, (i) a pair of safe deviation boundaries <NUM> and <NUM> for the fourth anchor point <NUM> based on the pair of safe deviation distances associated with the fourth anchor point <NUM>, similarly to how the electronic device <NUM> is configured to determine the pair of safe deviation boundaries <NUM> and <NUM> for the first anchor point <NUM> based on the pair of safe deviation distances <NUM> and <NUM>.

It should be noted that a given anchor point may or may not fall within a respective safe deviation interval, and that whether or not a given anchor point falls within the respective safe deviation interval will depend on inter alia the road segment data (e.g., the constraints of the road segment <NUM>) and the vehicle data (e.g., the geometry, the configuration and the size of the vehicle <NUM>). For example, as seen in <FIG>, the first anchor point <NUM> and the fourth anchor point <NUM> fall within the first safe deviation interval <NUM> and the fourth safe deviation interval <NUM>, respectively. However, the second anchor point <NUM> does not fall within the second safe deviation interval <NUM>, and the third anchor point does not fall within the third safe deviation interval <NUM>.

For example, the second anchor point <NUM> is not falling within the second safe deviation interval <NUM> because when the bounding box <NUM> is positioned such that the axis <NUM> is aligned with the second anchor point <NUM> and such that the forward direction of travel is tangent to the reference path <NUM> at the second anchor point <NUM>, the bounding box <NUM> at least partially overlaps the left boundary <NUM>. Hence, it can be said that the safe deviation distance between (i) the left boundary <NUM> and (ii) the bounding box <NUM> when the bounding box <NUM> is positioned such that the axis <NUM> is aligned with the second anchor point <NUM> and such that the forward direction of travel is tangent to the reference path <NUM> at the second anchor point <NUM>, is negative. As a result, the electronic device <NUM> may be configured to determine, based on this negative safe deviation distance that the safe deviation boundary <NUM> is to be positioned to the right of the second anchor point <NUM> and, thus, the second anchor point <NUM> does not fall within the second safe deviation interval <NUM>.

Overall, it can be said that during the generating process of the safe deviation corridor <NUM>, the electronic device <NUM> may be configured to, for each anchor point of the reference path <NUM>, (i) determine a respective pair of safe deviation distances, such as the pair of the safe deviation distances <NUM> and <NUM> for the first anchor point <NUM>, (ii) determine a respective safe deviation interval based on the respective pair of safe deviation distances, such as the first safe deviation interval <NUM> based on the pair of safe deviation distances <NUM> and <NUM> for the first anchor point <NUM>, and (iii) determine the safe deviation corridor <NUM> as the section of the road segment <NUM> that is included within the respective safe deviation intervals, such as the first safe deviation interval <NUM>, the second safe deviation interval <NUM>, the third safe deviation interval <NUM>, and the fourth safe deviation interval <NUM>.

It should be noted that if the axis <NUM> of the bounding box <NUM> is positioned anywhere within the safe deviation corridor <NUM> and such that the forward direction of travel is tangent to the reference path <NUM> at the second anchor point <NUM>, the vehicle <NUM> will be falling within the constraints of the road segment <NUM>, or in other words, will not cross over the left boundary <NUM> and/or the right boundary <NUM> of the lane <NUM> on the road segment <NUM>. It should also be noted that, as explained above, at least some of the anchor points of the reference path <NUM> may fall within the safe deviation corridor <NUM> while others may fall outside the safe deviation corridor <NUM>.

It is contemplated that in some embodiments of the present technology, the electronic device <NUM> may be triggered to determine the amended path <NUM> if at least one anchor point of the reference path <NUM> falls outside the safe deviation corridor <NUM>.

In other embodiments, however, even if all of the anchor points of the reference path <NUM> fall within the safe deviation corridor <NUM>, the electronic device <NUM> may still be triggered to determine the amended path <NUM>. For example, if the anchor points of the reference path <NUM> were all within the safe deviation corridor <NUM>, this means that if the vehicle <NUM> follows such reference path <NUM> on the road segment <NUM>, the vehicle <NUM> will fall within the constraints of the road segment <NUM>. Nevertheless, in such a case, the electronic device <NUM> may still be triggered to determine the amended path <NUM> for increasing safety of the manoeuver, since the amended path <NUM> may be used to guide the vehicle <NUM> in a manner that increases the distances between the left and right boundaries <NUM> and <NUM> of the road segment <NUM> and the vehicle <NUM> if compared to the vehicle <NUM> being guided along the reference path <NUM>.

How the electronic device <NUM> may be configured to determine the amended path <NUM> will now be described with reference to <FIG>. The electronic device <NUM> may be configured to use the first safe deviation interval <NUM>, the second safe deviation interval <NUM>, the third safe deviation interval <NUM> and the fourth safe deviation interval <NUM> for determining respective amended anchor points of the amended path <NUM>. In other words, the electronic device <NUM> may be configured to use:.

In some embodiments of the present technology, the electronic device <NUM> may be configured to determine a given amended anchor point as a point corresponding to a midpoint of a respective safe deviation interval. Therefore, the electronic device <NUM> may be configured to determine:.

As a result, it can be said that the electronic device <NUM> may be configured to determine the amended path <NUM> as a sequence of amended anchor points and where each amended anchor point in the sequence is determined by the electronic device <NUM> based on a respective safe deviation interval of the safe deviation corridor <NUM>. It should be noted that since each amended anchor point is located within a respective safe deviation interval (and hence within the safe deviation corridor <NUM>), if the vehicle <NUM> is travelling along the sequence of amended anchor points on the road segment <NUM>, the vehicle <NUM> will fall within the constraints of the road segment <NUM>.

It is contemplated that the amended path <NUM> may be in a form of a polyline as depicted in <FIG>. However, it is contemplated that the electronic device <NUM> may be configured to employ an interpolation procedure or others known methods to, in a sense, "smooth out" the amended path <NUM>.

With reference to <FIG>, there is depicted an alternative representation <NUM> of the reference path <NUM>, the respective safety intervals of the safe deviation corridor <NUM>, and the amended path <NUM>. As seen, the plurality of anchor points of the reference path <NUM> is positioned on an axis <NUM>. Also, for each one of the plurality of anchor points of the reference path <NUM>, there is depicted a respective safe deviation interval that extends along an axis <NUM>. Within each safe deviation interval, there is also depicted a respective amended anchor point of the amended path <NUM>.

Once the amended path <NUM> is determined by the electronic device <NUM>, the electronic device <NUM> may be configured to generate operation-control data for controlling operation or otherwise trigger operation of the vehicle <NUM> when travelling on the road segment <NUM>. For example, the electronic device <NUM> may be configured to generate computer commands for triggering the vehicle <NUM> to follow the amended path <NUM>, instead of the reference path <NUM>, along the road segment <NUM>.

In some embodiments of the present technology, it is contemplated that during the anchor-by-anchor verification procedure performed by the electronic device <NUM> for determine the pair of safe deviation distances for respective anchor points of the reference path <NUM>, the electronic device <NUM> may be configured to employ an enlarged simulated representation of the vehicle <NUM> as opposed to the bounding box <NUM>. Recalling that bounding box <NUM> in <FIG> occupies a substantially same area on the simulated representation of the road segment <NUM> as the surface area occupied by the vehicle <NUM> on the road segment <NUM>, this means that the electronic device <NUM> may be configured to employ a given enlarged bounding box such that the enlarged bounding box occupies a substantially larger area on the simulated representation of the road segment <NUM> than the surface area occupied by the vehicle <NUM> on the road segment <NUM>. The electronic device <NUM> employing the given enlarged bounding box instead of the bounding box <NUM> will result in smaller safe deviation distances determined for each anchor point of the reference path <NUM> and, in turn, in a safety deviation corridor occupying a smaller section of the road segment <NUM> if compared to the safety deviation corridor <NUM>.

Therefore, it is contemplated that employing the given enlarged bounding box instead of the bounding box <NUM> for determining a given amended path may further reduce the likelihood of the vehicle <NUM> falling outside the constraints of the road segment <NUM> when following the given amended path in comparison to when the electronic device <NUM> is configured to employ the bounding box <NUM> for determining the amended path <NUM>.

In some embodiments, the electronic device <NUM> may be configured to generate the enlarged simulated representation of the vehicle <NUM> by artificially increasing the area covered by the bounding box <NUM>. In one example, the electronic device <NUM> may be configured to generate an enlarged bounding box by proportionally increasing the width and/or the length of the bounding box <NUM>. In an other example, the electronic device <NUM> may be configured to generate the enlarged simulated representation of the vehicle <NUM> by partially rotating (e.g. +/- <NUM> degrees) the bounding box <NUM> about the axis <NUM> and use the effective area covered by the bounding box <NUM> during the partial rotation as the enlarged simulated representation of the vehicle <NUM>.

In further embodiments, the electronic device <NUM> may implement a reference path calculation module. The reference path calculation module may be configured to perform the anchor-by-anchor verification procedure as described above. In addition, the reference path calculation module may be configured to generate the amended path <NUM> as described above.

In some embodiments of the present technology, the electronic device <NUM> may be configured to store and analyze data about the dynamic objects in neighboring lanes. For example, the electronic device <NUM> may be configured to implement a dynamic object tracking module, or simply dynamic object tracker. For example, the electronic device <NUM> may be configured to employ the dynamic object tracker for determining reference paths for respective dynamic objects relative to the center lines of the respective lanes in which the given objects is travelling.

It is contemplated that the dynamic object tracker may be configured to determine the center lines of respective lanes in which a given object (such as a neighboring vehicle) is travelling similarly to how the electronic device <NUM> is configured to determine the center line of the lane <NUM>.

In some cases, the dynamic objects tracker may be configured to detect when the position of the dynamic object relating to the center line of the respective lane increases. In such cases, the dynamic object tracker may be configured to determine, in response to such increase, that the dynamic object is attempting a lane-changing maneuver. Data indicative of such determination by the dynamic object tracker may be transmitted to the reference path calculation module.

For example, data indicative of that the dynamic object is attempting a lane-changing manoeuver may be used by the electronic device <NUM> for control operation of the vehicle <NUM> so as to avoid or at least reduce a risk of collision between the dynamic object and the vehicle <NUM>.

In some embodiments, the bounding box modelling module may be used for generating a bounding box for the dynamic object similarly to how the bounding box modelling module is configured to generate the bounding box <NUM> (and/or enlarged representations of the vehicle <NUM>) for the vehicle <NUM>. In addition, the reference path calculation module may be configured to generate a given reference path and/or an amended path for a respective dynamic object similarly to how the reference path calculation module is configured to determine the reference path <NUM> and/or the amended path <NUM> for the vehicle <NUM>.

In some embodiments of the present technology, the electronic device <NUM> may be configured to execute a method <NUM> of amending the reference path <NUM> associated with the vehicle <NUM>. The method <NUM> will now be described in greater details.

The method <NUM> begins at step <NUM> with the electronic device <NUM> configured to acquire the road segment data and the reference path data. The road segment data is indicative of constraints of the road segment <NUM>. The constraints may comprise at least one of (i) physical constraints on the road segment <NUM>, and (ii) road rule constraints on the road segment <NUM> as explained above.

The reference path data having a plurality of anchor points defining the reference path <NUM> along the road segment <NUM>. It should be noted that the electronic device <NUM> may be configured to generate the reference path <NUM>. For example, the electronic device <NUM> may be configured to defining the plurality of anchor points along the center line of the lane <NUM>, as explained above.

In some embodiments, the distance between the plurality of anchor points may depend on at least a velocity of the vehicle <NUM> during the generation of the reference path <NUM>.

The method <NUM> continues to step <NUM> with the electronic device <NUM> configured to use the road segment data and the reference path data to determine a respective safe deviation interval for each one of the plurality of anchor points. It should be noted that a given safe deviation interval for a given anchor point is indicative of an acceptable deviation of the vehicle <NUM> from the reference path <NUM>, as explained above, such that if the vehicle <NUM> is located within the given safe deviation interval the vehicle <NUM> falls within the constraints of the road segment <NUM>. The safe deviation intervals form the safety corridor <NUM> for the vehicle <NUM> as depicted in <FIG>.

It should be noted that the electronic device <NUM> may be configured to perform the generating process of the safe deviation corridor <NUM> as part of the step <NUM>. As previously discussed, the safe deviation corridor <NUM> defining a section of the road segment <NUM> in which the vehicle <NUM> falls within the constraints of the road segment <NUM>.

In some embodiments, the step <NUM> may comprise the electronic device <NUM> configured to generate a simulated representation of the vehicle <NUM> for a respective anchor point from the plurality of anchor points on the simulated representation of the road segment <NUM>. For example, the electronic device <NUM> may be configured to generate the bounding box <NUM> and position it at respective anchor points from the plurality of anchor points as explained above for determining the respective safe deviation intervals of the respective anchor points.

In other embodiments, the simulated representation of the vehicle <NUM> may be generated by the electronic device <NUM> such that it covers an artificially increased surface on the simulated representation of the road segment <NUM>. The artificially increased surface us larger than an actual surface that the vehicle <NUM> covers of the road segment <NUM>. For example, the electronic device <NUM> may be configured to generate the enlarged representation of the vehicle <NUM>, as explained above. In one example, the electronic device <NUM> may be configured to generate an enlarged bounding box by proportionally increasing the width and/or the length of the bounding box <NUM>.

It is contemplated that the simulated representation of the vehicle <NUM> may cover an actual surface on the simulated representation of the road segment <NUM>, and the electronic device <NUM> may be configured to, as part of the determining the safe deviation intervals of the respective anchor points, rotating the simulated presentation using a pre-determined angle to generate an enlarged projection of the vehicle <NUM> onto the road segment <NUM>. For example, the electronic device <NUM> may be configured to generate the enlarged simulated representation of the vehicle <NUM> by partially rotating (e.g. +/- <NUM> degrees) the bounding box <NUM> about the axis <NUM> and use the effective area covered by the bounding box <NUM> during the partial rotation as the enlarged simulated representation of the vehicle <NUM> for the purpose of determining the respective safe intervals for the safe deviation corridor <NUM>.

The method <NUM> continues to step <NUM> with the electronic device <NUM> configured to use the safe deviation intervals to determine the amended path <NUM> for the vehicle <NUM> instead of the reference path <NUM>, such that by following the amended path <NUM> the vehicle <NUM> falls within the constraints of the road segment <NUM>. It should be noted that the amended path <NUM> falls within the safe deviation corridor <NUM>.

In some embodiments, the electronic device <NUM> may be configured to determine amended anchor points for the respective safe deviation intervals, when using the safe deviation intervals to determine the amended path <NUM>, such that a given amended anchor point falls within the respective safe deviation interval. The electronic device <NUM> may be configured to determine the amended path <NUM> as being a sequence of the amended anchor points and where the given amended anchor point corresponds to a midpoint of the respective safe interval.

It is contemplated that the sequence of the amended anchor points may be in a form of a polyline.

In some embodiments of the present technology, the electronic device <NUM> may also be configured to generate operation-control data for controlling operation of the vehicle <NUM>, and where the operation-control data represents computer commands for the vehicle <NUM> to follow the amended path <NUM> along the road segment <NUM>.

In some embodiments, the vehicle <NUM> may be located near or in proximity to an other vehicle on the road segment <NUM>. It is contemplated that at least some steps of the method <NUM> may be performed for the neighboring vehicle by the electronic device <NUM>.

In some embodiments, when generating a given reference path for the neighboring vehicle, the electronic device <NUM> may be configured to access a database of historical maneuvers associated with the neighboring vehicle and generate a predicted the reference path for the neighboring vehicle. In some embodiments, the predicted reference path of the neighboring vehicle may be used for modifying a current path of the vehicle <NUM> along the road segment <NUM>.

It should be expressly understood that not all technical effects mentioned herein need to be enjoyed in each and every embodiment of the present technology.

Claim 1:
A computer-implemented method of amending a reference path (<NUM>) associated with a vehicle (<NUM>), the reference path being a path along a road segment (<NUM>) that the vehicle (<NUM>) is estimated to follow, the method executable by an electronic device (<NUM>), the method comprising:
• acquiring, by the electronic device (<NUM>), road segment data and reference path data;
the road segment data being indicative of constraints of the road segment, the reference path data having a plurality of anchor points (<NUM>, <NUM>, <NUM>, <NUM>) defining the reference path along the road segment;
• using, by the electronic device (<NUM>), the road segment data and the reference path data to determine a safe deviation interval (<NUM>, <NUM>, <NUM>, <NUM>) for each one of the plurality of anchor points,
a given safe deviation interval for a given anchor point being indicative of an acceptable deviation of the vehicle (<NUM>) from the reference path,
such that if the vehicle (<NUM>) is located within the given safe deviation interval the vehicle falls within the constraints of the road segment,
wherein the using the road segment data and the reference path data to determine safe deviation intervals further comprises:
generating, by the electronic device (<NUM>), a simulated representation (<NUM>) of the vehicle (<NUM>) for a respective anchor point from the plurality of anchor points on a simulated representation of the road segment, wherein the simulated representation of the vehicle (<NUM>) comprises a bounding box (<NUM>); and
determining, by the electronic device (<NUM>), the safe deviation intervals of the respective anchor points from the plurality of anchor points based on the respective simulated representation of the vehicle on the simulated representation of the road segment, wherein the safe deviation intervals are determined based on respective safe deviation distances, wherein for each anchor point a pair of respective safe deviation distances is used; and
• using, by the electronic device (<NUM>), the safe deviation intervals to determine an amended path (<NUM>) for the vehicle instead of the reference path,
such that by following the amended path the vehicle falls within the constraints of the road segment.