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 system 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 system 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.

<CIT> assigned to CNH Industrial America LLC et al. , entitled "Bump Detection and Effect Reduction in Autonomous Systems" published on November <NUM>, <NUM>, discloses a control system for a base station that includes a first transceiver configured to receive a first signal and send a second signal to an agricultural vehicle. The first signal indicates at least an acceleration of the vehicle, a current velocity of the vehicle, and a location relative to a terrain where the vehicle experienced the acceleration, and the second signal indicates a vehicle target velocity. The control system includes a controller configured to determine a bump severity value based on the acceleration and the current velocity of the vehicle, mark an area indicative of the bump on a map of the terrain when the bump severity value exceeds a threshold, and automatically generate the second signal when the vehicle enters the area. The target velocity is based on a proximity of the vehicle to the bump, the bump severity value, or some combination thereof.

It is an object of the present technology to ameliorate at least some of the shortcomings or 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.

Typically, a Self-Driving Car (SDC) is equipped with an electronic device and various sensors. The sensors are configured to generate data about the surroundings of the SDC, and the electronic device is configured to receive, and process, this data in a variety of ways for the purpose of safely operating the SDC in its surroundings. For example, the sensors may generate sensor data indicative of inter alia: (i) various object features of objects in the proximity of the SDC (e.g., object type, size, position relative to the SDC, color, speed, acceleration, and the like), and (ii) various terrain features of a terrain on which the SDC is travelling (e.g., surface features, presence of roads, geometry of roads, presence of lanes, geometry of lanes, and the like). This sensor data is then employed by the electronic device for controlling operation of the SDC in order to avoid collisions between the SDC and potential objects in its surroundings, and so that the SDC operates in accordance with the traffic rules.

Developers of the present technology have realized that, under normal conditions, for safety purposes, the SDC ought to be travelling along a "default" reference path that corresponds to the center-line of a current road (or a current lane of the road). In one example, a midpoint of the rear axle of the SDC may be used as a reference point between the SDC and the center-line of the current road for ensuring that the SDC is travelling along its center-line.

Developers of the present technology have realized that this default reference path for the SDC may be represented by a plurality of anchor points (e.g., positional points on the current road/lane) that are sequentially located on the center-line of the current road/lane and which the SDC ought to follow while operating on the current road. 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 addition, the electronic device may be configured to take action, under certain conditions, for modifying the default reference path for safety purposes.

Developers of the present technology have also devised methods and systems for using data indicative of a current (and/or default) reference path for generating a current trajectory for the SDC for controlling operation of the SDC, such that the SDC is actually travelling along the current reference path on the given road. For example, the electronic device may be configured to use the current reference path for generating current trajectory data indicative of a variety of operation-control parameters of the SDC, at different (future) moments in time, that allow the vehicle to actually travel from one anchor point of the current reference path to a next anchor point of the current reference path, and so forth. Such operation-control parameters may include, but are not limited to: steering wheel position at a respective moment in time, speed at a respective moment in time, acceleration at a respective moment in time, braking at a respective moment in time, and the like.

In at least some embodiments of the present technology, if the sensor data is indicative of the presence of an object (obstacle) along a current reference path and/or current trajectory of the SDC, the electronic device may employ the sensor data for modifying the current reference path and/or the current trajectory of the SDC so as to reduce the risk of collision.

However, developers of the present technology have realized that, in addition to objects in the proximity of the SDC, the terrain itself on which the SDC is travelling may increase the risk of collision and/or the risk of losing control of the SDC during operation. For instance, some terrains may be somewhat uneven, due to presence of potholes and/or bumps, which makes it difficult for the electronic device to control operation of the SDC on such terrains.

The terrain on which the SDC is travelling may be a road with so-called "road ruts". Broadly speaking, a road rut is a depression and/or groove-like channel worn into the road by continuous travel of wheels or skis thereon. Road ruts can be formed by wear, such as due to studded snow tires common in cold climate areas, for example, or they can be formed due to the deformation of the asphalt concrete pavement and/or subbase material. One other possible reason for road rut formation is presence of heavy-vehicle traffic on the road, which exerts more pressure on the road than what has been assumed during the construction of the road.

It should be noted that road ruts may prevent rainwater from flowing to the side of the road into ditches or gutters provided for that purpose. Rainwater trapped in road ruts is a common contributing factor to "hydroplaning" crashes. Severe road ruts can also significantly impede steering when a vehicle is being steered out of the road rut.

Developers of the present technology have devised methods and systems configured to (i) detect presence of ruts on a current terrain on which the SDC is travelling (e.g., road ruts on a current road on which the SDC is travelling), and in response, (ii) modify the current reference path and/or the current trajectory of the SDC so as to avoid the ruts. In one example, avoiding the ruts may refer to controlling operation of the SDC such that tires of the SDC are not steered into the ruts during operation. In another example, avoiding the ruts may refer to controlling operation of the SDC such that the amount of time or instances that the tires of the SDC spend in the ruts is reduced. In a further example, avoiding the ruts may refer to controlling operation of the SDC such that the SDC performs a lane-changing manoeuvre, if possible, so as to reduce the risk of the tires of the SDC to be steered into the ruts during operation.

The developers of the presence technology have devised methods and systems for modifying a current reference path and/or the current trajectory of the SDC so as to avoid road ruts on the given road if the presence of road ruts on the given road is detected.

