Grouping for efficient cooperative positioning computation

文档序号:1661575 发布日期:2019-12-27 浏览:9次 中文

阅读说明:本技术 用于有效协作定位计算的分组 (Grouping for efficient cooperative positioning computation ) 是由 奥诺夫·埃里克森 克里斯汀·斯文森 托拜厄斯·阿德鲁姆 朱美芳 于 2017-12-18 设计创作,主要内容包括:本发明提供了一种装置,该装置包括收发器模块和处理器。收发器可以被配置成向/从多个车辆发送/接收数据消息。处理器可以被配置成(i)基于选择标准从多个车辆中确定多个选定车辆以及(ii)基于来自选定车辆的数据消息计算多个车辆的相对坐标。选择标准可以包括确定(i)目标车辆和(ii)至少两个补充车辆。目标车辆的预测轨迹可以与装置的预测轨迹路径相交。可以基于(i)多个车辆的布置和(ii)多个车辆的速度来选择补充车辆。(The invention provides an apparatus comprising a transceiver module and a processor. The transceiver may be configured to transmit/receive data messages to/from a plurality of vehicles. The processor may be configured to (i) determine a plurality of selected vehicles from the plurality of vehicles based on the selection criteria and (ii) calculate relative coordinates of the plurality of vehicles based on the data messages from the selected vehicles. The selection criteria may include determining (i) a target vehicle and (ii) at least two supplementary vehicles. The predicted trajectory of the target vehicle may intersect the predicted trajectory path of the device. The supplemental vehicle may be selected based on (i) an arrangement of the plurality of vehicles and (ii) a speed of the plurality of vehicles.)

1. An apparatus, comprising:

a transceiver module configured to transmit/receive data messages to/from a plurality of vehicles; and

a processor configured to (i) determine a plurality of selected vehicles from the plurality of vehicles based on selection criteria and (ii) calculate relative coordinates of the plurality of vehicles based on the data messages from the selected vehicles, wherein (a) the selection criteria comprises determining (i) a target vehicle and (ii) at least two supplementary vehicles, (b) a predicted trajectory of the target vehicle intersects a predicted trajectory path of the apparatus and (c) select the supplementary vehicle based on (i) an arrangement of the plurality of vehicles and (ii) speeds of the plurality of vehicles.

2. The apparatus of claim 1, wherein (i) the processor comprises a relative positioning module and (ii) the relative positioning module is configured to perform the selection criteria.

3. The apparatus of claim 1 or 2, wherein (i) the selection criteria is implemented to select four of the plurality of vehicles as the selected vehicle, (ii) the selected vehicle comprises two of a host vehicle, the target vehicle, and the supplemental vehicle and (iii) the apparatus is implemented by the host vehicle.

4. The apparatus of any of claims 1-3, wherein the selection criteria enables selection of the plurality of selected vehicles to determine a cooperative positioning solution for calculating the relative coordinates.

5. The apparatus of claim 4, wherein the selection criteria is configured to select the plurality of selected vehicles based on a balance between the accuracy of the calculated relative coordinates and the efficiency of determining the relative coordinates.

6. The apparatus of claim 5, wherein the efficiency of determining the relative coordinates (i) comprises an amount of computing time and computing energy to determine the relative coordinates and (ii) the efficiency of determining the relative coordinates decreases as the number of selected vehicles increases.

7. The apparatus of any of claims 1-6, wherein (i) one of the supplementary vehicles comprises a second target vehicle and (ii) a predicted trajectory of the second target vehicle intersects the predicted trajectory path of the apparatus.

8. The apparatus of any of claims 1-7, wherein a speed of the replenishment vehicle is higher than a speed of unselected vehicles of the plurality of vehicles.

9. The apparatus of any of claims 1-8, wherein the speed of the selected vehicle is about 3 meters per second above a predetermined threshold speed.

10. The apparatus of any of claims 1-9, wherein the distance of the replenishment vehicle from the apparatus is greater than the distance of the non-selected vehicles of the plurality of vehicles from the apparatus.

11. The device of any one of claims 1 to 10, wherein the arrangement of at least one of the device, the target vehicle and the supplementary vehicle forms an angle of about 90 degrees.

12. The apparatus of any of claims 1-11, wherein the speeds of the plurality of vehicles, the arrangement of the plurality of vehicles, and the trajectory of the target vehicle are determined based on a GPS heading, a GPS speed, and a GPS location.

13. The apparatus of any of claims 1-12, wherein the predicted trajectory of the target vehicle is likely to intersect the apparatus path within 10 seconds.

14. The apparatus of any one of claims 1-13, wherein the apparatus is further configured to transmit the relative coordinates determined by the processor to the plurality of the vehicles.

15. The apparatus of any one of claims 1 to 14, wherein the arrangement of two of (i) the apparatus, the target vehicle, and the supplementary vehicle approximates four corners of a rectangle and (ii) the four corners of the rectangle are a sufficient distance from each other.

Technical Field

The present invention relates generally to object positioning and, more particularly, to grouping for efficient cooperative positioning computations.

Background

The location of an object (i.e., a vehicle, a building, a pedestrian, etc.) may be determined using GPS (global positioning system) or GNSS (global navigation satellite system). Some applications that use positioning (such as assisted driving) require high precision data to be safely implemented. To calculate high precision data by GPS/GNSS, Real Time Kinematics (RTK) using base stations is used, which is currently not suitable for commercial use. The host vehicle gyroscope may also be used to estimate the future expected trajectory of the object, but if the initial GPS/GNSS location is incorrect, the problem cannot be solved correctly.

In driving assistance applications (such as active intervention), knowledge of the surrounding vehicle position with high accuracy is exploited, which is currently achieved using many different sensors covering 360 degrees around the vehicle. There are many vehicle environment detection systems, such as camera systems, doppler radar systems, and LIDAR systems. Inaccuracies can lead to false positives and false negatives. GPS/GNSS does not provide sufficient accuracy, especially in urban conditions.

Performing inter-vehicle range estimation using periodic broadcasting may be used to obtain a high degree of accuracy with respect to relative positioning between objects. Determining a highly accurate relative positioning between objects introduces additional problems. Such problems include high computational costs for determining position accuracy that is accurate enough to perform active intervention and excessive communication between all vehicles. In traffic scenarios, where many vehicles are located in an area close to the host (or own) vehicle, high accuracy calculations based on cooperative positioning will use a very large amount of signal processing and radio data transmission to determine the solution.

It is desirable to implement grouping for efficient cooperative positioning computations.

Disclosure of Invention

The invention encompasses aspects relating to an apparatus comprising a transceiver module and a processor. The transceiver may be configured to transmit/receive data messages to/from a plurality of vehicles. The processor may be configured to (i) determine a plurality of selected vehicles from the plurality of vehicles based on the selection criteria and (ii) calculate relative coordinates of the plurality of vehicles based on the data messages from the selected vehicles. The selection criteria may include determining (i) a target vehicle and (ii) at least two supplementary vehicles. The predicted trajectory of the target vehicle may intersect the predicted trajectory path of the device. The supplemental vehicle may be selected based on (i) an arrangement of the plurality of vehicles and (ii) a speed of the plurality of vehicles.

In some embodiments of the apparatus aspect described above, (i) the processor comprises a relative positioning module, and (ii) the relative positioning module is configured to perform the selection criterion.

In some embodiments of the apparatus aspect described above, the selection criteria is implemented to select four of the plurality of vehicles as the selected vehicle, (ii) the selected vehicle includes two of the host vehicle, the target vehicle, and the supplemental vehicle and (iii) the apparatus is implemented by the host vehicle.

In some embodiments of the apparatus aspect described above, the selection criteria enables selection of a plurality of selected vehicles to determine a cooperative positioning solution for calculating the relative coordinates. In some embodiments, the selection criteria is configured to select a plurality of selected vehicles based on a balance between accuracy of the calculated relative coordinates and efficiency of determining the relative coordinates. In some embodiments that enable efficiency of determining relative coordinates, the efficiency of determining relative coordinates (i) includes an amount of computation time and computation power to determine relative coordinates, and (ii) decreases as the number of selected vehicles increases.

In some embodiments of the apparatus aspect described above, (i) one of the supplementary vehicles comprises a second target vehicle and (ii) the predicted trajectory of the second target vehicle intersects the predicted trajectory path of the apparatus.

In some embodiments of the apparatus aspect described above, the speed of the supplementary vehicle is higher than the speed of the unselected vehicle of the plurality of vehicles.

In some embodiments of the apparatus aspect described above, the speed of the selected vehicle is about 3 meters per second above the predetermined threshold speed.

In some embodiments of the apparatus aspect described above, the distance of the supplementary vehicle from the apparatus is greater than the distance of the non-selected vehicle of the plurality of vehicles from the apparatus.

In some embodiments of the apparatus aspect described above, the arrangement of at least one of the apparatus, the target vehicle, and the supplementary vehicle forms an angle of about 90 degrees.

In some embodiments of the apparatus aspect described above, the speed of the plurality of vehicles, the arrangement of the plurality of vehicles, and the trajectory of the target vehicle are determined based on a GPS heading, a GPS speed, and a GPS location.

In some embodiments of the apparatus aspect described above, the predicted trajectory of the target vehicle may intersect the apparatus path within 10 seconds.

In some embodiments of the apparatus aspect described above, the apparatus is further configured to transmit the relative coordinates determined by the processor to a plurality of vehicles.

In some embodiments of the apparatus aspect described above, (i) the arrangement of two of the apparatus, the target vehicle, and the supplementary vehicle approximates four corners of a rectangle, and (ii) the four corners of the rectangle are a sufficient distance from each other.

Drawings

Embodiments of the invention will become apparent from the following detailed description and appended claims, and the accompanying drawings in which:

FIG. 1 is a diagram showing an embodiment of the present invention;

FIG. 2 is a diagram showing a module configured to determine a high accuracy range estimate;

FIG. 3 is a diagram illustrating inter-vehicle range estimation;

FIG. 4 is a diagram illustrating selection criteria for an exemplary traffic scenario;

FIG. 5 is a diagram illustrating selection criteria for an exemplary traffic scenario;

FIG. 6 is a diagram illustrating selection criteria for an exemplary traffic scenario;

FIG. 7 is a flow chart illustrating a method for determining an effective cooperative positioning solution;

FIG. 8 is a flow chart illustrating a method for selecting a target vehicle; and is

FIG. 9 is a flow chart illustrating a method for selecting a replenishment vehicle based on selection criteria.

Detailed Description

Embodiments of the present invention include providing groupings for efficient cooperative positioning computations that can (i) compute the relative position of the vehicle, (ii) improve the accuracy of the vehicle position through GPS/GNSS solutions, (iii) implement selection criteria for the computations, (iv) balance the accuracy of the output computations with the amount of processing used to generate the computations, (v) provide solutions that reduce overhead, and/or (vi) are easy to implement.

The grouping and/or aggregation may be for telecommunications. Additionally, grouping and/or aggregation may be implemented in areas of Cooperative Positioning described in IEEE Transactions of Vehicular Technology, volume 60, 7/2011, "Improving Cooperative Positioning for Vehicular Networks," advanced 6, the appropriate portions of which are incorporated by reference. In one example, the grouping may be performed by approximate location and/or vehicle dynamics. The propagation delay of the wireless signal from the transmitter to the receiver can be used to estimate the range. In one example, Round Trip Time (RTT) (e.g., round trip delay time) may be used to accurately estimate distance by sending wireless signals between vehicles and/or objects (e.g., one at a time). The use of periodic broadcasts is described in the paper "Inter-vehicle range estimation from periodic broadcasts" written by Urs Niesen, Venkatesan. Ekambaram, Jubin Jose, and Xinzhou Wu, the appropriate portions of which are incorporated by reference. To establish an initial position from the measurement range, multidimensional scaling (MDS) may be used. MDS is described in "Joint relative position and velocity estimation for an anchor network of mobile nodes" written by RajThilak Rajan, gerert Leus and all-Jan van der Veen, appropriate portions of which are incorporated by reference.

