Autonomous Caravanning Using Ultra-Wideband Communications

By using UWB communication between vehicles, the system addresses the limitations of existing autonomous vehicle navigation systems, enabling accurate and cost-effective autonomous tracking of host vehicles without the need for expensive sensors.

JP2025509654AInactive Publication Date: 2025-04-11GOOGLE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024554942
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-03-15
Publication Date
2025-04-11
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Current autonomous vehicle systems rely on expensive depth sensor systems like LiDAR for navigation, which limits their accessibility to a wider range of vehicles. Additionally, GPS sensors lack the precision needed for accurate vehicle tracking.

Method used

The system employs ultra-wideband (UWB) communication between client devices in host and caravan vehicles to determine the host vehicle's location relative to the caravan vehicle, allowing for autonomous tracking without the need for LiDAR or other expensive sensors.

Benefits of technology

This approach enables accurate and cost-effective autonomous tracking of host vehicles, providing pinpoint location accuracy (within 1-10 meters) and allowing caravan vehicles to follow host vehicles to their destination without the need for complex sensor systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025509654000001_ABST
    Figure 2025509654000001_ABST
Patent Text Reader

Abstract

To automatically track the host vehicle to a desired location, a client device in the vehicle identifies a host vehicle to track to a desired location, transmits a communication signal to the identified host vehicle, and receives a response signal from the identified host vehicle, the client device determines a position of the host vehicle relative to the vehicle based on round trip times of the communication signal and the response signal, and adjusts control of the vehicle according to the position of the host vehicle relative to the vehicle.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to autonomous caravanning using ultra-wideband (UWB) communications between a client device in a host vehicle and a caravanning vehicle to determine the position of the host vehicle relative to the caravanning vehicle. [Background technology]

[0002] The background art provided herein is described for purposes of generally presenting the context of the present disclosure. The work of the inventors named herein is not admitted, expressly or impliedly, as prior art to the present disclosure to the extent described in this Background section, including aspects of the description that may not qualify as prior art at the time of filing.

[0003] Currently, computing devices typically determine their location using Global Positioning System (GPS) sensors, however, GPS sensors cannot determine the location of a device with pinpoint accuracy.

[0004] Furthermore, many vehicles are equipped with driver assistance systems to prevent collisions. However, these systems only assist the driver, for example by warning the driver when the vehicle is about to veer into another lane. Driver assistance systems do not autonomously drive the vehicle to its destination. Furthermore, autonomous vehicles require expensive depth sensor systems, which can make them more expensive than manually driven vehicles. Summary of the Invention

[0005] When multiple people are traveling to the same destination in their own vehicles, they may try to follow someone who is familiar with the route to the destination. An autonomous caravanning system allows the caravanners to select one member of the group as the driver of the host vehicle, and the other vehicle(s) can autonomously follow the host vehicle to the destination.

[0006] To follow the host vehicle to a destination, users in the caravan vehicle may pair their client devices (also referred to herein as "caravanning client devices") with the client device of the user in the host vehicle (also referred to herein as "host client device"). Then, when the host vehicle begins moving to the destination, the caravanning client device periodically or continuously transmits ultra-wideband (UWB) messages to the host client device and receives UWB response messages from the host client device. As used herein, the term "caravanning" refers to the act of one vehicle following another vehicle to a destination. More specifically, a caravan vehicle / device is a vehicle that communicates with and follows the host vehicle / device.

[0007] The caravanning client device then determines the location of the host client device relative to the host client device based on the round trip time of the UWB message. In some implementations, the caravanning client device includes multiple antennas. The caravanning client device may determine the distance between the devices based on the round trip time (RTT) of the UWB message and may determine the direction of arrival of the UWB response signal based on the time difference when each of the multiple antennas receives the UWB response message. The caravanning client device may then determine the location of the host client device relative to the caravanning client device based on the distance between the devices and the direction of arrival of the UWB response signal. Thus, the use of multiple antennas on the caravanning client device allows for the relative direction between the host vehicle and the caravan vehicle to be determined.

[0008] To follow the host vehicle, the caravanning client device adjusts the control of the caravan vehicle depending on the position of the host vehicle relative to the caravan vehicle. For example, the caravanning client device may adjust the acceleration of the caravan vehicle to maintain an appropriate following distance between the host vehicle and the caravan vehicle. The caravanning client device may also adjust the steering angle of the caravan vehicle so that the caravan vehicle follows behind the host vehicle. In some implementations, in addition to adjusting the control of the caravan vehicle depending on the position of the host vehicle, the caravan vehicle obtains collision avoidance data from a proximity sensor in the caravan vehicle. The caravanning client device then takes the collision avoidance data into account when adjusting the acceleration and / or steering angle of the caravan vehicle. For example, the caravanning client device may apply the relative position and collision avoidance data of the host vehicle to a machine learning model trained based on previous caravans to determine the steering angle and / or acceleration of the caravan vehicle. In this way, a technical effect is provided in which collision avoidance is improved in the situation of a caravan vehicle following a host vehicle.

[0009] This method allows the caravan vehicles to autonomously track the host vehicle to the destination without having a Light Detection and Ranging (LiDAR) sensor or other expensive depth sensor system. This allows the disclosed system to be retrofitted to vehicles that do not have complex and expensive LiDAR or depth sensor systems. In other words, the disclosed system and method that allows a vehicle to track a host vehicle to a destination can be applied to a wider variety of vehicles. This is because the disclosed system and method do not necessarily depend on the vehicle's specific hardware, such as a LiDAR sensor (not all vehicles are fitted with it). Instead, the disclosed system enables the caravanning of vehicles by UWB communication between client devices. This allows the disclosed system and method to provide a more flexible and more widely applicable means for caravanning of vehicles. Furthermore, by using UWB communication, the caravan vehicles can pinpoint the location of the host vehicle with much higher pinpoint accuracy (e.g., about 1-10 meters accuracy) than with a GPS sensor. In this manner, the disclosed system and method can provide a means for tracking a host vehicle more accurately than using GPS alone, without requiring dedicated hardware in the host or tracked vehicles, by leveraging the UWB capabilities of the user device. UWB communication also allows the caravan vehicles to unambiguously identify the host vehicle from other vehicles, even when several vehicles are on the road at the same time.

[0010] As used herein, "vehicle" may refer to any suitable device for transporting people or goods, such as a car, truck, bus, train, bicycle, motorcycle, boat, airplane, helicopter, etc.