In further embodiments of the present technology, the developers of the present technology have devised methods and systems for detecting presence of ruts on a current terrain. Also, some methods and systems have been devised to, in response to detecting the presence of ruts on the current terrain, (i) generate an adjusted reference path for avoiding the detected ruts, (ii) generate an adjusted trajectory based on the adjusted reference path, and/or (iii) take action for avoiding the ruts on the current terrain so as to increase safety of SDC passengers and/or to reduce the risk of collision with other objects on the current terrain and/or to reduce the risk of losing control of the SDC on the current terrain during operation.

In a first broad aspect of the present technology, there is provided a method of detecting presence of ruts on current terrain. A Self-Driving Car (SDC) is travelling on the current terrain. The SDC is associated with a sensor and an electronic device. The sensor is configured to generate sensor data. The sensor data is indicative of at least a surface of the current terrain. The method is executable by the electronic device. The method comprises using, by the electronic device, the sensor data for generating a current terrain profile. The current terrain profile represents a height variation of the surface of the current terrain along its width, the current terrain profile has a pair of current grooves potentially indicative of the presence of the ruts on the current terrain. The method comprises acquiring, by the electronic device from a storage, a sampled terrain profile. The sampled terrain profile represents a height variation of a surface of a given terrain along its width. The sampled terrain profile has a pair of sampled grooves indicative of a presence of the ruts on the given terrain. The method comprises using, by the electronic device, the current terrain profile and the sampled terrain profile for generating comparison data. The comparison data is indicative of a similarity between the current terrain profile and the sampled terrain profile. The method comprises using, by the electronic device, the comparison data for detecting the presence of the ruts on the current terrain.

According to the invention, the current terrain is a current road. The current terrain profile is a current road profile of the current road. The given terrain is a given road. The sampled terrain profile is a sampled road profile of the given road. The ruts re road ruts caused by vehicle traffic.

In some embodiments of the method, the method is executed during operation of the SDC.

In some embodiments of the method, the sensor is a LIDAR sensor, and the sensor data includes point-cloud data indicative of at least the surface of the current road.

In some embodiments of the method, the using the sensor data for generating the current road profile comprises applying, by the electronic device, a RANSAC algorithm onto the point-cloud data for generating the current road profile.

In some embodiments of the method, the storage is configured to store a plurality of sampled road profiles. The sampled road profiles from the plurality of road profiles have at least one of: different spacings between respective pairs of sampled grooves, and different depths of the respective pairs of sampled grooves.

In some embodiments of the method, the using the current road profile and the sampled road profile for generating the comparison data comprises: applying, by the electronic device, a relationship evaluation method for comparing the current road profile against the sampled road profile thereby yielding the comparison data.

In some embodiments of the method, the relationship evaluation method is a correlation-type method.

In some embodiments of the method, the relationship evaluation method is a covariation-type method.

In some embodiments of the method, the comparison data includes a covariation peak having a height. The height of the covariation peak is indicative of how similar depths of the pair of current grooves are to depths of the pair of sampled grooves.

In some embodiments of the method, the using the comparison data for detecting the presence of the road ruts on the current road comprises: using, by the electronic device, the height of the covariation peak for determining the presence of the road ruts on the current road.

According to the invention, the method further comprises, upon detecting the presence of the road ruts on the current road, controlling, by the electronic device, operation of the SDC so as to avoid the road ruts on the current road.

In some embodiments of the method, the controlling the operation of the SDC so as to avoid the road ruts on the current road comprises modifying, by the electronic device, at least one of a current reference path and a current trajectory of the SDC on the current road, thereby generating at least one of a respective modified reference path and a respective modified trajectory for the SDC on the current road. The current reference path and the current trajectory of the SDC on the current road are aligned with a center-line of the current road. The modified reference path and the modified trajectory of the SDC on the current road are not aligned with the center-line of the current road so as to avoid the road ruts on the current road.

In some embodiments of the method, the method further comprises, upon detecting the presence of the road ruts on the current road: (i) determining, by the electronic device, depth of the road ruts on the current road based on the height of the covariation peak, (ii) accessing, by the electronic device from the storage, a table indicative of a safety threshold speed associated with the depth of the road ruts, (iii) acquiring, by the electronic device, a current speed of the vehicle, and (iv) in response to the current speed being above the safety threshold speed, controlling, by the electronic device, operation of the SDC so as to at least one of: reduce the current speed of the vehicle, and perform a lane-changing maneuver if the current road has more than one lane.

In some embodiments of the method, the method further comprises, upon detecting the presence of the road ruts on the current road using, by the electronic device, the comparison data for determining the position of the road ruts on the current road. The method further comprises using, by the electronic device, the position of the road ruts for modifying at least one of a current reference path and a current trajectory of the SDC on the current road thereby generating at least one of a respective modified reference path and a modified trajectory for the SDC on the current road. The current reference path and the current trajectory of the SDC on the current road are aligned with a center-line of the current road. The modified reference path and the modified trajectory of the SDC on the current road are not aligned with the center-line of the current road such that wheel position of the SDC do not correspond to the position of the road ruts on the current road.

In a second broad aspect of the present technology, there is provided an electronic device for detecting presence of ruts on current terrain. A Self-Driving Car (SDC) is travelling on the current terrain. The SDC is associated with a sensor. The sensor is configured to generate sensor data. The sensor data is indicative of at least a surface of the current terrain. The electronic device is configured to use the sensor data for generating a current terrain profile. The current terrain profile represents a height variation of the surface of the current terrain along its width. The current terrain profile has a pair of current grooves potentially indicative of the presence of the ruts on the current terrain. The electronic device is configured to acquire, from a storage, a sampled terrain profile. The sampled terrain profile represents a height variation of a surface of a given terrain along its width. The sampled terrain profile has a pair of sampled grooves indicative of a presence of the ruts on the given terrain. The electronic device is configured to use the current terrain profile and the sampled terrain profile for generating comparison data. The comparison data is indicative of a similarity between the current terrain profile and the sampled terrain profile. The electronic device is configured to use the comparison data for detecting the presence of the ruts on the current terrain.