Referring to fig. 1, a diagram illustrating an embodiment of the present invention is shown. An exemplary system 20 is shown. The system 20 may include a plurality of objects 30a-30n and/or a plurality of communication satellites 40a-40 n. In the example shown, the object may include a combination of a vehicle and/or a base station (e.g., infrastructure). In the illustrated example, two of the communication satellites 40a-40n are shown as representations of Global Positioning Systems (GPS) and/or Global Navigation Satellite Systems (GNSS) located around the world. In the example shown, the objects 30a, 30b, and/or 30n may be vehicles and the object 30i may be a base station (e.g., a Road Side Unit (RSU)). In some embodiments, each of the objects 30a-30n may be a vehicle (e.g., without a base station). The number of vehicles and/or base stations 30a-30n and/or communication satellites 40a-40n may vary depending on the design criteria of a particular implementation. The system 20 may be configured to adjust and/or self-correct for various numbers of vehicles and/or base stations 30a-30n and/or communication satellites 40a-40 n.

Each of the objects 30a-30n may include a respective device (or circuit or module) 100a-100 n. Modules 100a-100n may be described in more detail in conjunction with FIG. 2. Modules 100a-100n may be implemented within and/or attached to objects 30a-30 n. In the example shown, the module 100a is shown within the vehicle 30a and the module 100i is attached to the base station 30 i. For example, the modules 100a-100n may be located within the dashboard and/or located with other electronics of the vehicles 30a-30 n. In some embodiments, modules 100a-100n may be implemented in a mobile device (e.g., a cell phone, tablet computing device, computer, standalone GPS device, fitness monitoring device, smart watch, etc.). In an example, a mobile device implementing modules 100a-100n may operate within a moving vehicle. The location of the modules 100a-100n and/or the manner in which they are connected to the objects 30a-30n may vary depending on the design criteria of a particular implementation.

In the illustrated example, the objects 30a-30n and/or the respective modules 100a-100n may be configured to communicate with the communication satellites 40a-40 n. Typically, four or more of the communication satellites 40a-40n may be connected (e.g., via wireless communication signals). In another example, the connection to the satellites 40a-40n may be implemented through a GPS type connection. The satellites 40a-40n may present signals (e.g., GA-GN). Exemplary embodiments use Global Navigation Satellite Systems (GNSS) or Global Positioning Systems (GPS). Location information (e.g., coordinates) may be calculated from signals GA-GN received from GNSS or GPS (e.g., by modules 100a-100n and/or other components of objects 30a-30 n). The position accuracy of the position information may be determined by the modules 100a-100 n.

In some embodiments, the modules 100a-100n may be configured to receive signals GA-GN transmitted by the satellites 40a-40 n. The modules 100a-100n may be configured to calculate location information (e.g., location data, coordinates, etc.) for the respective vehicles 30a-30n based on data in the signals GA-GN. In some embodiments, the objects 30a-30n (e.g., GPS modules) may present the calculated location data to the modules 100a-100 n. In some embodiments, (e.g., clear sky conditions with limited and/or no interference and/or multipath error), the position accuracy of the position information calculated from the signals GA-GN may be within an acceptable tolerance to provide a separate calculated position data source.

The local conditions may be any type of interference and/or multipath factor that may affect the determination of location information (e.g., location coordinates) using the signal GA-GN. For example, the local conditions may be due to ionospheric interference, noise, signal degradation caused by urban dense areas, signal degradation caused by high-rise buildings, and the like. The modules 100a-100n may be configured to supplement and/or enhance the accuracy of the position data of the objects 30a-30n determined from the signals GA-GN by using cooperative localization. For example, modules 100a-100n may be configured to provide more accurate location data than location data calculated using signals GA-GN.

In some embodiments, the infrastructure (e.g., base station 30i in the illustrated example) may be implemented as a fixed base station, such as a cellular tower, a user-installed fixed base station, and/or other type of fixed base station. Although only base stations 30i are shown, more than one base station 30i may typically be implemented to provide signals for calculating location information. In some embodiments, because the base station 30i may be in a known and fixed location, the base station 30i may connect to satellites 40a-40n, calculate location information from the signal GA-GN, and provide verification of the signal GA-GN as compared to the known and fixed location of the base station 30 i.

In one example, the modules 100a-100n are shown as being located in vehicles 30a-30 n. The modules 100a-100n may be implemented as a single unit (e.g., an installed device and/or module) and/or distributed units. For example, the various components of the modules 100a-100n may be implemented at different locations in and/or on the vehicles 30a-30n and connected by an electronic network (e.g., a serial bus, an electronic bus connected by wiring and/or interfaces, a wireless interface, etc.) that connects one or more of the components and enables sharing of information in the form of digital signals. In some embodiments, the modules 100a-100n may be implemented in an infotainment module of the vehicles 30a-30 n.

The vehicles 30a-30n may each include a plurality of blocks (or circuits) 102a-102n and/or blocks (or circuits) 104a-104 n. The circuits 102a-102n may be configured to implement sensors. The circuits 104a-104n may be configured to implement actuators. The sensors 102a-102n and/or actuators 104a-104n may be connected via an electronic bus (to be described in conjunction with FIG. 2) and/or a wireless connection. In some embodiments, the sensors 102a-102n and/or actuators 104a-104n may be configured to communicate with the modules 100a-100 n. The sensors 102a-102n may be configured to capture information from the environment proximate the vehicles 30a-30 n. The actuators 104a-104n may be configured to cause the vehicles 30a-30n and/or components of the vehicles 30a-30n to perform actions. In some embodiments, the sensors 102a-102n and/or actuators 104a-104n may be configured to read data to detect objects and/or perform actions in response to detected objects to cause the vehicles 30a-30n to perform functions such as speed control, collision prediction, collision prevention, auto-alignment, online bumper panel calibration, motion estimation, dead reckoning, cross-movement assist (IMA), Left Turn Assist (LTA), Forward Collision Warning (FCW), Lane Change Warning (LCW), and/or scene understanding.

The modules 100a-100n may be configured to transmit signals (e.g., RAA-RNN). Signals RAA-RNN may be communicated between the modules 100a-100n to determine the relative distance between the objects 30a-30 n. Generally, each of the modules 100a-100n may transmit one of the signals RAA-RNN to each of the modules 100a-100n (e.g., within a particular range). In the example shown, module 100a may transmit a signal RAB to module 100b, a signal RAI to module 100i, and a signal RAN to module 100 n. Similarly, in the example shown, module 100b may transmit a signal RAB to module 100a, a signal RBI to module 100i, and a signal RBN to module 100 n. The number of signals RAA-RNN may vary depending on the design criteria of a particular embodiment.

The modules 100a-100n may use the signal RAA-RNN to calculate a range of values between the objects 30a-30 n. In an example, the signal RAA-RNN may be configured similarly to radar to measure the amount of time it takes for a transmission signal to be sent to and/or returned from a destination. For example, module 100a may perform ranging (e.g., determining the absolute distance between objects 30a and 30 b) by transmitting a signal RAB to module 100b and measuring the time (e.g., round trip time) before the signal RAB returns to module 100 a. The communication for transmitting the signals RAA-RNN may be implemented through a cellular network connection (e.g., 3G, 4G, 5G LTE, etc.), a Wi-Fi connection, a GPS-type connection, radio signals, ultrasound signals, and/or other types of wireless connections. In one example, the signal RAA-RNN may be implemented over a particular wireless spectrum (e.g., a 5.9GHz dedicated short-range communications spectrum). In another example, the signal RAA-RNN may be implemented as and/or alongside a Basic Safety Message (BSM). In yet another example, Wi-Fi may be implementing and the signal RAA-RNN may be part of an underlying protocol configured to transmit timestamps (e.g., MAC and/or PHY). The signal RAA-RNN may be used to enable vehicle-to-vehicle (e.g., V2V) and/or vehicle-to-infrastructure (e.g., V2I) communications (e.g., V2X communications). The type of wireless connection used for communication between modules 100a-100n may vary depending on the design criteria of a particular implementation.

The relative positioning values (e.g., coordinates) computed by the modules 100a-100n using the signals RAA-RNN may be configured to implement cooperative positioning. The cooperative positioning and/or relative coordinates determined by the modules 100a-100n may have a higher accuracy than the position information determined using the signals GA-GN (e.g., using GNSS data). The cooperative positioning information may be fused with data acquired using the sensors 102a-102n and/or data generated using the signal GA-GN. Higher accuracy and/or precision of the relative positions between the objects 30a-30n may reduce uncertainty, reduce the number of false positives, reduce erroneous data calculations, and/or enable improved vehicle safety integrity level (ASIL) classification. For example, in an urban scenario with poor GNSS coverage, GPS uncertainty may exist and relying on GPS information may produce a large number of false positives and/or false negatives. Cooperative positioning may be used with map information to provide improved navigation information.

The modules 100a-100n may be configured to implement sensor and/or data fusion. For example, the modules 100a-100n may be configured to receive data from one or more (e.g., different) sources (e.g., the signal GA-GN, the signal RAA-RNN, the sensors 102a-102n, etc.). The modules 100a-100n may combine and/or analyze data from different sources to make inferences about the environment surrounding the objects 30a-30 n. The inferences made by the modules 100a-100n may provide greater data accuracy and/or precision (e.g., relative positioning) than using only one of the data sources.

Referring to FIG. 2, a diagram illustrating example ones of the modules 100a-100n configured to determine a high accuracy range estimate is shown. Module 100 is shown as a representative example of one of modules 100a-100 n. The module 100 may be configured to generate and/or calculate a position relative to other vehicles. The module 100 is shown as transmitting/receiving signals RAA-RNN. The module may send/receive other signals (not shown). For example, module 100 may receive one or more of signals GA-GN. The number and/or type of signals transmitted and/or received by module 100 may vary depending on the design criteria of a particular implementation.

The module 100 may be connected to a block (or circuit) 106. The circuit 106 may implement an electronic bus. The electronic bus 106 may be configured to transmit data between the module 100 and the sensors 102a-102n and/or actuators 104a-104 n. In some embodiments, the electronic bus 106 may be implemented as a vehicle CAN bus. The electronic bus 106 may be implemented as an electronic wired network and/or a wireless network. Generally, the electronic bus 106 may connect one or more components of the vehicle 30 to enable sharing of information in the form of digital signals (e.g., a serial bus, an electronic bus connected by wiring and/or interfaces, a wireless interface, etc.).

Module 100 generally includes a block (or circuit) 120, a block (or circuit) 122, a block (or circuit) 124, a block (or circuit) 126, a block (or circuit) 128, a block (or circuit) 130, and/or a block (or circuit) 132. The circuit 120 may implement a GNSS antenna. The circuit 122 may implement a transceiver. The circuit 124 may implement a processor. The circuit 126 may implement a communication port. The circuit 128 may implement a filter. The circuit 130 may implement a clock. The circuit 132 may implement a memory. Other blocks (not shown) may be implemented (e.g., I/O ports, power connectors, interfaces, etc.). The number and/or type of circuits implemented by the module 100 may vary depending on the design criteria of a particular implementation.

The antenna 120 may be implemented as a dual-band antenna capable of connecting to a cellular network (e.g., to provide potential connection options to the base station 30i) and/or a GNSS network (e.g., communication satellites 40a-40 n). In another example, the antenna 120 may be implemented as two antennas. For example, one antenna may be specifically designed to connect to a base station (e.g., 30i), while another antenna may be implemented to connect to a GNSS network satellite 40a-40 n. The antenna 120 may be implemented as a discrete antenna module and/or a dual-band antenna module. In some embodiments, antenna 120 may be implemented as an off-board circuit (e.g., a component that is not part of module 100). For example, the antenna 120 may transmit/receive data to/from the module 100 via the electronic bus 106. The implementation of the antenna 120 may vary depending on the design criteria of a particular implementation.

