Method and system for generating vehicle attention notifications - Patents.com
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-03-23
- Publication Date
- 2026-03-25
AI Technical Summary
Current solutions for warning drivers of approaching vulnerable vehicles like motorcycles are often unconscious, data-intensive, hardware-resource-consuming, unreliable, and prone to false positive warnings, leading to warning fatigue.
A method using client computing devices associated with vehicles to analyze location samples and generate attention notifications when the vehicle is approaching a vulnerable vehicle, based on predefined thresholds and speed data.
This solution provides a more reliable and efficient means of alerting drivers to potential collisions with vulnerable vehicles, reducing false positives and warning fatigue while leveraging existing vehicle computing systems.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 63 / 323,528, filed March 25, 2022, which is incorporated by reference in its entirety.
[0002] The present invention relates generally to communication networks, and more particularly to generating vehicle attention notifications using communication networks. [Background technology]
[0003] As cyclists and road users know, current road traffic conditions are dangerous and motorcycles are often threatened or hit by automobiles. Motorcycle riders are not protected or shielded like car occupants and are highly vulnerable to physical harm. Injuries from motorcycle accidents are typically severe or even fatal.
[0004] Many such accidents occur when a motorcyclist surprises a motor vehicle driver who is unaware that the motorcyclist is nearby. Thus, a need arises to alert motor vehicle drivers to the presence of vulnerable vehicles such as motorcyclists (e.g., bicycles, electric scooters, motor scooters, and the like) in their vicinity. However, as detailed herein, currently available solutions are clumsy, consume excessive data and hardware resources, are unreliable, and inherently generate a large number of false positive alerts, leading to alert fatigue.
[0005] Some currently available camera-based advanced driver assistance system (ADAS) solutions rely on and may be limited by a clear line of sight between vehicles (e.g., between a car and a vulnerable vehicle such as a cyclist). Summary of the Invention
[0006] The terms "vulnerable vehicle" and "motorcycle" may be used interchangeably herein to refer to any mode of transportation that is considered vulnerable in a collision situation with a motor vehicle, such as a passenger car. For example, it will be understood that in a collision situation between a car and a two-wheeled vehicle, such as a bicycle or motorcycle, the latter is considered to be more vulnerable than the driver of the motor vehicle, in the sense that the latter is more likely to be injured than the driver of the motor vehicle.
[0007] Embodiments of the present invention may include a method for generating a vehicle attention notification by at least one processor of a client computing device.
[0008] For example, a client computing device may be included in or associated with a first vehicle (e.g., a car). The client computing device may determine that the position of the first vehicle is following or "approaching" a historical position of a second vulnerable vehicle, such as a bicycle, as described in more detail herein. As a result, the client computing device may provide a caution notification to a driver of the first vehicle (e.g., a car) to warn them of a collision with the second vulnerable vehicle.
[0009] In another example, the client computing device may be included in or associated with a second vulnerable vehicle (e.g., a bicycle). The client computing device may determine that the position of the first vehicle (e.g., a car) is following or "approaching" the historical position of the vulnerable vehicle, as described in more detail herein, and may therefore provide a caution notification to the driver of the vulnerable vehicle (e.g., the bicycle) to watch out for the approaching car.
[0010] An embodiment of the method may include sending at least one location data element representing a current geographic location of the first client computing device to at least one server computing device; receiving at least one notification from the at least one server based on the sent at least one location data element, the at least one notification including one or more location samples, each location sample representing a geographic location of the second client computing device at a particular timestamp; continuously analyzing location samples that are between the current location of the first client computing device and the location sample corresponding to the latest timestamp; and generating a vulnerable vehicle warning notification or a motorcycle warning notification based on the analysis.
[0011] The terms "vulnerable vehicle warning notice" and "motorcycle warning notice" may be used interchangeably with the shortened term "warning notice".
[0012] According to some embodiments, analyzing the location samples may include counting the location samples that are between a current location of the first client computing device and a most recently time-stamped location sample.
[0013] According to some embodiments, at least one processor of the first client computing device may generate an attention notification based on the counted location samples.
[0014] Additionally or alternatively, the at least one processor may generate an attention notification if the number of counted location samples falls below a predefined threshold at a predefined rate. Alternatively, the at least one processor may refrain from generating an attention notification if the number of counted location samples does not fall below a predefined threshold at a predefined rate.
[0015] According to some embodiments, at least one processor of the first client computing device may analyze the location samples by counting location samples between a current location of the first client computing device and a most recent time-stamped location sample, receive speed data elements representative of a speed of the first client computing device, and generate an alert notification based on the counted location samples and the speed data elements.
[0016] According to some embodiments, at least one processor of the first client computing device may generate at least one vehicle attention signal indicating a proximity of a vehicle based on the analysis of the position samples and transmit the vehicle attention signal to a controller of the autonomous vehicle. The controller of the autonomous vehicle may then control at least one actuator, such as an actuator of a braking system, an actuator of an accelerator pedal, or an actuator of a steering system, to guide the autonomous vehicle.
[0017] Embodiments of the present invention may include a method for generating an alert notification by at least one processor of at least one server computing device.
[0018] An embodiment of the method includes receiving, from a first client computing device, a location data element representing a current geographic location of the first client computing device, and repeatedly receiving corresponding location samples from one or more second client computing devices, where the location samples represent a current geographic location of the second client computing device and may be associated with a current timestamp.
[0019] According to some embodiments, at least one processor of the at least one server device may select, for at least one second client computing device of the one or more second client computing devices, a corresponding subset of location samples based on the respective timestamps, identify a geographic proximity state between the first client computing device represented by the location data element and the at least one second client computing device represented by the at least one location sample of the subset of location samples, and transmit the subset of location samples to the first client computing device based on the identified state. The first client computing device may then generate an alert notification based on the subset of location samples.
[0020] According to some embodiments, at least one processor of the at least one server device may select a corresponding subset of location samples by selecting up to a predefined number of the most recent location samples based on associated timestamps.
[0021] Additionally or alternatively, the at least one processor of the at least one server device may determine whether the first client computing device is approaching or in close proximity to the second client computing device based on the timestamps of the selected subset of location samples and the location data elements of the first client computing device. The at least one processor of the at least one server device may then perform a geographic proximity identification based on the determination (e.g., whether the first client computing device is actually approaching or in close proximity to the second client computing device).
[0022] According to some embodiments, at least one processor of at least one server device may determine whether the first client computing device is approaching or approaching the second client computing device based on timestamps of the selected subset of location samples and the location data elements of the first client computing device, and may discard the selected subset of location samples relating to the first client computing device when it can determine that the first client computing device is not approaching the second client computing device.
[0023] An embodiment of the present invention may include a system for generating an alert notification. An embodiment of the system may include at least one server computing device and a plurality of client computing devices.
[0024] According to some embodiments, at least one server computing device may be configured to receive, from a first client computing device, a location data element representative of a current geographic location of the first client computing device, and to repeatedly receive, from the at least one second client computing device, a corresponding location sample associated with a current timestamp representative of the current geographic location of the at least one second client computing device.
[0025] According to some embodiments, at least one server computing device may provide processing or services to one or more second client computing devices. For example, for one or more second client computing devices, the at least one server may select a corresponding subset of location samples based on an associated timestamp, identify a geographic proximity condition between a geographic location of the first client computing device and a geographic location represented by at least one location sample of the subset of location samples, and transmit the subset of location samples to the first client computing device based on the identified condition. Further, the first client computing device may be configured to generate an alert notification based on the location data elements and the subset of location samples.
[0026] According to some embodiments, the at least one server may include a plurality of servers each configured to store location samples of the second client computing devices as a quadtree data structure, each cell of the quadtree data structure may correspond to (a) a given geographic region and (b) a respective server.
[0027] Additionally or alternatively, each server of the plurality of servers may be configured to store location samples of the second client computing device according to a predetermined geographic region.
[0028] Additionally or alternatively, each server of the plurality of servers may be configured to provide processing or services to at least one second client computing device according to (e.g., currently present within) its respective geographic region.
[0029] An embodiment of the present invention may include a system for generating vulnerable vehicle attention notifications. An embodiment of the system may include at least one first client computing device. The at least one first client computing device, in turn, may include a non-transitory memory device in which a module of instruction code is stored, and at least one processor associated with the memory device and configured to execute the module of instruction code.
[0030] Upon executing the modules of instruction code, the at least one processor may be configured to: send at least one location data element representing a current geographic location of the first client computing device to a server computing device; receive at least one notification from the server based on the sent at least one location data element, the at least one notification including one or more location samples, each location sample representing a geographic location of a second client computing device associated with the vulnerable vehicle at a particular timestamp; continuously analyze the location samples that are between the current location of the first client computing device and the location sample corresponding to a latest timestamp; and generate a caution notification based on the analysis.
[0031] The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of this specification, however, the invention, both as to organization and method of operation, together with its objects, features, and advantages, may best be understood by reference to the following detailed description when read in conjunction with the accompanying drawings. [Brief description of the drawings]
[0032] [Figure 1] FIG. 1 is a block diagram illustrating a computing device that may be included in a system for generating vulnerable road user vehicle warning notifications in accordance with some embodiments. [Diagram 2] 1 is a block diagram illustrating a system for generating vulnerable vehicle attention notifications according to some embodiments of the present invention. [Diagram 3] FIG. 2 is a schematic diagram illustrating time-stamped samples of vehicle position according to some embodiments of the present invention. [Figure 4] 1 is a block diagram illustrating a system for generating vulnerable vehicle attention notifications according to some embodiments of the present invention. [Diagram 5] 1 is a flow diagram illustrating a method for generating a vulnerable vehicle attention notification by at least one processor of a client computing device according to some embodiments of the present invention. [Figure 6] 4 is a flow diagram illustrating a method for generating a vulnerable vehicle attention notification by at least one processor of a server computing device according to some embodiments of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0033] It will be understood that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
[0034] Those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The foregoing embodiments are therefore to be considered in all respects as illustrative rather than limiting the invention described herein. The scope of the present invention is therefore indicated by the appended claims rather than the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
[0035] In the following detailed description, many specific details are described to provide a thorough understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In some cases, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention. Some features or elements described with respect to one embodiment may be combined with features or elements described with respect to other embodiments. For clarity, the description of the same or similar features or elements may not be repeated.
[0036] Although embodiments of the invention are not limited in this respect, for example, descriptions using terms such as "processing," "computing," "calculating," "determining," "establishing," "analyzing," "checking," and the like may refer to operations and / or processes of a computer, computing platform, computing system, or other electronic computing device that manipulates and / or transforms data represented as physical (e.g., electronic) quantities in the computer's registers and / or memory into other data that is similarly represented as physical quantities in the computer's registers and / or memory or other information non-transitory storage medium capable of storing instructions for performing an operation(s) and / or process(es).
[0037] Although embodiments of the invention are not limited in this respect, the term "plurality" as used herein can include, for example, "multiple," or "two or more." The term "plurality" may be used throughout this specification to describe two or more components, devices, elements, units, parameters, etc. The term "set" as used herein can include one or more items.
[0038] Unless expressly stated, the method embodiments described herein are not constrained to a particular order or sequence. In addition, the method embodiments described, or some of their elements, may occur or be performed simultaneously, at the same time, or in parallel.
[0039] Reference is now made to FIG. 1, which is a block diagram illustrating a computing device that may be included within an embodiment of a system for generating vulnerable vehicle or motorcycle warning notifications (or "warning notifications" for short) in accordance with some embodiments.
[0040] Computing device 1 may include a processor or controller 2, which may be, for example, a central processing unit (CPU) processor, chip, or any suitable computing or computational device, an operating system 3, memory 4, executable code 5, a storage system 6, input devices 7, and output devices 8. Processor 2 (or one or more controllers or processors, possibly across multiple units or devices) may be configured to perform methods described herein and / or to perform or function as various modules, units, etc. More than one computing device 1 may be included in a system according to embodiments of the present invention, and one or more computing devices 1 may function as components of a system according to embodiments of the present invention.
[0041] Operating system 3 may be or may include any code segment (e.g., similar to executable code 5 described herein) designed and / or configured to perform tasks including coordinating, scheduling, arbitrating, monitoring, controlling, or otherwise managing the operation of computing device 1, such as scheduling the execution of software programs or tasks, or enabling communication of software programs or other modules or units. Operating system 3 may be a commercially available operating system. It should be noted that operating system 3 may be an optional component, e.g., in some embodiments, a system may include a computing device that does not require or includes an operating system 3.
[0042] The memory 4 may be or include, for example, a random access memory (RAM), a read only memory (ROM), a dynamic RAM (DRAM), a synchronous DRAM (SD-RAM), a double data rate (DDR) memory chip, a flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short-term memory unit, a long-term memory unit, or other suitable memory or storage unit. The memory 4 may be or include multiple, possibly different, memory units. The memory 4 may be a non-transitory readable medium of a computer or a processor, or a non-transitory storage medium of a computer, for example, a RAM. In one embodiment, the non-transitory storage medium, such as the memory 4, a hard disk drive, or another storage device, may store instructions or code that, when executed by the processor, cause the processor to perform the methods described herein.
[0043] Executable code 5 may be any executable code, such as an application, a program, a process, a task, or a script. Executable code 5 may be executed by processor or controller 2, possibly under control of operating system 3. For example, executable code 5 may be an application that may generate an alert notification as described further herein. For clarity, a single item of executable code 5 is shown in FIG. 1, but systems according to some embodiments of the present invention may include multiple executable code segments similar to executable code 5 that may be loaded into memory 4 and cause processor 2 to perform methods described herein.
[0044] Storage system 6 may be or may include, for example, flash memory as known in the art, memory internal or embedded in a microcontroller or chip as known in the art, a hard disk drive, a CD recordable (CD-R) drive, a Blu-ray disc (BD), a Universal Serial Bus (USB) device, or other suitable removable and / or fixed storage unit. Data regarding the location of one or more client computing devices may be stored in storage system 6 and loaded from storage system 6 into memory 4 where it may be processed by processor or controller 2. In some embodiments, some of the components shown in FIG. 1 may be omitted. For example, memory 4 may be a non-volatile memory having the storage capacity of storage system 6. Thus, although shown as a separate component, storage system 6 may be embedded or included in memory 4.
[0045] Input device(s) 7 may be or include any suitable input device, component, or system, such as a detachable keyboard or keypad, a mouse, and the like. Output device(s) 8 may include one or more (possibly detachable) displays or monitors, speakers, and / or any other suitable output device. Any applicable input / output (I / O) devices may be connected to computing device 1 as indicated by blocks 7 and 8. For example, a wired or wireless network interface card (NIC), a universal serial bus (USB) device, or an external hard drive may be included in input device(s) 7 and / or output device(s) 8. It will be appreciated that any suitable number of input devices 7 and output devices 8 may be operatively connected to computing device 1 as indicated by blocks 7 and 8.
[0046] Systems according to some embodiments of the present invention may include components such as, but not limited to, multiple central processing units (CPUs) or any other suitable general-purpose or specific processors or controllers (e.g., similar to element 2), multiple input units, multiple output units, multiple memory units, and multiple storage units.
[0047] Reference is now made to Figure 2, which is a block diagram illustrating a system 100 for generating traffic attention notifications, according to some embodiments of the present invention. The term "attention notification" is used herein to refer to any type of warning or notification that may be generated or displayed by the system 100 and may indicate the proximity of a vulnerable person vehicle (e.g., a two-wheeled vehicle 10B, such as a bicycle).
[0048] For example, the vulnerable vehicle warning notification may include display data (e.g., on an output device 8 such as a computer screen) regarding the location of a vulnerable vehicle (e.g., a bicycle) 10B that is in the vicinity of the system 100 (e.g., closer than a predetermined distance).
[0049] It should be noted that the vehicle 10B may be outside the line of sight of the system 100. For example, the system 100 may be contained or installed in a car that obstructs the location of the vulnerable vehicle 10B. In some embodiments, when the distance between the location of the system 100 and the location of the vehicle 10B falls below a predetermined threshold, the attention notification may include a collision warning that alerts the user of the system 100 to the risk of an impending collision.
[0050] According to some embodiments of the invention, the system 100 may be implemented as software modules, hardware modules, or any combination thereof. For example, the system may be or include a computing device, such as element 1 of FIG. 1, adapted to execute one or more executable code modules (e.g., element 5 of FIG. 1) to generate an alert notification, as further described herein.
[0051] As shown in Figure 2, arrows represent the flow of one or more data elements to and from system 100 and / or between modules or elements of system 100. Some arrows have been omitted from Figure 2 for clarity.
[0052] According to some embodiments, as shown in Figure 2, system 100 may be or may include a first portion, labeled as element 100B in Figure 2. Portion 100B may include one or more computing devices, such as one or more server devices 120. One or more server devices 120 may be or include a computing device, such as computing device 1 of Figure 1, and may be configured to communicate with one or more client computing devices over a communications network 130 (e.g., a cellular network, the Internet, etc.). According to some embodiments, one or more servers 120 may be cloud-based servers, facilitating automated provisioning and tearing down of cloud resources as demand for computing resources increases or decreases.
[0053] Additionally or alternatively, system 100 may include a second portion, labeled element 100A in FIG. 2. Portion 100A may include a combination of multiple client computing devices 110 (e.g., 110B, 110C). Multiple client devices 110 (e.g., 110B, 110C) may be or include computing devices, such as computing device 1 of FIG. 1, and may be configured to communicate with one or more server computing devices 120 over a communications network 130.
[0054] According to some embodiments, multiple client devices 110 may be associated with, contained within, carried by, or installed in multiple vehicles or road users, respectively. Additionally or alternatively, one or more client devices 110 may be configured to operate according to the type of vehicle or road user with which they are associated.
[0055] For example, the plurality of client devices 110 may include at least one first client device 110B associated with a vulnerable person vehicle 10B, such as a two-wheeler (e.g., bicycle, motorbike, electric scooter, and the like). Such a client device 110 is referred to herein as 100B (e.g., the "B" for "Bicycle") and may also be referred to herein as a "vulnerable person client" or a "two-wheeler client" 110B.
[0056] It will be understood that client 110B may refer to other forms or types of vulnerable vehicles, such as skateboards and motorcycle riders. Furthermore, the role of vulnerable may vary depending on the context. For example, a car may be referred to as a vulnerable vehicle as opposed to a truck. Thus, the reference of client 110B corresponding to a person riding a motorcycle should be taken as a convenient, non-limiting example.
[0057] Additionally or alternatively, the plurality of client devices 110 may include at least one second client device 110C associated with an automobile 10C, such as a passenger car. Such a client device 110 is referred to herein as 110C (as in “Car”) and may also be referred to herein as a “car client” 110C.
[0058] Reference is now made to FIG. 3, which is a schematic diagram illustrating time-stamped samples of vehicle positions according to some embodiments of the present invention.
[0059] Reference is also made to FIG. 4, which is a block diagram illustrating a system 100 for generating an attention notification 112A and / or a vehicle attention signal 112B, according to some embodiments of the present invention.
[0060] According to some embodiments, the system 100 of FIG. 4 may be the same as the system 100 of FIG.
[0061] According to some embodiments, one or more of the client computing devices 110 (e.g., 110B, 110C) may include or be communicatively associated with a geographic location module 20. The geographic location module 20 may be configured to obtain or calculate a current geographic location 20A of the client computing device 110. The term "current" may be used in this sense to indicate a geographic location 20A at a particular point in time, sampled or calculated in real time or near real time. For example, the geographic location module 20 may be a geographic positioning system (GPS) module adapted to calculate the current geographic location 20A of the client computing device 110 based on GPS satellite signals. In another example, the geographic location module 20 may be adapted to receive RF transmissions from multiple terrestrial transmitters (e.g., cellular base stations) and perform triangulation of the received RF transmissions to obtain the current geographic location 20A.
[0062] According to some embodiments, at least one client computing device 110 (e.g., car client 110C) may include a location sampling module 111 configured to sample a current geographic location 20A. The client computing device 110 may transmit the sampled geographic location 20A as at least one location data element 110CL to the at least one server computing device 120 via a communication module 170 (e.g., a cellular modulator-demodulator (MODEM), a NIC, and the like). The at least one location data element 110CL may represent a current geographic location of the client computing device 110 (e.g., 110C).
[0063] Additionally or alternatively, one or more client computing devices 110 (e.g., motorcycle client device 110B) may each be associated with or installed on a vulnerable person vehicle, such as a motorcycle. The one or more client computing devices 110 are configured to sample 111 a current geographic location 20A. The client computing device 110 (e.g., 110B) may then transmit, via the communication module 170, at least one location sample data element 110BP representing a time-stamped sample of the current geographic location 20A (e.g., the location of an associated vulnerable person vehicle, such as a bicycle) of the one or more client devices 110B to the server computing device 120.
[0064] At least one server 120 may continuously (e.g., repeatedly over time) receive at least one location data element 110CL from one or more client computing devices (e.g., car client device 110C). Additionally or alternatively, at least one server 120 may continuously (e.g., repeatedly over time) receive a location sample data element 110BP from one or more client devices 110 (e.g., motorcycle client 110B).
[0065] The terms “location,” “location,” “location sample data element,” and / or “location data element” may be used in this context to refer to data elements that may represent a geographic location, for example, in the form of latitude and / or longitude coordinates or any other suitable coordinates of a respective client computing device.
[0066] The terms “timestamp” or “time-stamped” may be used herein to refer to metadata that may indicate, for example, a label of the current time in Coordinated Universal Time (UTC) format or another suitable format.
[0067] In the example of FIG. 3, points B0, . . . , Bi and F1, . . . , Fi represented by respective position sample data elements 110BP may be time-stamped samples of the geographic location of a vehicle (eg, a motorcycle) at a respective point in time.
[0068] According to some embodiments, at least one server 120 may be configured to process or provide services to at least one of one or more client computing devices 110B (e.g., motorcycle clients). For example, for at least one client computing device 110B, the server 120 may continuously (e.g., repeatedly over time) select a subset (e.g., B0, ..., Bi) of the received position sample data elements 110BP (e.g., B0, ..., Bi and F1, ..., Fi) based on associated timestamps.
[0069] According to some embodiments, the at least one server 120 may maintain a predefined number of location sample data elements for each motorcycle client device 110B that it tracks by discarding older samples (denoted as F1, ..., Fi) upon receiving a new sample (e.g., B0). In other words, the at least one server 120 may hold or maintain a subset of samples (e.g., B0, ..., Bi) in a memory device (e.g., memory 4 in FIG. 1) or storage (e.g., storage 6 in FIG. 1) as the vehicle (e.g., motorcycle) moves along a route, as shown in FIG. 3.
[0070] As is known in the art, the term "quadtree" is sometimes used herein to refer to a tree data structure in which each internal node or cell may have exactly four children. Quadtrees are often used to partition two-dimensional spaces by recursively dividing the space into four quadrants or regions, where each leaf cell may represent a spatial information unit of interest.
[0071] In some embodiments, at least one server 120 may hold or maintain a subset of the samples (eg, B0,...,Bi) in a geospatial database as a geospatial data structure, such as a quadtree data structure.
[0072] For example, the at least one server 120 may include a plurality of servers configured to store location data elements 110CL (e.g., of client computing device 110B) and / or location sample data elements 110BP (e.g., of client computing device 110B) as a quadtree data structure. Each cell of the quadtree data structure may correspond to a given geographic region (e.g., a quadtree portion of a map). Further, each cell of the quadtree data structure may correspond to, be associated with, or provide a service to a respective server of the plurality of servers.
[0073] According to some embodiments, each server of the plurality of servers may be configured to store location sample data elements 110BP and / or location data elements 110CL according to a given geographic region.
[0074] Additionally or alternatively, each server 120 of the plurality of servers may be configured to provide processing or services to client computing devices 110B / 110C according to its respective geographic region, e.g., to provide services to client computing devices 110B / 110C currently present within the corresponding geographic region.
[0075] It can be seen that where each server processes or services only client devices currently present in its respective local geographic cell, such geographically oriented storage and processing of client 110 data (e.g., location data elements 110CL and / or location sample data elements 110BP) can prove efficient in terms of local data analysis and retrieval.
[0076] Moreover, as is known in the art, the quadtree data structure may be configured to divide the underlying geographic regions in a dynamic manner to accommodate changes in workload, i.e., one or more servers 120 may be configured to dynamically change the location and / or size of given geographic regions depending on the number of client devices 110B / 110C present in those geographic regions.
[0077] For example, a geographic area that is congested with a relatively large number of vehicles (e.g., many client devices 110B / 110C) may be dynamically partitioned by a relatively large number of quadtree cells and a corresponding large number of servers 120. In a complementary manner, a geographic area that is sparsely populated (e.g., few client devices 110B / 110C) may be aggregated and served by a relatively small number of quadtree cells and a corresponding small number of servers 120.
[0078] The time-stamped samples maintained by server 120 are labeled as points "B" in Figure 3. In this example, (a) point B0 represents the latest (e.g., most recent) time-stamped sample of the position of client 110B (e.g., motorcycle) maintained by server 120, (b) point Bi represents the first (e.g., oldest) time-stamped location sample of the position of client 110B (e.g., motorcycle) maintained by server 120, and (c) points B0,...,Bi represent a complete subset of the time-stamped location samples received as location sample data element 110BP and maintained by server 120 (e.g., in database or storage device 6 of Figure 1).
[0079] It can be understood that the timestamped position samples may be considered to be a limited "tail" of the motorcycle client device 110B in the sense that the position of the motorcycle client device 110B as it travels along the route may extend back a limited distance (or number of samples) from the most recent sampled position (e.g., B0).
[0080] Additionally or alternatively, server 120 may be configured to receive one or more location data elements 110CL from one or more (e.g., multiple) client devices 110 (e.g., car client devices 110C). The location data elements 110CL may represent a current geographic location of each client computing device 110C. For example, one or more location data elements 110CL may be a time-stamped sample of the geographic location of each associated automobile (e.g., associated car). These time-stamped location samples are labeled in FIG. 3 as elements “C” (e.g., C0, C1, C2).
[0081] As described in more detail herein, the server 120 may identify at least one client 110C (eg, a client 110C associated with a car) as being involved in the route of the client 110B (eg, the motorcycle client 110B).
[0082] For example, the server 120 may identify a geographic proximity state between a geographic location sample (e.g., C0) of at least one client computing device 110C (e.g., car client 110C) and a geographic location of at least one client 110B (e.g., motorcycle client 110B) represented by at least one location sample (e.g., Bi) of the subset of location samples (e.g., B0, ..., Bi).
[0083] According to some embodiments, the server 120 may analyze the received location sample data elements 110BP (e.g., B0, ..., Bi and F1, ..., Fi) against the geographic location sample (e.g., C0) to select a subset of the location sample data elements 110BP (e.g., B0, ..., Bi), and then identify a geographic proximity state based on this analysis.
[0084] For example, the server 120 may analyze a subset of the location sample data elements 110BP (e.g., B0, ..., Bi) to determine whether the car client computing device 110C is approaching the bike client computing device 110B based on the timestamps of the selected subset of location samples and the location data element (e.g., geographic location sample C0) of the car client computing device 110C. In this context, the term "approaching" may be used to indicate a process of increasing relative proximity regardless of the individual movements of the client 110C and / or the client 110B.
[0085] For example, if the timestamps of the location sample data elements 110BP indicate increasingly newer times, the server 120 may determine that the client 110C is approaching the client 110B. In a complementary example, if the timestamps of the location sample data elements 110BP indicate increasingly older times, the server 120 may determine that the client 110C is not approaching the client 110B.
[0086] Based on this determination, the server 120 may perform a process of identifying a geographical proximity state between the client 110C and one or more clients 110B. In other words, if the server 120 determines that the client computing device 110C is approaching or approaching the client computing device 110B, the server 120 may proceed to identify a geographical proximity state between the client 110C and one or more clients 110B and, optionally, send a notification 110CN to the client 110C.
[0087] Additionally or alternatively, if the server 120 determines that the client computing device 110C is not approaching or approaching the client computing device 110B, the server 120 may discard at least a subset of the selected location samples 110BP (e.g., B0, ..., Bi) that relate to the particular client device 110C.
[0088] In the example of Figure 3, the server 120 may determine that a time-stamped location sample (e.g., Bi) of the client 110B is in close proximity (denoted as "proximal area" in Figure 3) to the current geographic location sample (denoted as C0) of the car client 110C. In other words, using the "tail" analogy, the server 120 may identify a situation in which the car client device 110C is "on the tail" of the two-wheeler client device 110B at location Bi.
[0089] According to some embodiments, in accordance with this identified state, the server 120 may communicate a notification 110CN to at least one identified client 110C (e.g., C0) via the network 130. In some embodiments, the server 120 may send the notification 110CN only to the identified client 110C (e.g., C0). In other words, the identified client 110C (e.g., C0) may receive at least one notification 110CN from the server 120 based on the transmitted at least one location data element 110CL.
[0090] The notification 110CN may include only enough information for at least one identified client device 110C to assess the risk of collision with the motorcycle client device 110B. In some embodiments, the notification 110CN may include one or more location samples (e.g., B0, ..., Bi), each of which may represent the geographic location of the motorcycle client device 110B at a particular timestamp.
[0091] For example, server 120 may send notification 110CN to car client 110C (e.g., car client) based on identifying a condition in which a geographic location sample (e.g., C0) of client 110C and a geographic location sample (e.g., Bi) of client 110B are in geographic proximity (e.g., car client 110C is “on the tail” of bike client 110B). Notification 110CN may include, for example, a selected subset of the maintained location samples (e.g., B0, ..., Bi) and their corresponding timestamps.
[0092] The car client 110C may continuously (e.g., repeatedly over time) analyze the location data element 20A (e.g., representing the current location sample C0) and a subset of the received maintained location samples (e.g., B0, ..., Bi) to provide an attention notification and / or determine a risk or probability of a collision, as described in more detail herein. Based on this analysis, the car client 110C may then generate an attention notification 112A and / or a vehicle attention signal 112B.
[0093] Additionally or alternatively, the car client device 110C may continually analyze location samples between the client computing device's current location 20A (denoted as C0 in FIG. 3) and the location sample corresponding to the most recent timestamp (denoted as B0 in FIG. 3). Based on this analysis, the car client device 110C may then generate an attention notification 112A and / or a vehicle attention signal 112B, as described in more detail herein.
[0094] As described in detail herein, embodiments of the present invention may include practical applications of providing attention notifications (e.g., collision warnings) and / or vehicle attention signals for controlling or guiding an autonomous vehicle. Additionally, embodiments of the present invention may include several improvements over currently available driver assistance and collision avoidance systems and methods.
[0095] For example, embodiments of the present invention may generate advisory notifications based on independently obtained geographic location information, and may not rely on line-of-sight between vehicles.
[0096] Additionally, as described in more detail herein, the system 100 may perform the analysis and determination of whether the vehicle client computing device 110C needs to generate an attention notification 112A, in contrast to currently available systems in which such determination is performed on a central server computing device.
[0097] Accordingly, embodiments of system 100 may include improvements over currently available alert notification systems by (a) reducing the computational and communication load on the server, (b) reducing the need for server computational resources (e.g., memory, processing cycles, maintenance, etc.), and (c) reducing the risk of system crashes or malfunctions.
[0098] Additionally, embodiments of the system 100 may include improvements over currently available attention notification systems by providing notifications or warnings to the driver or self-driving system independent of the operational status or communication failure of a central server. In other words, the car client computing device 110C may generate the attention notification 112A and / or the vehicle attention signal 112B independent of communication between the server 120 and one or more client computing devices 110.
[0099] Additionally, embodiments of the system 100 may include improvements over currently available caution notification systems by utilizing the computational power of all the car client computing devices 110C. As a result, embodiments of the system 100 may reduce the computational and / or communication load on the central server. This increases the yield of collision risk analysis because each car client device 110C does not need to analyze collision risk for other cars, but only for itself.
[0100] Moreover, such local analysis of collision risk by the client computing device 110C may generate a warning notification substantially immediately (e.g., independent of a communication network). Such an implementation may prove particularly beneficial for autonomous driving systems where real-time control of a vehicle is required.
[0101] According to some embodiments, system 100 may be included in or associated with an advanced driver assistance system (ADAS) 160. In such embodiments, attention notification 112A may include, for example, an alert or warning configured to be presented to a user or driver on a user interface (UI), such as output device 8 of FIG. 1. Such a UI may include, for example, a monitor or screen associated with or included in client device 110 (e.g., vehicle client computing device 110C) or ADAS 160.
[0102] Additionally or alternatively, system 100 may be included in or associated with an autonomous driving system or driving control system 150. As known in the art, autonomous driving system 150 may be communicatively coupled to one or more controllers (e.g., controller 10C-1 of FIG. 4) and / or actuators (e.g., actuator 10C-2 of FIG. 4) of an autonomous vehicle, e.g., 10C. Thus, autonomous driving system 150, via one or more controllers 10C-1 and / or actuators 10C-2, may guide autonomous vehicle 10C, e.g., by steering autonomous vehicle 10C in a required direction (e.g., by a steering wheel), determining the speed of autonomous vehicle 10C (e.g., by controlling an accelerator pedal and / or brake pedal, and the like).
[0103] In such an embodiment, the analysis module 112 may generate at least one vehicle attention signal 112B indicating the proximity of the vehicle 10B. For example, the vehicle attention signal 112B may include a warning or alert for an impending collision. The car client device 110C may transmit the vehicle attention signal 112B to the driving control system 150. The driving control system 150 may then analyze the vehicle attention signal 112B (e.g., evaluate the severity of the alert) and communicate commands to at least one controller 10C-1 and / or actuator 10C-2 based on the analysis. Such commands may be, for example, a command to operate an actuator 10C-2 of a braking system of the autonomous vehicle 10C, a command to operate an actuator 10C-2 of an accelerator pedal of the autonomous vehicle 10C, and / or a command to operate an actuator 10C-2 of a steering system of the autonomous vehicle 10C to steer the autonomous vehicle 10C (e.g., to avoid an impending collision).
[0104] As described in more detail herein, the car client 110C may continually analyze the location data elements 20A and / or a subset of the maintained location samples (e.g., B0, ..., Bi) to determine the risk or probability of a collision and generate a respective caution notification 112A and / or vehicle caution signal 112B.
[0105] For example, the car client 110C may count the location samples (e.g., B0, ..., Bi) between the current location (denoted as C0) of the car client computing device 110C and the latest time-stamped location sample (denoted as B0 in FIG. 3) maintained that represents the latest sampled location of the two-wheeler client device 110B. The car client 110C may then generate an attention notification 112A and / or a vehicle attention signal 112B based on the counted location samples. With respect to the example of FIG. 3, if the number of maintained location samples (e.g., B0, ..., Bi, seven in this example) falls below a predetermined threshold number (e.g., 10), the car client 110C may generate an attention notification 112A and / or a vehicle attention signal 112B including the number and / or geographic location of the location samples B0, ..., Bi.
[0106] Additionally or alternatively, the car client 110C may generate an attention notification 112A and / or a vehicle attention signal 112B based on the counted position samples and / or the relative speed between the client device 110C and the client device 110B (e.g., the speed at which the car is "approaching" the motorcycle).
[0107] For example, if (a) the number of counted location samples (B0,...,Bi) between the current location C0 of the car client computing device 110C and the most recent time-stamped location sample (denoted as B0) kept (7 in this example) falls below a predefined threshold (e.g., 10) and (b) this number decreases more than a predefined rate (e.g., more than one sample point per second), the car client 110C may generate an attention notification 112A and / or a vehicle attention signal 112B. In a complementary manner, the car client 110C may refrain from generating an attention notification 112A and / or a vehicle attention signal 112B if the number of counted location samples (B0,...,Bi) does not fall below a predefined threshold (e.g., 10) or does not fall below a predefined rate.
[0108] Additionally or alternatively, the car client 110C may generate an attention notification 112A and / or a vehicle attention signal 112B based on counted position samples and / or an actual speed of the vehicle 10C associated with the car client 110C.
[0109] For example, the car client 110C may receive at least one speed data element representing the speed of the car client computing device 110C from at least one sensor 10C-3 of the vehicle 10C. For example, the sensor 10C-3 may be a speedometer and the speed data element may be a reading of the speed sensor 10C-3. Additionally or alternatively, the car client 110C may receive current position data 20A for two separate points in time from the geographic location module 20 and calculate the speed of the vehicle 10C from the position data 20A.
[0110] The car client 110C may generate an attention notification signal 112A and / or a vehicle attention signal 112B based on the counted position samples and / or speed data elements.
[0111] For example, if (a) the number of counted position samples (B0, ..., Bi, in the example of FIG. 3, this number is 6) between the current position C0 of the car client computing device 110C and the latest time-stamped position sample maintained (denoted as B0) falls below a predefined threshold (e.g., 8) and (b) the speed data element indicates that the speed of the vehicle 10C of the car client computing device 110C exceeds the predefined threshold, the car client 110C may generate an attention notification 112A and / or a vehicle attention signal 112B.
[0112] In a complementary manner, if condition (a) or (b) is not met, the car client 110C may refrain from generating the attention notification 112A and / or the vehicle attention signal 112B.
[0113] As described in detail herein, the system 100 may include one or more (e.g., multiple) servers 100B that may continuously acquire and manage location data for multiple client computing devices 110 in a distributed (e.g., a particular server 100B is assigned to a particular geographic region) manner. The server 100B may receive one or more location data elements 110CL, associated with respective timestamps, from at least one (e.g., multiple) car client computing device 110C, representing the current geographic location of the car client computing device 110C. The server 100B may also repeatedly receive one or more corresponding location samples 110BP, also associated with respective timestamps, from at least one (e.g., multiple) vulnerable vehicle (e.g., bicycle) client computing device 110B, representing the current geographic location of each of the at least one bicycle client computing device 110B.
[0114] As described in more detail herein (e.g., in connection with FIG. 3), the server(s) 100B may select or maintain the subset of location samples (e.g., B0, ..., Bi), for example, based on their respective timestamps.
[0115] Client device(s) 110B and / or client device(s) 110C may be configured to generate an alert notification based on a subset of the location data element(s) 110CL and the location samples 110BP.
[0116] For example, the server 100B may communicate a subset of the location samples 110BP to the car client 110C as a “push” message or in response to a query initiated by the client 110C. The subset of the location samples 110BP may include or represent historical time-stamped locations of at least one vulnerable vehicle (e.g., bicycle) client 110B that is in the geographic vicinity of the associated car client device 110C.
[0117] As described in more detail herein (e.g., FIG. 3), the car client device 110C may analyze a subset of the location samples 110BP against one or more location data elements and / or a current location 20A (e.g., obtained from the geographic location module 20) to determine a condition in which the car client device 110C is approaching the historical location (represented by the subset of the location samples 110BP) of the bicycle client computing device 110B. As a result, the car client device 110C may generate a caution notification 112A in response to the determined condition, for example, when the car is approaching the bicycle at a speed exceeding a predefined threshold.
[0118] Additionally or alternatively, a client 110B (e.g., installed on a vulnerable person vehicle such as a bicycle) may obtain a subset of the location samples 110BP and / or one or more location data elements 110CL from a server(s) 100B. The client 110B may do so, for example, by a server “push” message or in response to a query initiated by the client 110B.
[0119] In a similar manner as described above, client 110B may analyze a subset of the location samples against one or more location data elements to determine a condition in which the location 110CL of client 110C (e.g., a car) is approaching a historical location of client 110B (a vulnerable vehicle) represented by the subset of location samples 110BP. As a result, client 110B may generate a caution notification 112A in response to the determined condition, for example, when the car is approaching a bicycle at a speed exceeding a predefined threshold.
[0120] Additionally or alternatively, client 110B may apply further logic to generate reminder notifications 112A. For example, client 110B may employ a time-based cool-down for reminder notifications 112A to avoid too many or too frequent notifications and the associated alert fatigue.
[0121] In another example, client 110B may introduce further criteria for alerts, for example, client 110B may analyze car time-stamped location data elements 110CL to identify vehicles exceeding speed thresholds or exhibiting erratic behavior such as zig-zag driving.
[0122] FIG. 5 is a flow diagram illustrating a method for generating an alert notification by at least one processor of a client computing device according to some embodiments of the present invention.
[0123] As shown in step S5005, at least one processor (e.g., element 2 in FIG. 1) of a first client computing device (e.g., element 110C in FIG. 2) may repeatedly send at least one location data element representing a current geographic location of the first client computing device 110C to a server computing device (e.g., server 120 in FIG. 2).
[0124] As shown in step S5010, at least one processor 2 of the first client computing device 110C may receive at least one notification (e.g., notification 110CN of FIG. 4) from the server 120 based on the transmitted at least one location data element. The at least one notification may include one or more location sample data elements (e.g., location sample 110BP of FIG. 4 and / or elements B0, ..., Bi and F1, ..., Fi of FIG. 3). Each location sample 110BP may represent a geographic location of the second client computing device (e.g., element 110B of FIG. 2) at a particular timestamp.
[0125] As shown in step S5015, at least one processor 2 of the first client computing device 110C may continuously (e.g., repeatedly over time) analyze location samples between the current location of the first client computing device and the location sample corresponding to the most recent timestamp, as described in more detail herein (e.g., in connection with FIG. 3 and / or FIG. 4).
[0126] As shown in step S5020, the at least one processor 2 of the first client computing device 110C may generate an attention notification (e.g., element 112A of FIG. 4) to be presented to a driver (e.g., as part of an ADAS system as described further herein) based on the analysis. Additionally or alternatively, the at least one processor 2 of the first client computing device 110C may generate a vehicle attention signal (e.g., element 112B of FIG. 4) to control the autonomous vehicle 10C-1 based on the analysis.
[0127] FIG. 6 is a flow diagram illustrating a method for generating an attention notification by at least one processor of a server computing device according to some embodiments of the present invention.
[0128] As shown in step S6005, at least one processor (e.g., element 2 of FIG. 1) of a server computing device (e.g., element 120 of FIG. 2) may receive from a first client computing device (e.g., element 110C of FIG. 2) a location data element (e.g., element 110CL of FIG. 4) representing a current geographic location of the first client computing device 110C.
[0129] As shown in step S6010, at least one processor 2 of the server computing device 120 may repeatedly receive corresponding location sample data elements (e.g., element 110BP of FIG. 4) from one or more second client computing devices (e.g., element 110B of FIG. 2). The location sample data elements represent the current geographic location of the second client computing devices 110B and may be associated with or include a current timestamp.
[0130] As shown in step S6015, for at least one second client computing device of the one or more second client computing devices, at least one processor 2 of the server computing device 120 may select a subset of corresponding location samples based on the timestamps of each of the location sample data elements.
[0131] As shown in step S6020, for at least one second client computing device of the one or more second client computing devices, at least one processor 2 of the server computing device 120 may identify a geographic proximity state between the first client computing device (e.g., represented by a location data element 110CL) and the at least one second client computing device (e.g., represented by at least one location sample data element 110BP of a subset of the location samples).
[0132] As shown in step S6025, for at least one second client computing device of the one or more second client computing devices, based on the identified proximity state, at least one processor 2 of the server computing device 120 may transmit a subset of the location samples to the first client computing device.
[0133] As described in more detail herein, the first client computing device 110C may be configured to generate an attention notification 112A and / or a vehicle attention signal 112B based on a subset of the location samples.
[0134] Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or sequence. Moreover, all schemes described herein are intended as examples only, and other or different schemes may be used. In addition, some of the method embodiments described, or elements thereof, may occur or be performed at the same time.
[0135] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will occur to those skilled in the art, and it is therefore to be understood that the appended claims are intended to cover all such modifications and changes that fall within the true spirit of the invention.
[0136] Various embodiments are presented, each of which may of course include features from the other embodiments presented, and embodiments not specifically described may include various features described herein.
Claims
1. A method for generating a vulnerable vehicle warning notification by at least one processor of a first client computing device, wherein the method is: Sending at least one location data element representing the current geographical location of the first client computing device to the server computing device, Receiving at least one notification from a server based on at least one transmitted location data element, wherein the at least one notification includes one or more location samples, each location sample representing the geographical location of a second client computing device associated with a vulnerable vehicle at a specific timestamp, Continuously analyze the location samples between the current location of the first client computing device and the location sample corresponding to the latest timestamp, Based on the above analysis, a warning notification is generated, Methods that include...
2. The method according to claim 1, wherein analyzing the location samples includes counting location samples between the current location of a first client computing device and the most recent timestamped location sample, and the method further includes generating an alert notification based on the counted location samples.
3. If the number of the counted location samples falls below a predefined threshold at a predefined rate, an alert notification is generated. If the number of the counted location samples does not fall below a predefined threshold at a predefined rate, the generation of a warning notification will be withheld. The method according to claim 2.
4. Analyzing the location samples includes counting location samples between the current location of the first client computing device and the location sample with the most recent timestamp, and the method is Receiving a speed data element representing the speed of the first client computing device, To generate a warning notification based on the counted location samples and the velocity data elements, The method according to any one of claims 1 to 3, further comprising:
5. Based on the analysis of the aforementioned position sample, at least one vehicle warning signal indicating the proximity of a vehicle is generated. The vehicle warning signal is transmitted to the autonomous vehicle's controller, the controller being configured to control at least one actuator selected from the brake system actuator, the accelerator pedal actuator, and the steering system actuator in order to guide the autonomous vehicle. The method according to claim 1, further comprising:
6. A method for generating a vulnerable vehicle warning notification by at least one processor of at least one server computing device, wherein the method is: Receiving location data elements from the first client computing device that represent the current geographical location of the first client computing device, The method involves repeatedly receiving corresponding location samples from one or more second client computing devices associated with each vulnerable vehicle, wherein the location samples represent the current geographical location of the second client computing device and are associated with a current timestamp. In at least one of the one or more second client computing devices, Select a subset of location samples corresponding to at least one second client computing device, Identifying the geographical proximity between a first client computing device represented by location data elements and at least one second client computing device represented by at least one location sample from a subset of location samples, Based on the identified state, a subset of location samples is transmitted to a first client computing device, wherein the first client computing device is configured to generate an alert notification based on the subset of location samples. Providing services by, Methods that include...
7. The method according to claim 6, wherein selecting a subset of the location samples includes selecting the most recent location samples up to a predefined number of location samples based on the associated timestamp.
8. Selecting a subset of the corresponding location samples is: Based on the timestamps of a subset of selected location samples and the location data elements of the first client computing device, it is determined whether the first client computing device is approaching the second client computing device. Based on the above determination, the identification of the geographical proximity state is performed, The method according to claim 7, further comprising:
9. Selecting a subset of the corresponding location samples is: Based on the timestamps of a subset of selected location samples and the location data elements of the first client computing device, it is determined whether the first client computing device is approaching the second client computing device. When it is determined that the first client computing device is not approaching the second client computing device, a subset of selected location samples related to the first client computing device is discarded. The method according to claim 7, further comprising:
10. The first client computing device described above is Send at least one location data element to at least one server computing device, Based on the transmitted location data element, at least one notification is received from at least one server, the notification comprising one or more location samples, each location sample representing the geographical location of a second client computing device at a specific timestamp. The location samples between the current location of the first client computing device and the location sample corresponding to the latest timestamp are continuously analyzed. Based on the above analysis, a warning notification is generated. The method according to claim 6, configured as described above.
11. The first client computing device described above is The location samples are analyzed by counting the location samples between the current location of the first client computing device and the location sample with the latest timestamp. A warning notification is generated based on the counted location samples. The method according to claim 10, configured as follows.
12. The first client computing device described above is If the number of the counted location samples falls below a predefined threshold at a predefined rate, an alert notification is generated. If the number of counted location samples does not fall below a predefined threshold at a predefined rate, the generation of a warning notification will be withheld. The method according to claim 11, configured as described above.
13. The first client computing device described above is The location samples are analyzed by counting the location samples between the current location of the first client computing device and the location sample with the latest timestamp. The system receives a speed data element representing the speed of the first client computing device, A warning notification is generated based on the counted location samples and the speed data elements. The method according to claim 10, configured as follows.
14. The first client computing device described above is Based on the analysis of the aforementioned location sample, at least one vehicle warning signal indicating the proximity of a vehicle is generated. The aforementioned vehicle warning signal is transmitted to the autonomous vehicle's controller. The method according to claim 10, wherein the controller is configured to control at least one actuator selected from the brake system actuator, the accelerator pedal actuator, and the steering system actuator in order to guide the autonomous vehicle.
15. The method according to claim 6, wherein the at least one server includes a plurality of servers configured to store location samples of a second client computing device as a quadtree data structure, and each cell of the quadtree data structure corresponds to (a) a predetermined geographical area and (b) each server.
16. The method according to claim 15, wherein each of the plurality of servers is configured to store location samples of a second client computing device according to a predetermined geographical area.
17. The method according to claim 15, wherein each of the plurality of servers is configured to provide services to at least one second client computing device according to its respective geographical area.
18. A system for generating warnings for vulnerable vehicles, wherein the system includes at least one server computing device and a plurality of client computing devices, and the at least one server is From the first client computing device, receive one or more location data elements, each associated with a timestamp, that represent the current geographical location of the first client computing device. Repeatedly receive one or more corresponding location samples from at least one second client computing device, each associated with a timestamp representing the current geographical location of at least one second client computing device. Based on the associated timestamp, select a subset of the corresponding location samples. It is configured in such a way, A system in which at least one of the first client computing device and the second client computing device is configured to generate alert notifications based on location data elements and a subset of location samples.
19. The preceding first client computing device is installed in a vehicle, Obtain a subset of location samples from at least one server, The subset of the location samples is analyzed by comparing it with one or more location data elements, and it is determined that the vehicle is approaching the historical location of a second client computing device represented by the subset of the location samples. A warning notification is generated according to the determined state. The system according to claim 18, configured as follows.
20. The second client computing device is installed in the vehicle of the disabled, Obtain a subset of location samples from at least one server, Obtain one or more location data elements from at least one server, The subset of the location samples is analyzed by comparing it with one or more location data elements, and it is determined that the position of the first client computing device is approaching the historical position of the vulnerable vehicle represented by the subset of the location samples. A warning notification is generated according to the determined state. The system according to claim 18, configured as follows.
21. A system for generating a warning notification for a vulnerable vehicle, the system comprising a first client computing device, the first client computing device comprising a non-temporary memory device in which a module of instruction code is stored, and at least one processor associated with the memory device and configured to execute the module of instruction code, and when the module of instruction code is executed, the at least one processor, Send at least one location data element representing the current geographical location of the first client computing device to the server computing device. Based on the transmitted location data element, the server receives at least one notification, the notification comprising one or more location samples, each location sample representing the geographical location of a second client computing device associated with the vulnerable vehicle at a specific timestamp. The location samples between the current location of the first client computing device and the location sample corresponding to the latest timestamp are continuously analyzed. Based on the above analysis, a warning notification is generated. A system configured in such a way.
22. The aforementioned at least one processor further, The location samples are analyzed by counting the location samples between the current location of the first client computing device and the location sample with the latest timestamp. A warning notification is generated based on the counted location samples. The system according to claim 21, configured as follows.
23. The aforementioned at least one processor further, If the number of the counted location samples falls below a predefined threshold at a predefined rate, an alert notification is generated. If the number of counted location samples does not fall below a predefined threshold at a predefined rate, the generation of a warning notification will be withheld. The system according to claim 22, configured as follows.
24. The aforementioned at least one processor further, The location samples are analyzed by counting the location samples between the current location of the first client computing device and the location sample with the latest timestamp. Receive a speed data element representing the speed of the first client computing device, A warning notification is generated based on the counted location samples and the speed data elements. The system according to any one of claims 21 to 23, configured as described above.
25. The aforementioned at least one processor further, Based on the analysis of the location samples, at least one vehicle warning signal indicating the proximity of a vehicle is generated. The vehicle warning signal is transmitted to the autonomous vehicle's controller, and the controller is configured to control at least one actuator selected from the brake system actuator, the accelerator pedal actuator, and the steering system actuator in order to guide the autonomous vehicle. The system according to claim 21, configured as follows.