This application generally relates to testing automated vehicles. In particular, the application generally relates to systems and methods for tracking and configuring parameters, such as abort thresholds, of closed-course and open-course testing operations.
For safety reasons, automated vehicle developers and manufacturers must monitor a distance, time-to-collision, and other kinematics when performing closed-course test scenarios. These closed-course test scenarios typically involve an automated vehicle (sometimes referred to as an “ego” or “ego vehicle”) interacting with one of more traffic vehicles performing various driving behaviors, such as cut-ins, merges, lane changes, and other actions.
In certain circumstances, the automated vehicle must abort the test scenario (sometimes referred to as “bailing” or a “bail”). The automated vehicle monitors various kinematic measurements to determine whether those measurements satisfy a bail threshold. If a certain bail threshold based on headway or time-to-collision is satisfied, then the automated vehicle safely aborts to avoid a potential collision.
A conventional approach to testing employed handheld rangefinders that generate and track kinematic measurements for the automated vehicle. Rangefinders, however, may be insufficient, inefficient, and sometimes ineffective. Problems with rangefinders may include: difficulty of using the rangefinder while also maintaining situational awareness; insufficient accuracy; and inability to perform real time or near-real time calculations of bail thresholds.
Another approach employs the onboard sensors of the automated vehicle for determining kinematics and evaluating bail thresholds. The existing sensors, however, may be insufficient. For instance, the existing sensors often produce insufficient accuracy of detected objects and related information about those objects, such as inaccurate estimated velocities for other traffic vehicles.
What is needed is an improved means for capturing and generating accurate kinematic information in real time or near-real time. What is further needed is an improved means of assessing kinematic information against bail thresholds in real time or near-real time.
Some prior approaches used sensors of an ego vehicle to detect the relative distance, speed, and acceleration of a traffic vehicle and calculate a time-to-collision value to automatically actuate brakes and prevent collisions (e.g., Automatic Emergency Braking). However, these solutions generally used sensors, such as radar or cameras, installed on the ego vehicle, and therefore may have lower accuracy than high-precision GPS. Moreover, performance can be impacted by sensor calibration or environmental conditions. Additionally, these conventional solutions are not intended for testing, and do not provide a user interface that displays the relevant kinematic information to a vehicle operator for testing, development, or operational purposes.
Embodiments described herein address the shortcomings mentioned above and may provide additional or alternative benefits as well. Embodiments described herein include hardware and software components hosting and executing a multi-vehicle kinematics measurement program (sometimes referred to as a “multi-vehicle tool”) that allows a test administrator to configure and track the test scenarios applied to a particular automated vehicle (sometimes referred to as an “ego” or “ego vehicle”). Sensor devices mounted to the ego vehicle and other traffic vehicles generate and forward sensor data to a computing system hosting and executing the multi-vehicle tool. The sensors of the ego and the traffic vehicles include hardware and software components of an Inertial Navigation System (INS) device and Global Navigation Satellite System (GNSS) device. The ego vehicle and traffic vehicles include a wireless network interface device (sometimes referred to as a “wireless link” or “wireless device”), which couples to a controller (or other processor device) or to the sensors and allows the ego vehicle and traffic vehicles to communicate sensor data to the multi-vehicle tool system.
A client device operated by a developer interacts with a user interface. The multi-vehicle tool includes processes for generating, updating, and presenting the user interface based upon the sensor data or kinematic data received from the sensor devices of the vehicles. Components of the multi-vehicle tool may be locally installed on, and executed by, a client device. Alternatively, the multi-vehicle tool includes a web-based application (“web-app”) hosted by a server and accessed by the client device through a webpage using browser software (“browser”). The INS calculates, for example, a position and velocity of each vehicle and transmits the measurements over the wireless network to the client device or server. The multi-vehicle tool calculates kinematics data, such as distance, direction, headway, bail threshold, and velocity differences between the ego and each traffic vehicle. The user interface displays the various types of information, offering a visual representation of when a configurable bail threshold or a headway limit is reached. The test scenario can be safely aborted by the developer sending instructions to the autonomy software of the automated vehicle or by the automated vehicle, thereby protecting against collisions.
In an embodiment, a method comprises receiving, by a computer, location data from an automated vehicle and a traffic vehicle; determining, by the computer, a first location for the automated vehicle and a second location for the automated vehicle based upon the location data; determining, by the computer, a position of the traffic vehicle relative to the automated vehicle using the location data; generating, by the computer, kinematics data using the location data, first location, the second, and the position of the traffic vehicle; and in response to the computer determining that a value of the kinematics data satisfies a bail threshold, generating, by the computer, a bail notification for the automated vehicle.
In another embodiment, a system comprises a non-transitory machine-readable storage configured to store machine-readable software instructions and one or more bail conditions; and a computer comprising a processor coupled to the machine-readable storage. The computer is configured to receive location data from an automated vehicle and a traffic vehicle; determine a first location for the automated vehicle and a second location for the automated vehicle based upon the location data; determine a position of the traffic vehicle relative to the automated vehicle using the location data; generate kinematics data using the location data, first location, the second, and the position of the traffic vehicle; and in response to determining that a value of the kinematics data satisfies a bail threshold, generate a bail notification for the automated vehicle.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and together with the description, serve to explain the principles of the disclosed embodiments.
Reference will now be made to the illustrative embodiments illustrated in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Alterations and further modifications of the inventive features illustrated here, and additional applications of the principles of the inventions as illustrated here, which would occur to a person skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention.
The data routing device 109 includes any computing device comprising hardware and software components capable of directing data packets over the network 110. In some cases, each vehicle 101, 103 includes an internal network allowing devices of the particular vehicle 101, 103 to communicate with one another. The data routing device 109 routes the data packets generated by the location sensor 105 or the computing device 102, from a source device to a destination device. Non-limiting examples of the data routing device 109 includes a switch, a router, and the like.
The location sensor 105 includes hardware and software components of an INS/GNSS device for generating various types of geolocation or position information about the particular vehicle 101, 103. The location sensor 105 communicates with one or more satellite navigation systems via the satellite interface 107 to gather and generate location information. In some cases, the location sensor 105 communicates the location information to the computing device 102 via the internal or external network 110, as directed by the routing device 109. In some cases, the location sensor 105 communicates the location information to another vehicle 101, 103 via the networks 110, as directed by the data routing devices 109.
The computing device 102 may be any computing device comprising non-transitory machine-readable storage for storing and executing executable instructions of the software programming of the multi-vehicle tool. In some implementations, the multi-vehicle tool accesses stored configurations (e.g., bail conditions) and other types of information stored in a database (not shown) or other non-transitory machine-readable storage, such as the memory storage of a backend storage or client device.
In operation, the computing device 102 executes the software of the multi-vehicle tool, which ingests the various types of information from the location sensors 105 and, in some cases, other types of sensors. In some embodiments, the computing device 102 includes a client device that locally executes some or all of the processes of the multi-vehicle tool. Additionally or alternatively, in some embodiments, the computing device 102 includes a backend server that hosts and executes some or all of the processes of the multi-vehicle tool, and the client device executes a browser that accesses and interacts with the multi-vehicle tool.
The multi-vehicle tool generates and manages a user interface that displays various types of information about the ego 101 and traffic vehicles 103 as the testing scenario progresses. In addition, the multi-vehicle tool generates various types of kinematic measurements extrapolated from the location information received from the vehicles 101, 103. The user interface presents the location information received from the location sensors 105 and the kinematic data generated by multi-vehicle tool. The location sensor 105 of each vehicle 101, 103 calculates a position and velocity of the vehicle 101, 103 and transmits the measurements over the wireless network 110 to the computing device 102. Using the data received from the vehicles 101, 103, the computing device 102 (executing the multi-vehicle tool) calculates the kinematics data, such as distance, direction, headway, bail threshold, and velocity differences between the ego 101 and each traffic vehicle 103. The multi-vehicle tool updates the user interface to display the various types of information, offering a developer a visual representation of when a user-configurable bail threshold or a headway limit is reached.
In some embodiments, the developer sends an abort instruction to the ego 101 (and/or traffic vehicle 103) instructing the driving autonomy software of the ego 101 to halt operations and safely abort the testing scenario. In some embodiments, the multi-vehicle tool detects that the kinematics data satisfies the bail threshold or headway limitation, and automatically pushes the abort instruction to the driving software of the ego 101 (and/or traffic vehicle 103) to halt operations and abort the testing scenario.
As shown in
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc., may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.
When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module, which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.
The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.
While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.