The transceiver 122 may be configured to transmit (e.g., send and/or receive) data (e.g., radio signals). The transceiver 122 may be configured to generate and/or receive one or more of the signals RAA-RNN. Transceiver 122 may receive data from processor 124 for communication with external devices (e.g., other ones of modules 100a-100 n). Transceiver 122 may receive communications from external devices (e.g., other ones of modules 100a-100 n) and transmit communication signals to processor 124. The transceiver 122 may be configured to transmit Basic Safety Message (BSM) protocol and/or data outside of the BSM protocol. In some embodiments, the transceiver 122 may send and/or receive signals RAA-RNN through the communication port 126 and/or the sensors 102a-102 n. The transceiver 122 may be configured to be compatible with one or more communication protocols (e.g., a Wi-Fi transceiver configured to perform Dedicated Short Range Communication (DSRC), vehicle-to-vehicle (V2V), and/or vehicle-to-infrastructure (V2I) communication). The implementation of the transceiver 122 may vary depending on the design criteria of a particular implementation.

The processor 124 may be implemented as a microcontroller. Processor 124 may include a block (or circuit) 150 and/or a block (or circuit) 152. The circuit 150 may implement a GNSS module and/or a chipset. The circuitry 152 may implement a relative positioning module. The processor 124 may include other components (not shown). In some embodiments, the processor 124 may be a combined (e.g., integrated) chipset that implements processing functionality, a relative positioning chipset 152, and/or a GNSS chipset 150. In some embodiments, the processor 124 may include a plurality of separate circuits (e.g., a microcontroller, a GNSS chipset 150, and/or a relative positioning chipset 152). The GNSS module 150 and/or the relative positioning module 152 may each be an optional component of the processor 124. In an example, an off-board circuit (e.g., a component that is not part of the module 100) may perform the functions of the GNSS chipset 150 and send information to the module 100 (e.g., via the bus 106). In another example, an off-board circuit (e.g., a component that is not part of module 100, such as a distributed and/or scalable computing service) may perform functions for determining the collaborative positioning data and sending the information to module 100 (e.g., via bus 106). The design of processor 124 and/or the functionality of the various components of processor 124 may vary depending on the design criteria of a particular implementation. Processor 124 is shown transmitting data to and/or receiving data from antenna 120, transceiver 122, memory 132, and/or communication port 126.

The memory 132 may include a block (or circuit) 160 and a block (or circuit) 162. Block 160 may store vehicle position data. Block 162 may store computer readable instructions (e.g., instructions readable by processor 124). The vehicle location data 160 may store various data sets 170a-170 n. For example, the data sets 170a-170n may include position coordinates 170a, calibration data 170b, time stamps/delays 170c, relative position data 170d, dead reckoning data 170e, and/or other data 170 n.

The location coordinates 170a may store location information data calculated and/or received by the module 100 based on the signals GA-GN present by the GNSS satellites 40a-40 n. The signal GA-GN may provide data of a particular resolution from which the degree of location accuracy of the location information may be calculated. In some embodiments, the location coordinates 170a may not provide sufficient location accuracy for a particular application (e.g., lane detection, autopilot, etc.). The relative position data 170d may be used to improve the accuracy of the position coordinates 170 a. In some embodiments, the position coordinates 170a may be calculated by the filter 128 and/or a component external to the module 100. In some embodiments, the position coordinates 170a may be calculated by the GNSS module 150.

The calibration data 170b may include parameters (e.g., coefficients) for transforming data received from the sensors 102a-102n and/or presented to the actuators 104a-104 n. The calibration data 170b may provide a number of sets of coefficients (e.g., a set of coefficients for each of the sensors 102a-102n and/or actuators 104a-104 n). The calibration data 170b may be updatable. For example, the calibration data 170b may store current values as coefficients for the sensors 102a-102n and/or actuators 104a-104n and the module 100 may update the calibration data 170b as the data from the sensors 102a-102n and/or actuators 104a-104n drifts in order to maintain accuracy. The format of the calibration data 170b may vary based on the design criteria of a particular implementation.

The timestamp/delay 170c may be used to determine the age of the vehicle location data 160, the time of flight of the signal RAA-RNN, and/or the round trip time of the signal RAA-RNN. In one example, the timestamp 170c may be used to determine whether the vehicle location data 160 should be considered reliable or unreliable (e.g., data older than a predetermined threshold amount of time may be unreliable). In one example, a timestamp 170c may be appended to the signal RAA-RNN. For example, the timestamp 170c may record the time in coordinated Universal Time (UTC) and/or in a local time. The implementation of the timestamp 170c may vary depending on the design criteria of a particular implementation.

The relative position data 170d may be used to enhance (e.g., improve) the accuracy of the position coordinates 170a (e.g., GNSS position) and/or provide independent sets of position data (e.g., collaborative position information). The relative position data 170d may include ranging data corresponding to the relative position of the vehicle 30 (e.g., the own vehicle) with other vehicles. The relative location data 170d may represent a collaborative location solution (e.g., CoP). The relative position data 170d may be used to account for (e.g., compensate for) local conditions that may affect the accuracy of the position coordinates 170 a. The relative position data 170d may provide position information with a higher accuracy than the position coordinates 170 a. The relative position data 170d may be calculated by the relative positioning module 152.

The dead reckoning data 170e may be used to store past and/or current information to determine the location where the vehicle 30 is traveling. For example, the dead reckoning data 170e may store previously determined positions of the vehicle 30 (e.g., estimated speed, estimated travel time, estimated position, etc.). The previously determined position may be used to help determine the current position of the vehicle 30. In some embodiments, the dead reckoning data 170e may be determined based on data from the sensors 102a-102n of the vehicle 52 (e.g., on-board gyroscopes and/or wheel click messages). The implementation and/or information stored to determine the dead reckoning data 170e may vary according to the design criteria of a particular implementation.

Various other types of data (e.g., other data 170n) may be stored as part of the vehicle location data 160. For example, the other data 170n may store trend information of the calibration data 170 b. For example, the other data 170n may store past data values of the calibration data 170b and/or current data values of the calibration data 170 b. Past and current data values of the calibration data 170b may be compared to determine trends for extrapolating and/or predicting potential future values of the calibration data 170 b. For example, when the module 100 is operating in a pure dead reckoning mode (e.g., the location information fails the quality check), the trend information may be used to continue refining the calibration data 170 b. In some embodiments, the other data 170n may store various coordinate systems determined using the pilfer transformation procedure and/or the multi-dimensional scaling operation.

Processor 124 may be configured to execute stored computer-readable instructions (e.g., instructions 162 stored in memory 132). Processor 124 may perform one or more steps based on stored instructions 162. In an example, the processor 124 may calculate the location information (e.g., based on the received signal GA-GN). In another example, one of the steps of the instructions 162 may be performed by the processor 124 and the relative position data 170d may be determined based on the signal RAA-RNN. The order in which instructions are executed and/or instructions 162 are executed by processor 124 may vary depending on the design criteria of a particular implementation.

The communication ports 126 may allow the module 100 to communicate with external devices such as the sensors 102a-102n and/or the actuators 104a-104 n. For example, the module 100 is shown connected to an external electronic bus 106. The communication port 126 may allow the module 100 to share collaborative position data 170d with various infrastructure and/or components of the vehicle 30 (e.g., the sensors 102a-102n and/or the actuators 104a-104 n). The communication port 126 may allow the module 100 to receive information (e.g., on-board gyroscope data, wheel click messages, LIDAR, etc.) from the sensors 102a-102n of the vehicle 30. For example, information from module 100 may be transmitted to an infotainment device for display to the driver. In another example, a wireless connection (e.g., Wi-Fi, bluetooth, cellular, etc.) with a portable computing device (e.g., a smartphone, a tablet, a notebook computer, a smartwatch, etc.) may allow information from module 100 to be displayed to a user.

The filter 128 may be configured to perform linear quadratic estimation. For example, the filter 128 may implement a kalman filter. In general, the filter 128 may operate recursively on the input data to produce a statistically optimal estimate. For example, the filter 128 may be used to calculate the position coordinates 170a and/or to estimate the accuracy of the position coordinates 170 a. In some embodiments, the filter 128 may be implemented as a separate module. In some embodiments, the filter 128 may be implemented as part of the memory 132 (e.g., stored instructions 162). The implementation of filter 128 may vary depending on the design criteria of a particular implementation.

The clock 130 may be configured to determine and/or track time. The time determined by the clock 130 may be stored as the timestamp data 170 c. In some embodiments, clock 130 may be configured to compare timestamps received in signal RAA-RNN to determine a delay (e.g., round-trip time).

The module 100 may be configured to calculate location and/or broadcast data (e.g., via the transceiver 122 and/or the communication port 126), such as location coordinates 170a, age of the data (e.g., the time at which the data was last updated, such as the timestamp 170c), relative location data 170d, and/or other data 170 n. The communication method implemented by transceiver 122 and/or communication port 126 and/or the type of data transmitted may vary depending on the design criteria of a particular implementation.

Module 100 may be configured as a chipset, a system on a chip (SoC), and/or a discrete device. For example, the module 100 may be implemented as an Electronic Control Unit (ECU). In some embodiments, module 100 may be configured to calculate a position, velocity, and time (PVT) solution, a relative positioning solution, and/or a dead reckoning solution. In some embodiments, the module 100 may transmit the received data (e.g., the signal GA-GN and/or the signal RAA-RNN) to other components external to the module 100 to perform the calculations (e.g., the relative position data 170d may be sent to another component to determine a cooperative positioning solution). For example, PVT can be considered as the absolute minimum output of navigation. In some embodiments, module 100 may include a GNSS chipset 150 and compute a PVT solution and/or a dead reckoning solution. In some embodiments, module 100 may be configured to receive a data stream that provides PVT solutions and may not determine a dead reckoning solution (e.g., module 100 receives PVT data from off-board components, determines calibration data 170b, and sends calibration data 170b to off-board components to determine a dead reckoning solution). In some embodiments, the module 100 may be configured to receive a data stream providing a PVT solution and to compute a dead reckoning solution. The module 100 may be configured to supplement the PVT solution by a cooperative positioning solution determined based on the relative position 170 d.

In some embodiments, module 100 may perform calculations using an external processor (e.g., an off-board processor) to determine relative position data 170 d. In one example, the external processor may be implemented as a distributed computing service configured to scale and/or provision resources as needed (e.g., cloud computing). For example, the module 100 may receive the signals RAA-RNN and/or make distance measurements, transmit the data to a cloud computing service, and one or more processors of the cloud computing service may perform the calculations for generating the relative position data 170 d. Module 100 may receive the computation (e.g., relative location data 170d) from the cloud computing service and store the data in memory 132. In some embodiments, instructions 162 may be stored on an external memory. The implementation of using external components to supplement the capabilities of the module 100 may vary depending on the design criteria of a particular implementation.

Generally, the module 100 receives and/or determines a PVT solution, a dead reckoning solution, and/or a cooperative positioning solution (e.g., CoP). The module 100 may be configured to separate and/or extract data components of the dead reckoning data 170e, data components of the PVT solution (e.g., position data), and/or relative position data 170 d. In some embodiments, the instructions 162 may be executable by the processor 124 to provide responses to requests from other components of the vehicle 30. For example, a braking system of the vehicle 30 (e.g., one of the actuators 104a-104n) may request information from the module 100 before performing a particular response (e.g., to slow down).