[0011] An exemplary embodiment of these techniques is a method for automatically tracking a host vehicle to a destination. The method includes identifying a host vehicle for a vehicle to track to a destination, transmitting a communication signal to the identified host vehicle, and receiving a response signal from the identified host vehicle. The method further includes identifying a location of the host vehicle relative to the vehicle based on round trip times of the communication signal and the response signal, and adjusting control of the vehicle in response to the location of the host vehicle relative to the vehicle. The disclosed system and method thereby enables autonomous tracking of the host vehicle using UWB communications between user devices in those host vehicles. In this manner, an improved means of navigation is provided when multiple vehicles are traveling to the same destination. Instead of each vehicle traveling to the destination using its own unique route, the disclosed system and method provides a simpler means for all vehicles to use the same route and all vehicles to autonomously track one host vehicle. This allows for a safer means of navigation since users of the tracked vehicles do not need to rely on their own navigation instructions (which can distract the user) to reach the destination. Instead, the tracked vehicle can autonomously follow the host vehicle to the destination, eliminating the risk of distraction for the driver of the tracked vehicle. In this manner, the disclosed system and method provide a safer means for multiple vehicles to travel to the same destination. Additionally, the disclosed system and method provide a more efficient means for multiple vehicles to travel to the same destination, since all of the vehicles follow the same route (by following the host vehicle), eliminating the risk of any individual vehicle taking a wrong turn or taking a detour. It is more efficient for all vehicles to follow the same route to reduce traffic, noise pollution, and air pollution.

[0012] Another exemplary embodiment of these techniques is a client device comprising processing hardware and configured to implement the above methods.

[0013] Yet another exemplary embodiment of these techniques is a computer-readable memory, which may be non-transitory, coupled to one or more processors and storing thereon instructions that cause the one or more processors to perform the methods described above. [Brief description of the drawings]

[0014] [Figure 1] 1 illustrates an example vehicle capable of autonomously following a host vehicle to a destination using the techniques of this disclosure. [Diagram 2] FIG. 1 is a block diagram of an exemplary autonomous caravanning system implementing the techniques of the present disclosure. [Figure 3A] 4 is an exemplary messaging sequence for measuring round-trip time of messages exchanged between client devices. [Figure 3B] 1 is an example of phase delays of a UWB message received at multiple antennas in a client device to determine the direction of arrival of the UWB message. [Figure 4] 1 illustrates an example scenario of adjusting the acceleration and steering angle of a caravan vehicle based on the position of a host vehicle relative to the caravan vehicles. [Diagram 5] A-B show exemplary positions of a host vehicle relative to the caravan vehicles. [Figure 6] FIG. 1 is a schematic diagram of the software components of an autonomous caravanning system. [Figure 7] FIG. 1 is a combined block and logic diagram illustrating determining acceleration and steering angle to track a host vehicle using a machine learning model. [Figure 8] FIG. 2 is a flow diagram of an example method for automatically tracking a host vehicle to a destination that may be implemented on a client device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] In general, the techniques of this disclosure enable client devices to communicate with each other using wireless technologies suitable for short-range communication and / or high-bandwidth communication across a wide radio spectrum. One such non-limiting wireless technology is ultra-wideband (UWB). For example, if a client device in a vehicle communicates signals via UWB with another client device in another vehicle, the client device can determine the location of the other vehicle relative to the vehicle based on measurements of the time-of-flight of those signals. Compared to traditional GPS-based location techniques, the client device can determine location information with sub-meter accuracy, thereby enabling the vehicle to autonomously track the other vehicle. For example, the increased accuracy enabled by UWB communication in the methods disclosed herein allows a tracked vehicle to determine that a host vehicle has changed lanes on a multi-lane road. The tracked vehicle can then follow the host vehicle into the new lane. In this manner, the disclosed systems and methods provide a more accurate means of tracking a host vehicle to a destination.

[0016] The client device may be a smartphone, a tablet computer, a laptop computer, a vehicle head unit, a wearable device such as a smart watch or smart glasses, or any suitable client computing device. In some implementations, the smartphones of the users in the different vehicles may pair with each other to establish a communication session. Also, each smartphone may communicate with a corresponding vehicle head unit in each vehicle to instruct the vehicle head units to send and receive UWB messages to each other. The smartphone or the vehicle head unit of the caravan vehicle may then locate the host vehicle and adjust the control of the caravan vehicle accordingly. In another implementation, multiple vehicle head units may pair with each other to establish a communication session and send and receive UWB messages to each other. In yet another implementation, multiple smartphones may pair with each other and send and receive UWB messages to each other. The smartphone of the caravan vehicle may then locate the host vehicle and communicate with the vehicle head unit in the caravan vehicle to adjust the control of the caravan vehicle. More generally, the smartphones and / or the vehicle head units may communicate with each other in any suitable manner to send and receive UWB messages to each other and adjust the control of the caravan vehicle.

[0017] The disclosed techniques also enable the network server to communicate with the client devices. The network server can train and generate machine learning models to determine how to adjust the control of the caravan vehicles to track the host vehicle. The network server can also obtain location data, such as GPS data and / or destination data, from the vehicles so that vehicles with a common destination can meet at a particular location even if they are out of range of UWB (or other short-range communications) for each other. The GPS data can be used to bring the vehicles within range so that UWB communications can be used as disclosed herein. In this manner, the disclosed system and method allows for accurate tracking of the host vehicle to its destination by leveraging the wide range of GPS to bring the vehicles into UWB range and further utilizing the superior accuracy of UWB to provide precise information.

[0018] For example, a mapping application in each client device may receive a request for navigation directions to a particular destination. If multiple client devices request navigation directions to the same destination, the network server may provide a recommendation to the client devices to pair with each other so that one vehicle can autonomously follow the other to the destination. The network server may provide the recommendation when the client devices are within a threshold distance of each other (e.g., one mile). However, the client devices may be too far away from each other to communicate via UWB. The network server may provide the other vehicle with an approximate location that is less accurate than a location determined using UWB, such as the GPS location of one vehicle, so that the driver of the other vehicle can manually navigate to the GPS location of the one vehicle and pair the client devices to establish a communication session. The network server may also provide navigation directions to the GPS location of the vehicle, which may be presented via the driver's client device. As described above, the wide range of GPS is leveraged to bring the vehicle into range of UWB communication, and then the superior accuracy of UWB communication is utilized to navigate to the destination.

[0019] In another example, a caravan vehicle following a host vehicle may stop at a traffic light, causing the caravan vehicle to move out of UWB communication range of the host vehicle. The client device of the caravan vehicle may indicate to the user that the caravan vehicle is out of UWB communication range of the host vehicle and cannot autonomously track the host vehicle. The driver of the caravan vehicle may then resume manual operation of the caravan vehicle and periodically or continuously receive GPS position data of the host vehicle from the network server until the caravan vehicle is back within UWB communication range of the host vehicle. The client device of the caravan vehicle may then indicate to the user that the caravan vehicle is within UWB communication range of the host vehicle and provide a user control for the user to select to resume autonomous caravanning. In this way, a dynamic system is provided that leverages the advantages of both GPS and UWB to provide efficient and accurate vehicle tracking depending on the distance between the vehicles.

[0020] With reference to FIG. 1, an exemplary environment 1 in which the techniques outlined above can be implemented includes a vehicle 12 equipped with a portable device 10 and a head unit 14. The portable device 10 may be, for example, a smartphone or a tablet computer. The portable device 10 communicates with the head unit 14 of the vehicle 12 via a communication link 16, which may be wired (e.g., Universal Serial Bus (USB)) or wireless (e.g., Bluetooth, Wi-Fi Direct). The portable device 10 may also communicate with various content providers, servers, etc., via wireless communication networks, such as fourth or third generation cellular networks (4G or 3G, respectively). Additionally, the portable device 10 may communicate with other portable devices via short-range and / or high-bandwidth communication, such as UWB.