According to the invention, the current terrain is a current road, and the current terrain profile is a current road profile of the current road. The given terrain is a given road, the and a sampled terrain profile is a sampled road profile of the given road. The ruts are road ruts caused by vehicle traffic.

In some embodiments of the electronic device, the electronic device is configured to use the comparison data during operation of the SDC.

In some embodiments of the electronic device, the sensor is a LIDAR sensor, and the sensor data includes point-cloud data indicative of at least the surface of the current road.

In some embodiments of the electronic device, the electronic device configured to use the sensor data for generating the current road profile comprises the electronic device configured to apply a RANSAC algorithm onto the point-cloud data for generating the current road profile.

In some embodiments of the electronic device, the storage is configured to store a plurality of sampled road profiles. The sampled road profiles from the plurality of road profiles have at least one of: different spacings between respective pairs of sampled grooves, and different depths of the respective pairs of sampled grooves.

In some embodiments of the electronic device, the electronic device configured to use the current road profile and the sampled road profile for generating the comparison data comprises the electronic device configured to apply a relationship evaluation method for comparing the current road profile against the sampled road profile thereby yielding the comparison data.

In some embodiments of the electronic device, the relationship evaluation method is a correlation-type method.

In some embodiments of the electronic device, the relationship evaluation method is a covariation-type method.

In some embodiments of the electronic device, the comparison data includes a covariation peak having a height. The height of the covariation peak is indicative of how similar depths of the pair of current grooves are to depths of the pair of sampled grooves.

In some embodiments of the electronic device, the electronic device configured to use the comparison data for detecting the presence of the road ruts on the current road comprises the electronic device configured to use the height of the covariation peak for determining the presence of the road ruts on the current road.

According to the invention, the electronic device is further configured to, upon detecting the presence of the road ruts on the current road, control operation of the SDC so as to avoid the road ruts on the current road.

In some embodiments of the electronic device, the electronic device configured to control the operation of the SDC so as to avoid the road ruts on the current road comprises the electronic device configured to modify at least one of a current reference path and a current trajectory of the SDC on the current road, thereby generating at least one of a respective modified reference path and a respective modified trajectory for the SDC on the current road. The current reference path and the current trajectory of the SDC on the current road are aligned with a center-line of the current road. The modified reference path and the modified trajectory of the SDC on the current road are not aligned with the center-line of the current road so as to avoid the road ruts on the current road.

In some embodiments of the electronic device, the electronic device is further configured to, upon detecting the presence of the road ruts on the current road: (i) determine depth of the road ruts on the current road based on the height of the covariation peak, (ii) access, from the storage, a table indicative of a safety threshold speed associated with the depth of the road ruts, (iii) acquire a current speed of the vehicle, (iv) in response to the current speed being above the safety threshold speed, control operation of the SDC so as to at least one of: reduce the current speed of the vehicle, and perform a lane-changing maneuver if the current road has more than one lane.

In some embodiments of the electronic device, the electronic device is further configured to, upon detecting the presence of the road ruts on the current road, use the comparison data for determining the position of the road ruts on the current road. The electronic device is further configured to use the position of the road ruts for modifying at least one of a current reference path and a current trajectory of the SDC on the current road thereby generating at least one of a respective modified reference path and a modified trajectory for the SDC on the current road. The current reference path and the current trajectory of the SDC on the current road are aligned with a center-line of the current road. The modified reference path and the modified trajectory of the SDC on the current road are not aligned with the center-line of the current road such that wheel position of the SDC do not correspond to the position of the road ruts on the current road.

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.