The sensors 102a-102n may be configured to capture information from the environment surrounding the vehicle 30. The sensors 102a-102n may be vehicle sensors (e.g., speedometers, fluid sensors, temperature sensors, etc.). In some embodiments, data from the sensors 102a-102n may be used to determine dead reckoning data 170 e. In one example, the sensors 102a-102n may be various types of sensors configured to determine vehicle movement (e.g., magnetometers, accelerometers, wheel click sensors, vehicle speed sensors, gyroscopes, etc.). In another example, data from the sensors 102a-102n may be used to determine a distance and/or direction of travel from a reference point. The type of sensors 102a-102n implemented may vary depending on the design criteria of a particular implementation.

The actuators 104a-104n may be components of the vehicle 30 configured to cause an action, move, and/or control an aspect of the vehicle 30. For example, the actuators 104a-104n may be one or more of a braking system, a steering system, a lighting system, a windshield wiper, a heating/cooling system, and the like. In some embodiments, the actuators 104a-104n may be configured to respond to information received from the module 100 and/or the sensors 102a-102 n. For example, if one of the actuators 104a-104n is a steering system, the steering system may receive information from the module 100 indicating a potential collision with a nearby vehicle, and the steering system may respond by causing the vehicle 30 to change direction. The type of actuators 104a-104n implemented may vary depending on the design criteria of a particular implementation.

In some embodiments, the sensors 102a-102n and/or actuators 104a-104n may be implemented to enable autonomous driving of the vehicle 30. For example, the sensors 102a-102n may receive and/or capture input to provide information about the nearby environment. The information captured by the sensors 102a-102n may be used by the vehicle 30 and/or components of the module 100 to perform calculations and/or make decisions. The calculations and/or decisions may determine what actions the vehicle 30 should take. The action that the vehicle 30 should take may be converted into a signal that is readable by the actuators 104a-104 n. The actuators 104a-104n may cause the vehicle 30 to move and/or respond to the environment. For example, the module 100 may present an output that provides the relative position of the vehicle 30 to other vehicles. In some embodiments, the module 100 may provide relative position data 170d (e.g., a cooperative positioning solution) to increase ASIL classification of the vehicle 30. Other components may be configured to use the data provided by module 100 to make appropriate decisions for autonomous driving.

The modules 100a-100n may be configured to estimate relative positions using round trip times. Using the round trip time to estimate the relative position may yield multiple solutions (e.g., because there may be more unknowns than the number of passes). The modules 100a-100n may be configured to reliably and/or unambiguously obtain relative distances between objects (e.g., objects 30a-30n) via round trip time measurements.

The modules 100a-100n may be configured to perform position estimation. For example, the modules 100a-100n may each include a transceiver 122 configured to transmit and/or receive radio signals RAA-RNN. The processor 124 of each of the modules 100a-100n may be configured to repeatedly perform a plurality of steps in accordance with the instructions 162. In one example, the processor 124 may execute one or more of the instructions 162 to calculate a time of flight (TOF) of the signal RAA-RNN. For example, the signal RAA-RNN may be transmitted in pairs between two transceivers 122 (e.g., the transceiver 122 implemented by the module 100a and the transceiver 122 implemented by the module 100 b). In another example, processor 124 may execute one or more of instructions 162 to calculate the possible locations of modules 100a-100n, which may result in many possible locations for each of modules 100a-100 n. In yet another example, processor 124 may execute one or more of instructions 162 to perform multidimensional scaling (MDS) calculations in order to obtain the relative positions of modules 100a-100n in a particular coordinate system. In some embodiments, processor 124 may be configured to repeatedly perform the pout transformation procedure (e.g., after two initial MDS calculations and between every two consecutive MDS calculations). The pilfer transformation procedure may include translation, scaling, and/or rotation of a particular coordinate system to generate a corrected coordinate system. For example, the pilfer transformation procedure may be configured to determine a corrected current coordinate system such that a minimum change in relative position (e.g., relative position data 170d) of the modules 100a-100n between successive MDS calculations may be obtained.

In some embodiments, for each pair of modules 100a-100n, processor 124 may be configured to calculate the time of flight as the time for one of signals RAA-RNN to travel from a transmitting transceiver (e.g., transceiver 122 of module 100 a) to a receiving transceiver (e.g., transceiver 122 of module 100 b). In some embodiments, the processor 124 may be configured to calculate the time of flight as the time for one of the signals RAA-RNN to travel from the transmitting transceiver to the receiving transceiver and back to the transmitting transceiver (e.g., at least once such that a Round Trip Time (RTT) may be determined for each pair of modules 100a-100 n). In some embodiments, the processor 124 may be configured to calculate the transit time by knowing the delay time between each retransmission and/or by including repeated transmissions of timestamps generated by different modules 100a-100N (e.g., to indicate when the signal RAA-RNN was received by each of the modules 100 a-100N). The method of determining the time of flight may vary depending on the design criteria of a particular implementation.

The signal RAA-RNN may be configured to be compatible with mobile base station system protocols. In one example, the protocol implemented by the signal RAA-RNN may be Basic Security Messages (BSMs) plus additional information. In general, BSM type messages may broadcast similar information. The modules 100a-100n may be configured to send small messages outside of the standard BSM-type message protocol. For example, the round trip time and/or timestamp 170c may be transmitted as part of the signal RAA-RNN but outside of the BSM message. The signal RAA-RNN may be transmitted at a predetermined update rate. In one example, the update rate of the signal RAA-RNN may be 10Hz (e.g., 100 ms). In some embodiments, the signal RAA-RNN may be transmitted as a BSM signal via a standard service channel. For example, using a standard service channel, the signal RAA-RNN may be transmitted to the cluster heads of the objects 30a-30 n. If the target object is out of range of the serving channel, multi-hopping may be implemented (e.g., transmitting the signal RAA-RNN from a local cluster head to another cluster head and then to the target vehicle). The protocol implemented by the signal RAA-RNN may vary depending on the design criteria of a particular implementation.

Referring to FIG. 3, a diagram illustrating inter-vehicle range estimation is shown. An exemplary system 200 is shown. The exemplary system 200 may be implemented by four objects 30a-30d located at the intersection of a road 202a and a road 202 b. Each of the objects 30a-30d may include a corresponding one of the modules 100a-100 d. In exemplary system 200, objects 30a-30c may be vehicles, and object 30d may be infrastructure (e.g., a cell phone tower, a traffic sign, a traffic light, a portion of a building, etc.). On the vehicle 30a, a transceiver 122a and a processor 124a are shown. Similarly, the objects 30b-30d may include the transceivers 122b-122d and/or the processors 124b-124 d. In general, the exemplary system 200 includes four of the modules 100a-100 n. However, the number of modules 100a-100n may vary depending on the design criteria of a particular implementation.

In exemplary system 200, modules 100a-100d may communicate between at least two other modules of modules 100a-100 d. Signal RAB is shown as being transmitted between vehicle 30a and vehicle 30b, signal RAC is shown as being transmitted between vehicle 30a and vehicle 30c, signal RAD is shown as being transmitted between vehicle 30a and subject 30d, signal RBC is shown as being transmitted between vehicle 30b and vehicle 30c, signal RBD is shown as being transmitted between vehicle 30b and subject 30d, and signal RCD is shown as being transmitted between vehicle 30c and subject 30 d. The signals RAA-RNN may be transmitted simultaneously in a particular order in response to one of the signals RAA-RNN and/or periodically. Signals RAA-RNN may be transmitted back and forth between each of the modules 100a-100 n.

In some embodiments, each of modules 100a-100d may be configured to calculate a round trip time for each of the signals RAB-RCD transmitted between each of modules 100a-100 d. For example, module 100a may be configured to calculate the round trip time of each of the signals RAD-RAD transmitted from module 100a to the other modules 100b-100d, as well as the round trip times of the signals RAB, RBC and/or RBD transmitted by module 100b to the other modules 100a, 100c and/or 100d, the round trip times of the signals RAC, RBC and/or RCD transmitted by module 100c to the other modules 100a, 100b and/or 100d, and/or the round trip times of the signals RAD, RBD and/or RCD transmitted by module 100d to the other modules 100a-100 c. Using the calculated round trip times, each of the processing units 124a-124d may be configured to calculate a possible location of the modules 100a-100d (and objects 30a-30d) that may result in multiple possible locations for each of the modules 100a-100d (e.g., because there may be more unknowns than the number of passes).

In some embodiments, the modules 100a-100d may be configured to calculate the time of flight (TOF) (e.g., pair) between two of the modules 100a-100d (e.g., 100a-100b) one or more times. In one example, for each pair of modules 100a-100d, processors 124a-124d may be configured to determine a travel time for a signal RAB-RCD from a transmitting module in modules 100a-100d to a receiving module in modules 100a-100d (e.g., a travel time for a signal RAB from transmitting module 100a to receiving module 100 b). To determine travel time (e.g., for transit time), the modules 100a-100d may have synchronized clocks (e.g., the clocks 130 may be synchronized). In another example, for each pair of modules 100a-100d, processors 124a-124d may be configured to determine a round-trip travel time for signal RAB-RCD from a transmitting module in modules 100a-100d to a receiving module in modules 100a-100d and back to the transmitting module in modules 100a-100d (e.g., a travel time for signal RBC from transmitting module 100b to receiving module 100c and back to transmitting module 100b from receiving module 100c, possibly including a delay time). To determine the travel time (e.g., for a round trip time), the clock 130 may not need to be synchronized, but the delay 170c may be known. If the delay time 170c is unknown, a repeat transmission may be implemented (e.g., with 5 time stamps at different modules 100a-100 d).

Each of the processors 124a-124d may determine the likely location of the modules 100a-100 d. The processors 124a-124d may be configured to perform multidimensional scaling (MDS) operations. MDS operations may be implemented to calculate the relative positions of the modules 100a-100d in a coordinate system. Processors 124a-124d may be configured to perform another MDS operation (e.g., at a later time). MDS operations may be implemented to calculate another set of relative positions of the modules 100a-100d in another coordinate system. For example, a first MDS operation may determine a relative position in a first coordinate system and a second MDS operation may determine a relative position in a second coordinate system.

Each of the processors 124a-124d may be configured to perform a pilfer transformation procedure. The pockels transformation procedure may include one or more of a translation operation, a scaling operation, and/or a rotation operation on one of the coordinate systems used by the MDS operation. The pilfer transformation procedure may be configured to generate a corrected coordinate system. The corrected coordinate system may be implemented to determine the minimum change in the relative position of the modules 100a-100d between the first MDS operation and the second MDS operation. Modules 100a-100d may be configured to continuously perform MDS operations. For each of the following MDS operations, a pockels transformation procedure may be performed to generate an updated (e.g., current) corrected coordinate system.

Processors 124a-124d may be configured to continuously and/or repeatedly calculate the TOF and/or RTT of the signals RAB-RCD sent between modules 100a-100d, calculate possible positions of modules 100a-100d (e.g., which may result in multiple possible positions of each of modules 100a-100 d), and/or perform MDS operations to obtain relative positions of modules 100a-100d in a coordinate system. After the two initial MDS operations, the processors 124a-124d may be configured to repeatedly perform the pout transformation procedure between MDS calculations. In one example, a priorly transformation procedure may be performed between each two consecutive MDS calculations. The pilfer transformation procedure may generate a corrected coordinate system (e.g., corresponding to the current location of the vehicles 30a-30 d). In one example, the pilfer transformation procedure may be performed using Maximum Likelihood Estimation (MLE) calculations. In another example, the pilfer transformation procedure may be performed using a Least Squares Estimation (LSE) calculation. In some embodiments, the processors 124a-124d may use vehicle dynamics including gyroscope data, acceleration data, and/or velocity data (e.g., data from the sensors 102a-102n, dead reckoning data 170d, and/or position coordinates 170a) (e.g., to enhance the accuracy of the computational solution).