[0021] The head unit 14 may include a display 18 for presenting navigation information, such as a digital map. In some implementations, the display 18 is a touch screen and includes a software keyboard for entering text input, which may include the name or address of a destination, a starting point, etc. Hardware input controls 20, 22 and a steering wheel on the head unit 14 may each be used to enter alphanumeric characters or perform other functions to request navigation instructions. The head unit 14 may also include audio input and output components, such as a microphone 24 and a speaker 26. The speaker 26 may be used to play voice commands transmitted from the portable device 10.

[0022] The head unit 14 may also control driving components of the vehicle 12, such as the acceleration / deceleration and steering angle of the vehicle 12. For example, the head unit may communicate with a motor or throttling device in the vehicle to control the acceleration of the vehicle, and may communicate with a steering control in the vehicle to control the steering angle. Additionally, the head unit 14 may communicate with other head units via short-range and / or high-bandwidth communications, such as UWB.

[0023] 2 illustrates an exemplary autonomous caravanning system 100 in which the techniques of this disclosure can be implemented. The autonomous caravanning system 100 includes portable devices 10a, 10b in vehicles 12a, 12b each having a respective vehicle head unit 14a, 14b. The portable devices 10a, 10b and / or the vehicle head units 14a, 14b can be communicatively coupled to a server device 105 via a network 120. The network 120 can generally include one or more wired and / or wireless communication links (e.g., communication link 116) and may include, for example, a wide area network (WAN) such as the Internet, a local area network (LAN), a cellular network, or another suitable type of network.

[0024] The portable devices 10a, 10b may pair with each other via a short-range communication link, such as Bluetooth or UWB. The portable devices 10a, 10b may then communicate with each other via a short-range and / or high-bandwidth communication protocol (e.g., UWB) and communicate with the respective vehicle head units 14a, 14b to coordinate control of the vehicles 12a, 12b. In another embodiment, the portable devices 10a, 10b may pair with each other via a short-range communication link, such as Bluetooth, and communicate with the respective vehicle head units 14a, 14b so that the vehicle head units 14a, 14b may communicate with each other using a short-range and / or high-bandwidth communication protocol (e.g., UWB) via, for example, a vehicle-to-vehicle (V2V) communication link. The vehicle head units 14a, 14b may then determine their relative positions or provide UWB communication to the portable devices 10a, 10b to determine their relative positions and coordinate control of the respective vehicles 12a, 12b based on their relative positions. In yet another embodiment, the vehicle head units 14a, 14b may be paired with each other via a short-range communications link, such as UWB, and may communicate with each other via UWB.

[0025] Although the examples disclosed herein refer specifically to a particular wireless technology (UWB), in general the techniques disclosed may be applied to other suitable wireless technologies for short-range and / or high-bandwidth communication over a wide range of the radio spectrum.

[0026] The portable device 10a includes processing hardware 130 and / or special purpose processing units, which may include one or more general purpose processors (e.g., central processing units (CPUs)) and computer readable memory (e.g., random access memory (RAM), flash memory, read only memory (ROM)) that stores machine readable instructions executable by the one or more general purpose processor(s). The processing hardware 130 includes a controller 132 configured to determine a distance between the portable device 10a and another portable device 10b based on measurements of the time of flight of signals exchanged between them. The portable device 10a may include multiple antennas for determining not only the distance between the portable device 10a and another portable device 10b, but also the orientation of the portable device 10b relative to the portable device 10a, such that the controller 132 can determine a relative position of the portable device 10b based on the distance and the orientation.

[0027] The processing hardware 130 may also include a client mapping application 134 , a network interface 135 , a user interface 136 , an input / output (I / O) interface 137 , and an operating system (OS) 138 .

[0028] The client mapping application 134 may be executed by the controller 132 and determine how to adjust the control of the vehicle 12a based on the UWB communication. For example, the client mapping application 134 may determine the steering angle and / or acceleration of the vehicle 12a. The client mapping application 134 may also access machine learning models over the network 120 and apply the machine learning models to the distance data, the direction data, and / or the collision avoidance data to determine how to adjust the control of the vehicle 12a. Additionally, the client mapping application 134 may obtain a request to provide mapping or navigation data for a location of interest. The client mapping application 134 may communicate with the server device 105 to obtain navigation instructions to the location of interest. The client mapping application 134 may also provide position data (e.g., GPS data) to the server device 105, which may identify other vehicles headed for the same destination that are within a threshold distance of the current location of the vehicle 12. The server device 105 may provide recommendations to the client mapping application 134 for the vehicles to merge and follow each other to the destination. The server device 105 may then provide navigation instructions to one of the vehicle's locations or to a predetermined meeting point. Additionally, when the vehicle 12a is autonomously tracking the other vehicle 12b but is outside the UWB communication range (or other short-range communication range) of the other vehicle 12b, the server device 105 provides the other vehicle's location information to the client mapping application 134, thereby enabling the driver of the vehicle 12a to find the other vehicle 12b and resume autonomous caravanning.

[0029] For example, the client mapping application 134 may determine that the host vehicle 12b is out of the short-range communication range of the vehicle 12a. The client mapping application 134 may then obtain a rough location of the host vehicle 12b, such as a GPS location, from the server device 105 that receives location data from the host vehicle 12b. The vehicle 12a may navigate to the approximate location of the host vehicle 12b, and the client mapping application 134 may transmit another short-range communication signal to the host vehicle 12b to determine whether the vehicle 12a has returned within the short-range communication range of the host vehicle 12b. If the vehicle 12a has returned within the short-range communication range of the host vehicle 12b, the vehicle 12a may resume autonomous caravanning.

[0030] 1A depicts the client mapping application 134 as a standalone application, the functionality of the client mapping application 134 may also be provided in the form of an online service accessible via a web browser executing on the portable device 10a, a plug-in or extension to another software application executing on the portable device 10a, etc. The client mapping application 134 may generally be provided in different versions for each different operating system.

[0031] Network interface 135 may include one or more communications interfaces, such as hardware, software, and / or firmware, to enable communication with network server 105 over a cellular network, a Wi-Fi network, or any other suitable network, such as network 120.

[0032] The user interface 136 may include one or more input devices configured to receive user commands, such as a touch screen, keyboard, mouse, microphone, camera, and one or more output devices configured to provide visual, audio, and / or tactile output, such as a touch screen or speaker. The OS 138 may be any suitable mobile or general-purpose OS. Additionally, the processing hardware 130 may store one or more applications that communicate data (e.g., transmit data, receive data, or both) over the network 120, including a client mapping application 134, which is described in more detail below. The OS 138 may include application programming interface (API) functionality that allows applications to access information from components of the portable device 10a. The portable device 10a may also include components not shown in FIG. 2, such as a graphics processing unit (GPU), and sensors, such as a GPS sensor, an accelerometer, and / or a proximity sensor.

[0033] Although not shown, vehicle head unit 14a may include processing hardware similar to processing hardware 130, and a client mapping application similar to client mapping application 134. Vehicle head unit 14a may also include sensors such as a GPS sensor, an inertial measurement unit (IMU), and / or a proximity sensor that obtains collision avoidance data to prevent collisions with objects, vehicles, pedestrians, etc., near vehicle 12a.

