At least some embodiments disclosed herein relate to autonomous vehicle technology and more particularly, but not limited to, black box data recorders for use in autonomous vehicles.
Autonomous driving vehicles (ADV) typically include many sensors to assist in the autonomous/driverless vehicle. In the case of an accident, collision, or near collision involving the vehicle, there may be a benefit from reviewing the sensor data recorded just prior to and/or during the accident to assist in potentially determining the cause of the accident, and/or whether there may have been a vehicle failure.
In the event of a power loss during the accident, vehicle sensor data stored in a volatile memory may be lost. Conversely, using non-volatile memory to store the vehicle sensor data can be quite expensive. In addition, the sensor data collected from an ADV is most useful when the data is uncompressed. However, uncompressed sensor data can require significant storage.
The embodiments are illustrated by way of example and are not limited in the figures of the accompanying drawings in which like references indicate similar elements.
At least some embodiments disclosed herein provide an improved black box data recorder for use with autonomous driving vehicles (AVD). Automakers typically want to record raw vehicle sensor data of the autonomous vehicle at all times. However, extended recordings of raw data can be viewed as prohibitively expensive. Embodiments described herein provide an improved solution for recording vehicle sensor data generated immediately prior to and possibly during an event (e.g., collision or near collision involving the respective vehicle or vehicle nearby), while also providing a solution for recording the vehicle sensor data in the event of a power loss.
In one embodiment, within a vehicle two cyclic buffers are provided to record vehicle sensors data. A first cyclic buffer records raw vehicle sensor data on a volatile memory, while a second cyclic buffer records the same vehicle sensor data, as compressed data, on a non-volatile memory (NVM). In a case of a collision or near collision, data in both buffers is available for retrieval. The data in both buffers may also be flushed into a non-volatile (NV) storage for retrieval. If a power interruption occurs, the raw vehicle sensor data held in the volatile memory of the first cyclic buffer could be lost and only the compressed form of the vehicle sensor data from the NVM second cyclic buffer will likely survive and be available for retrieval from the second NV buffer or in the NV storage.
Autonomous vehicle 102 may incorporate different types of vehicle sensors, including a tire pressure monitoring system, inertia sensors, one or more cameras or similar technology such as radar, lidar, laser, sonar, to give a few examples. Vehicle control and operation may be provided by a steering and braking electronic control unit 124 that may also interface with other sensors and the autonomous vehicle operating system, as part of autonomous vehicle operation. The vehicle may also incorporate an electronic control unit for the engine and transmission 130, which may interface with the vehicle access system, the steering and braking electronic control unit 124, and the autonomous vehicle operating system. A controller 134 may be in communication with the on-board sensors and electronic control systems. Controller 134 is also in communication with a black box recorder that records the data of operation and/or vehicle sensor data, as is described in more detail below.
The received vehicle sensor data 202 is initially held in a first cyclic buffer 206, as raw vehicle data. In one embodiment, the first cyclic buffer comprises a volatile memory. In one embodiment, the volatile memory of the first cyclic buffer may be implemented as dynamic RAM (DRAM) which requires continual power in order to refresh or maintain the data in the memory.
In parallel, or essentially parallel, to buffer the raw vehicle sensor data in the first cyclic buffer 206, a copy of the raw sensor data is also provided to a data compression unit 204 and is then held in a second cyclic buffer 208, as compressed data. In one embodiment, the second cyclic buffer 208 is a non-volatile memory, which would not lose data in the event of a power cut-off or disruption. In one embodiment, the non-volatile memory is Solid State Drive (SSD) or Flash memory which maintains data even after power is removed from the system. The non-volatile memory may also operate as random access memory. Note, in one embodiment, the data compression unit may further include a data encryption module for encrypting the data to be recorded and buffered in the second cyclic buffer 208.
In one embodiment, the first buffer (206) (volatile) has a relatively bigger capacity (because of its low cost per memory unit), and is used to buffer a bigger, better version of the sensor data. The vehicle sensor data stored in the first buffer 206 is not compressed, or in an alternative embodiment could be compressed using a lossless compress or a less lossy compression—to preserve data quality.
The second buffer (208) (non-volatile) may have a relatively smaller capacity (because of its high cost per memory unit), and is used to buffer a smaller, lesser quality version of the vehicle sensor data (lossy compression or a more lossy compression) to reduce the size of the data.
Note, the first and second cyclic buffers as referenced herein may also be circular buffers, circular queues, or ring buffers that include a data structure that use a single, fixed-size buffer as if it were connected end-to-end. The buffer structure readily buffers data streams. The reference to cyclic buffers as used herein references how the buffers are used. For example, the cyclic buffers are designed to be full as new data overwrites old data in a cyclic manner, ensuring that the buffer holds the latest set of data. In one embodiment, the first and/or the second cyclic buffers record up to 30 seconds of most recent vehicle sensor data collected. The actual size of the first and/or the second cyclic buffers can vary within the scope of the invention. The actual number of cyclic buffers provided within the improved black box recorder may also vary within the scope of the invention.
In response to an event occurring, such as collision, or near collision, involving the ADV, buffering of the vehicle sensor data is suspended, at least temporarily. Both first cyclic buffer 206 and second cyclic buffer 208 flush their respective contents into NV storage 214. In one embodiment, the event generates a signal to be sent to the cyclic buffers, causing the data to be flushed into the NVM storage.
If the accident is not too disruptive and there is no power interruption to the first cyclic buffer 206, the content of the first cyclic buffer 206 is able to be flushed to the NV storage 214. The data of the first cyclic buffer 206 is preferred as it is of better quality. However, if the accident is more involved and there is a power disruption to the first cyclic buffer 206, the content of 206 may be lost due to the loss of power and unable to be flushed. However, even in the event of a power loss, the compressed data stored in second cyclic buffer 208 (comprising of NVM) would still be retained and accessible via the second cyclic buffer 208 (e.g., in the case of a power interruption) or accessible via the storage NV 214, provided there was no power interruption and the data was flushed.
In one embodiment, the data flushed from the first cyclic buffer 206 is stored in a raw data storage area 216 of the NV storage 214, while compressed and possibly encrypted data flushed from the second cyclic buffer 206 is stored in a compressed data storage area 218 of the NV storage 214. The sensor vehicle data flushed into the NV storage can later be accessed to potentially assist in determining the cause of the event (e.g., analyze the logic failure of the ADV). In one embodiment, controller 134 is in communication with black box recorder and may be activated in response to the event to initiate and complete the data flushing described above.
In one embodiment, the flushing is not necessary. After the accident, the black box can be hooked up with a device, powered on for reading. It may read from the NV storage, force flushing, or read directly from the second cyclic buffer 208, and possible from the first cyclic buffer 206. And in some instances, it may be possible to dissemble the black box, and remove the media and read its contents for accident analysis.
While the raw data would be most useful in analyzing the logic failure of the ADV, if a power failure occurred during the event (e.g., collision), the raw data recorded in the first cyclic buffer 206 (comprising of volatile memory), may be lost and not flushed into the NV storage 214. However, even in the event of a power loss, the compressed data stored in second cyclic buffer 208 (comprising of NVM) would still be retained and accessible via the second cyclic buffer 208 (e.g., in the case of a power interruption) or accessible via the storage NV 214, provided there was no power interruption and the data was flushed.
The event that results in a signal sent to the Black Box via the controller 134, may include a collision or near collision involving the ADV as detected by an inertia sensor, sudden activation of the braking system, failure of the engine or other components within the ADV, such as G-sensors (acceleration) activations, Automatic Emergency Breaking activation, a signal from the Advanced Driver Assistance Systems (ADAS) or autonomous computer that indicates an accident/collision or near collision.
In one embodiment, following the event (e.g., accident/collision or near collision), the recording of the vehicle sensor data is suspended to not overwrite the recorded vehicle sensor data relevant to the event. In another embodiment, the recording of the vehicle sensor data would continue following the event provided the data from the first cyclic buffer 206 was successfully flushed to the NV storage 214.
The first cyclic buffer holds the raw sensor data for a period of time as determined, in one embodiment, by the buffer capacity. As new raw sensor data is received, the oldest raw vehicle sensor data stored in the first cyclic buffer is overwritten with the new raw vehicle sensor data. In one example, the first cyclic buffer has the capacity to store 30 seconds of raw vehicle sensor data. However, other capacity sizes may be used to hold the raw vehicle sensor data within the first cyclic buffer. In one embodiment, the first cyclic buffer is a volatile memory, and if power to the first cyclic buffer is interrupted (e.g., in the case of a collision involving the ADV), the raw vehicle sensor data held in the first cyclic buffer would be lost.
Separate to holding/buffering the raw sensor data in the first cyclic buffer, the vehicle sensor data is also compressed (e.g., lossy compression) 308. In one embodiment, the compressed data may also be encrypted. After the vehicle sensor data has been compressed, the compressed vehicle sensor data is held in a second cyclic buffer 310.
As with the first cyclic buffer, the second cyclic buffer buffers/holds the compressed sensor data for a period of time as determined by the buffer capacity. As new compressed sensor data is received, the oldest compressed sensor data stored in the second cyclic buffer is overwritten with the new compressed sensor data. In one example, the second cyclic buffer has the capacity to store 30 seconds of sensor data. However, other amounts of raw data may be held by second cyclic buffer 208.
In one embodiment, the second cyclic buffer is a non-volatile memory, and if power to the second cyclic buffer is interrupted, the compressed vehicle sensor data held in the second cyclic buffer would not be lost.
At some point during operation, the autonomous vehicle may be involved in an event, such a collision or near collision 312. A near collision could be identified as sudden braking event, a sudden activation of the braking system, or a steering event resulting in a swerving of the vehicle, any of which would trigger a signal from one or more inertia sensors, or other types sensors detecting a measurement above a preset threshold.
Following the occurrence of the event, in one embodiment the recording of the vehicle sensor data is suspended, at least temporarily, to prevent the current data held in the first and second cyclic buffers from being overwritten 314. Provided no power disruption occurred, in response to the event, a signal is sent to the first cyclic buffer and the second cyclic buffer causing the first and second cyclic buffers to flush their contents to the non-volatile storage 316. The raw vehicle sensor data from the first cyclic buffer stored in the non-volatile storage can be accessed to assist in determining the cause of the event. In one embodiment, the vehicle sensor data from the second cyclic buffer may not be flushed to the NV storage.
If the event resulted in a power interruption, the raw vehicle sensor data held in the first cyclic buffer could be lost and not flushed to the non-volatile storage 316. However, even if the event resulted in a power disruption to the second cyclic buffer, which comprises of non-volatile memory, the compressed vehicle sensor data would not be lost and could be accessed post event directly from the second cyclic buffer, or accessed from the NV storage, if the raw vehicle sensor data has been flushed to the non-volatile storage.
In alternative embodiments, the present invention can be implemented on vehicles that are driven by a human operator without autonomous driving support, but still include various vehicle sensors.
An example of non-volatile memory devices as referenced herein, includes a negative-and (NAND) type flash memory. Each of the non-volatile buffers or storage devices can include one or more arrays of memory cells such as single level cells (SLCs) or multi-level cells (MLCs) (e.g., triple level cells (TLCs) or quad-level cells (QLCs)). In some implementations, a particular memory device can include both an SLC portion and a MLC portion of memory cells. Each of the memory cells can store bits of data (e.g., data blocks). Although non-volatile memory devices such as NAND type flash memory are described, the buffers can be based on any other type of memory such as a volatile memory, including but not limited to, random access memory (RAM), read-only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change memory (PCM), magneto random access memory (MRAM), negative-or (NOR) flash memory, electrically erasable programmable read-only memory (EEPROM), and a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many Flash-based memory, cross point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. Furthermore, the memory cells of the buffers, storage devices, and memory devices can be grouped as memory pages or data blocks that can refer to a unit of the memory device used to store data.
The functions and operations as described herein to provide the improved black box recorder for an autonomous driving vehicle can be implemented as a set of instructions to be executed by a data processing system to perform various methods. The instructions could be stored on a non-transitory machine readable medium as software and data which when executed by a data processing system causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, SSD, Flash memory, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer-to-peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer-to-peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine readable medium in entirety at a particular instance of time.
In general, a non-transient machine readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).
The functions and operations as described herein can also be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA). Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.
The description and drawings are illustrative and are not to be construed as limiting. The present disclosure is illustrative of inventive features to enable a person skilled in the art to make and use the techniques.
Reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, and are not necessarily all referring to separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by one embodiment and not by others. Similarly, various requirements are described which may be requirements for one embodiment but not other embodiments. Unless excluded by explicit description and/or apparent incompatibility, any combination of various features described in this description is also included here. For example, the features described above in connection with “in one embodiment” or “in some embodiments” can be all optionally included in one implementation, except where the dependency of certain features on other features, as apparent from the description, may limit the options of excluding selected features from the implementation, and incompatibility of certain features with other features, as apparent from the description, may limit the options of including selected features together in the implementation.
In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
The present application is a continuation application of U.S. patent application Ser. No. 17/100,623, filed Nov. 20, 2020, issued as U.S. Pat. No. 11,676,431 on Jun. 13, 2023, which is a continuation application of U.S. patent application Ser. No. 15/923,820, filed Mar. 16, 2018, issued as U.S. Pat. No. 10,846,955 on Nov. 24, 2020, entitled “BLACK BOX DATA RECORDER FOR AUTONOMOUS DRIVING VEHICLE,” the disclosure of which application is hereby incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5546579 | Josten et al. | Aug 1996 | A |
5815093 | Kikinis | Sep 1998 | A |
5936315 | Lais | Aug 1999 | A |
5956703 | Turner et al. | Sep 1999 | A |
6073063 | Leong Ong et al. | Jun 2000 | A |
6345219 | Klemens | Feb 2002 | B1 |
6629030 | Klausner et al. | Sep 2003 | B2 |
7190882 | Gammenthaler | Mar 2007 | B2 |
7383389 | Bumbulis | Jun 2008 | B1 |
7653778 | Merry, Jr. et al. | Jan 2010 | B2 |
7711461 | Yokogawa | May 2010 | B2 |
8010248 | Sano | Aug 2011 | B2 |
8060718 | Freitas et al. | Nov 2011 | B2 |
8090495 | Fink et al. | Jan 2012 | B2 |
8122185 | Merry, Jr. et al. | Feb 2012 | B2 |
8160764 | Choi et al. | Apr 2012 | B2 |
8312207 | Merry, Jr. et al. | Nov 2012 | B2 |
8321084 | Yamashita et al. | Nov 2012 | B2 |
8452481 | Ishiko et al. | May 2013 | B2 |
8527778 | Kim | Sep 2013 | B2 |
8531793 | Bandic et al. | Sep 2013 | B2 |
8601202 | Melcher et al. | Dec 2013 | B1 |
8688915 | Daly et al. | Apr 2014 | B2 |
8725312 | Mori et al. | May 2014 | B2 |
8793431 | Bandic et al. | Jul 2014 | B2 |
8930625 | Daly et al. | Jan 2015 | B2 |
8930668 | Engle et al. | Jan 2015 | B2 |
8959280 | Yu et al. | Feb 2015 | B2 |
8990874 | Huang | Mar 2015 | B2 |
9298603 | Schuette | Mar 2016 | B2 |
9365162 | Nix | Jun 2016 | B2 |
9802541 | Nix | Oct 2017 | B2 |
10102696 | Iwaasa | Oct 2018 | B2 |
10214213 | Kojima | Feb 2019 | B2 |
10229547 | Isozaki et al. | Mar 2019 | B2 |
10248627 | Yang et al. | Apr 2019 | B2 |
10308181 | Nix | Jun 2019 | B2 |
10318495 | Talagala et al. | Jun 2019 | B2 |
10365835 | Monteleone et al. | Jul 2019 | B2 |
10521976 | Shin et al. | Dec 2019 | B2 |
10614639 | Iwaasa | Apr 2020 | B2 |
10846955 | Golov | Nov 2020 | B2 |
11676431 | Golov | Jun 2023 | B2 |
20020107619 | Klausner et al. | Aug 2002 | A1 |
20020131768 | Gammenthaler | Sep 2002 | A1 |
20040113763 | Bendavid et al. | Jun 2004 | A1 |
20040263647 | Yamaguchi | Dec 2004 | A1 |
20060261931 | Cheng | Nov 2006 | A1 |
20070132773 | Plante | Jun 2007 | A1 |
20070150644 | Pinto et al. | Jun 2007 | A1 |
20070208904 | Hsieh et al. | Sep 2007 | A1 |
20070260811 | Merry et al. | Nov 2007 | A1 |
20070294490 | Freitas et al. | Dec 2007 | A1 |
20080187163 | Goldstein et al. | Aug 2008 | A1 |
20080208533 | Yokogawa | Aug 2008 | A1 |
20080221751 | Fink et al. | Sep 2008 | A1 |
20080255723 | Sano | Oct 2008 | A1 |
20090105902 | Choi et al. | Apr 2009 | A1 |
20090240392 | Yamashita et al. | Sep 2009 | A1 |
20100030540 | Choi et al. | Feb 2010 | A1 |
20100223423 | Sinclair et al. | Sep 2010 | A1 |
20100250061 | Toyofuku et al. | Sep 2010 | A1 |
20100332072 | Ishiko et al. | Dec 2010 | A1 |
20110087893 | Kim | Apr 2011 | A1 |
20110112719 | Marumoto et al. | May 2011 | A1 |
20110131364 | George Gordon | Jun 2011 | A1 |
20120014013 | Bandic et al. | Jan 2012 | A1 |
20120198335 | Huang | Aug 2012 | A1 |
20120210021 | Flynn et al. | Aug 2012 | A1 |
20120254266 | Printezis et al. | Oct 2012 | A1 |
20120254267 | Printezis et al. | Oct 2012 | A1 |
20120284587 | Yu et al. | Nov 2012 | A1 |
20130036282 | Kawachiya et al. | Feb 2013 | A1 |
20130041522 | Mori et al. | Feb 2013 | A1 |
20130124787 | Schuette | May 2013 | A1 |
20130151779 | Daly et al. | Jun 2013 | A1 |
20130246703 | Bandic et al. | Sep 2013 | A1 |
20140089264 | Talagala et al. | Mar 2014 | A1 |
20140136809 | Engle et al. | May 2014 | A1 |
20140320655 | Kim | Oct 2014 | A1 |
20140320659 | Kaneyoshi | Oct 2014 | A1 |
20150347038 | Monteleone et al. | Dec 2015 | A1 |
20170021835 | Kojima | Jan 2017 | A1 |
20170031906 | Yang et al. | Feb 2017 | A1 |
20170148237 | Iwaasa | May 2017 | A1 |
20170278320 | Isozaki et al. | Sep 2017 | A1 |
20180009330 | Ricci | Jan 2018 | A1 |
20180027680 | Kumar et al. | Jan 2018 | A1 |
20190004960 | Wang et al. | Jan 2019 | A1 |
20190080526 | Shin et al. | Mar 2019 | A1 |
20190163387 | Jin et al. | May 2019 | A1 |
20190171389 | Muthiah et al. | Jun 2019 | A1 |
20190197799 | Zwissler et al. | Jun 2019 | A1 |
20190287319 | Golov | Sep 2019 | A1 |
20190299860 | Nix | Oct 2019 | A1 |
20190302766 | Mondello et al. | Oct 2019 | A1 |
20190354838 | Zhang et al. | Nov 2019 | A1 |
20190371087 | Shin et al. | Dec 2019 | A1 |
20190385383 | Sato | Dec 2019 | A1 |
20200111270 | Sato | Apr 2020 | A1 |
20200118359 | Sato | Apr 2020 | A1 |
20200174677 | Golov | Jun 2020 | A1 |
20200250901 | Golov | Aug 2020 | A1 |
20200250902 | Golov | Aug 2020 | A1 |
20210090356 | Golov | Mar 2021 | A1 |
Number | Date | Country |
---|---|---|
1892705 | Jan 2007 | CN |
101414388 | Apr 2009 | CN |
102956045 | Mar 2013 | CN |
103514645 | Jan 2014 | CN |
104658056 | May 2015 | CN |
205003749 | Jan 2016 | CN |
2000-128030 | May 2000 | JP |
2002118643 | Apr 2002 | JP |
2002293271 | Oct 2002 | JP |
2006-127206 | May 2006 | JP |
2007-280407 | Oct 2007 | JP |
10-2007-0074388 | Jul 2007 | KR |
20100057253 | May 2010 | KR |
10-1810539 | Dec 2017 | KR |
2008007878 | Jan 2018 | WO |
2019016114 | Jan 2019 | WO |
Entry |
---|
Bin Yang, Ming Liang, Raquel Urtasun, “HDNET: Exploiting HD Maps for 3D Object Detection”, Proceedings of the 2nd Conference on Robot Learning, PMLR 87:146-155, 2018. |
Extended European Search Report, EP19766799.1, mailed on May 7, 2021. |
Harsha Vardhan, “HD Maps: New age maps powering autonomous vehicles”, https://www.geospatialworld.net/article/nd-maps-autonomous-vehicles/, Sep. 22, 2017. |
International Search Report and Written Opinion, PCT/US2019/019562, mailed Jun. 3, 2019. |
International Search Report and Written Opinion, PCT/US2019/019651, mailed Jun. 7, 2019. |
International Search Report and Written Opinion, PCT/US2020/015877, mailed May 27, 2020. |
Number | Date | Country | |
---|---|---|---|
20230386277 A1 | Nov 2023 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17100623 | Nov 2020 | US |
Child | 18326984 | US | |
Parent | 15923820 | Mar 2018 | US |
Child | 17100623 | US |