The modules 100a-100d may be connected to alert and/or information devices (e.g., heads-up displays, infotainment units, audio systems, etc.) implemented in corresponding ones of the objects 30a-30 d. For example, the warning and/or information device may be configured to send a notification and/or alert to the driver of the vehicle based on the collaborative positioning data calculated by the modules 100a-100d (e.g., issue a warning if a collision is likely). In some embodiments, the modules 100a-100d may be configured to communicate with other vehicle environment detection devices (e.g., sensors 102a-102n) (e.g., via the electronic bus 106). For example, the sensors 102a-102n may include devices (e.g., radar devices, camera devices, LIDAR devices, etc.) configured to determine a location of one of the objects 30a-30 d.

In some embodiments, the objects 30a-30d may not each implement one of the modules 100a-100 d. For example, vehicle 30a may implement modules 100a-100d and objects 30b-30d may implement transceivers 122b-122 d. Implementing transceivers 122b-122d without modules 122b-122d may enable objects 30b-30d to communicate signals RAB-RCD, but the calculations for the cooperative positioning solution may be performed by module 100 a. For example, module 100a may determine a collaborative location solution based on signal RAB-RCD and send data to each transceiver 122b-122d to provide the collaborative location solution to the other objects 30b-30 d.

In some embodiments, to obtain an estimate of the relative position data 170d of the modules 100a-100d within an acceptable tolerance, the processors 124a-124d may be configured to repeatedly perform at least five pilfer transformation procedures via the intermediate MDS calculations. In some embodiments, the processors 124a-124d may be configured to calculate the time of flight by knowing the delay time between each retransmission, and/or by repeating transmissions with time stamps at different transceivers.

To determine the relative positions of the modules 100a-100d, MDS operations may be performed. The output generated in response to the MDS operation may present the true relative position between objects 30a-30 d. The pilfer transformation procedure may be configured to rotate (e.g., rotate the X-Y map) relative positioning (e.g., mirror and/or translate) to provide additional compensation. The additional compensation performed by the pilfer transformation procedure may provide the correct relative positioning (e.g., relative position data 170 d).

In the illustrated example, four objects (e.g., 30a-30d) are shown as transmitting signals RAB-RCD. The number of signals and/or objects may vary depending on the design criteria of a particular implementation. Increasing the number of objects (e.g., 30a-30n) may improve the accuracy of a cooperative positioning solution that is computed at the expense of computational efficiency. Reducing the number of objects (e.g., less than four objects 30a-30d) may reduce computational cost but may not provide sufficient accuracy (e.g., the accuracy of a cooperative positioning solution may not be an improvement over a GNSS solution). In general, using four of the objects 30a-30n to determine a cooperative positioning solution may provide a trade-off between accuracy of the relative positioning coordinates 170d and computational processing power of the processor 124. For example, using more than four of the objects 30a-30n may reduce the benefit of accuracy of the relative positioning coordinates 170 d.

In some embodiments, the modules 100a-100d may be configured to predict a trajectory (e.g., path) of the objects 30a-30 d. The modules 100a-100d may calculate and/or receive a relevant position and/or velocity (e.g., a low accuracy position, velocity, and/or heading) for each of the objects 30a-30 d. In one example, the predicted trajectory may be calculated using GPS heading and/or GPS velocity information. In another example, the predicted trajectory may be calculated using time-of-flight and/or round trip time information. In yet another example, the predicted trajectory may be calculated based on the shape and/or path of the roads 202a-202 b. In yet another example, one or more of the objects 30a-30d may have no predicted trajectory and/or have a null value for the predicted trajectory (e.g., the object 30d may be stationary). The predicted trajectory may be communicated to or from modules 100a-100d using signal RAB-RCD as a data message and/or stored in memory 132.

Referring to fig. 4, a diagram illustrating selection criteria for an exemplary traffic scenario 300 is shown. A road 302a and a road 302b are shown. Roads 302a-302b may intersect at intersection 304. In the exemplary traffic scenario 300 shown, vehicles 30a-30i may be traveling on roads 302a-302 b. In the example shown, the apparatus 100a may be implemented in (or on) a vehicle 30a (e.g., a hose vehicle). Similarly, other vehicles 30b-30i may implement one of the modules (e.g., 100b-100 i). The number of nearby vehicles in determining the selection criteria may vary depending on the design criteria of a particular embodiment.

The apparatus 100a may be configured to select information from a remote vehicle for cooperative positioning calculations (e.g., CoP). To improve computational efficiency and/or reduce uncertainty to an acceptable level (e.g., a level permissible according to various autodrive criteria), the apparatus 100a may be configured to determine which vehicles 30a-30i may provide the most useful information in order to achieve the least amount of uncertainty (e.g., reduce uncertainty as much as possible using available data). The apparatus 100a may be configured to implement selection criteria to determine which vehicles provide the most useful information for effectively determining a solution. In one example, the selection criteria may be implemented as part of the instructions 162. In another example, the selection criteria may be implemented as part of the relative positioning module 152. In yet another example, the selection criteria may be implemented as a firmware component of the processor 124. The selection criteria may vary depending on the design criteria of a particular implementation.

Using different combinations of information (e.g., data messages) received from the vehicles 30a-30i, different amounts of calculations (or processing) may be performed, and/or different amounts of uncertainty may result in relative positioning solutions for the vehicles 30a-30 i. The selection criteria implemented by module 100a may determine which combinations of information may provide a low computational cost (e.g., efficient computation in terms of processing power and/or amount of time to determine a solution) and a low amount of uncertainty with respect to the positioning solution. In one example, the selection criteria may select some of the information from the vehicles 30a-30i to achieve a balance between computation time, power usage, and accuracy of the relative positioning solution.

In some embodiments, the selection criteria may select four of the vehicles 30a-30 i. Selecting four of the vehicles 30a-30i may be sufficient to achieve a balance between computation time, power usage, and/or accuracy of the relative positioning solution. For example, selecting more than four of the vehicles 30a-30i may reduce the return on improvement (e.g., accuracy) of the relative positioning solution while increasing power usage and/or computation time. To achieve an acceptable level of accuracy (e.g., less than about +/-1 meter), the selection criteria may be selected (e.g., four selected) from the nearby vehicles 30a-30i based on distance, arrangement (e.g., orientation) between the vehicles 30a-30i, and/or speed (or velocity) of the vehicles 30a-30 i.

The apparatus 100a may be configured to group and/or track the vehicles 30a-30n and select from the vehicles 30a-30i (e.g., select four vehicles), which may provide the best/optimal output for a cooperative positioning solution (e.g., by considering a balance between computation time, computation cost, amount of uncertainty of the solution, and/or available information). The relative positioning module 152 may group and/or track the vehicles 30a-30i based on low accuracy positions (e.g., GNSS solutions). For example, the signal RAA-RNN may include a low accuracy position of the vehicle 30a-30 i. In one example, each of the vehicles 30a-30i may implement one of the modules 100a-100i and calculate a GNSS solution (e.g., location coordinates 170a) based on the signal GA-GN and communicate the GNSS solution using the signal RAA-RNN. In another example, information in the signal RAA-RNN may be used to calculate time-of-flight information and/or round-trip time information. The implementation of the communication and/or the calculation of the low accuracy position may vary depending on the design criteria of a particular implementation.

In general, GNSS solutions may have low accuracy in positioning compared to cooperative positioning solutions. However, the GPS heading and/or speed information may be accurate. The selection criteria may use the GPS heading and/or GPS speed information to identify which of the vehicles 30a-30i to select to perform the cooperative positioning calculation.

The selection criteria analysis performed by the relative positioning module 152 may determine which vehicles are likely to intercept the predicted travel path of the host vehicle 30 a. At least one of the vehicles 30b-30i may be considered a target vehicle (e.g., a vehicle that may traverse the predicted path of the host vehicle 30a within a certain amount of time). A vehicle that is considered a target vehicle may collide with the host vehicle 30a (e.g., based on a low accuracy solution). In one example, the target vehicle may be a vehicle of the vehicles 30b-30n that traverses the predicted travel path of the host vehicle 30a within 10 seconds. In another example, the target vehicle and the host vehicle 30a may converge at the same location within a predetermined amount of time. The selection criteria may select the target vehicle as one of the vehicles from which information is received to determine the cooperative positioning solution.

The selection criteria analysis performed by the relative positioning module 152 may select at least two other vehicles (e.g., supplemental vehicles) of the vehicles 30b-30i to receive information therefrom for use in a cooperative positioning solution. The selection criteria may be used to determine a supplemental vehicle based on the distance and/or relative velocity compared to the host vehicle 30 a. In general, the selection criteria may define a selection for the host vehicle 30a, the target vehicle, and the vehicle that is farthest away and has the highest relative speed (e.g., the supplemental vehicle).

The selection criteria analysis may select data messages from the vehicles 30a-30n to provide information to the relative positioning module 152 to perform cooperative positioning calculations. The cooperative positioning calculation may generate relative position data 170d, which may have a higher precision than position coordinates 170a (e.g., low accuracy results) determined using GNSS data. For a limited number of vehicles, the remaining vehicles (e.g., vehicles 30b-30i) may use the improved location of relative location data 170d as an anchor point to improve location based on relative GPS and/or time of flight data from the cooperative positioning solution.

In the exemplary communications scenario 300 shown, each of the vehicles 30a-30i may have an associated position and/or speed 310a-310i (e.g., low accuracy position, speed, and/or heading). In one example, the speed information 310a-310i may be calculated using GPS heading and/or GPS speed information. In another example, the speed information 310a-310i may be calculated using time-of-flight and/or round trip time information. The speed information 310a-310i may be transmitted to or from the modules 100a-100i as data messages using the signal RAA-RNN.

In the example shown, vehicle 30a may have a speed 310a of 50mph north, vehicle 30b may have a speed 310b of 1mph south, vehicle 30c may have a speed 310c of 0mph south (not shown), vehicle 30d may have a speed 310d of 60mph north, vehicle 30e may have a speed 310e of 30mph east, vehicle 30f may have a speed 310f of 50mph east, vehicle 30g may have a speed 310g of 40mph east, vehicle 30h may have a speed 310h of 5mph west, and vehicle 30i may have a speed 310i of 35mph east. The selection criteria implemented by the module 100a may be selected from the vehicles 30a-30i based on the speed information 310a-310i and/or the placement and distance relative to the host vehicle 30 a.

A plurality of dashed shapes 320a-320d are shown. The dashed shapes 320a-320d may represent selected vehicles as determined by the selection criteria analysis implemented by the module 100 a. In the exemplary traffic scenario 300, the selected vehicles 320a-320d may include four vehicles (e.g., vehicle 30a, vehicle 30d, vehicle 30f, and vehicle 30 i). The selected vehicle 320a may be the host vehicle 30a (e.g., the module 100a may implement the selection criteria). The selected vehicle 320b may be the target vehicle 30 f. The selected vehicle 320c may be vehicle 30d and the selected vehicle 320d may be vehicle 30i (e.g., a complementary vehicle).

Vehicle 30f may be selected as the target vehicle (e.g., selected vehicle 320 b). The analysis performed by the selection criteria may determine a predicted path that a vehicle 30f of the vehicles 30b-30i is most likely to traverse the host vehicle 30 a. In the example shown, the vehicle 30a and the vehicle 30f may cross the intersection 304 from the road 302a and the road 302b, respectively, at approximately the same time (e.g., the two vehicles are approximately the same distance away from the intersection 304 and travel at the same speed). Analysis by the selection criteria may determine that vehicles 30g and 30i may not traverse the predicted path of vehicle 30a (e.g., travel on road 302b away from intersection 304). Analysis by the selection criteria may determine that the vehicle 30e may not traverse the predicted path of the vehicle 30a (e.g., the vehicle 30e is further away from the intersection 304 and behind the vehicle 30f and travels slower than the vehicle).