[0034] Each vehicle 12a, 12b may include advanced driver assistance systems using sensors and / or cameras, such as adaptive cruise control, collision avoidance systems that use radar detection to determine distance to obstacles around the vehicle, lane centering, etc. However, in some implementations, the vehicles 12a, 12b do not have LiDAR or other expensive depth sensors.

[0035] Portable device 10b also includes processing hardware 150 similar to processing hardware 130, and includes a client mapping application 154, network interface 155, user interface 136, I / O interface 137, and OS 158 similar to mapping application 134, network interface 135, user interface 136, I / O interface 137, and OS 138 in portable device 10a. Vehicle head unit 14b may include processing hardware similar to processing hardware 150, and a client mapping application similar to client mapping application 154. Vehicle head unit 14b may also include sensors such as a GPS sensor, an IMU, and / or proximity sensors to obtain collision avoidance data to prevent collisions with objects, vehicles, pedestrians, etc., near vehicle 12b.

[0036] The server device 105 may be any suitable type of computing device capable of communicating with the portable devices 10a, 10b and / or the vehicle head units 14a, 14b over the network 120. The server device 105 includes processing hardware 140 and / or special purpose processing units that may include one or more general purpose processors (e.g., CPUs) and computer readable memory (e.g., RAM, flash memory, ROM) that stores machine readable instructions executable by the one or more general purpose processor(s). The processing hardware 140 in the exemplary embodiment of FIG. 2 includes a controller 142 configured to train machine learning models to determine how to adjust control of the caravan vehicles and to provide vehicle map data, navigation data, position information, and / or recommendations for caravanning together autonomously to vehicles traveling to the same destination.

[0037] More specifically, the machine learning engine 144 trains the machine learning model using (i) the relative position of the host vehicle to the caravan vehicles, (ii) collision avoidance data from the caravan vehicle's proximity sensors, and (iii) the resulting acceleration and steering angles used to track the host vehicle. The training data may be obtained from caravan vehicles that have autonomously followed the host vehicle successfully and safely to a destination without having to transition to manual operation. In another embodiment, the training data may be obtained from vehicles that have manually followed the host vehicle successfully and safely to a destination. In yet another embodiment, the training data may be obtained from any suitable combination of these.

[0038] In any event, to generate the machine learning model, the machine learning engine 144 may classify the subsets of training data based on the acceleration and / or steering angle used to track the host vehicle. In some implementations, the machine learning engine 144 may classify the subsets of training data into ranges of acceleration and / or steering angle. For example, a first subset of training data may include scenarios where the acceleration used to track the host vehicle was below a first threshold acceleration. A second subset of training data may include scenarios where the acceleration used to track the host vehicle was between the first and second threshold accelerations, and a third subset of training data may include scenarios where the acceleration used to track the host vehicle was above the second threshold acceleration.

[0039] The machine learning engine 144 may then analyze the subset to generate a machine learning model. The machine learning model may be generated using various machine learning techniques such as regression analysis (e.g., logistic regression, linear regression, or polynomial regression), k-nearest neighbors, decision trees, random forests, boosting, neural networks, support vector machines, deep learning, reinforcement learning, Bayesian networks, etc. In some embodiments, the machine learning engine 144 may generate a first machine learning model for determining acceleration and a second machine learning model for determining steering angle.

[0040] The machine learning engine 144 can then provide the trained machine learning model to the client devices 10a / 14a, 10b / 14b to use to determine how to adjust vehicle control to track the host vehicle.

[0041] The map data engine 146 obtains location data from the vehicles and / or destination data for vehicles traveling to a particular destination. Then, when multiple vehicles within a threshold distance (e.g., one mile) of each other are traveling to the same destination, the map data engine 146 may provide mutual pairing recommendations to the vehicles via the client mapping application 134, such that one vehicle autonomously follows the other vehicle to the destination. The map data engine 146 may then provide navigation instructions to one of the vehicle's locations or to a predefined meeting point. Additionally, when the vehicles are autonomously tracking each other but are outside of UWB communication range of each other, the map data engine 146 may provide location information about the caravan vehicles to the client mapping application 134, so that the driver of the caravan vehicle can find the host vehicle and resume autonomous caravanning.

[0042] To determine the relative position of the host vehicle 12a, the caravan vehicle 12b transmits a UWB message to the host vehicle 12a and receives a UWB response message from the host vehicle 12b. FIG. 3A shows an exemplary messaging sequence for measuring the round trip time of messages exchanged between the client devices 10a / 14a and 10b / 14b. The controller 152 in the caravanning client device 10b / 14b transmits a first UWB signal 302 to the host client device 10a / 14a via the UWB link, receives a first UWB response signal 304 back from the host client device 10a / 14a via the UWB link 110, and can calculate the distance (D) between the host client device 10a / 14a and the caravanning client device 10b / 14b based on the measured RTTs of the first UWB signal 302 and the first UWB response signal 304. That is, the controller 152 calculates the RTT as T 1 +T 2 +T 3 can be calculated as, where T 1 is the time it takes for the first UWB signal 302 to be transmitted from the transmitter (e.g., the controller 152) of the caravanning client device 10b / 14b to the receiver of the host client device 10a / 14a, and T 2 is the time it takes the host client device 10a / 14a to generate a response, and T 3 is the time it takes for the transmitter (e.g., controller 132) of the host client device 10a / 14a to send a first UWB response signal 304 (in response) back to the receiver (e.g., controller 152) of the caravanning client device 10b / 14b. The controller 152 then multiplies D by c×(RTT−T 2 ), where c is the speed of light.

[0043] In some implementations, the host client device and the caravanning client device 10a / 14a, 10b / 14b may each comprise multiple antennas for determining the direction of the host client device 10a / 14a as well as the distance D between the client devices 10a / 14a, 10b / 14b, whereby the controller 152 may determine the relative position of the host client device 10a / 14a based on the distance and direction. For example, the caravanning client device 10b / 14b may determine the direction of the host client device 10a / 14a by receiving a first UWB response signal 304 with each of its antennas, the antennas being located at different positions within the caravanning client device 10b / 14b.

[0044] An example of this process is shown in FIG. 3B, which illustrates the phase delay of UWB messages received at multiple antennas. As shown in FIG. 3B, the caravanning client device 10b / 14b includes a first antenna 320a that receives a first instance of the first UWB response signal 304a and a second antenna 320b that receives a second instance of the second UWB response signal 304b. The first antenna 320a and the second antenna 320b receive the first and second instances of the first UWB response signal 304a, 304b at different times, resulting in a phase delay between them. Although FIG. 3B illustrates the caravanning client device 10b / 14b as including two antennas, this is merely an example for ease of explanation. The caravanning client device 10b / 14b and the host client device 10a / 14a may have any suitable number of antennas.