According to the invention, the electronic device <NUM> comprises or has access to a sensor system <NUM>. 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 (~3X10<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 car, 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> is configured to inter alia control operation or and/or otherwise trigger control of the operation of the vehicle <NUM> on a current terrain. 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 travelling on a current road. To better illustrate this, reference will now be made to <FIG> depicting a birds-eye view representation <NUM> of the vehicle <NUM> during operation.

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.

In <FIG>, there is depicted a current terrain <NUM> having a current road <NUM>. The current road <NUM> has a current lane <NUM> in which the vehicle <NUM> is travelling. Therefore, it can be said that the vehicle <NUM> may be operating on the current terrain <NUM>, and/or on the current road <NUM>, and/or in the current lane <NUM>. While the vehicle <NUM> is operating, the sensor system <NUM> may be configured to gather data about the surroundings of the vehicle <NUM>. In some embodiments, it is contemplated that the sensor system <NUM> may be configured to generate the sensor data indicative of various object features of objects on the current terrain <NUM> and of various terrain features of the current terrain <NUM>.

In some embodiments, it can also be said that the electronic device <NUM> may be configured to acquire the sensor data and/or additional data, including road constraint data for generating a simulated representation of the current road <NUM>. It should be noted that road constraint data may take many forms and, as such, may comprise at least one of (i) physical constraints of the current road <NUM>, and (ii) road rule constraints on the current road <NUM>.

Broadly speaking, physical constraints of the current road <NUM> may include one or more parameters that define geometry of the current road <NUM>. For example, the physical constraints of the current road <NUM> may include one or more radii of the current road <NUM> (e.g., that can be used to parametrized a turn associated with the current road <NUM>), one or more distances (such as widths and/or lengths, for example) associated with portions of the current road <NUM>, one or more positions (such as positions of various objects and/or boundaries, for example) associated with the current road <NUM>, one or more angles associated with the current road <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 current road <NUM> may include one or more road rules that regulate traffic on the current road <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 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 current road <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 current road <NUM> on the current terrain <NUM> as depicted in <FIG> at least partially based on the data indicative of constraints of the current road <NUM>. As mentioned above, the current road <NUM> has the current lane <NUM>, which is defined by left and right boundaries (not numbered). In this example, it can be said that the left boundary and the right boundary of the current lane <NUM> are part of the constraints of the current road <NUM> and allow regulating traffic on the current road <NUM> (and the current terrain <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 current road <NUM> as the surface area occupied by the vehicle <NUM> on the current road <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 axle midpoint <NUM> passing through a midpoint of the rear axle <NUM> of the vehicle <NUM>.

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 axle midpoint <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 axle midpoint of the front axle, with or instead of, the simulated representation of the axle midpoint <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 (not depicted). 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> depicted in <FIG>. It should be noted that the reference path <NUM> is a path along the current road <NUM> that the vehicle <NUM> should 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 current road <NUM>. As illustrated, the plurality of anchor points includes anchor points <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>.

In some embodiments, the electronic device <NUM> may be configured to define anchor points of a given reference path as positional points along a center-line of a lane in which the vehicle <NUM> is currently travelling. For example, the electronic device <NUM> may be configured to determine the anchor points <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> as a plurality of positional points along a center-line <NUM> of the current lane <NUM> (and of the current road <NUM>).

It is contemplated that the electronic device <NUM> may be configured to determine the center-line <NUM> of the current lane <NUM> by identifying the center-line <NUM> as being a midline between the left boundary and the right boundary of the current lane (e.g., based on the constraints of the current road <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 a center-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 center-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 axle midpoint <NUM> is aligned with the center-line <NUM> of the current lane <NUM> of the current road <NUM>. In this example, it can be said that the reference path <NUM> is the default reference path of the vehicle <NUM> in the current lane <NUM> and is also the current reference path <NUM> that the vehicle <NUM> is following in the current lane <NUM>.

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 (not depicted), 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 current lane <NUM> and determine based on that data the center-line <NUM> of the current lane <NUM>. In some cases, the center-line <NUM> of the current 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.

It should be noted that, once the reference path <NUM> is acquired and/or generated by the electronic device <NUM>, the electronic device <NUM> may be configured to generate a current trajectory for the vehicle <NUM> on the current road <NUM> so as to follow the reference path <NUM>. For example, the electronic device <NUM> may be configured to generate current trajectory data for the vehicle <NUM> which may then be used by the electronic device <NUM> for controlling operation of the vehicle <NUM> so that the vehicle <NUM> actually travels from one anchor point of the reference path <NUM> to a next anchor point of the reference path <NUM>, and so forth. For example, the current trajectory data may be indicative of a variety of operation-control parameters of the vehicle <NUM>, at different moments in time, which may allow the vehicle <NUM> to actually travel from one anchor point to the next anchor point of the reference path <NUM>, and so forth. Such operation-control parameters may be associated with, but not limited to: steering wheel positions, speeds, acceleration, braking, and the like, at different moments in time.

In summary, it can be said that the electronic device <NUM> may be configured to acquire and/or generate the reference path <NUM>, and based on the reference path <NUM>, may be configured to generate the current trajectory that may be used by the electronic device <NUM> for allowing the vehicle <NUM> to actually travel along the reference path <NUM>.

However, developers of the present technology have also realized that travelling along the center-line of a given lane is not always a best and/or safest option for the vehicle <NUM>. To better illustrate this, reference will be made to <FIG> depicting a birds-eye view representation <NUM> of the vehicle <NUM> during operation.

In <FIG>, there is depicted a current terrain <NUM> having a current road <NUM>. The current road <NUM> has a current lane <NUM> in which the vehicle <NUM> is travelling. The electronic device <NUM> may be configured to acquire the sensor data and/or additional data, as explained above, for generating a simulated representation of the current road <NUM>.

It should be noted that the current road <NUM> has so-called "road ruts" <NUM>. Broadly speaking, a road rut is a depression and/or groove-like channel worn into the road by continuous travel of wheels or skis thereon. Road ruts can be formed by wear, such as due to studded snow tires common in cold climate areas, for example, or they can be formed due to the deformation of the asphalt concrete pavement and/or subbase material. One other potential reason for road rut formation is presence of heavy-vehicle traffic on the road, which exerts more pressure on the road than what has been assumed during the construction of the road.

It should be noted that road ruts may prevent rainwater from flowing to the side of the road into ditches or gutters. Rainwater trapped in road ruts is a common contributing factor to "hydroplaning" crashes. Severe road ruts can also significantly impede steering when a vehicle is being steered out of the road rut.

It should be noted that the developers of the present technology have realized that the vehicle <NUM> should not be travelling along a center-line <NUM> on the current road <NUM>, as opposed to when travelling on the current road <NUM>, since travelling along the center-line <NUM> of the current road <NUM> may result in the vehicle <NUM> steering into the road ruts <NUM>, which is unsafe. In other words, the vehicle <NUM> following anchor points <NUM>, <NUM>, <NUM>, <NUM>, and/or <NUM> of a default/current reference path <NUM> along the center-line <NUM> may result in the vehicle <NUM> steering into the road ruts <NUM>.

Therefore, developers of the present technology have devised methods and systems for detecting presence of the road ruts <NUM> on the current road <NUM>. As it will become apparent from the description herein further below, in at least some embodiments of the present technology, upon detecting the presence of the road ruts <NUM> on the current road <NUM>, the electronic device <NUM> is configured to modify the default/current reference path <NUM> of the vehicle <NUM> on the current road <NUM> and/or the current trajectory of the vehicle <NUM> on the current road <NUM>, so as to avoid the road ruts <NUM>.

How the electronic device <NUM> is configured to detect presence of the road ruts <NUM> on the current road <NUM> will now be described in greater details. However, it should be noted that the electronic device <NUM> may be configured to detect presence of ruts on a current terrain in a similar manner.

The electronic device <NUM> is configured to acquire the sensor data from the sensor system <NUM>. For example, the electronic device <NUM> may be configured to acquire the sensor data from a LIDAR-based sensor. It is contemplated that the sensor data from the LIDAR-based sensor may include point-cloud data indicative of at least the surface of the current road <NUM>.

According to the invention, the electronic device <NUM> is configured to process the sensor data for generating a given current road profile for the current road <NUM>. Broadly speaking, a given current road profile is a representation of a height variation of the surface of the current road <NUM> along its width. In at least some embodiments, the electronic device <NUM> may be configured to apply a RANSAC algorithm onto the point-cloud data for generating a given current road profile. However, the specific algorithm used by the electronic device <NUM> for generating a given current road profile based on the sensor data may depend on the specific implementation of the present technology.

To better illustrate this, reference will now be made to <FIG> which depicts inter alia a current road profile <NUM> generated by the electronic device <NUM> based on the sensor data provided by the sensor system <NUM>. As it can be seen, the current road profile <NUM> of the current road <NUM> has a pair of current grooves <NUM>.

Recalling that the current road profile <NUM> represents the height variation of the surface of the current road <NUM>, the current road profile <NUM> having the pair of current grooves <NUM> is potentially indicative of the presence of the road ruts <NUM> on the current road <NUM>. However, it should be noted that the developers of the present technology have realized that the pair of current grooves <NUM> in the current road profile <NUM> may be indicative of other surface features of the current road <NUM> (i.e., other than the road ruts <NUM>). For example, the pair of current grooves <NUM> may be indicative of potholes and/or other imperfections on the road.

In at least some embodiments of the present technology, developers of the present technology have devised methods and systems for differentiating whether the pair of current grooves <NUM> is indicative of the presence of the road ruts <NUM> on the current road <NUM> or otherwise indicative of some other surface feature of the current road <NUM>. In at least one embodiment of the present technology, this differentiation may be executed by the electronic device <NUM> comparing the current road profile <NUM> against a given "sampled" road profile.

Broadly speaking, a given sampled road profile represents a height variation of a surface of a given road along its width and where the given road is apriori known to have respective road ruts. For example, the electronic device <NUM> may be configured to acquire from a given storage (local storage and/or remote storage such as storage <NUM>) a sampled road profile <NUM> depicted in <FIG>.

The sampled road profile <NUM> represents a height variation of a surface of the given road along its width. As it can be seen, the sampled road profile <NUM> has a pair of sampled grooves <NUM> which, since it is apriori known that the given road has road ruts, is indicative of the presence of road ruts on the given road.

It should be noted that the sampled road profile <NUM> may be associated with a plurality of sample parameters (not numbered). For example, the plurality of sample parameters may include, but are not limited to: sample-groove-depth parameter <NUM>, sample-groove-spacing parameter <NUM>, inter-groove-height parameter <NUM>, and the like. In at least some embodiments of the present technology, it is contemplated that the given storage (local storage of the electronic device <NUM> and/or the storage <NUM>) may be configured to store a plurality of sampled road profiles that are similar to the sampled road profile <NUM> but which have different values for the respective ones of the plurality of sample parameters.

The electronic device <NUM> may then be configured to use the current road profile <NUM> and the sampled road profile <NUM> for generating "comparison data" indicative of a similarity between the current road profile <NUM> and the sampled road profile <NUM>. The purpose of generating this comparison data is to determine how similar the height variation of the surface of the current road <NUM> along its width is to the height variation of the surface of the given road (having road ruts) along its width.

According to the invention, the electronic device <NUM> is configured to generate comparison data between the current road profile <NUM> and respective ones of a subset of sampled road profiles from the plurality of sampled road profiles. The subset of sampled road profiles may be selected by the electronic device <NUM> therefor based on the respective values of the plurality of sample parameters associated therewith. For example, the electronic device <NUM> may select amongst the plurality of sampled road profiles those sampled road profiles that are associated with different values of a given sample parameter. In one implementation the subset of road profiles that may be used for generating respective comparison data may be associated with different values of the sample-groove-spacing parameter <NUM>, for example, that are within a pre-determined range of values. It should be noted that the electronic device <NUM> may be configured to process comparison data between the current road profile <NUM> and respective ones of a subset of sampled road profiles similarly to how the electronic device <NUM> is configured to process the comparison data between the current road profile <NUM> and the sampled road profile <NUM>.

According to the invention, the electronic device <NUM> is configured to execute a computer-implemented relationship evaluation method for comparing the current road profile <NUM> against the sampled road profile <NUM>. Broadly speaking, a given relationship/dependency evaluation method is performed by the electronic device <NUM> for in a sense "describing" the degree to which a dataset tends to deviate from another dataset. For example, the electronic device <NUM> may be configured to input data indicative of the current road profile <NUM> and of the sampled road profile <NUM> into a given correlation-type function. In another example, the electronic device <NUM> may be configured to input data indicative of the current road profile <NUM> and of the sampled road profile <NUM> into a given covariation-type function.

It should be noted that the description below will refer to how the electronic device <NUM> is configured to yield comparison data based on the current road profile <NUM> and the sampled road profile <NUM> while employing a given covariation-type function (a covariation-type method). However, it is contemplated that the electronic device <NUM> may be configured to employ a given correlation-type function (a correlation-type method) for evaluating a relationship between the current road profile <NUM> and the sampled road profile <NUM>.

For example, as seen in <FIG>, the electronic device <NUM> executing the computer-implemented covariation-type method may be configured to yield comparison data <NUM> having a covariation peak <NUM>. The covariation peak <NUM> has a height <NUM> and a width <NUM>.

It should be noted that the height <NUM> of the covariation peak <NUM> is indicative of how similar depths of the pair of current grooves <NUM> are to depths of the pair of sampled grooves <NUM>. It should also be noted that the width <NUM> of the covariation peak <NUM> may be used as a parameter indicative of how "well" the sampled road profile <NUM> matches the current road profile <NUM>, such that (i) the smaller the value of the width <NUM>, the larger the similarity between the sampled road profile <NUM> and the current road profile <NUM>, and (ii) the higher the value of the width <NUM>, the smaller the similarity between the sampled road profile <NUM> and the current road profile <NUM>.

According to the invention, the electronic device <NUM> is configured to use the comparison data <NUM> for detecting the presence of the road ruts <NUM> on the current road <NUM>.

In one embodiment, the electronic device <NUM> may be configured to use the height <NUM> of the covariation peak <NUM> for determining the presence of the road ruts <NUM> on the current road <NUM>. For example, the electronic device <NUM> may be configured to compare the height <NUM> of the covariation peak <NUM> against a height threshold value. If the height <NUM> of the covariation peak <NUM> is below the height threshold value, the electronic device <NUM> may determine that the depth of the pair of current grooves <NUM> is not similar enough to the depth of the pair of sampled grooves <NUM>, and therefore, the pair of current grooves <NUM> are likely not indicative of the presence of road ruts on the current road <NUM>. If the height <NUM> of the covariation peak <NUM> is above the height threshold value, the electronic device <NUM> may determine that the depth of the pair of current grooves <NUM> is similar enough to the depth of the pair of sampled grooves <NUM>, and therefore, the pair of current grooves <NUM> is likely indicative of the presence of the road ruts <NUM> on the current road <NUM>. It should be noted that the height threshold value may be pre-selected by an operator of the electronic device <NUM> and may depend on a specific implementation of the present technology.

In an other embodiment, the electronic device <NUM> may be configured to use the comparison data <NUM> for determining the position of the road ruts <NUM> on the current road <NUM>. For example, if the electronic device <NUM> determines that the height <NUM> of the covariation peak <NUM> is above the height threshold value, the electronic device <NUM> may be configured to compare the width <NUM> of the covariation peak <NUM> against a width threshold value. If the height <NUM> is above the height threshold value, and the width <NUM> is below the width threshold value, the electronic device <NUM> may be configured to use inter alia the sample parameters of the sampled road profile <NUM> for determining the position of the road ruts <NUM> on the current road <NUM>. If the height <NUM> is above the height threshold value, but the width <NUM> is above the width threshold value, the electronic device <NUM> (although having detected presence of the road ruts <NUM> of the current road <NUM>) may be configured to find an other sampled road profile that would yield a covariation peak that would have a corresponding height that is higher than the height threshold value and a corresponding width that is lower than the width threshold value. In such case, the electronic device <NUM> may be configured to use inter alia the sample parameters of the other sampled road profile for determining the position of the road ruts <NUM> on the current road <NUM>. The width threshold value may be pre-determined by an operator of the electronic device <NUM>.

In summary it can be said that, in some embodiments of the present technology, the electronic device <NUM> may be configured to iteratively compare different sample road profiles to the current road profile <NUM> via a covariation-type method until a comparison against a given sample road profile yields a covariation peak having a height above the height threshold value and having a width below the width threshold value. If so, the electronic device <NUM> may be configured to determine presence of the road ruts <NUM> on the current road <NUM>, and may use inter alia one or more sample parameters associated with the given sample road profile for determining the position of the road ruts <NUM> on the current road <NUM>.

It should be noted that, upon detecting the presence of the road ruts <NUM> on the current road <NUM>, as explained above, the electronic device <NUM> is configured to control operation of the vehicle <NUM> so at to avoid the road ruts <NUM> on the current road <NUM>. To better illustrate this, reference will now be made to <FIG> depicting a birds-eye view representation <NUM> of the vehicle <NUM> once the presence of the road ruts <NUM> has been detected on the current road <NUM>.

In <FIG>, there is depicted a modified reference path <NUM> generated by the electronic device <NUM> in order to avoid the road ruts <NUM>. As it can be seen, the amended reference path no longer follows the center-line of the current lane <NUM> so that the amount of time that tires of the vehicle <NUM> spend in the road ruts <NUM> is at least reduced during operation of the vehicle <NUM> in the current lane <NUM>. For example, the electronic device <NUM> may be configured to determine modified anchor points <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> such that when the axle midpoint <NUM> of the vehicle <NUM> is aligned with any one of the modified anchor points, the tires of the vehicle <NUM> are not located with the road ruts <NUM>.

It is also contemplated that the electronic device <NUM> may be configured to generate a modified trajectory for the vehicle <NUM> in order to actually follow the modified reference path <NUM>. It can be said that modified trajectory data to be used for controlling operation of the vehicle <NUM> may allow the vehicle <NUM> to follow the modified trajectory in the current lane <NUM> that is not aligned with the center-line <NUM> of the current lane <NUM>.

In other embodiments of the present technology, it is contemplated that upon detecting the presence of the road ruts <NUM> on the current road <NUM>, the electronic device <NUM> may be configured to perform different actions for increasing safety of passengers of the vehicle <NUM>.

In some embodiments, the storage <NUM> (and/or a local storage of the electronic device <NUM>) may be configured to store a given table indicative of a list of safety threshold speeds associated with respective depths of road ruts. For example, for road ruts that are <NUM> deep, a corresponding safety threshold speed may be <NUM>/h. This means that travelling at a speed that is higher than <NUM>/h on a current road having road ruts of <NUM> deep is unsafe. In another example, for road ruts that are <NUM> deep, a corresponding safety threshold speed may be <NUM>/h. This means that travelling at a speed that is higher than <NUM>/h on a current road having road ruts of <NUM> deep is unsafe.

Hence, in some embodiments of the present technology, upon detecting the presence of road ruts <NUM> on the current road <NUM>, the electronic device <NUM> may be configured to determine the depth of the road ruts on the current road <NUM> based on at least one of (i) the depths of the pair of current grooves <NUM>, and (ii) the height of the covariation peak <NUM>. The electronic device <NUM> may also access the given table for retrieving a corresponding safety threshold speed for the determined depth of the road ruts <NUM>. The electronic device <NUM> may also retrieve a current speed of the vehicle <NUM> and may compare the current speed of the vehicle <NUM> against the corresponding safety threshold speed retrieved from the given table. In response to the current speed being above the corresponding safety threshold speed, the electronic device <NUM> may be configured to control operation of the vehicle <NUM> so as to at least one of (i) reduce the current speed of the vehicle <NUM> below the corresponding threshold speed, and (ii) perform a lane-changing manoeuvre if the current road <NUM> has an other lane.

In yet a further embodiment of the present technology, the electronic device <NUM> may be configured to use the corresponding safety threshold speed retrieved from the given table in other ways. For example, the electronic device <NUM> may be configured to follow the default/current reference path <NUM> in the current lane <NUM>, but generate the modified trajectory for the vehicle <NUM> so as to actually follow the default/current reference path <NUM> without exceeding the corresponding safety threshold. In another example, the electronic device <NUM> may be configured to generate the modified reference path <NUM>, and generate based thereon the modified trajectory for the vehicle <NUM> for actually following the modified reference path <NUM> without exceeding the corresponding safety threshold speed.

In some embodiments of the present technology, the electronic device <NUM> may be configured to execute a method <NUM> of detecting presence of ruts on a current terrain. The method <NUM> will now be described in greater details.

The method <NUM> begins at step <NUM> with the electronic device <NUM> configured to use sensor data (e.g., acquired from the sensor system <NUM>) for generating a given current terrain profile.

With reference to <FIG>, there is depicted the current terrain <NUM> having the current road <NUM>. The current road <NUM> has the current lane <NUM> in which the vehicle <NUM> is travelling. The electronic device <NUM> may be configured to acquire the sensor data and/or additional data, as explained above, for generating a simulated representation of the current road <NUM>.

As part of the step <NUM>, the electronic device <NUM> is configured to acquire the sensor data from the sensor system <NUM>. For example, the electronic device <NUM> may be configured to acquire the sensor data from a LIDAR-based sensor. It is contemplated that the sensor data from the LIDAR-based sensor may include point-cloud data indicative of at least the surface of the current road <NUM>.

According to the invention, the electronic device <NUM> is configured to process the sensor data for generating the current road profile <NUM> depicted on <FIG> for the current road <NUM>. The current road profile <NUM> is a representation of a height variation of the surface of the current road <NUM> along its width. It is contemplated that the current road profile <NUM> has the pair of current grooves <NUM> potentially indicative of the presence of the road ruts <NUM> on the current road <NUM>.

In at least some embodiments, the electronic device <NUM> may be configured to apply a RANSAC algorithm onto the point-cloud data for generating the current road profile <NUM>.

The method <NUM> continues to step <NUM> with the electronic device <NUM> configured to acquire from local and/or remote storage a given sampled terrain profile. The given terrain is a given road and the given sampled terrain profile may be a given sampled road profile. With reference to <FIG>, there is depicted the sampled road profile <NUM> that represents a height variation of a surface of a given road along its width and where the given road is apriori known to have respective road ruts. It is contemplated that the sampled road profile has the pair of sampled grooves <NUM> indicative of the presence of the road ruts on the given road.

In some embodiments, it is contemplated that the local and/or remote storage may be configured to store a plurality of sampled road profiles as explained above. For example, the sampled road profiles from the plurality of road profiles may have different spacings between respective pairs of sampled grooves and/or different depths of the respective pairs of sampled grooves. It can be said that the plurality of road profiles are respectively associated with different values of the sample parameters such as, but not limited to: the sample-groove-depth parameter <NUM>, the sample-groove-spacing parameter <NUM>, the inter-groove-height parameter <NUM>, and the like.

The method <NUM> continues to step <NUM> with the electronic device <NUM> configured to use the current terrain profile and the sampled terrain profile for generating comparison data. For example, the electronic device <NUM> may be configured to use the current road profile <NUM> and the sampled road profile <NUM> for generating the comparison data <NUM> depicted in <FIG>.

It should be noted that in at least some embodiments of the present technology, the electronic device <NUM> may employ a relationship evaluation method for yielding the comparison data <NUM>. In some embodiments, the electronic device <NUM> may employ a correlation-type method therefor, while in other embodiments, the electronic device <NUM> may employ a covariation-type method therefor.

It is contemplated the electronic device <NUM> may be configured to apply a covariation-type method for comparing the current road profile <NUM> against the sampled road profile <NUM> thereby yielding the comparison data <NUM>, where the comparison data <NUM> includes the covariation peak <NUM> having the height <NUM> and the width <NUM>. The height <NUM> of the covariation peak <NUM> is indicative of how similar depths of the pair of current grooves <NUM> are to depths of the pair of sampled grooves <NUM>.

The method <NUM> continues to step <NUM> with the electronic device <NUM> configured to use the comparison data of the step <NUM> for detecting presence of the ruts on the current terrain. For example, the electronic device <NUM> may use the comparison data <NUM> for detecting the presence of the road ruts <NUM> on the current road <NUM>.

It is contemplated that the electronic device <NUM> may be configured to, as part of the step <NUM>, use the height <NUM> of the covariation peak <NUM> for determining the presence of the road ruts <NUM> on the current road <NUM>.

In further embodiments, the electronic device <NUM> may further use the comparison data <NUM> for determining the position of the road ruts <NUM> on the current road <NUM>. In at least some embodiments, the electronic device <NUM> may be configured to use the width <NUM> (part of the comparison data <NUM>) for determining the position of the road ruts <NUM> on the current road <NUM>. For example, if the width <NUM> is below the threshold width value, the electronic device <NUM> may be configured to use (i) the position of the covariation peak <NUM> from the comparison data <NUM> in combination with (ii) at least one sample parameter about the sample road profile <NUM>, for determining the position of the road ruts <NUM> on the current road <NUM>. In one example, the position of the covariation peak <NUM> may be used in combination with the sample-groove-spacing parameter <NUM> for determining the position of the road ruts <NUM> on the current road <NUM> (e.g., the positions of the road ruts may correspond to (i) position of the covariation peak <NUM> +/- (ii) half of the value of the sample-groove-spacing parameter <NUM>).

According to the invention, upon detecting the presence of the road ruts <NUM> on the current road <NUM>, the electronic device <NUM> may be configured to control operation of the vehicle <NUM> so as to avoid the road ruts <NUM> on the current road <NUM>.

For example, with reference to both <FIG> and <FIG>, to control the operation of the vehicle <NUM>, the electronic device <NUM> may be configured to modify at least one of the current reference path <NUM> and the current trajectory of the vehicle <NUM> on the current road <NUM>, thereby generating at least one of the respective modified reference path <NUM> and the respective modified trajectory for the vehicle <NUM> on the current road <NUM>. As it can bee seen, the current reference path <NUM> (and the current trajectory) of the vehicle <NUM> on the current road <NUM> is aligned with the center-line <NUM> of the current road <NUM>. The modified reference path <NUM> (and the modified trajectory) of the vehicle <NUM> on the current road <NUM> is not aligned with the center-line <NUM> of the current road <NUM> so as to avoid the road ruts <NUM> on the current road <NUM>.

In some embodiments, upon detecting the presence of the road ruts <NUM> on the current road <NUM>, the electronic device <NUM> may be configured to determine the depth of the road ruts <NUM> on the current road <NUM> based on the height <NUM> of the covariation peak <NUM>. The electronic device <NUM> may then access from the storage a given table indicative of safety threshold speed associated with the depth of the road ruts <NUM>. The electronic device <NUM> may acquire a current speed of the vehicle <NUM>. The electronic device <NUM> may, in response to the current speed being determined by the electronic device <NUM> to be above the safety threshold speed, control operation of the vehicle <NUM> so at to reduce the current speed of the vehicle, and/or perform a lane-changing maneuver if the current road has more than one lane.

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 method (<NUM>) of detecting presence of road ruts (<NUM>) caused by vehicle traffic on current road (<NUM>), a Self-Driving Car, SDC, (<NUM>) travelling on the current road (<NUM>), the SDC (<NUM>) being associated with a sensor and an electronic device (<NUM>), the sensor being configured to generate sensor data, the sensor data being indicative of at least a surface of the current road (<NUM>) , the method (<NUM>) executable by the electronic device (<NUM>), the method (<NUM>) comprising:
• using, by the electronic device (<NUM>), the sensor data for generating a current road profile (<NUM>) of the current road (<NUM>),
the current road profile (<NUM>)representing a height variation of the surface of the current road (<NUM>) along its width,
the current road profile (<NUM>)having a pair of current grooves potentially indicative of the presence of the road ruts (<NUM>) on the current road (<NUM>);
• acquiring, by the electronic device (<NUM>) from a storage (<NUM>), a sampled road profile (<NUM>),
the sampled road profile (<NUM>) representing a height variation of a surface of a given road along its width,
the sampled road profile (<NUM>) having a pair of sampled grooves indicative of a presence of the road ruts (<NUM>) on the given road;
• using, by the electronic device (<NUM>), the current road profile (<NUM>)and the sampled road profile (<NUM>) for generating comparison data,
the comparison data being indicative of a similarity between the current road profile (<NUM>) and the sampled road profile (<NUM>); and
• using, by the electronic device (<NUM>), the comparison data for detecting the presence of the road ruts on the current road (<NUM>);
• upon detecting the presence of the road ruts (<NUM>) on the current road (<NUM>):
∘ controlling, by the electronic device (<NUM>), operation of the SDC (<NUM>) so as to avoid the road ruts (<NUM>) on the current road (<NUM>).