Analysis by the selection criteria may determine that the vehicle 30d may not traverse the predicted path of the vehicle 30a (e.g., the vehicle 30d travels on the road 302a away from the intersection 304 and north faster than the vehicle 30 a). Analysis by the selection criteria may determine that the vehicles 30b and 30c may not traverse the predicted path of the vehicle 30a (e.g., both are nearly stopped at the intersection 304). In some embodiments, analysis by the selection criteria may not determine that vehicles 30b and 30c are in opposite lanes (e.g., low accuracy position results may not provide sufficient evidence that the vehicles are in different lanes). If there is sufficient accuracy from the low accuracy result to determine that the vehicles 30b and/or 30c are in the opposite lane from the host vehicle 30a, the selection criteria may determine that the vehicles 30b and 30c may not cross the predicted path of the vehicle 30a based on traveling in the opposite lane. It may be determined through analysis of the selection criteria that vehicle 30h may be a candidate for the target vehicle. However, the vehicle 30h approaches the intersection 304 at a low speed (e.g., 5mph), is farther away from the vehicle 30a than the distance between the vehicle 30f and the vehicle 30a, and may decelerate to a stop before entering the intersection 304 (e.g., the vehicle 30f may be a better target vehicle candidate than the vehicle 30 h). By analyzing the speed information 310a-310i and/or the location of the vehicles 30a-30i, the selection criteria implemented by the relative positioning module 152 may determine that the target vehicle 320b may be the vehicle 30 f.

In the exemplary traffic scenario 300 where vehicle 30f is selected as target vehicle 320b by the selection criteria, the relative positioning module 152 may select the supplemental selected vehicles 320c-320 d. Additional selected vehicles 320c-320d may be selected relative to the selected vehicles 320a-320 b. For example, the selection criteria may preferably be such that the supplemental selected vehicles 320c-320d are farthest from and/or about 90 degrees from the two selected vehicles 320a-320b (e.g., to form four corners of a rectangular shape, where each corner is a sufficient distance from each other). The selection criteria may be preferred to vehicles traveling at higher speeds and traveling at least about 7mph (e.g., 3 meters per second).

In the exemplary traffic scenario 300 where vehicle 30f is selected as target vehicle 320b by the selection criteria, the relative positioning module 152 may select vehicle 30d as selected vehicle 320c and vehicle 30i as selected vehicle 320 d. The vehicles 30d and 30i may be complementary selected vehicles 320c-320d based on distance and/or speed relative to the selected vehicles 320a-320 b. Analysis of the selection criteria may determine that vehicle 30e is far from selected vehicle 320a but close to selected vehicle 320 b. The vehicle 30c may be determined to not move (e.g., elimination factor) by analysis of the selection criteria.

Analysis of the selection criteria may determine that vehicle 30g is proximate to both of the selected vehicles 320a-320b (e.g., an elimination factor). Analysis of the selection criteria may determine that both vehicle 30b and vehicle 30d are remote from the selected vehicle 320a-320 b. However, speed information 310b indicates that vehicle 30b is traveling at 1mph (e.g., a cancellation factor), and speed information 310d indicates that vehicle 30d is traveling at 60mph (e.g., vehicle 30d may be a better candidate). Vehicle 30d may be selected as selected vehicle 320c through analysis of the selection criteria.

In the exemplary communication scenario 300 where vehicle 30f is selected as target vehicle 320b and vehicle 30d is selected as complementary selected vehicle 320c by selection criteria, analysis of the selection criteria may determine that both vehicle 30h and vehicle 30i are away from selected vehicles 320a-320 c. Additionally, both vehicle 30h and vehicle 30i are at an angle of approximately 90 degrees from the selected vehicles 320a-320 c. However, speed information 310h indicates that vehicle 30h is traveling at 5mph, and speed information 310i indicates that vehicle 30i is traveling at 35 mph. The selection criteria may determine that vehicle 30i may be a better candidate because vehicle 30h may be traveling below a minimum speed threshold (e.g., below 7mph may be a cancellation factor). Vehicle 30i may be selected as selected vehicle 320d through analysis of the selection criteria.

The selection criteria implemented by the relative positioning module 152 may select the vehicles 30a, 30f, 30d, and 30i as the selected vehicles 320a-320 d. Four of the vehicles 30a-30i may be used to select the vehicles 320a-320d to provide a solution with sufficient accuracy while balancing the computation time and/or computation power. The selected vehicles 320a-320d may provide an efficient combination of nearby vehicles to generate a collaborative positioning solution.

Referring to fig. 5, a diagram illustrating selection criteria for an exemplary traffic scenario 350 is shown. A road 302a, a road 302b, and an intersection 304 are shown. In the exemplary traffic scenario 350 shown, vehicles 30a-30i may be traveling on roads 302a-302 b. In the example shown, the apparatus 100a may be implemented in (or on) a vehicle 30 a. Similarly, other vehicles 30b-30i may implement one of the modules (e.g., 100b-100 i). The exemplary communication scenario 350 may be similar to the exemplary communication scenario 300 (described in connection with fig. 4), with some changes.

In the exemplary traffic scenario 350 shown, each of the vehicles 30a-30i may have an associated speed 310a '-310i' (e.g., speed and/or heading). In the example shown, vehicle 30a may have a north 50mph speed 310a ', vehicle 30b may have a south 1mph speed 310b ', vehicle 30c may have a south 50mph speed 310c ', vehicle 30d may have a north 15mph speed 310d ', vehicle 30e may have an east 60mph speed 310e ', vehicle 30f may have an east 5mph speed 310f ', vehicle 30g may have an east 40mph speed 310g ', vehicle 30h may have a west 45mph speed 310h ', and vehicle 30i may have an east 35mph speed 310i '. The selection criteria implemented by the module 100a may be selected from the vehicles 30a-30i based on the speed information 310a '-310i' and/or the placement and distance relative to the host vehicle 30 a.

In an exemplary communication scenario 350, the selected vehicles 320a '-320d' may include four vehicles (e.g., vehicle 30a, vehicle 30c, vehicle 30e, and vehicle 30 h). The selected vehicle 320a' may be the host vehicle 30a (e.g., the module 100a may implement the selection criteria). The selected vehicle 320b' may be the target vehicle 30 h. Selected vehicle 320c 'may be vehicle 30c and selected vehicle 320d' may be vehicle 30 e.