[0045] In any case, the caravanning client device 10b / 14b may use beamforming techniques to determine the direction of arrival of the first UWB response signal 304a, 304b. More specifically, the caravanning client device 10b / 14b may determine the direction of arrival of the first UWB response signal 304a, 304b based on the time difference at which each of the antennas 320a, 320b receives the first UWB response signal 304a, 304b. In some implementations, the caravanning client device 10b / 14b may include a compass, magnetometer, gyroscope, accelerometer, and / or other sensors to determine its orientation. The caravanning client device 10b / 14b can then determine the direction of arrival of the first UWB response signal 304a, 304b based on the time difference between when each of the antennas 320a, 320b receives the first UWB response signal 304a, 304b and based on the orientation of the caravanning client device 10b / 14b.

[0046] In another embodiment, the host client device 10a / 14a uses its antennas to determine the direction of the caravanning client device 10b / 14b relative to the host client device 10a / 14a, so that the controller 152 can determine the relative location of the host client device 10a / 14a based on distance and direction. For example, the caravanning client device 10b / 14b may transmit a first UWB signal 302 that is received by multiple antennas of the host client device 10a / 14a. The host client device 10a / 14a may then transmit multiple UWB response signals 304 to the controller 152 in response to receiving the first UWB signal 302 at each antenna, along with an indication of the antenna location and which antenna received the first UWB signal 302 at which time. In another embodiment, the host client device 10a / 14a may determine the direction of arrival of the UWB signal 302 based on when the UWB signal 302 was received at each antenna and may return a UWB response signal 304 to the controller 152 providing an indication as to the direction of the caravanning client device 10b / 14b.

[0047] In yet another embodiment, the host client device 10a / 14a uses its antenna to determine the direction of arrival of the first UWB signal 302, and the caravanning client device 10b / 14b uses its antenna to determine the direction of arrival of the first UWB response signal 304. Thus, the caravanning client device 10b / 14b obtains the distance between the host client device 10a / 14a and the caravanning client device 10b / 14b, the direction of arrival of the first UWB signal 302, and the direction of arrival of the first UWB response signal 304. The caravanning client device 10b / 14b may then determine the relative position of the host client device 10a / 14a based on the distance between the host client device 10a / 14a and the caravanning client device 10b / 14b, the direction of arrival of the first UWB signal 302, and / or the direction of arrival of the first UWB response signal 304.

[0048] The caravanning client device 10b / 14b may repeatedly or continuously transmit UWB signals to the host client device 10a / 14a periodically (e.g., every millisecond, every second, every 10 seconds, etc.) to continue to determine the relative position of the host vehicle 12a until it reaches the destination.

[0049] Also, in some implementations, the host client device 10a / 14a may analyze the first UWB signal 302 to identify the device that transmitted the first UWB signal 302. For example, the first UWB signal 302 may be a first pulse train encoded to uniquely identify the caravanning client device 10b / 14b. In response to identifying that the first UWB signal 302 is from the caravanning client device 10b / 14b, the host client device 10a / 14a may transmit a first UWB response signal 304. The caravanning client device 10b / 14b may then analyze the first UWB response signal 304 to identify the device that transmitted the first UWB response signal 304. For example, the first UWB response signal 304 may be a second pulse train encoded to uniquely identify the host client device 10a / 14a. In response to identifying the first UWB response signal 304 as being from the host client device 10a / 14a, the caravanning client device 10b / 14b may determine the relative location of the host client device 10a / 14a. The use of unique pulse trains as disclosed above allows multiple separate vehicles to simultaneously track the host vehicle while allowing each vehicle to be uniquely identified.

[0050] FIG. 4 shows two exemplary scenarios 400, 420 in which the caravan vehicle 12b is following the host vehicle 12a. In the first exemplary scenario 400, the caravan vehicle 12b is directly behind the host vehicle 12a. The direction of arrival of the UWB communication between them is 0°. However, the caravan vehicle 12b may adjust its acceleration to maintain an appropriate tracking distance behind the host vehicle 12a without getting too close. In the second exemplary scenario 420, the caravan vehicle 12b is in a different lane than the host vehicle 12a. The direction of arrival of the UWB communication between them is not 0°, and the caravan vehicle 12b needs to adjust its steering angle to move to another lane.

[0051] 5A-C show exemplary range and direction of arrival data acquired by a caravan vehicle 12b based on UWB communication with a host vehicle 12a. In a first exemplary scenario 500, the caravan vehicle 12b is directly behind the host vehicle 12a. The direction of arrival θ of the UWB signal is c is 0°, and the arrival direction of the UWB response signal θ h is 0° and the distance between the signals is 5 m. If 5 m is considered to be an appropriate tracking distance, the caravan vehicle 12b may not adjust its acceleration or steering angle. In a second exemplary scenario 530, the caravan vehicle 12b is directly behind the host vehicle 12a. The direction of arrival of the UWB signal θ c is -30°, and the arrival direction of the UWB response signal θ h is -30° and the distance between the signals is 5 m. If 5 m is deemed to be an appropriate tracking distance, the caravan vehicle 12b may not adjust its acceleration. However, the caravan vehicle 12b may turn left into the same lane as the host vehicle 12a and adjust its steering angle to reduce the direction of arrival of the subsequent UWB signal and the UWB response signal to 0°. In a third exemplary scenario 560, the host vehicle 12a appears to turn right around a curve in the road. The direction of arrival θ of the UWB signal c is 15°, and the arrival direction of the UWB response signal θ his -10° and the distance between the signals is 10 m. The distance of 10 m may be considered too large since another vehicle may move into the space between the host vehicle and the caravan vehicles, so the caravan vehicles may want to reduce this distance to maintain a convoy between the two vehicles and make it easier for the caravan vehicles to follow the host vehicle. To reduce the distance between the vehicles 12a, 12b, the caravan vehicle 12b may increase its acceleration. The caravan vehicle 12b may also adjust its steering angle to turn right around the curve.

[0052] In some implementations, the caravanning client device 10b / 14b converts the distance and direction of arrival data into Cartesian coordinates to determine the relative position of the host client device 10a / 14a. In the Cartesian coordinate system, the caravanning client device 10b / 14b may be centered with coordinates (0,0). The x coordinate of the host client device 10a / 14a may be determined as the product of the distance between the host client device and the caravanning client device, D, and cos(θ), where θ is the direction of arrival of the UWB response signal. The y coordinate of the host client device 10a / 14a may be determined as the product of the distance between the host client device and the caravanning client device, D, and sin(θ), where θ is the direction of arrival of the UWB response signal. Thus, the Cartesian coordinate of the host client device 10a / 14a may be determined as (D·cos(θ),D·sin(θ)).

[0053] The caravanning client device 10b / 14b then determines how to adjust control of the caravan vehicle 12b based on the relative position of the host client device 12a. Figure 6 is a schematic diagram 600 illustrating an example process performed by the caravanning client device 10b / 14b to determine how to adjust control of the caravan vehicle 12b.

[0054] Upon obtaining the range and direction of arrival of the UWB response signal, the caravanning client device 10b / 14b converts the range and direction of arrival data into Cartesian coordinates (610) in the manner described above. The caravanning client device 10b / 14b then applies a trajectory filter 620 to smooth the noisy raw coordinate data. For example, the caravanning client device 10b / 14b may use a Kalman filter or an RSSI-aware Kalman filter.

[0055] The caravanning client device 10b / 14b also obtains collision avoidance data 640 from a proximity sensor in the caravan vehicle 12b. For example, the collision avoidance data may include radar data to determine distance to obstacles around the vehicle, lane centering, etc. The caravanning client device 10b / 14b then applies the filtered coordinate data and the collision avoidance data 640 to a neural inference engine 630 to determine how to adjust the vehicle control 650 (e.g. steering angle and / or acceleration) to track the host vehicle 12a. The caravanning client device 10b / 14b adjusts the control of the vehicle 12b based on the output(s) from the neural inference engine 630.

[0056] The caravanning client device 10b / 14b repeats this process periodically (e.g., every millisecond, every second, every 10 seconds, etc.) or continuously to continue autonomously tracking the host vehicle 12a until it reaches the destination.

[0057] In some implementations, the neural inference engine 630 may include a set of rules for adjusting the vehicle control 650 based on the particular relative position data and / or collision avoidance data 640. For example, when the caravan vehicle 12b is more than a threshold distance away from the host vehicle 12a and the collision avoidance data 640 does not indicate any objects directly in front of the caravan vehicle 12b, the neural inference engine may determine that acceleration should be increased.

[0058] In another embodiment, the neural inference engine 630 can use a machine learning model to determine how to adjust the vehicle control 650. For example, the neural inference engine 630 can include the machine learning engine 144 of FIG. 2. In another example, the neural inference engine can obtain a machine learning model from the machine learning engine 144 and apply the relative position data of the host vehicle 12a and the collision avoidance data of the caravan vehicle 12b to the machine learning model. FIG. 7 illustrates generally how the machine learning engine 144 of FIG. 2 determines how to adjust the vehicle control in an example scenario. Some of the blocks in FIG. 7 represent hardware and / or software components (e.g., block 702), other blocks represent data structures or memories that store these data structures, registers, or state variables (e.g., blocks 704, 712, 720), and other blocks represent output data (e.g., block 706). Input signals are represented by arrows labeled with the corresponding signal names.

[0059] To generate the machine learning model 720, the machine learning engine 144 receives training data including a first set of host vehicle relative position data, a first set of caravan vehicle collision avoidance data, and a first vehicle control used to track the host vehicle in a first instance 722. The training data also includes a second set of host vehicle relative position data, a second set of caravan vehicle collision avoidance data, and a second vehicle control used to track the host vehicle in a second instance 724. Further, the training data includes a third set of host vehicle relative position data, a third set of caravan vehicle collision avoidance data, and a third vehicle control used to track the host vehicle in a third instance 726. Still further, the training data includes an nth set of host vehicle relative position data, an nth set of caravan vehicle collision avoidance data, and an nth vehicle control used to track the host vehicle in an nth instance 728.

[0060] The exemplary training data includes four instances 722-728 of the same or different caravan vehicles following the same or different host vehicles, but this is merely an example for ease of explanation. The training data may include any number of instances of any number of caravan vehicles following any number of host vehicles.

[0061] The machine learning engine 144 then analyzes the training data to generate machine learning models 720 to determine how to adjust the vehicle controls to track the host vehicle. In some implementations, the machine learning engine 144 generates a separate machine learning model for each vehicle control. For example, the machine learning engine 144 generates a first machine learning model to adjust the acceleration and a second machine learning model to adjust the steering angle.

[0062] In any event, the machine learning model 720 may be a neural network (e.g., a convolutional neural network). Although the machine learning model 720 is illustrated as a neural network, the machine learning model may be another type of machine learning model, such as a linear regression model, a logistic regression model, a decision tree, a hyperplane, or any other suitable machine learning model.

[0063] In any case, the machine learning engine 144 may provide the trained machine learning model 720 to the caravanning client device 10b / 14b to determine how to adjust the vehicle control to autonomously follow the host vehicle 12a. The caravanning client device 10b / 14b may then provide the machine learning model 720 with the relative position 704 of the host vehicle 12a and collision avoidance data obtained from the proximity sensor of the caravan vehicle 12b. For example, the caravanning client device 10b / 14b may provide distance and direction data to the machine learning model 720. In another embodiment, the caravanning client device 10b / 14b provides the Cartesian or filtered coordinates of the host vehicle 12a to the machine learning model 720. The machine learning model 720 then generates vehicle control 706 for the caravan vehicle 12b to follow the host vehicle 12a, such as steering angle and acceleration.

[0064] 8 illustrates a flow diagram of an example method 800 for automatically tracking a host vehicle to a destination location. The method 800 may be implemented as a set of instructions stored in a computer-readable memory and executable by one or more processors of the client device 10b / 14b.

[0065] At block 802, a host vehicle 12a is identified to follow to a destination. For example, the client device 10b / 14b may request navigation directions or other map data to the destination via the client mapping application 134. The client mapping application 134 may communicate with the server device 105 to obtain navigation directions or other map data to the destination. The client mapping application 134 may also provide location data (e.g., GPS data) to the server device 105, which may identify other vehicles traveling toward the same destination that are within a threshold distance of the current location of the vehicle 12. The server device 105 may provide recommendations to the client mapping application 134 for the vehicles to merge and follow each other to the destination.

[0066] In another example, two users may pair their client devices 10a / 14a, 10b / 14b with each other and identify one of the client devices 10a / 14a as, for example, the host client device 10a / 14a via user control within the client mapping application 134. The caravanning client device 10b / 14b may then identify the host vehicle 12a as the vehicle corresponding to the host client device 10a / 14a (e.g. the vehicle communicatively coupled to the host client device 10a / 14a).

[0067] To autonomously track the host vehicle 12a to the destination, the caravanning client device 10b / 14b continuously or periodically (e.g. every millisecond, every second, every 10 seconds, etc.) determines the position of the host vehicle 12a relative to the caravan vehicle 12b carrying the caravanning client device 10b / 14b. More specifically, to determine the relative position of the host vehicle 12, the caravanning client device 10b / 14b transmits a short-range communication signal (e.g. UWB signal) to the host client device 10a / 14a (block 804) and receives a short-range response signal (e.g. UWB response signal) from the host client device 10a / 14a (block 806).

[0068] The caravanning client device 10b / 14b determines the distance D between the host vehicle 12a and the caravan vehicle 12 based on the measurements of the RTT of the UWB signal and the UWB response signal. The caravanning client device 10b / 14b calculates the RTT as T 1 +T 2 +T 3 can be calculated as, where T 1 is the time it takes for a UWB signal to be transmitted from a transmitter (e.g., controller 152) of the caravanning client device 10b / 14b to a receiver of the host client device 10a / 14a, and T 2 is the time it takes the host client device 10a / 14a to generate a response, and T 3 is the time it takes for the transmitter (e.g., controller 132) of the host client device 10a / 14a to send a UWB response signal (in response) back to the receiver (e.g., controller 152) of the caravanning client device 10b / 14b. The controller 152 then multiplies D by c×(RTT−T 2 ), where c is the speed of light.