Vehicle 30h may be selected as the target vehicle (e.g., selected vehicle 320 b'). The analysis performed using the selection criteria may determine a predicted path that a vehicle 30h of the vehicles 30b-30i is most likely to traverse the host vehicle 30 a. In the example shown, the vehicle 30a and the vehicle 30h may cross the intersection 304 from the road 302a and the road 302b, respectively, at approximately the same time (e.g., the two vehicles are approximately a similar distance away from the intersection 304 and travel at a similar speed). Analysis by the selection criteria may determine that vehicles 30g and 30i may not traverse the predicted path of vehicle 30a (e.g., travel on road 302b away from intersection 304).

Analysis by the selection criteria may determine a predicted path that the vehicle 30e may not traverse the vehicle 30a (e.g., the vehicle 30e is further away from the intersection 304 and traveling behind the vehicle 30 f). In some embodiments, analysis by the selection criteria may determine that the vehicle 30d may not traverse the predicted path of the vehicle 30a (e.g., the vehicle 30d is traveling on the road 302a away from the intersection 304 and in the same direction of travel as the vehicle 30 a). In some embodiments, the predicted path that the vehicle 30d may traverse the vehicle 30a may be determined by analysis of the selection criteria (e.g., the vehicle 30d is away from the intersection 304 on the road 302a and traveling in the same direction as the vehicle 30a but at a slower speed, which may result in the vehicle 30a colliding with the vehicle 30d from behind). Whether the vehicle 30d is determined to be likely to collide with the vehicle 30a through analysis of the selection criteria may depend on a particular amount of time used to determine the time frame of the target vehicle 30 b. For example, the vehicle 30d may be a candidate for a target vehicle.

Analysis of the selection criteria may determine that vehicle 30b and vehicle 30c may not traverse the predicted path of vehicle 30a (e.g., both are in opposite lanes). In some embodiments, analysis by the selection criteria may not determine that vehicles 30b and 30c are in opposite lanes (e.g., low accuracy position results may not provide sufficient evidence that the vehicles are in different lanes). If there is sufficient accuracy from the low accuracy result to determine that the vehicles 30b and/or 30c are in the opposite lane from the host vehicle 30a, the selection criteria may determine that the vehicles 30b and 30c may not cross the predicted path of the vehicle 30a based on traveling in the opposite lane. Since the vehicle 30c may collide with the vehicle 30a and the speed 310c' is relatively high, the vehicle 30c may be a candidate for the target vehicle.

The vehicle 30f may be determined to be a candidate for the target vehicle through analysis of the selection criteria. However, the vehicle 30f approaches the intersection 304 at a low speed (e.g., 5mph below the selection threshold) and may slow down to a stop before entering the intersection 304 (e.g., the vehicle 30h may be a better target vehicle candidate than the vehicle 30 f). Based on having a speed below the threshold speed, the vehicle 30f may be eliminated from the candidate. By analyzing the speed information 310a ' -310i ' and/or the location of the vehicles 30a-30i, the selection criteria implemented by the relative positioning module 152 may determine that the target vehicle 320b ' may be the vehicle 30 h.

In an exemplary communication scenario 350, where vehicle 30h is selected as target vehicle 320b ' by selection criteria, relative positioning module 152 may select two supplemental vehicles 320c ' -320d '. Supplemental selected vehicles 320c '-320d' may be selected relative to the selected vehicles 320a '-320 b'. For example, the selection criteria may preferably be such that the two supplemental vehicles 320c '-320d' are farthest from and/or about 90 degrees relative to the two selected vehicles 320a '-320b' (e.g., the host vehicle 320a ', the target vehicle 320b', and the two supplemental vehicles 320c '-320d' may approximate the four corners of a rectangular shape, and the four corners may be a sufficient distance from each other). The selection criteria may preferably be at least a vehicle traveling at a speed of about 7mph (e.g., 3 meters per second).

In an exemplary communication scenario 350 in which vehicle 30h is selected as target vehicle 320b ' by the selection criteria, relative positioning module 152 may select vehicle 30c as supplemental vehicle 320c ' and vehicle 30e as selected vehicle 320d '. The vehicles 30c and 30e may be complementary vehicles 320c '-320d' based on distance and/or speed relative to the selected vehicle 320a '-320 b'. Analysis of the selection criteria can determine that vehicle 30i is far from selected vehicle 320a 'but close to selected vehicle 320 b'. Analysis of the selection criteria may determine that the speed information 310f' (e.g., 5mph) of the vehicle 30f is below a speed threshold (e.g., a cancellation factor).

Analysis of the selection criteria may determine that vehicle 30g is proximate to both of the selected vehicles 320a '-320 b'. Analysis of the selection criteria can determine that vehicle 30b, vehicle 30c, and vehicle 30d are each remote from the selected vehicle 320a '-320 b'. However, speed information 310b 'indicates that vehicle 30b is traveling at 1mph, and speed information 310d' indicates that vehicle 30d is traveling at 15mph (e.g., vehicle 30d may be a better candidate). Vehicle 30c may be selected as selected vehicle 320c ' through analysis of the selection criteria because speed information 310c ' indicates that vehicle 30c is traveling at 50mph, and speed information 310d ' indicates that vehicle 30d is traveling at 15mph (e.g., vehicle 30c may be a better candidate even if vehicle 30d is farther from selected vehicles 320a ' -320b ').

In an exemplary communication scenario 350 where vehicle 30h is selected as target vehicle 320b 'and vehicle 30c is selected as supplemental vehicle 320c' by selection criteria, analysis of the selection criteria may determine that both vehicle 30e and vehicle 30f are far from the selected vehicles 320a '-320 c'. Additionally, both vehicle 30e and vehicle 30f are at an angle of approximately 90 degrees from the selected vehicles 320a '-320 c'. However, speed information 310f 'indicates that vehicle 30f is traveling at 5mph, and speed information 310e' indicates that vehicle 30e is traveling at 60 mph. The selection criteria may determine that vehicle 30e may be a better candidate because vehicle 30f may be traveling below a minimum speed threshold (e.g., below 7mph) and that vehicle 30e is farther away from the selected vehicle 320a '-320c' than vehicle 30 f. The vehicle 30e may be selected as the supplemental vehicle 320d' by analysis of the selection criteria.

Exemplary traffic scenario 350 and exemplary traffic scenario 300 (shown in connection with fig. 4) depict a 4-way intersection on flat terrain. The selection criteria implemented by the relative positioning module 152 may be configured to select from among the vehicles 30a-30i for an effective cooperative positioning solution regardless of the road type and/or the shape of the terrain. In an example, the layout of the roads on which the vehicles 30a-30i are traveling may not prevent determining valid vehicles for the calculation, as the selection criteria may analyze relative speed and/or relative distance. The layout of the roadway may be correlated with selection criteria to determine which of the vehicles 30a-30i may be the target vehicle (e.g., the path of the roadway may indicate which vehicles may be located on an intersected path). The selection criteria may take the path and/or direction of the road when selecting the target vehicle.

Similar to the path of a road, the altitude may also be used to determine the likelihood of a collision. When the height indicates that the vehicle is not in collision (e.g., in an overpass scenario), the selection criteria may use the height as an elimination factor for determining the target vehicle. In general, ranging implemented by the module 100a and/or the relative positioning module 152 may determine an absolute distance between the host vehicle 30a and/or the other vehicles 30b-30 i. For example, the absolute distance may take into account the height. In another example, the selection criteria may implement a limit on selecting a particular vehicle if the altitude distance is above a predetermined threshold. The selection criteria may be configured to analyze as many available factors (e.g., vehicle speed, vehicle distance, vehicle height, road layout, road conditions, traffic conditions, building curves, weather conditions, etc.) as possible to determine a target vehicle and/or a supplemental vehicle for determining a collaborative positioning solution.

Referring to fig. 6, a diagram illustrating selection criteria for an exemplary traffic scenario 400 is shown. A road 302a, a road 302b, and an intersection 304 are shown. In the exemplary traffic scenario 400 shown, vehicles 30a-30i may be traveling on roads 302a-302 b. In the example shown, the apparatus 100a may be implemented in (or on) a vehicle 30 a. Similarly, other vehicles 30b-30i may implement one of the modules (e.g., 100b-100 i). The arrangement of the exemplary communication scenario 400 may be similar to the exemplary communication scenario 300 (described in connection with fig. 4), with some changes.

In the example shown, vehicle 30a may have a 50mph speed 310a "north, vehicle 30b may have a 1mph speed 310 b" south, vehicle 30c may have a 0mph speed 310c "south (not shown), vehicle 30d may have a 60mph speed 310 d" north, vehicle 30e may have an 30mph speed 310e "east, vehicle 30f may have an 35mph speed 310 f" east, vehicle 30g may have an 40mph speed 310g "east, vehicle 30h may have a 35mph speed 310 h" west, and vehicle 30i may have an 70mph speed 310i "east. The selection criteria implemented by the module 100a may be selected from the vehicles 30a-30i based on the speed information 310a "-310 i" and/or the placement and distance relative to the host vehicle 30 a.

In the exemplary traffic scenario 400, the speed information 310a "-310 i" may be similar to the speed information 310a-310i shown in the exemplary traffic scenario 300 (described in connection with FIG. 4). For example, the vehicles 30a, 30b, 30c, 30d, 30e, and 30g have the same speed (e.g., the speed information 310a ", 310 b", 310c ", 310 d", 310e ", and 310 g" is the same as the corresponding speed information 310a, 310b, 310c, 310d, 310e, and 310 g). Speed information 310f "has changed to 35mph (from speed information 310f at 50 mph), speed information 310 h" has changed to 35mph (from speed information 310h at 5mph), and speed information 310i "has changed to 70mph (from speed information 310i at 35 mph).

In the exemplary communication scenario 400, the selected vehicles 320a "-320 d" may include four vehicles (e.g., vehicle 30a, vehicle 30d, vehicle 30f, and vehicle 30 h). The selected vehicle 320a "may be the host vehicle 30a (e.g., the module 100a may implement the selection criteria). The selected vehicle 320b "may be the target vehicle 30 f. Selected vehicle 320c "may be vehicle 30d and selected vehicle 320 d" may be vehicle 30 h. For example, although vehicle 30i is farther and traveling faster than vehicle 30h, the replenishment vehicle 320d ″ has changed to vehicle 30h (replenishment vehicle 320d from 30i in traffic scenario 300).

Vehicle 30f may be selected as the target vehicle (e.g., selected vehicle 320b "). The selection criteria analysis performed by the relative positioning module 152 may determine a predicted path that the vehicle 30f of the vehicles 30b-30i is most likely to traverse the host vehicle 30 a. In the example shown, the vehicle 30a and the vehicle 30f may cross the intersection 304 from the road 302a and the road 302b, respectively, at approximately the same time (e.g., the two vehicles are approximately the same distance from the intersection 304 and converge toward the same location).

The selection criteria analysis performed by the relative positioning module 152 may determine that the vehicle 30h may also be a candidate for a target vehicle. The vehicle 30h may approach the intersection 304 at the same speed as the vehicle 30f (e.g., 35mph), but slightly further from the vehicle 30a than the distance between the vehicle 30f and the vehicle 30 a. Vehicle 30f may be a good candidate for target vehicle 320b ", and vehicle 30h may also be a good candidate for target vehicle 320 b". In an example, the selection criteria may identify vehicle 30f as a better candidate than vehicle 30 h. The selection criteria may determine that vehicle 30f is the most likely target and select vehicle 30f as selected vehicle 320b ".

In the exemplary traffic scenario 400, where vehicle 30f is selected as target vehicle 320b "by the selection criteria, the relative positioning module 152 may select the supplemental vehicles 320 c" -320d ". Similar to the analysis performed by the relative positioning module 152 for the traffic scenario 300 (described in connection with fig. 4), the vehicle 30d may be selected as one of the supplementary vehicles (e.g., 320c "). However, in the exemplary traffic scenario 400, vehicle 30h may be selected as one of the complementary vehicles 320d "(as opposed to vehicle 30i in traffic scenario 300).

In the exemplary communication scenario 400 where vehicle 30f is selected as target vehicle 320b "and vehicle 30d is selected as supplemental selected vehicle 320 c", the analysis of the selection criteria by relative positioning module 152 may determine that both vehicle 30h and vehicle 30i are sufficiently far away from selected vehicle 320a "-320 c". Additionally, both vehicle 30h and vehicle 30i are at an angle of approximately 90 degrees to the selected vehicle 320a "-320 c". Speed information 310h "indicates that vehicle 30h is traveling at 35mph, and speed information 310 i" indicates that vehicle 30i is traveling at 70 mph.

Although vehicle 30i is traveling at a higher speed than vehicle 30h, the selection criteria may determine that vehicle 30h may be a better candidate for the supplemental selected vehicle 320d ". Vehicle 30i may be a good candidate because the speed and/or distance parameters of vehicle 30i may be better (e.g., farther and faster) than the speed and/or distance of vehicle 30 h. However, the selection criteria may prefer vehicle 30h because vehicle 30h may have been determined to be a potential candidate for the target vehicle. For example, based on speed and/or distance, vehicle 30h may not be the best candidate, but vehicle 30h may meet the selection criteria because vehicle 30h may be a candidate for the target vehicle. The relative positioning module 152 may select the vehicle 30h as the supplemental vehicle 320d ".

Lines 402a-402d are shown. The lines 402a-402d may represent the arrangement (e.g., orientation) of the selected vehicles 320a "-320 d". Line 402a may be between selected vehicle 320a "(e.g., vehicle 30a) and selected vehicle 320 b" (e.g., vehicle 30 f). Line 402b may be between selected vehicle 320a "(e.g., vehicle 30a) and selected vehicle 320 d" (e.g., vehicle 30 h). Line 402c may be between selected vehicle 320d "(e.g., vehicle 30h) and selected vehicle 320 c" (e.g., vehicle 30 d). Line 402d may be between selected vehicle 320c "(e.g., vehicle 30d) and selected vehicle 320 b" (e.g., vehicle 30 f).

The wires 402a-402d form a generally rectangular shape. The selected vehicles 320a "-320 d" may be located at approximately four corners of the rectangular shape. In one example, the host vehicle 320a "and the target vehicle 320 b" may form approximately 90 degrees angles (e.g., lines 402a and 402d) with the supplemental vehicle 320c ". In another example, the host vehicle 320a "and the target vehicle 320 b" may form an approximately 90 degree angle (e.g., lines 402a and 402b) with the supplemental vehicle 320d ". In yet another example, the arrangement of selected vehicles 320a "-320 d" may be a rectangular shape, with each of the selected vehicles 320a "-320 d" at a different corner. In some embodiments, the host vehicle 320a ", the target vehicle 320 b", and the two supplemental vehicles 320c "-320 d" may approximate four corners of a rectangular shape (e.g., lines 402a-402d), and the four corners (e.g., selected vehicles 320a "-320 d") may be a sufficient distance from each other.

In one example, a sufficient distance may be a relative distance between 5m and 100 m. For example, in an urban environment, vehicles 30a-30i may track from 45m-75m (e.g., depending on the speed of host vehicle 320a "and/or the time at which the vehicle may traverse a path). In some embodiments, the maximum radio range in a non-line-of-sight scenario may be 100 m. The amount of sufficient distance may vary depending on the design criteria of a particular implementation and/or the communication protocol and/or technology implemented.

The arrangement of vehicles 30a-30i may be used as part of the selection criteria for determining the selected vehicles 320a "-320 d". The vehicles forming the rectangular arrangements 402a-402d may be better (e.g., preferred) candidates for the selected vehicle 320a "-320 d" (e.g., the rectangular arrangements may yield more efficient computation of a cooperative positioning solution).

Referring to fig. 7, a method (or process) 500 is shown. The method 500 may determine an effective cooperative positioning solution. The method 500 generally includes a step (or state) 502, a step (or state)

504. Step (or state) 506, step (or state) 508, decision step (or state) 510, decision step (or state) 512, step (or state) 514, and step (or state) 516.

State 502 may begin method 500. Next, in state 504, the transceiver 122 may receive data (e.g., signals RAA-RNN) from the nearby vehicles 30a-30 n. In state 506, the processor 124 (e.g., relative positioning module 152) may use the low accuracy data (e.g., location coordinates 170a) to determine the speed, trajectory, and/or placement of the nearby vehicles 30a-30 n. For example, the low accuracy data may be a component of the signal RAA-RNN. In one example, from the low accuracy data, the relative positioning module 152 may determine velocity information 310a-310i (e.g., shown in connection with FIG. 4). Next, in state 508, the processor 124 may compare data from each of the vehicles 30a-30n (e.g., the speed information 310a-310i and/or other information in the low accuracy data) to the selection criteria. Next, the method 500 may move to a decision state 510.

In the decision state 510, the processor 124 may determine whether one of the vehicles 30a-30n satisfies the selection criteria. In one example, the processor 124 may determine which of the vehicles 30a-30n may be the target vehicle 320 b. In another example, the processor 124 may determine which of the vehicles 30a-30n may be the supplemental selected vehicles 320c-320 d. If the vehicle does not meet the selection criteria, the method 500 may return to state 508. If the vehicle does meet the selection criteria, the method 500 may move to the decision state 512.

In the decision state 512, the processor 124 may determine whether enough vehicles 30a-30n have been selected to provide sufficient accuracy. In one example, selecting four of the vehicles 30a-30n may provide sufficient accuracy. If not enough vehicles have been selected, the method 500 may return to state 508. If enough vehicles have been selected, the method 500 may move to state 514. Although vehicle selection steps 508, 510, and/or 512 are shown as separate steps, vehicle selection may be performed in parallel (e.g., the selected vehicles 320a-320d may be selected at or near the same time, rather than one at a time).

In state 514, the processor 124 may calculate a cooperative positioning solution using data from the selected vehicles 320a-320d (e.g., from the signals RAA-RNN). Next, in state 516, the apparatus 100 may present the relative coordinates 170d to each of the nearby vehicles 30a-30 n. Next, the method 500 may return to state 504.

Referring to fig. 8, a method (or process) 550 is shown. The method 550 may select the target vehicle 320 b. The method 550 generally includes a step (or state) 552, a step (or state) 554, a step (or state) 556, a decision step (or state) 558, a step (or state) 560, a decision step (or state) 562, a step (or state) 564, a step (or state) 566, a step (or state) 568, a step (or state) 570, and a step (or state) 572.

State 552 may begin method 550. In state 554, the transceiver 122 may receive data (e.g., signals RAA-RNN) from the nearby vehicles 30a-30 n. In state 556, the processor 124 (e.g., relative positioning module 152) may compare the trajectory of one of the vehicles 30b-30n with the trajectory of the host vehicle 30 a. Next, method 550 may move to decision state 558. In the decision state 558, the processor 124 may determine whether the trajectory indicates a collision. If not, the method 550 may return to state 556. If the trajectory indicates a collision, the method 550 may move to state 560. In state 560, the processor 124 may identify a vehicle with a predicted trajectory indicative of a potential collision as a potential candidate for the target vehicle 320 b. Next, the method 550 may move to the decision state 562. Although steps 556, 558, and/or 560 for identifying potential target vehicles are shown as separate steps, vehicles may be analyzed and/or selected in parallel (e.g., vehicles 30a-30n identified as being on a likely collision course may be identified at or near the same time, rather than one at a time).

In decision state 562, the processor 124 may determine whether there is more than one potential target vehicle. If there is not more than one target vehicle, the method 550 may move to state 570. In state 570, processor 124 may use the potential target vehicle as one of the selected vehicles 320a-320d (e.g., as target vehicle 320 b). Next, method 550 may move to state 572. In decision state 562, if there is more than one potential target vehicle, the method 550 may move to state 564. In state 564, the processor 124 may select the vehicle most likely to collide with the host vehicle 320a as the most likely target vehicle. Next, in state 566, the processor 124 may use the most likely target vehicle as one of the selected vehicles 320a-320d (e.g., target vehicle 320 b). In state 568, the processor 124 may select a supplementary vehicle 320c-320d from the other potential target vehicles based on the selection criteria. For example, the probability of other potential target vehicles being one of the selected vehicles 320a-320d may be higher than vehicles that are unlikely to be on the route of the collision with the host vehicle 30 a. Next, method 550 may move to state 572. State 572 may end method 550.

Referring to fig. 9, a method (or process) 600 is shown. The method 600 may select the supplementary vehicles 320c-320d according to selection criteria. Method 600 generally includes a step (or state) 602, a decision step (or state) 604, a step (or state) 606, a step (or state) 608, a decision step (or state) 610, a step (or state) 612, a decision step (or state) 614, a step (or state) 616, a decision step (or state) 618, a step (or state) 620, a decision step (or state) 622, a step (or state) 624, a decision step (or state) 626, a step (or state) 628, a step (or state) 630, a step (or state) 632, and a step (or state) 634.

State 602 may begin method 600. Next, in the decision state 604, the processor 124 may determine whether the target vehicle 320b has been selected. If the target vehicle 320b has not been selected, the method 600 may move to state 606. State 606 may end method 600. For example, the supplementary vehicles 320c-320d may not be selected until after the target vehicle 320b has been selected. In decision state 604, if the target vehicle 320b has been selected, the method 600 may move to state 608.

In state 608, the processor 124 may determine the relative speed and/or position of the vehicles 30a-30n with respect to the host vehicle 320a and the target vehicle 320 b. Next, the method 600 may perform a series of checks and/or threshold tests to determine which of the vehicles 30a-30n may be the best candidates for replenishing the vehicles 320c-320 d. The decision states 610, 614, 618, 622, and/or 626 may represent some inspection and/or threshold tests for selecting the supplemental vehicles 320c-320 d. Decision states 610, 614, 618, 622, and/or 626 may be performed in any order and/or in parallel. Other checks and/or threshold tests may be performed. Each of the inspections and/or threshold tests may have a weighting value applied to determine which of the vehicles 30a-30n meet the selection criteria. The number, order, and/or importance of each of the inspections and/or threshold tests may vary according to the design criteria of a particular implementation.

In the illustrated example, the method 600 may next move to a decision state 610. In the decision state 610, the processor 124 may determine whether the speed of one or more of the vehicles 30a-30n is below a threshold speed (e.g., 3 meters per second). If the speed is below the threshold speed, the method 600 may move to state 612. In state 612, the processor 124 may eliminate vehicles 30a-30n below the threshold speed from contention (e.g., for the replenishment vehicles 320c-320 d). Next, method 600 may return to state 608. In the decision state 610, if the speed is above the threshold speed, the method 600 may move to a decision state 614.

In the decision state 614, the processor 124 may determine whether one or more of the vehicles 30a-30n are determined to be potential target vehicles (e.g., as shown in connection with FIG. 8). If one of the vehicles 30a-30n is determined to be a potential target vehicle, the method 600 may move to state 616. In state 616, the processor 124 may increase the likelihood of selecting a vehicle determined to be a potential target vehicle (or decrease the likelihood of selecting other vehicles that are not potential target vehicles). Next, the method 600 may move to a decision state 618. In decision state 612, if the vehicle is not a potential target vehicle, the method 600 may move to decision state 618.

In decision state 618, processor 124 may determine whether one or more of vehicles 30a-30n has a high speed (e.g., based on speed information 310a-310 n). For example, the speed information 310a-310n for the vehicles 30a-30n may be compared, and the highest speed may be preferred (e.g., relative to the selected vehicles 320a-320 b). If one of the vehicles 30a-30n has a high speed (or highest speed), the method 600 may move to state 620. In state 620, the processor 124 may increase the likelihood of selecting a vehicle determined to have a high speed (or decrease the likelihood of selecting other vehicles that may not have a high speed). Next, the method 600 may move to the decision state 622. In decision state 618, if the vehicle does not have a high speed, the method 600 may move to decision state 622.

In the decision state 622, the processor 124 may determine whether one or more of the vehicles 30a-30n has a large distance from the host vehicle 320a and/or the target vehicle 320b (e.g., based on the velocity and position information 310a-310n and/or the low accuracy position information 170 a). For example, the low accuracy position information 170a of the vehicles 30a-30n may be compared and the maximum relative distance from the selected vehicle 320a-320b may be preferred. If one of the vehicles 30a-30n has a large distance (or maximum relative distance), the method 600 may move to state 624. In state 624, the processor 124 may increase the likelihood of selecting a vehicle determined to have a large distance (or decrease the likelihood of selecting other vehicles that may not have a large distance). Next, method 600 may move to decision state 626. In decision state 622, if the vehicle does not have a large distance, the method 600 may move to decision state 626.

In the decision state 626, the processor 124 may determine whether one or more of the vehicles 30a-30n form corners of a rectangular shape (e.g., as shown in connection with lines 402a-402d of fig. 6) with respect to the host vehicle 320a and/or the target vehicle 320 b. For example, the low accuracy position information 170a of the vehicles 30a-30n may be checked against the selected vehicles 320a-320b to determine if a rectangular shape may be formed. If one of the vehicles 30a-30n forms a corner of a rectangle, the method 600 may move to state 628. In state 628, the processor 124 may increase the likelihood of selecting a vehicle determined to form a corner of the rectangular shape (or decrease the likelihood of selecting other vehicles that may not form the rectangular shape). Next, the method 600 may move to the decision state 630. In decision state 626, if the vehicle does not form a corner of a rectangle, the method 600 may move to decision state 630.

In state 630, processor 124 may apply a weight to each factor (e.g., compare the weight values of the applications corresponding to the checks and/or threshold tests). For example, the weight of each of the vehicles 30a-30n may be examined to determine the most appropriate combination for selecting the criteria. Next, in state 632, the processor 124 may select two of the vehicles 30a-30n as the supplemental vehicles 320c-320d (e.g., based on the applied weights). Next, method 600 may move to state 634. State 634 may end method 600.

The functions performed by the diagrams of fig. 7-9 may be implemented using one or more of the following: conventional general purpose processors, digital computers, microprocessors, microcontrollers, RISC (reduced instruction set computer) processors, CISC (complex instruction set computer) processors, SIMD (single instruction multiple data) processors, signal processors, Central Processing Units (CPUs), Arithmetic Logic Units (ALUs), Video Digital Signal Processors (VDSPs), and/or similar computing machines programmed according to the teachings of the present specification, as will be apparent to those skilled in the relevant art. Appropriate software, firmware, code, routines, instructions, opcodes, microcode, and/or program modules may be readily prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the relevant art. The software is typically executed from a medium or several media by one or more processors of a machine implementation.

The invention may also be implemented by making ASICs (application specific integrated circuits), platform ASICs, FPGAs (field programmable gate arrays), PLDs (programmable logic devices), CPLDs (complex programmable logic devices), offshore gates, RFICs (radio frequency integrated circuits), ASSPs (application specific standard products), one or more monolithic integrated circuits, one or more chips or dies arranged as flip-chip modules and/or multi-chip modules, or by interconnecting an appropriate network of conventional component circuits (as described herein), modifications of which will be apparent to those skilled in the art.

Accordingly, the present invention may also include a computer product which may be one or more storage media and/or one or more transmission media that include instructions which may be used to program a machine to perform one or more processes or methods in accordance with the present invention. Execution of the instructions contained in the computer product by a machine and the operation of surrounding circuitry may transform input data into one or more files on a storage medium and/or one or more output signals, such as audio and/or visual depictions, representative of physical objects or substances. The storage medium may include, but is not limited to, any type of disk including floppy disks, hard disks, magnetic disks, optical disks, CD-ROMs, DVDs, and magneto-optical disks, and circuits such as ROMs (read only memories), RAMs (random access memories), EPROMs (erasable programmable ROMs), EEPROMs (electrically erasable programmable ROMs), UVPROMs (ultraviolet erasable programmable ROMs), flash memory, magnetic cards, optical cards, and/or any type of media suitable for storing electronic instructions.

Elements of the invention may form part or all of one or more devices, units, components, systems, machines and/or apparatuses. These devices may include, but are not limited to, servers, workstations, storage array controllers, storage systems, personal computers, laptop computers, notebook computers, palmtop computers, cloud servers, personal digital assistants, portable electronic devices, battery powered devices, set top boxes, encoders, decoders, transcoders, compressors, decompressors, preprocessors, postprocessors, transmitters, receivers, transceivers, cryptographic circuits, cellular telephones, digital cameras, positioning and/or navigation systems, medical equipment, heads-up displays, wireless devices, audio recording, audio storage and/or audio playback devices, video recording, video storage and/or video playback devices, gaming platforms, peripheral devices, and/or multichip modules. One skilled in the relevant art will appreciate that elements of the invention may be implemented in other types of devices to meet the criteria of a particular application.

While the invention has been particularly shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the invention.

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:空心管形式的抛射体,内部有隆起处,或有凹陷处,或隆起和凹陷并存,通过中间流通的空气使得抛射体旋转

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!