[0069] The host client device and the caravanning client device 10a / 14a, 10b / 14b may each include multiple antennas for determining the direction of the UWB signal and the UWB response signal. For example, the caravanning client device 10b / 14b may determine the direction of the host client device 10a / 14a by receiving the UWB response signal on each of its antennas, the antennas being located at different positions within the caravanning client device 10b / 14b. More specifically, the caravanning client device 10b / 14b may determine the direction of arrival of the UWB response signal based on the time difference at which each antenna receives the UWB response signal. In some implementations, the caravanning client device 10b / 14b may include a compass, magnetometer, gyroscope, accelerometer, and / or other sensors to determine its orientation. The caravanning client device 10b / 14b may then determine the direction of arrival of the UWB response signal based on the time difference when each of the antennas received the first UWB response signal and based on the orientation of the caravanning client device 10b / 14b.

[0070] In any case, the caravanning client device 10b / 14b determines the relative position of the host vehicle 12a based on the distance D and the direction of arrival θ of the UWB response signal (block 808). In another embodiment, the caravanning client device 10b / 14b may also use the direction of arrival of the UWB signal to determine the relative position of the host vehicle 12a. In some embodiments, the caravanning client device 10b / 14b converts the distance and direction of arrival data into Cartesian coordinates to determine the relative position of the host vehicle 12a. In the Cartesian coordinate system, the caravanning client device 10b / 14b may be centered with coordinates (0,0). The x-coordinate of the host vehicle 12a may be determined as the product of the distance between the host client device and the caravanning client device, D, and cos(θ), where θ is the direction of arrival of the UWB response signal. The y coordinate of the host vehicle 12a may be determined as the product of the distance between the host client device and the caravanning client device, D, and sin(θ), where θ is the direction of arrival of the UWB response signal. Thus, the Cartesian coordinate of the host vehicle 12a can be determined as (D·cos(θ),D·sin(θ)).

[0071] The caravanning client device 10b / 14b then determines how to adjust the control of the caravan vehicle 12b based on the relative position of the host vehicle 12a and adjusts the control of the caravan vehicle 12b accordingly (block 810). For example, the caravanning client device 10b / 14b may adjust the steering angle and / or acceleration of the caravan vehicle 12b based on the relative position of the host vehicle 12a to autonomously follow the host vehicle 12a.

[0072] In some implementations, the caravanning client device 10b / 14b also obtains collision avoidance data from a proximity sensor in the caravan vehicle 12b and determines how to adjust the control of the caravan vehicle 12b based on the relative position of the host vehicle 12a and the collision avoidance data. For example, the caravanning client device 10b / 14b may apply a predetermined rule set to the relative position and / or collision avoidance data of the host vehicle 12a to determine how to adjust the acceleration and / or steering angle of the caravan vehicle 12b.

[0073] In another embodiment, the caravanning client device 10b / 14b may use a machine learning model to determine how to adjust vehicle control. For example, the caravanning client device 10b / 14b may obtain a trained machine learning model from the server device 105 and apply the host vehicle 12a's relative position and collision avoidance data to the machine learning model. In yet another embodiment, the caravanning client device 10b / 14b uses training data from past caravanning experiences to train the machine learning model.

[0074] In any event, having determined an adjusted set of controls for the caravan vehicle 12b (e.g. an adjusted acceleration and / or steering angle), the caravanning client device 10b / 14b communicates with driving components of the caravan vehicle 12b to control the caravan vehicle 12b. For example, the caravanning client device 10b / 14 may communicate with a motor or throttling device within the caravan vehicle 12b to control the acceleration of the caravan vehicle 12b, and may communicate with a steering control within the caravan vehicle 12b to control the steering angle.

[0075] The caravanning client device 10b / 14b repeats this process periodically (e.g., every millisecond, every second, every 10 seconds, etc.) or continuously to continue autonomously tracking the host vehicle 12a until it reaches the destination.

[0076] Other considerations The following additional considerations apply to the foregoing discussion: Throughout this specification, multiple examples may implement a component, operation, or structure that is described as a single example. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed together, and nothing requires that the operations be performed in the order illustrated. Structures and functionality depicted as separate components in the configuration examples may be implemented as combined structures or components. Similarly, structures and functionality depicted as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements are within the scope of the subject matter of this disclosure.

[0077] Additionally, certain embodiments are described herein as including logic or a number of components, modules, or mechanisms (e.g., controllers 132, 142, 152). A module may constitute either a software module (e.g., code stored on a machine-readable medium) or a hardware module. A hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In an example embodiment, one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.

[0078] In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as an application specific processor, as a field programmable gate array (FPGA) or as an application specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also include programmable logic or circuitry (e.g., contained within a general purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It should be recognized that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) is subject to cost and time considerations.

[0079] Thus, the term hardware should be understood to encompass tangible components, components that are physically configured, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering embodiments in which the hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, if the hardware modules include a general-purpose processor configured using software, the general-purpose processor may be configured as each of the different hardware modules at different times. The software may thus configure the processor, for example, to be a particular hardware module at one instance of time and a different hardware module at a different instance of time.

[0080] Hardware modules can provide information to and receive information from other hardware modules. Thus, the described hardware modules can be treated as communicatively coupled. When multiple such hardware modules are present simultaneously, communication can be achieved through signal transmission (e.g., over appropriate circuits and buses) connecting the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform a particular operation and store the output of that operation in a communicatively coupled memory device. Another hardware module may then at a later time access this memory device to retrieve and process the stored output. Hardware modules can also initiate communication with input or output devices and operate on a particular resource (e.g., a chunk of information).

[0081] The method 800 may include one or more functional blocks, modules, individual functions or routines in the form of tangible computer-executable instructions stored on a computer-readable storage medium, which may be non-transitory, and executed with a processor of a computing device (e.g., a network server, a personal computer, a smartphone, a tablet computer, a smartwatch, a mobile computing device, a vehicle head unit, or other client computing device, as described herein). The method 800 may be included, for example, as part of any back-end server (e.g., a network server or any other type of server computing device, as described herein), a client computing device module of the exemplary environment, or as part of a module external to such an environment. The figure may be described with reference to other figures for ease of explanation, but the method 800 may be utilized with other objects and user interfaces. Furthermore, while the above description describes steps of the method 800 as being performed by certain devices (e.g., the host client device 10a / 14a, the caravanning client device 10b / 14b, the server device 105, etc.), this is done for illustrative purposes only. The blocks of the method 800 may be performed by one or more devices, or other parts of the environment.

[0082] Various operations of example methods described herein may be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the associated operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. Modules referred to herein may, in some example embodiments, include processor-implemented modules.

[0083] Similarly, the methods or routines described herein may be implemented at least in part by a processor. For example, at least some of the operations of the method may be performed by one or more processors or processor-implemented hardware modules. The implementation of certain of the operations may not only reside in a single machine, but may also be distributed among one or more processors deployed across several machines. In some example embodiments, a processor or processors may be located in a single location (e.g., in a home environment, in a work environment, or as a server farm), while in other embodiments, the processors may be distributed across several locations.

[0084] The one or more processors may also operate to support associated operations as a "cloud computing" environment or SaaS. For example, as indicated above, at least some of the operations may be performed by a collection of computers (examples of machines include processors) and these operations may be accessible over a network (e.g., the Internet) and via one or more suitable interfaces (e.g., APIs).

[0085] Furthermore, the figures depict several embodiments of example environments for purposes of illustration only. Those skilled in the art will readily recognize from discussion below that alternative embodiments of the structures and methods described herein may be employed without departing from the principles set forth herein.

[0086] After reading this disclosure, those skilled in the art will appreciate further alternative structural and functional designs of the indoor positioning system through the principles disclosed herein. Thus, while specific embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the precise configuration and components disclosed herein. Various modifications, changes and variations apparent to those skilled in the art may be made in the arrangement, operation and details of the methods and apparatus disclosed herein without departing from the spirit and scope of the appended claims.

Claims

1. 1. A method for automatically tracking a host vehicle to a destination, comprising: Identifying, by one or more processors within the vehicle, a host vehicle to track to a location of interest; transmitting, by the one or more processors, a communication signal to the identified host vehicle; receiving, by the one or more processors, a response signal from the identified host vehicle; determining, by the one or more processors, a location of the host vehicle relative to the vehicle based on round trip times of the communication signal and the response signal; adjusting, by the one or more processors, control of the vehicle according to the position of the host vehicle relative to the vehicle; The method comprising:

2. The method of claim 1 , wherein the communication signal is transmitted by a client device in the vehicle.

3. the client device includes a plurality of antennas for communicating the communication signals with the host vehicle; Determining the location of the host vehicle includes: receiving the response signals with the plurality of antennas; determining a direction of arrival of the response signal based on a time difference between when each of the plurality of antennas receives the response signal; determining a distance between the vehicle and the host vehicle based on the round trip time of the communication signal and the response signal; (i) determining a location of the host vehicle based on the distance between the vehicle and the host vehicle, and (ii) the direction of arrival of the response signal; The method of claim 2 , comprising:

4. Adjusting control of the vehicle includes: The method of claim 3 , comprising adjusting, by the one or more processors, an acceleration of the vehicle based on the distance between the vehicle and the host vehicle.

5. Adjusting control of the vehicle includes: The method of claim 3 or claim 4, comprising adjusting, by the one or more processors, a steering angle of the vehicle based on the direction of arrival of the response signal.

6. obtaining, by the one or more processors, collision avoidance data from one or more proximity sensors in the vehicle; The method of claim 1 , wherein control of the vehicle is further adjusted based on the collision avoidance data.

7. training, by the one or more processors, a machine learning model using (i) the distance and direction between a host vehicle and a tracked vehicle, (ii) collision avoidance data acquired by the tracked vehicle, and (iii) acceleration and steering angle adjustments provided by the tracked vehicle to safely track the driving path of the host vehicle; applying, by the one or more processors, the distance between the vehicle and the host vehicle, the direction of arrival of the response signal, and the collision avoidance data from the one or more proximity sensors in the vehicle to a machine learning model to determine an acceleration and steering angle of the vehicle to track the travel path of the host vehicle; adjusting, by the one or more processors, control of the vehicle to the determined acceleration and steering angle; The method of claim 6 when dependent on claim 3, further comprising:

8. The method of claim 1 , further comprising: analyzing, by the one or more processors, the response signal to determine that the response signal is from the host vehicle.

9. The method of claim 1 , wherein the vehicle is not an autonomous vehicle and does not include a Light Detection and Ranging (LiDAR) sensor.

10. the communication signal is a short-range communication signal, the response signal is a short-range response signal, and the method comprises: determining, by the one or more processors, that the host vehicle is outside a short-range communication range of the vehicle; obtaining, by the one or more processors, an approximate location of the host vehicle based on location data provided by the host vehicle; traveling to the approximate location of the host vehicle; transmitting, by the one or more processors, another short-range communications signal to the host vehicle in response to reaching the approximate location of the host vehicle; 10. The method of claim 1, further comprising:

11. Identifying the host vehicle includes: The method of claim 1 , comprising pairing a head unit or client device in the vehicle with a head unit or client device in the host vehicle.

12. A client device in a vehicle for automatically tracking a host vehicle to a destination, comprising: one or more processors; a non-transitory computer-readable memory containing computer-executable instructions that, when executed by the one or more processors, cause the client device to: identifying a host vehicle for the client device to follow to a location of interest; transmitting a communication signal to the identified host vehicle; receiving a response signal from the identified host vehicle; determining a location of the host vehicle relative to the vehicle based on a round trip time of the communication signal and the response signal; adjusting control of the host vehicle according to the position of the host vehicle relative to the vehicle; the non-transitory computer readable memory executing The client device.

13. further comprising a plurality of antennas for communicating said communication signals with said host vehicle; To determine the location of the host vehicle, the instructions may include, on the client device: receiving the response signals with the plurality of antennas; determining a direction of arrival of the response signal based on a time difference between when each of the plurality of antennas receives the response signal; determining a distance between the vehicle and the host vehicle based on the round trip time of the communication signal and the response signal; determining the location of the host vehicle based on (i) the distance between the vehicle and the host vehicle, and (ii) the direction of arrival of the response signal; The client device of claim 12 , further comprising:

14. To coordinate control of the vehicle, the instructions may include, on the client device: The client device of claim 13 , further configured to adjust the acceleration of the vehicle based on the distance between the vehicle and the host vehicle.

15. To coordinate control of the vehicle, the instructions may include, on the client device:

15. A client device according to claim 13 or claim 14, configured to adjust a steering angle of the vehicle based on the direction of arrival of the response signal.

16. A non-transitory computer-readable memory containing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to: identifying a host vehicle that a client device in the vehicle will follow to a destination location; transmitting a communication signal to the identified host vehicle; receiving a response signal from the identified host vehicle; determining a location of the host vehicle relative to the vehicle based on a round trip time of the communication signal and the response signal; adjusting control of the host vehicle according to the position of the host vehicle relative to the vehicle; The non-transitory computer-readable memory.

17. The client device includes a plurality of antennas for communicating the communication signals with the host vehicle, and to determine a location of the host vehicle, the instructions direct the one or more processors to: receiving the response signals with the plurality of antennas; determining a direction of arrival of the response signal based on a time difference between when each of the plurality of antennas receives the response signal; determining a distance between the vehicle and the host vehicle based on the round trip time of the communication signal and the response signal; determining the location of the host vehicle based on (i) the distance between the vehicle and the host vehicle, and (ii) the direction of arrival of the response signal; 20. The non-transitory computer readable memory of claim 16,

18. To coordinate control of the vehicle, the instructions may direct the one or more processors to:

20. The non-transitory computer readable memory of claim 17, further comprising: adjusting an acceleration of the vehicle based on the distance between the vehicle and the host vehicle.

19. To coordinate control of the vehicle, the instructions may direct the one or more processors to:

19. The non-transitory computer readable memory of claim 17 or claim 18, configured to adjust a steering angle of the vehicle based on the direction of arrival of the response signal.

20. The instructions further cause the one or more processors to:

20. The non-transitory computer readable memory of claim 17, further configured to analyze the response signal to determine that the response signal is from the host vehicle.

Citation Information

Patent Citations

  • System and method for sharing and autonomy by cooperative sensing

    JP2020021478A

  • Position estimation system for vehicle

    JP2020122727A

  • Techniques for utilizing a mobile device as a proxy for a vehicle

    US20220028264A1