CN113748418B - System and method for loading and tracking maps on a vehicle - Google Patents

System and method for loading and tracking maps on a vehicle Download PDF

Info

Publication number
CN113748418B
CN113748418B CN201880100669.4A CN201880100669A CN113748418B CN 113748418 B CN113748418 B CN 113748418B CN 201880100669 A CN201880100669 A CN 201880100669A CN 113748418 B CN113748418 B CN 113748418B
Authority
CN
China
Prior art keywords
map data
boundary
vehicle
updated
geographic location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880100669.4A
Other languages
Chinese (zh)
Other versions
CN113748418A (en
Inventor
侯庭波
项国民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Voyager Technology Co Ltd
Original Assignee
Beijing Voyager Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Voyager Technology Co Ltd filed Critical Beijing Voyager Technology Co Ltd
Publication of CN113748418A publication Critical patent/CN113748418A/en
Application granted granted Critical
Publication of CN113748418B publication Critical patent/CN113748418B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)
  • Traffic Control Systems (AREA)

Abstract

A method and system for loading and tracking maps on a moving vehicle. A method includes obtaining a geographic location of a system on a vehicle, obtaining boundaries corresponding to contiguous geographic boundary areas surrounding the geographic location of the system, loading map data comprising a plurality of map data blocks, each map data block comprising a portion of the geographic boundary area, the plurality of map data blocks comprising a center block having points corresponding to the system location and surrounding map data blocks. The method further includes obtaining an updated system location and if the updated geographic location is outside the boundary region, obtaining an updated boundary centered on the updated geographic location and loading map data based on the updated boundary such that the resulting loaded map data includes a center block intersecting the geographic boundary region and map data blocks surrounding the center block.

Description

System and method for loading and tracking maps on a vehicle
Technical Field
The present disclosure relates generally to processing map data in a vehicle, and in particular to dynamically loading map data into a computer system memory on the vehicle for controlling the vehicle.
Background
Current solutions for autopilot, providing driver assistance features, and/or sharing travel services rely heavily on data-rich maps, which may be referred to as high-resolution (HD) maps. These high-resolution (HD) maps may have extremely high accuracy, including centimeter-level geographic and object data, to provide information to the vehicle and/or driver that can be used to generate precise control instructions (along with real-time sensor data) about how to maneuver in real-world space. Due to its high resolution (HD) and detailed information, the high resolution (HD) map size may be very large. When many high-resolution (HD) maps are required to travel a distance to accurately provide map information on a route, it may occur that a large number of high-resolution (HD) maps are continuously loaded for use by a vehicle. Due to bandwidth and security issues related to the continuous transfer of large amounts of data to mobile systems over current wireless networks (e.g. 4G networks), it is advantageous to have a security system that: a large high-resolution (HD) map can be provided independent of the transmission capabilities of the wireless network in order to receive the high-resolution (HD) map when the vehicle is immediately needed.
Disclosure of Invention
The systems, methods, and devices of the present invention each have several aspects (features), one of which is not solely responsible for its desirable attributes. Without limiting the scope of the invention, which is expressed by the claims that follow, certain aspects are described below.
One innovative aspect includes a method of loading vehicle information (e.g., high Definition (HD) map data) that may be implemented on a device of a mobile vehicle having at least one processor and a memory component coupled to the processor. In one example, the method includes: obtaining, by the at least one processor, a geographic location of the device, obtaining a boundary corresponding to a contiguous geographic boundary region around the geographic location of the device, loading map data comprising a plurality of map data blocks from the storage component into a memory of the device, each of the plurality of map data blocks comprising a portion of the geographic boundary region, the geographic boundary region corresponding to a portion of the loaded map data, wherein the plurality of map data blocks comprise a center block having points corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the center block and sized such that the geographic boundary region intersects the surrounding map data blocks. The method may further comprise: obtaining, by at least one processor, an updated geographic location of a device while the vehicle is in motion, determining a location of the updated geographic location relative to the boundary region, and in response to determining that the updated geographic location is outside the boundary region, obtaining a corresponding updated boundary for an updated geographic region centered on the updated geographic location, and loading map data from the storage component into a memory of the device such that the finally loaded map data includes: a center block of points corresponding to the updated geographic location of the device, and a map data block surrounding the center block intersecting the geographic boundary region.
The methods described herein may have one or more other aspects (features) of various method embodiments, some of which are referred to herein. However, as will be appreciated by those skilled in the art, various embodiments of such methods may have additional aspects or fewer aspects, and the various aspects disclosed herein may be used together in various embodiments, even if not specifically illustrated or described as in a certain embodiment. For example, in one aspect, the surrounding map data blocks are adjacent to the center block. In another aspect, the map data block includes altitude information. In another aspect, the map data block includes concentration information. In another aspect, the geographic boundary area corresponds to an area comprising the center block and at least a portion of the map data block that adjoins the center block. In another aspect, the boundary is rectangular. In another aspect, each map data block includes a width dimension and a length dimension, and the boundary includes a width dimension and a length dimension, the boundary width dimension being between one and three times the width dimension of each map data block, and the boundary length dimension being between one and three times the length dimension of each map data block.
In another aspect of the method, the loaded map data includes 9 map data blocks. In another aspect, each of the 9 map data blocks has an equal size. In another aspect, the 9 map data blocks include one center map data block and eight surrounding map data blocks. In another aspect, the map data blocks include a center map data block and more than eight surrounding map data blocks. In another aspect, the vehicle is an autonomous vehicle. In another aspect, the boundary may be non-rectangular. For example, the boundary may be wider (i.e., contain more areas) over an area representing the direction in which the vehicle is moving, the direction in which the vehicle is next to move, or the direction in which the vehicle is expected to move. In another aspect, the size of the boundary and the updated boundary are predetermined. In another aspect, obtaining the updated boundary includes dynamically determining the updated boundary. In another aspect, dynamically determining the updated boundary includes obtaining a speed of the moving vehicle and determining a size of the boundary based on the speed. In another aspect, dynamically determining the updated boundary includes obtaining a speed of the moving vehicle and determining a shape of the boundary based on the speed. Some of these methods may further include determining a direction of movement that indicates a direction in which the vehicle is moving, wherein the boundary extends farther in the direction of movement from the updated geographic location of the device than the boundary extends in other directions. A variety of storage devices suitable for storing and transmitting large high-resolution (HD) maps may be used, and in some embodiments may include an optical disk drive or a magnetic hard disk drive. Other types of hard disk drives may also be used. In some embodiments, the storage device may include a non-removable storage device (e.g., RAM or DRAM).
In another aspect of the method, each map data block represents an area having a width dimension less than 1000 meters and a length dimension less than 1000 meters. In another aspect, each map data block represents an area having a width dimension less than 500 meters and a length dimension less than 500 meters. Other dimensions of map data blocks are also contemplated, including each map data block representing an area having a width dimension of less than 250 meters and/or a length dimension of less than 250 meters, each map data block representing an area having a width dimension of about 200 meters and/or a length dimension of about 200 meters, or each map data block representing an area having a width dimension of less than 100 meters and a length dimension of less than 100 meters.
In another aspect, the boundary is sized such that loading map data based on the updated geographic location includes loading three blocks of map data in response to determining that the updated geographic location is outside the boundary region. In another aspect, the boundary is sized such that loading map data based on the updated geographic location includes loading five map data blocks in response to determining that the updated geographic location is outside the boundary region. In another aspect, obtaining the geographic location of the device includes receiving, by the at least one processor, information from a Global Positioning System (GPS). In another aspect, obtaining the geographic location of the device includes receiving geographic location information from at least one transmitter at a fixed location. In another aspect, obtaining the geographic location of the device includes sensing at least one fixed location indicator using a sensing system on the vehicle and determining the geographic location based on the sensed at least one fixed location indicator.
Another innovative aspect includes a system including a storage system configured to store map data including a plurality of map data blocks; at least one processor coupled to the memory component, the at least one processor including a set of instructions and being coupled to the storage system, the at least one processor being configured to, when the set of instructions is executed, cause the system to obtain a location of the device, obtain a boundary corresponding to a contiguous geographic boundary region around a geographic location of the device, load map data from the storage component into the memory of the device, the map data including a plurality of map data blocks, each of the plurality of map data blocks including a portion of the geographic boundary region and the geographic boundary region corresponding to a portion of the loaded map data, wherein the plurality of map data blocks includes a center block having points corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the center block and sized such that the geographic boundary region intersects the surrounding map data blocks. The system is further configured to obtain an updated geographic location of the device (e.g., when the device is in motion on a vehicle), determine a location of the updated geographic location relative to the boundary region, and in response to determining that the updated geographic location is outside the boundary region, obtain an updated boundary centered on the updated geographic location, and load map data from the storage component to a memory of the device based on the updated boundary. The system may also include a vehicle.
Aspects disclosed above in connection with the methods can also be implemented on the system. For example, the memory component may contain instructions that configure the at least one processor to perform actions related to loading map data corresponding to the method description.
Another innovative aspect includes a non-transitory computer-readable medium storing instructions that, when executed by a computing device, cause the computing device to obtain a geographic location of the device, obtain a boundary corresponding to a contiguous geographic boundary region around the geographic location of the device, load map data from the storage component into the memory of the device, the map data including a plurality of map data blocks, each of the plurality of map data blocks including a portion of the geographic boundary region and the geographic boundary region corresponding to a portion of the loaded map data, wherein the plurality of map data blocks includes a center block and surrounding map data blocks having points corresponding to the geographic location of the device, and wherein the boundary is centered on the center block and sized such that the geographic boundary region intersects the surrounding map data blocks and when the vehicle is in motion: an updated geographic location of the device is obtained, a location of the updated geographic location relative to the boundary region is determined, and in response to determining that the updated geographic location is outside the boundary region, an updated boundary centered on the updated geographic location is obtained, and map data is loaded from the storage component into a memory of the device based on the updated boundary.
Another innovative aspect includes a method, implementable on a device (or system) on a vehicle, for loading data from a storage system capable of storing large amounts of data into a memory component (e.g., working memory or other rapidly accessible memory) in communication with at least one processor. The apparatus includes at least one processor, a memory component, and a data memory component coupled to the processor. In one embodiment, the method comprises: the method includes obtaining, by the at least one processor, a location of the vehicle, determining, by the at least one processor, data retrieval information based on the vehicle location, the data retrieval information identifying a proximal portion of stored object geometry data within a distance of the vehicle, retrieving, by the at least one processor, the proximal portion of object geometry data from a data storage component, and storing, by the at least one processor, the proximal portion of object geometry data in the memory component.
Embodiments of the systems described herein may have one or more other aspects (features) of various system embodiments, some of which are set forth herein. However, as will be appreciated by those skilled in the art, various embodiments of such systems may have additional aspects or fewer aspects, and the various aspects disclosed herein may be used together in various embodiments, even if not specifically illustrated or described as in a certain embodiment. In one aspect, the data storage component is configured to store object geometry data in the data structure such that portions of the stored object geometry data representing areas surrounding the vehicle may be retrieved. In another aspect, the vehicle is an autonomous vehicle. In another aspect, the proximal portion of the object geometry data at least partially surrounds the vehicle. In another aspect, the method further comprises obtaining, by the at least one processor, a speed and a direction of the vehicle, and wherein determining the data retrieval information comprises determining based at least in part on the speed and the direction of the vehicle. In another aspect, the method further includes determining a route of one or more roads along which the vehicle travels from the vehicle location to the destination, obtaining road identification information indicative of the road along which the vehicle is located while the vehicle is traveling along the route, and determining the data retrieval information based on the vehicle location and the road identification information. In another aspect, the road identification information includes information about one or more roads along a route that the vehicle is approaching.
In another aspect of the method, the method further comprises determining a distance traveled by the vehicle along the route, and wherein determining the data retrieval information is based in part on the distance traveled by the vehicle along the route.
Another innovative aspect includes a system implemented on a vehicle, such as in an autonomous vehicle. In one embodiment, the system includes a data storage component configured to store object geometry data in a data structure such that a portion of the stored object geometry data may be retrieved. The data storage component may be, for example, a magnetic hard disk drive or an optical disk drive, or may include one or more chips capable of storing large amounts of data (e.g., gigabytes, terabytes, beat bytes, or ideas or more) and allowing retrieval of the stored information. The system also includes at least one processor having a memory component, wherein the at least one processor is configured to obtain a location of the vehicle, determine data retrieval information based on the vehicle location, the data retrieval information identifying a proximal portion of the object geometry data within a distance of the vehicle, and retrieve the proximal portion of the object geometry data from the data storage component and store it in the memory component.
Embodiments of the systems described herein may have one or more other aspects (features) of various system embodiments, some of which are set forth herein. However, as will be appreciated by those skilled in the art, various embodiments of such systems may have additional aspects or fewer aspects, and the various aspects disclosed herein may be used together in various embodiments, even if not specifically illustrated or described as in a certain embodiment. For example, in one aspect, a proximal portion of the object geometry data at least partially surrounds the vehicle location. In another aspect, the proximal portion of the object geometry data is centered on the vehicle location. In another aspect, the proximal portion of the object geometry data extends farther from the front of the vehicle than the rear of the vehicle at the vehicle location. In another aspect, the proximal portion of the object geometry data surrounds the vehicle location.
In various embodiments, a system may further comprise a Global Positioning System (GPS), and wherein the at least one processor is further configured to obtain the location of the vehicle from the Global Positioning System (GPS). In one aspect, the at least one processor is further configured to obtain a speed and a direction of the vehicle, and determine the data retrieval information based at least in part on the speed and the direction of the vehicle. In another aspect, the at least one processor is further configured to obtain road identification information indicative of a road on which the vehicle is located, and determine the data retrieval information based on the vehicle location and the road identification information. In another aspect, the system may further include a navigation system configured to receive an input identifying a destination, determine a route of one or more roads along which the vehicle travels from the vehicle location to the destination, determine road identification information for the vehicle as it travels along the route, and communicate the road identification information to the at least one processor. In another aspect, the at least one processor is further configured to obtain a speed of the vehicle, and wherein the at least one processor is further configured to determine the data retrieval information based in part on the speed of the vehicle. In another aspect, the system further comprises an odometer device configured to determine a distance traveled by the vehicle along the route, wherein the data retrieval information is based in part on the distance traveled by the vehicle along the route. In another aspect, the road identification information includes information about roads along a route that the vehicle is approaching.
Drawings
The features and advantages of the devices described herein will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. These drawings depict only several embodiments in accordance with the present disclosure and are not therefore to be considered limiting of its scope. In the drawings, like reference numerals or symbols generally refer to like parts unless the context indicates otherwise. In some instances, the drawings may not be to scale.
FIG. 1A illustrates a block diagram of a networked vehicle environment in which one or more vehicles and/or one or more user devices interact with a server via a network, according to one embodiment.
FIG. 1B illustrates a block diagram showing the vehicle of FIG. 1A communicating with one or more other vehicles and/or servers of FIG. 1A, according to one embodiment.
FIG. 2 is a schematic diagram illustrating a vehicle moving along a roadway and an example of components that the vehicle may use to determine its geographic location information.
Fig. 3 is a schematic diagram illustrating an example of map data that may be represented by a plurality of map data blocks.
FIG. 4 is a schematic diagram illustrating an example of map data that may be loaded into memory based on an initial (or first) geographic location of a vehicle, the map data including a plurality of map data blocks, wherein at least a portion of each of the plurality of map blocks falls within a boundary defining a contiguous boundary region around the geographic location of the vehicle.
FIG. 5 is a schematic diagram illustrating an example of map data that may be loaded into memory based on a vehicle updated (or second) geographic location, the map data comprising a plurality of map data blocks, wherein at least a portion of each of the plurality of map blocks falls within a boundary that defines a contiguous boundary region around the vehicle updated geographic location.
FIG. 6 is a schematic diagram illustrating another example of map data that may be loaded into memory based on an initial (or first) geographic location of a vehicle, the map data including a plurality of map data blocks, wherein at least a portion of each of the plurality of map blocks falls within a boundary defining a contiguous boundary region around the geographic location of the vehicle.
FIG. 7 is a schematic diagram illustrating an example of map data that may be loaded into memory based on a vehicle updated (or second) geographic location, the map data comprising a plurality of map data blocks, wherein at least a portion of each of the plurality of map blocks falls within a boundary that defines a contiguous boundary region around the vehicle updated geographic location.
FIG. 8 is a schematic diagram of an example of a computer system that may be on-board a vehicle and that may be used to perform map data loading described herein.
FIG. 9 is a schematic diagram illustrating another example of map data that may be loaded into memory based on a geographic location of a vehicle, the map data including a plurality of map data blocks, wherein at least a portion of each of the plurality of map data blocks falls within a boundary defining a contiguous boundary region around the geographic location of the vehicle, and wherein a motion vector (e.g., a velocity vector indicative of a velocity and direction of the vehicle) has been obtained (e.g., determined by the system based on subsequent determinations of the geographic location of the vehicle).
Fig. 10 is a schematic diagram illustrating another example of map data that may be loaded into memory based on a geographic location of a vehicle and a motion vector that determines a size or shape characteristic (e.g., dimension) of a boundary that is used to determine which map data blocks to load into memory.
Fig. 11 is a flowchart of a method of loading map data.
Detailed Description
The following detailed description is directed to certain aspects and embodiments of the invention. The invention may, however, be embodied in many different forms. It should be apparent that aspects herein may be embodied in many forms and that any specific structure, function, or both being disclosed herein merely represents one or more embodiments of the invention. The various aspects disclosed herein may be implemented independently of one another, and two or more of these aspects may be combined in various ways. For example, different embodiments of a method of loading map data from a map data storage system configured to store large amounts of data (e.g., terabytes or more) to a "working" memory of a computer system on a vehicle while moving along a route may be implemented using the various aspects/features disclosed herein. Furthermore, such methods may be implemented using other processes, steps, structures, functions, or structures in addition to or in place of one or more of the aspects set forth herein or such systems may be implemented.
Map data used by vehicles (e.g., automatically driven vehicles, vehicles providing driver assistance features, vehicles for location-based services, etc.) may be referred to as high-resolution (HD) maps, and may contain many types of information ranging from raw data (e.g., images captured at a location and a particular orientation relative to the location) to representations of features or objects (e.g., information representing roads, signs, man-made objects near roads, natural objects near roads, etc.). Such data and features may represent information previously collected by another vehicle traveling along the road or information determined to be near the road (e.g., altitude data). Generally, as used herein, "near road" or "adjacent road" or "proximal portion" or the like refers to information sensed by one or more sensors of a sensor system that may be disposed on a vehicle, or information that a vehicle may use to locate or control a vehicle.
Various embodiments of high-resolution (HD) maps may contain different information that may be provided by a variety of data information systems on one or more storage components. For example, the information in the high-resolution (HD) map or a portion of the high-resolution (HD) map (e.g., a map data block) may include information representative of one or more of altitude, density (intensity), natural features (geographic features), roads, signs, building houses, sidewalks, landscapes, and other man-made objects or objects manually disposed in a location. In some embodiments, a high-resolution (HD) map includes altitude information, concentration information. In some embodiments, information representative of an object (e.g., an artificial object) is stored in a data storage device separate from altitude and/or concentration information. For example, in a database where objects around a vehicle can be queried as needed, are vehicles that move along a route. Such queries may be based on a predetermined distance around the vehicle, i.e., such that all objects within a certain distance are returned based on such queries. In another example, such queries may be based on a distance around the vehicle that varies based on one or more factors, such as the speed, location (e.g., urban or rural roads), or direction of travel of the vehicle.
To be effective for use with a vehicle, a high-resolution (HD) map may include centimeter-level resolution information. In an illustrative embodiment, in the example of raw data constructed on a 10cm x 10cm grid, the resolution may be determined by the upper error limit that is tolerable for the vehicle. For each cell on the grid, three bytes may be used: one for the concentration information and two bytes for the altitude information. Thus, for 1 square meter, 300 bytes (10×10×3) in memory space are used. For an area of 10 km by 10 km, storage of data may require 30GB of storage space (e.g., 10k x 300). If the stored data is compressed, less storage space is required. However, any decompression of retrieving data from the data storage component requires at least some additional overhead associated with the decompression process, and thus may increase the overhead for retrieving data. Storage of high-resolution (HD) map data is a problem. Transferring High Definition (HD) map data from a storage location to a vehicle is another problem. Such communications must be reliable, efficient and secure to ensure that the required high resolution (HD) map data is available when needed.
As the vehicle moves from a first point to a second point, the navigation system may provide a route that the vehicle should take, e.g., indicating a particular highway and street that the vehicle is to use. For second level control of the vehicle, only data around the vehicle may need to be loaded. When the vehicle is moving, we can load new data into the memory and delete old data from it. In one embodiment of a method to implement loading a new high-resolution (HD) map into memory and removing an old high-resolution (HD) map from memory, an information grid through which a vehicle is traveling may be depicted as an information block. For example, each block may have a data resolution of 2000 x 2000, corresponding to 200m x 200m in the real world.
One example of selecting the size of a map data block may be based on the block loading frequency and the block size. We do not want to load blocks too frequently. The I/O to read files from disk is expensive. This indicates that the block cannot be too small. In urban areas, vehicles may move at speeds of 10 m/s to 20 m/s. Thus, it takes 10 to 20 seconds for the vehicle to pass through 1 block. The result is a frequency of 0.05 to 0.1Hz, which is not affordable at cost. The size of the block should not be too large as this would take up more memory space. While computers on vehicles can often be very powerful, computing resources can be very limited in practice due to all of the computing demands that occur on the vehicle. In an example where the memory space occupation of a high-resolution (HD) map is expected to be about 100MB or less, 1 block occupies a memory space of 2k2k3b=12 MB. So 9 blocks will occupy 108MB of memory. We want to load the whole block to complete within 100ms, if possible, faster. The block size should be compatible with the loading time under different circumstances. Larger block sizes result in longer loading times, which may result in blocks not being available until they need to be accessed. Conversely, smaller block sizes result in higher loading frequencies, and similar usability problems may occur when the vehicle is traveling quickly through one information block and the next is needed. The block may be a compressed file. For a block size of 2000 x 2000, a full loading of 1 block requires approximately 10ms, including reading and decompression. Thus, loading the complete 9 chunk packages may take less than 100ms, which may be accomplished by one thread before the vehicle enters the unloaded area. To solve the above problem, 2000×2000 is a block size that satisfies resource constraints and optimizes loading frequency in one embodiment.
Some embodiments described herein include using high-resolution (HD) map data configured in an arrangement of blocks. One or more blocks are loaded from the storage means into the memory of the time controlling device in the vehicle, as required. For example, at any time 9 blocks may be loaded in the memory, representing a certain bounded area around the vehicle. In order to seamlessly provide high-resolution (HD) map data, blocks to which a vehicle may be directed may be preloaded in a background thread. The block loading is completely hidden from the client. For example, a boundary defining an area (or region) of 4000×4000 may be arranged around the center block. The block loading does not change as the vehicle moves within the bounded area. When the vehicle moves out of the bounded area, new blocks will be loaded to form a new 9 block arrangement around the center block.
A method for loading map data may be implemented on a computing device of a vehicle. The method may include obtaining a geographic location of the vehicle, for example, using GPS and inertial navigation systems, fixed location indicators along the road sensed by one or more sensors of the vehicle, and/or receiving transmissions (e.g., radio or optical) of transmitters disposed at locations where the vehicle is able to receive its signals. Boundaries corresponding to geographic boundary regions around the vehicle location may be obtained (e.g., calculated). The method may then load map data comprising a plurality of map data blocks from the storage means to a memory of the device. Each of the plurality of map data blocks includes a portion of a geographic boundary area that should be around the vehicle, the geographic boundary area corresponding to a portion of the loaded map data. That is, based on the block size, the map data of the total load covers the geographic boundary area and extends beyond the geographic boundary area. The plurality of map data blocks may include a center block having points corresponding to the geographic locations of the devices. The plurality of map tiles may also include surrounding mandatory (mandated) tiles disposed around the center tile (and around the vehicle location). The boundary is centered on the center block and the range such that the geographic boundary region intersects the surrounding map data blocks. For example, the loaded map data may include 9 blocks arranged in a rectangle, and the position of the vehicle corresponds to one point in the center block.
As the vehicle is in motion, an updated geographic location of the device is obtained (e.g., using GPS, roadside location markers, inertial positioning systems, etc.) and the system determines the location of the vehicle relative to the boundary region at the updated geographic location. In response to determining that the updated location of the vehicle is outside the boundary region, an updated boundary is determined. The updated boundary corresponds to an updated region centered on the updated location of the vehicle. Map data in the form of map data blocks may be loaded from the storage means into the memory of the device such that the finally loaded map data includes a center block having points corresponding to the location of the device (vehicle) update, and map data blocks surrounding the center block and intersecting the boundary region. In other words, when it is determined that the position of the vehicle exceeds the boundary area defined by the most recently determined boundary, then additional map data blocks are loaded.
Illustrative embodiments
Embodiments of a system and method for loading map data are described below with reference to the accompanying drawings. Those skilled in the art will recognize that the scope of the described technology does not depart from. Many modifications and variations are possible. Such modifications and variations are intended to fall within the scope of these embodiments. Those of skill in the art will also recognize that components included in one embodiment may be interchanged with other embodiments-one or more components from the illustrated embodiment may be included in any combination with other illustrated embodiments. For example, any of the various components described herein and/or shown in the figures may be combined, interchanged, or eliminated in the other embodiments.
FIG. 1A illustrates a block diagram of a networked vehicle environment 100 in which one or more vehicles 120 and/or one or more user devices 102 interact with a server 130 via a network 110, according to one embodiment. For example, the vehicle 120 may be equipped to provide travel sharing and/or other location-based services to assist the driver in controlling vehicle operation (e.g., via a variety of driver assistance features such as adaptive and/or conventional cruise control, adaptive headlamp control, antilock braking, automatic parking, night vision, blind spot monitoring, crashworthiness, crosswind stabilization, driver fatigue detection, driver monitoring systems, emergency driver assistance, intersection assistance, hill descent control, intelligent speed adaptation, lane centering, lane departure warning, front, rear and/or side parking sensors, pedestrian detection, rain sensors, look-around systems, tire pressure monitors, traffic sign recognition, steering assistance, false road driving warnings, traffic condition cues, etc.) and/or to fully control vehicle operation. Thus, the vehicle 120 may be a conventional gasoline, natural gas, biofuel, electricity, hydrogen, etc. vehicle configured to provide shared travel and/or other location-based services, a vehicle providing driver assistance functionality (e.g., one or more of the driver assistance features described herein), or an automated or Autonomous Vehicle (AV). The vehicle 120 may be a car, truck, minibus, bus, motorcycle, scooter, bicycle, and/or any other motor vehicle.
The server 130 may communicate with the vehicle 120 to obtain vehicle data, such as route data, sensor data, awareness data, vehicle 120 control data, vehicle 120 component failure and/or failure data, and the like. Server 130 may process and store these vehicle data for use in other operations performed by server 130 and/or another computing system (not shown). Such operations may include running a diagnostic model to identify vehicle 120 operational problems (e.g., causes of vehicle 120 navigation errors, abnormal sensor readings, unidentified objects, vehicle 120 component failures, etc.); running a model to simulate the performance of the vehicle 120 given a set of variables; identifying objects that are not identifiable by the vehicle 120, generating control instructions that, when executed by the vehicle 120, cause the vehicle 120 to travel and/or move in some manner along a specified path; and/or the like.
The server 130 may also transmit data to the vehicle 120. For example, the server 130 may transmit map data, firmware and/or software updates, vehicle 120 control instructions, identification of objects that have not been identified by the vehicle 120, passenger access information, traffic data, and/or the like.
In addition to communicating with one or more vehicles 120, the server 130 can also communicate with one or more user devices 102. In particular, the server 130 may provide web services to enable users to request location-based services (e.g., shipping services, such as shared travel services) through applications running on the user device 102. For example, the user device 102 may correspond to a computing device, such as a smart phone, tablet, notebook, smartwatch, or any other device that may communicate with the server 130 over the network 110. In this embodiment, the user device 102 executes an application, such as a mobile application, which may be used by a user operating the user device 102 to interact with the server 130. For example, the user device 102 may communicate with the server 130 to provide location data and/or queries to the server 130, receive map-related data and/or directions from the server 130, and/or the like.
Server 130 may process the request and/or other data received from user device 102 to identify a service provider (e.g., a driver of vehicle 120) to provide the requested service to the user. Further, the server 130 may receive data, such as user travel access or destination data, user location query data, etc., based on which the server 130 identifies areas, addresses, and/or other locations associated with various users. The server 130 may then use the identified location to provide a direction to the service provider and/or user pointing to the determined access location.
An application running on the user device 102 may be created and/or manufactured by the same entity responsible for the server 130. Alternatively, the application running on the user device 102 may be a third party application that includes features (e.g., an application programming interface or a software development kit) that enable communication with the server 130.
For brevity and ease of explanation, one server 130 is illustrated in FIG. 1A. However, it should be appreciated that server 130 may be a single computing device or may comprise a plurality of different computing devices logically or physically grouped together to operate collectively as a server system. The components of server 130 may be implemented in dedicated hardware (e.g., a server computing device having one or more ASICs) without software, or may be implemented as a combination of hardware and software. In addition, the modules and components of server 130 may be combined on one server computing device or separated or grouped separately on several server computing devices. In some embodiments, server 130 may include more or fewer components than shown in FIG. 1A.
Network 110 includes any wired network, wireless network, or combination thereof. For example, the network 110 may be a personal area network, a local area network, a wide area network, an over-the-air network (e.g., a network for broadcast or television), a cable network, a satellite network, a cellular telephone network, or a combination thereof. As another example, the network 110 may be a publicly accessible network linking networks, possibly run by various different parties, such as the internet. In some embodiments, the network 110 may be a private or semi-private network, such as a corporate or university intranet. The network 110 may include one or more wireless networks, such as those used in the global system for mobile communications (GSM) networks, code Division Multiple Access (CDMA) networks, long Term Evolution (LTE) networks, or any other type of wireless network. The network 110 may use protocols and components for communicating via the internet or any other of the networks described above. For example, protocols used by network 110 may include hypertext transfer protocol (HTTP), hypertext transfer security protocol (HTTPs), message Queue Telemetry Transport (MQTT), constrained application protocol (CoAP), and the like. Protocols and components for communicating via the internet or any other type of communication network described above are well known to those skilled in the art and will not be described in detail herein.
The server 130 may include a navigation unit 140, a vehicle data processing unit 145, and a data store 150. The navigation unit 140 may assist in location-based services. For example, the navigation unit 140 may assist a user (also referred to herein as a "driver") in transporting another user (also referred to herein as a "rider") and/or an object (e.g., food, parcel, etc.) from a first location (also referred to herein as a "pickup location") to a second location (also referred to herein as a "destination location"). The navigation unit 140 may assist in achieving user and/or object transport by providing maps and/or navigation instructions to applications running on the driver's user device 102, to applications running on the lift's user device 102, and/or to navigation systems running on the vehicle 120.
As an example, the navigation unit 140 may include a matching service (not shown) that pairs a lift person requesting a journey from the pick-up location to the destination location with a driver capable of completing the journey. The matching service may interact with an application running on the user device 102 of the lift and/or an application running on the user device 102 of the driver to establish the lift's journey and/or to process the payments made to the driver by the lift.
The navigation unit 140 may also communicate with an application running on the driver's user device 102 during the journey to obtain journey location information from the user device 102 (e.g., via a Global Positioning System (GPS) component coupled to and/or embedded in the user device 102) and provide navigation directions to the application, which aids the driver in driving from the current location to the destination location. The navigation unit 140 may also indicate a plurality of different geographic locations or points of interest to the driver, whether or not the driver is on a lift.
The vehicle data processing unit 145 may be configured to support driver assistance features of the vehicle 120 and/or to support autonomous driving. For example, the vehicle data processing unit 145 may generate and/or transmit map data to the vehicle 120, run a diagnostic model to identify operational problems with the vehicle 120, run a model to simulate the performance of the vehicle 120 given a set of variables, use the vehicle data provided by the vehicle 120 to identify objects and transmit an identification of the objects to the vehicle 120, generate and/or transmit vehicle 120 control instructions and/or type operations to the vehicle 120.
The data store 150 may store various types of data used by the navigation unit 140, the vehicle data processing unit 145, the user device 102, and/or the vehicle 120. For example, the data store 150 may store user data 152, map data 154, search data 156, and log data 158.
The user data 152 may include information concerning some or all users of the location-based service, such as drivers and lift-ers. The information may include, for example, a user name, password, name, address, billing information, data associated with previous trips taken by or serviced by the user, user rating information, user loyalty program information, and/or the like.
Map data 154 may include high-resolution (HD) maps generated from sensors (e.g., light detection and ranging (LiDAR) sensors, radio detection and ranging (RADAR) sensors, infrared cameras, visible light cameras, stereo cameras, inertial Measurement Units (IMUs), etc.), satellite images, optical Character Recognition (OCR) performed on captured street images (e.g., identifying street names, identifying street sign words, identifying point of interest names, etc.), etc.; information for calculating a route; information for presenting a two-dimensional (2D) and/or three-dimensional (3D) graphical map; and/or the like. For example, the map data 154 may include elements: such as the layout of streets and intersections, bridges (e.g., including information about the height and/or width of bridges on the streets), exit ramps, buildings, parking lot entrances and exits (e.g., including information about the height and/or width of vehicle entrances and/or exits), locations of guideboards and stop lights, emergency turnouts, points of interest (e.g., parks, restaurants, gas stations, attractions, landmarks, etc., and associated names), road markings (e.g., centerline markings separating opposite lanes, lane markings, parking lines, left turn guidance lines, right turn guidance lines, crosswalks, bus lane markings, bike lane markings, safety island markings, pavement words, highway exits and entrance markings, etc.), curbs, railway lines, lane, turn radii and/or angles of left and right turns, distances and dimensions of road features, locations of spacers between bi-directional traffic, and/or the like elements, along with associated geographic locations (e.g., geographic coordinates) of these elements. The map data 154 may also include reference data such as real-time and/or historical traffic information, current and/or predicted weather conditions, road work information, information about laws and regulations (e.g., speed limits, whether right turns are allowed or forbidden at red light, whether turning around is allowed or forbidden, allowed directions of travel, and/or the like), news events, and/or the like.
Although the map data 154 is illustrated as being stored in the data store 150 of the server 130, this is not meant to be limiting. For example, the server 130 may transmit the map data 154 to the vehicle 120 for storage therein (e.g., in the data store 129, as described below).
Search data 156 may include searches that were entered by a number of different users. For example, the search data 156 may include a text search for access and/or destination locations. The search may be for a particular address, geographic location, name associated with a geographic location (e.g., name of a park, restaurant, gas station, attraction, landmark, etc.), and so forth.
The log data 158 may include vehicle data provided by one or more vehicles 120. For example, the vehicle data may include route data, sensor data, awareness data, vehicle 120 control data, vehicle 120 component failure and/or failure data, and the like.
FIG. 1B illustrates a block diagram showing the vehicle 120 of FIG. 1A communicating with one or more other vehicles 170A-N and/or the server 130 of FIG. 1A, according to one embodiment. As shown in fig. 1B, the vehicle 120 may include various components and/or data stores. For example, vehicle 120 may include a sensor array 121, a communication array 122, a data processing system 123, a communication system 124, an internal interface system 125, a vehicle control system 126, an operating system 127, a map engine 128, and/or a data store 129.
Communications 180 may be sent and/or received between vehicle 120, one or more vehicles 170A-N, and/or server 130. The server 130 may transmit and/or receive data from the vehicle 120, as described above in connection with fig. 1A. For example, the server 130 may transmit vehicle control instructions or commands to the vehicle 120 (e.g., as the communication 180). The vehicle control instructions may be received by a communication array 122 (e.g., an array of one or more antennas configured to transmit and/or receive wireless signals) that is operated by a communication system 124 (e.g., a transceiver). The communication system 124 may communicate vehicle control commands to a vehicle control system 126 that may operate acceleration, steering, braking, lights, signals, and other operating systems 127 of the vehicle 120 to drive and/or maneuver the vehicle 120 and/or assist a driver in driving and/or maneuvering the vehicle 120 along a direct path to a destination location specified by the vehicle control commands.
As an example, the vehicle control instructions may include route data 163 that may be processed by the vehicle control system 126 to steer the vehicle 120 and/or assist a driver in steering the vehicle 120 along a given route (e.g., an optimized route calculated by the server 130 and/or the map engine 128) to a specified destination location. In processing the route data 163, the vehicle control system 126 may generate control commands 164 for execution by the operating system 127 (e.g., acceleration, steering, braking, maneuvering, reversing, etc.) to cause the vehicle 120 to travel along the route to the destination location and/or to assist the driver in maneuvering the vehicle 120 along the route to the destination location.
The destination location 166 may be specified by the server 130 based on user requests (e.g., access requests, delivery requests, etc.) communicated from applications running on the user device 102. Alternatively or additionally, a lift user and/or driver of the vehicle 120 may provide user input 169 via the internal interface system 125 (e.g., a vehicle navigation system) to provide the destination location 166. In some embodiments, the vehicle control system 126 may communicate the input destination location 166 and/or the current location of the vehicle 120 (e.g., as a GPS data packet) as a communication 180 to the server 130 via the communication system 124 and the communication array 122. The server 130 (e.g., the navigation unit 140) may perform an optimization operation using the current location of the vehicle 120 and/or the input destination location 166 to determine an optimal route for the vehicle 120 to travel to the destination location 166. Route data 163 including the optimal route may be transmitted from server 130 to vehicle control system 126 via communication array 122 and communication system 124. Upon receiving the route data 163, the vehicle control system 126 can enable the operating system 127 to steer the vehicle 120 along the optimal route directly toward the destination location 166, assist the driver in steering the vehicle 120 along the optimal route directly toward the destination location 166, and/or enable the internal interface system 125 to display and/or present instructions for steering the vehicle 120 along the optimal route directly toward the destination location 166.
Alternatively or additionally, the route data 163 includes an optimal route and the vehicle control system 126 automatically inputs the route data 163 into the map engine 128. The map engine 128 may generate map data 165 using the optimal route (e.g., generate a map that displays the optimal route and/or take instructions for the optimal route) and provide the map data 165 to the internal interface system 125 (e.g., via the vehicle control system 126) for display. The map data 165 may include information derived from map data 154 stored in the data store 150 on the server 130. The displayed map data 165 may indicate the estimated time of arrival and/or display the travel progress of the vehicle 120 along the optimal route. The displayed map data 165 may also include indicators such as diversion commands, emergency notification, road work information, real-time traffic data, current weather conditions, information about laws and regulations (e.g., speed limits, whether right turns are allowed or forbidden at red lights, where to allow or forbidden turns around, allowed directions of travel, etc.), news events, and/or the like.
The user input 169 may also be a request to access a network (e.g., network 110). In response to such requests, the internal interface system 125 may generate access requests 168, which may be processed by the communication system 124 to configure the communication array 122 to send and/or receive data corresponding to user interactions with the internal interface system 125 and/or user device 102 interactions with the internal interface system 125 (e.g., user devices 102 connected to the internal interface system 125 through a wireless connection). For example, the vehicle 120 may include an onboard Wi-Fi that passengers and/or drivers may access to send and/or receive email and/or text messages, stream audio and/or video content, browse content pages (e.g., web pages, etc.), and/or access applications using web access. Based on the user interactions, internal interface system 125 may receive content 167 via network 110, communication array 122, and/or communication system 124. Communication system 124 may dynamically manage network access to avoid or minimize disruption of transmission of content 167.
The sensor array 121 may include any number of one or more types of sensors, such as satellite radio navigation systems (e.g., GPS), light detection and ranging (LiDAR) sensors, landscape (land slope) sensors (e.g., radio detection and ranging sensors), inertial Measurement Units (IMUs), cameras (e.g., infrared cameras, visible light cameras, stereo cameras, etc.), wi-Fi detection systems, cellular communication systems, inter-vehicle communication systems, road sensor communication systems, feature sensors, proximity sensors (e.g., infrared, electromagnetic, photoelectric, etc.), distance sensors, depth sensors, and/or the like. The satellite radio navigation system may calculate the current location of the vehicle 120 (e.g., in the range of 1-10 meters) based on analyzing signals received from the satellite constellation.
Light detection and ranging (LiDAR) sensors, radio detection and ranging sensors, and/or any other similar type of sensor may be used to detect the environment surrounding the vehicle 120 when the vehicle 120 is in motion or is about to begin motion. For example, light detection and ranging (LiDAR) sensors may be used to reflect multiple laser beams from approaching objects to evaluate their distance and provide accurate three-dimensional (3D) information about the surrounding environment. Data obtained from light detection and ranging (LiDAR) sensors may be used to perform object recognition, motion vector determination, collision prediction, and/or implement accident avoidance processes. Alternatively, light detection and ranging (LiDAR) sensors may use a rotating scanning mirror assembly to provide a 360 degree viewing angle. Light detection and ranging (LiDAR) sensors may optionally be mounted on the roof of the vehicle 120.
An Inertial Measurement Unit (IMU) may include a X, Y, Z-oriented gyroscope and/or accelerometer. An Inertial Measurement Unit (IMU) provides data regarding rotational and linear motion of the vehicle 120, which can be used to calculate the motion and position of the vehicle 120.
The camera may be used to capture visual images of the environment surrounding the vehicle 120. Depending on the configuration and number of cameras in particular, the cameras may provide a 360 degree view around the vehicle 120. The image from the camera may be used to read road markings (e.g., lane markings), read street signs, detect objects, and/or the like.
Wi-Fi detection systems and/or cellular communication systems may be used to triangulate Wi-Fi hotspots or cellular towers, respectively, to determine the location of the vehicle 120 (optionally in combination with satellite radio navigation systems).
An inter-vehicle communication system (which may include a Wi-Fi detection system, a cellular communication system, and/or the communication array 122) may be used to receive and/or transmit data to other vehicles 170A-N, such as current speed and/or position coordinates of the vehicle 120, time and/or position coordinates corresponding to when a deceleration is planned, and a planned deceleration rate, time and/or position coordinates when an operation is planned to stop, time and/or position coordinates when a lane change is planned, and lane change direction, time and/or position coordinates when a turning operation is planned, time and/or position coordinates when a parking operation is planned, and/or the like.
The road sensor communication system (which may include a Wi-Fi detection system and/or a cellular communication system) may be used to read information from the road sensor (e.g., indicative of traffic flow speed and/or traffic congestion) and/or to read information from the traffic control device (e.g., traffic lights).
When a user requests a tap (e.g., through an application running on the user device 102), the user may specify a particular destination location. The origination location may be a current location of the vehicle 120, which may be determined using satellite radio navigation systems (e.g., GPS, galileo, beidou/COMPASS, DORIS, GLONASS, and/or other satellite radio navigation systems), wi-Fi positioning systems, cellular tower triangulation, and/or the like, installed in the vehicle. Alternatively, the originating location may be specified by a user through a user interface provided by the vehicle 120 (e.g., the internal interface system 125) or through the user device 102 running the application. Alternatively, the originating location may be automatically determined based on location information obtained from the user device 102. In addition to the originating location and the destination location, one or more navigation points may be designated to enable multiple destination locations.
Raw sensor data 161 from sensor array 121 may be processed by in-vehicle data processing system 123. The processed data 162 may then be transmitted by the data processing system 123 to the vehicle control system 126 and optionally to the server 130 via the communication system 124 and the communication array 122.
The data store 129 can store map data (e.g., map data 154) and/or subsets of map data 154 (e.g., a portion of map data 154 corresponding to a general area in which the vehicle 120 is currently located). In some embodiments, the vehicle 120 may record updated map data along the travel route using the sensor array 121 and transmit the updated map data to the server 130 via the communication system 124 and the communication array 122. The server 130 may then transmit the updated map data to one or more of the vehicles 170A-N and/or further process the updated map data.
The data processing system 123 may provide continuous or near continuous processing of the data 162 to the vehicle control system 126 in response to peer-to-peer activity in the environment surrounding the vehicle 120. The processed data 162 may include a comparison between raw sensor data 161, representing the operating environment of the vehicle 120 and continuously collected by the sensor array 121, and map data stored in the data store 129. In one example, the data processing system 123 is programmed with machine learning or other artificial intelligence capabilities to enable the vehicle 120 to identify and respond to conditions, events, and/or potential hazards. In variations, the data processing system 123 may continuously or near continuously compare the raw sensor data 161 with stored map data to perform positioning to continuously or near continuously determine the position and/or orientation of the vehicle 120. The positioning of the vehicle 120 may enable the vehicle 120 to learn the instant position and/or orientation of the vehicle 120 as compared to stored map data in order to maneuver the vehicle 120 across traffic on a surface street and/or assist a driver in maneuver the vehicle 120 across traffic on a surface street and identify and respond to potential hazards (e.g., pedestrians) or local conditions, such as weather or traffic conditions.
Furthermore, positioning may enable vehicle 120 to tune or beam steer control communication array 122 to maximize communication link quality and/or minimize interference with other communications from other vehicles 170A-N. For example, communication system 124 may steer the beam of radiation patterns of communication array 122 in response to network configuration commands received from server 130. The data store 129 can store current network resource map data identifying network base stations and/or other network sources providing network connectivity. The network resource map data may indicate locations of base stations and/or available network types (e.g., 3G, 4G, LTE, wi-Fi, etc.) within the area where the vehicle 120 is located.
Although fig. 1B depicts certain operations as being performed by vehicle 120 or server 130, this is not meant to be limiting. The operations performed by the vehicle 120 and the server 130 as described herein may be performed by any entity. For example, certain operations typically performed by the server 130 (e.g., transmitting updated map data to the vehicles 170A-N) may be performed by the vehicle 120 for load balancing purposes (e.g., reducing the processing load of the server 130, utilizing idle processing power on the vehicle 120, etc.).
Further, any of the vehicles 170A-N may include some or all of the components of the vehicle 120 described herein. For example, vehicles 170A-N may include a communication array 122 to communicate with vehicle 120 and/or server 130.
Fig. 2 is a schematic diagram illustrating an example of a vehicle 120 moving along a road 241. The road 241 may be a portion of a route that the vehicle 120 is controlled to traverse from a first point to a second point in a manual, semi-automatic (e.g., by an auxiliary driver), and/or automatic manner. In fig. 2, the vehicle 120 is moving along a road 241 at a speed and direction indicated by a motion vector 230. Fig. 2 also illustrates an example of a positioning component that passively or actively provides geographic location information to the vehicle 120 that the vehicle 120 may use to determine a location (e.g., geographic location) of the vehicle 120.
As the vehicle 120 moves along the road 241, positioning components along the road 241 or in communication with sensors on the vehicle 120 may be used to help control the vehicle 120. Fig. 2 illustrates several examples of such positioning components. The proximal positioning members 250A, 250B may travel along the roadway 241. In various embodiments, such components may be contiguous or closely arranged, and may be passive (as sensed by sensors on the vehicle 120, such as reflective sensors on the vehicle 120, or sensed by Infrared (IR) or optical sensors) or active (e.g., emitting radiation as sensed by the vehicle 120). One or more distal positioning members 225 may be disposed beside the roadway or some distance away from the roadway. The distal positioning member 225 may also be active or passive, as well as various embodiments. In some embodiments, the GPS transmitter 215 may provide GPS signals that are received by the vehicle 120. In some embodiments, one or more stationary transmitters 220 may be disposed along the roadway 241 and provide transmissions or communications to the vehicle 120 that assist the vehicle in determining its location.
In various embodiments, the vehicle 120 may include a sensor system as part of the computer system 105 or may include a sensor system on the vehicle that interfaces with the computer system 105. The computer system 105 may include any of the components of the vehicle 120 described above in connection with fig. 1B. In various embodiments, the sensor system may include one or more sensors configured to sense information about the environment in which the vehicle 120 is located. In various embodiments, the one or more sensors may include one or more of a Global Positioning System (GPS) module, an Inertial Measurement Unit (IMU), a radio detection and ranging (RADAR) unit, a laser rangefinder and/or a light detection and ranging (LIDAR) unit, an Infrared (IR) camera, and/or an optical camera. The GPS module may be any sensor configured to estimate the geographic location of the vehicle 120. To this end, the GPS module may include a transceiver configured to estimate the position of the automobile 100 relative to the earth from satellite-based positioning data. In one example, the computer system 105 may be configured to use a GPS module in conjunction with map data to estimate the location of lane boundaries on a road on which the vehicle 120 may be traveling.
An Inertial Measurement Unit (IMU) may be any combination of sensors configured to sense changes in the position and orientation of the vehicle 120 based on inertial acceleration. In some examples, the combination of sensors may include, for example, an accelerometer and a gyroscope. Other combinations of sensors are also possible.
A radio detection and ranging (RADAR) unit may be considered an object detection system that may be configured to determine characteristics of an object, such as the range, height, direction, or speed of the object, using radio waves. A radio detection and ranging (RADAR) unit may be configured to emit pulses of radio waves or microwaves that may bounce off any object in the wave path. The object may return a portion of the energy of the wave to a receiver (e.g., a dish or antenna) that may also be part of a radio detection and ranging (RADAR) unit. The radio detection and ranging (RADAR) unit may also be configured to digitally signal the received signal (bouncing off the object) and may be configured to identify the object.
Other systems like radio detection and ranging (RADAR) have been applied in other parts of the electromagnetic spectrum. One example is light detection and ranging (LIDAR), which may be configured to use visible light from laser light instead of radio waves.
A light detection and ranging (LIDAR) unit may include a sensor configured to sense or detect objects in the environment of the vehicle 120 using light. In general, light detection and ranging (LIDAR) is an optical remote sensing technology that can measure a distance or other attribute to an object by illuminating the object with light. As an example, a light detection and ranging (LIDAR) unit may include a laser source and/or a laser scanner configured to emit laser pulses and a detector configured to receive reflections of the laser pulses. For example, a light detection and ranging (LIDAR) unit may include a laser rangefinder that reflects off a rotating mirror and scans laser light in one or two dimensions around a scene being digitized, collecting distance measurements at specified angular intervals. In various examples, a light detection and ranging (LIDAR) unit may include components such as a light (e.g., laser) source, scanners and optical elements, photodetector and receiver electronics, and positioning and navigation systems.
In one example, a light detection and ranging (LIDAR) unit may be configured to image objects using Ultraviolet (UV), visible, or infrared light, and may be used with a wide target range including non-metallic objects. In one example, a narrow laser beam may be used to map physical features of an object at high resolution.
In an example, wavelengths in the range from about 10 microns (infrared) to about 250 nm (ultraviolet, UV) may be used. Typically, light is reflected by back-scattering. Different types of scattering are used for different light detection and ranging (LiDAR) applications, such as rayleigh scattering, mie scattering and raman scattering, and fluorescence. Based on different kinds of backscatter, light detection and ranging (LiDAR) may be referred to as, for example, rayleigh light detection and ranging (LiDAR), mie light detection and ranging (LiDAR), raman light detection and ranging (LiDAR), and sodium/iron/potassium fluorescence detection and ranging (LiDAR), respectively. For example, a suitable combination of wavelengths may enable remote mapping of objects by looking for wavelength-dependent changes in reflected signal intensity.
Three-dimensional (3D) imaging may be achieved using scanning and non-scanning light detection and ranging (LiDAR) systems. "three-dimensional (3D) gated imaging light detection and ranging" is one example of a non-scanning laser ranging system that employs pulsed lasers and fast gated cameras. Imaging light detection and ranging (LiDAR) can also be performed using high-speed detector arrays and modulation sensitive detector arrays, which are typically built on a single chip using CMOS (complementary metal oxide semiconductor) and hybrid CMOS/CCD (charge coupled device) fabrication techniques. In these devices, each pixel may be processed locally by demodulation or high-speed gating, so that the array can be processed to represent the image from the camera. Using this technique, thousands of pixels may be acquired simultaneously to create a three-dimensional (3D) point cloud representing an object or scene detected by a light detection and ranging (LIDAR) unit.
The point cloud may include a set of vertices in a three-dimensional (3D) coordinate system. For example, the vertices may be defined by X, Y and Z coordinates, and may represent the outer surface of the object. A light detection and ranging (LiDAR) unit may be configured to create a point cloud by measuring a large number of points on the surface of an object, and may output the point cloud as a data file. As a result of a three-dimensional (3D) scanning process of an object by a light detection and ranging (LIDAR) unit, a point cloud may be used to identify and visualize the object. In one example, the point cloud may be directly rendered to visualize the object. In another example, cloud points may be converted into a polygonal or triangular mesh model through a process that may be referred to as surface reconstruction. Example techniques for converting a point cloud to a three-dimensional (3D) surface may include Delaunay triangulation, alpha shape, and sphere rotation. These techniques include building a triangle network on existing vertices of a point cloud. Other example techniques may include converting the point cloud into a volumetric distance field and reconstructing an implicit surface defined by a moving cube algorithm.
The camera may be any camera (e.g., a camera, video camera, etc.) configured to capture images of the environment in which the vehicle 120 is located. To this end, the camera may be configured to detect visible light, or may be configured to detect light from other parts of the spectrum, such as infrared or ultraviolet light. Other types of cameras are also possible. The camera may be a two-dimensional detector or may have a three-dimensional spatial extent. In some examples, the camera may be, for example, a range detector configured to generate a two-dimensional image indicative of distances from the camera to a plurality of points in the environment. To this end, the camera may use one or more ranging techniques. For example, the camera may be configured to use structured light technology in which the vehicle 120 illuminates an object in the environment with a predetermined light pattern (e.g., a grid or checkerboard pattern) and uses the camera to detect reflections of the predetermined light pattern from the object. Based on the deformation of the reflected light pattern, the vehicle 120 may be configured to determine a distance to a point on the object. The predetermined light pattern may comprise infrared light or light of another wavelength. The sensor system may additionally or alternatively include components other than those described herein.
Fig. 3 is a schematic diagram illustrating an example of map data that may be represented by a plurality of map data blocks 310. Map data may be represented in a variety of ways. As shown in FIG. 3, the location on the earth 305 may be referenced by latitude and longitude lines. For a particular location of the vehicle 120 on earth, latitude and longitude information may be represented by a plurality of map data blocks 310 arranged around the vehicle 120 in a grid. The geographic distance between the latitude increment lines is consistent based on the latitude/longitude reference system and the shape of the earth. However, the geographic distance between the longitude increment lines depends on the location on the earth, being closer together at both poles. Thus, the grid patterns of map data representing portions of the earth specified with reference to longitude and latitude (as is usual) may not be perfectly rectangular, and they will not be rectangular near the poles. For purposes of this disclosure, the map data block 310 depicting map data representing a portion of the earth will be assumed to be rectangular or substantially rectangular, due in part to the relatively small size of the map data block 310. The map data mentioned herein does not necessarily implement references in terms of longitude and latitude. Instead, other coordinate reference systems may be used.
FIG. 4 is a schematic diagram illustrating an example of map data that may be loaded into memory based on an initial (or first) geographic location of a vehicle, the map data including a plurality of map data blocks, wherein at least a portion of each of the plurality of map data blocks falls within a boundary defining a contiguous boundary region around the geographic location of the vehicle. The vehicle 120 is shown in a position 430 for which there is corresponding map data information available around the vehicle 120 on all sides, as shown by the plurality of map data blocks 310. Referring to the location of the vehicle 120 being at the location 430, the computer system 105 or a device comprising the computer system 105 is understood to be located at the same location 430 of the vehicle 120, and thus the terms may have the same meaning and be used interchangeably unless the context indicates otherwise.
At any time, although there are a plurality of map data blocks 310 available to be provided by the storage component, only certain map data blocks are loaded into the memory of the vehicle, illustrated in FIG. 4 as map data blocks 401-409. As used herein, "memory of a vehicle" refers to memory locations where a processor may retrieve stored information, such as chip-based memory (e.g., RAM, DRAM, cache memory on a processor, etc.) and memory/storage locations that are not disk-based.
A determined boundary 420 is established around the initial position of the vehicle 430. Boundary 420 is a representation of a certain distance and shape around vehicle 430 and encloses a geographic boundary area 425 around vehicle 430. In the illustrated embodiment, the boundary 420 is a square centered on the initial position of the vehicle 430. In this embodiment, at least the 9 map data blocks 401-409 are loaded into the memory of the vehicle 120. In other embodiments, the boundary 420 may have other shapes and extend outwardly from the vehicle 120 a different distance. For example, the shape of the boundary 420 may be rectangular, circular, or asymmetric. For example, the boundary 420 may extend away from the vehicle 120 in the direction of movement of the vehicle 120, and then it extends to the side and/or rear of the vehicle 120.
In this embodiment, boundary 420 intersects with or encloses 9 map data blocks 401-409. In other embodiments, the boundary 420 may intersect or enclose a greater or lesser number of map data blocks, depending on the size of the map data blocks and the shape of the boundary 420.
Fig. 5 is a schematic diagram illustrating an example of map data that may be loaded into memory based on an updated (or second) geographic location of vehicle 120, the map data including a plurality of map data blocks 402, 403, 405, 406, 410, 411, 412, 413, 414, wherein at least a portion of each of the plurality of map data blocks 402, 403, 405, 406, 410, 411, 412, 413, 414 falls within an updated boundary 422 that defines a boundary region surrounding an updated geographic location 435 of vehicle 120. Fig. 5 illustrates an initial boundary 420 intersecting or surrounding map data blocks 401-409 centered at an initial geographic location 430 of the vehicle and an updated boundary 422 intersecting or surrounding map data blocks 402, 403, 405, 406, 410, 411, 412, 413, 414 centered at an updated geographic location 435 of the vehicle 120. The updated boundary 422 surrounds and defines an updated geographic boundary region 440 around the vehicle 120 at the updated geographic location 435.
In implementation, as the vehicle moves along the route, the system 105 determines the updated geographic location using, for example, one or more components described with reference to fig. 1B and/or fig. 2. The system 105 determines whether the updated geographic location of the vehicle 120 corresponds to a location outside of the boundary region defined by the initial boundary 420 (outside of the initial boundary 420). If this is the case, the system 105 loads additional map data blocks into memory and determines updated boundaries 422 that define the updated geographic boundary region 440. In this example, the system 105 loads map data blocks as needed so that the map data blocks 402, 403, 405, 406, 410, 411, 412, 413, 414 are loaded into memory and can be used to control the vehicle 120. In this example, map data blocks 402, 403, 405, and 406 are already in memory based on the initial geographic location 430. Thus, while maintaining the map data blocks 402, 403, 405, and 406 in memory, the system 105 loads the map data blocks 410, 411, 412, 413, and 414 into memory. In some embodiments, map data blocks that are loaded into memory without intersecting or being surrounded by updated boundary 422 are removed from memory (e.g., storage space allocated to map data blocks 404, 407, 408, and 409 is marked as memory space that can be overwritten). The method may continue for each time additional map chunk data is loaded due to a determination that the vehicle location is outside of the updated geographic boundary region (e.g., in the region corresponding to a location that indicates that the vehicle 120 is outside of the updated geographic boundary region 422), the device's subsequent updated geographic location along its entire route.
FIG. 6 is a schematic diagram illustrating another example of map data that may be loaded into memory based on an initial (or first) geographic location of a vehicle, the map data including a plurality of map data blocks, wherein at least a portion of the data blocks of each of the plurality of maps fall within a boundary defining contiguous boundary regions around the geographic location of the vehicle. In the example shown in fig. 4 and 5, the vehicle 120 crosses the boundary 420 at the map data block 403 located at the corner of the 9 map data blocks 401-409. Thus, as a result of establishing updated boundaries 422, 5 map data blocks 410, 411, 412, 413, 414 need to be uploaded into memory, such that after these map data blocks are uploaded, an arrangement of 9 map data blocks encloses updated geographic location 435.
Fig. 6 shows an initial starting position of the vehicle 120 and a configuration of map data blocks similar to that shown in fig. 4, except that the direction of the vehicle 120 is toward the map data block 406 such that when the position of the vehicle 120 passes the boundary 420, the vehicle will be located at a position corresponding to the map data block 406 (as shown in fig. 7). A schematic diagram of an example of map data that may be loaded into memory based on an updated (or second) geographic location of the vehicle 120 is illustrated in fig. 7. When the geographic position of the vehicle 120 crosses the updated boundary 422 at a position corresponding to the map data blocks on the 9 map data block arrangement sides, only 3 new map data blocks 413, 414, 415 need to be loaded into the memory. In other words, because the updated boundary 422 is laterally displaced from the initial boundary 420, the updated boundary 422 only intersects the map data blocks 413, 414, 415 that are not already in memory, and thus only the three map data blocks 413, 414, 415 are loaded into memory.
The techniques described herein may be implemented by one or more special purpose computing devices. The special purpose computing device may be hardwired to perform the techniques, or may include circuitry or digital electronics, such as one or more Application Specific Integrated Circuits (ASICs) or Field Programmable Gate Arrays (FPGAs) that are continuously programmed to perform the techniques, or may include one or more hardware processors programmed to perform the techniques in accordance with program instructions in firmware, memory, other storage, or a combination. Such special purpose computing devices may also incorporate custom hard-wired logic, ASICs, or FPGAs in combination with custom programming to implement the techniques. The special purpose computing device may be a desktop computer system, a server computer system, a portable computer system, a handheld device, a networking device, or any other device or combination of devices that incorporate hardwired and/or program logic to implement the technology. One or more computing devices are typically controlled and coordinated by operating system software. Conventional operating systems control and schedule computer processes, such as graphical user interfaces ("GUIs"), for executing, performing memory management, providing file systems, networking, I/O services, and providing user interface functions.
Fig. 8 is a block diagram illustrating a computer system 800, such as computer system 105 shown in fig. 2, upon which any of the embodiments described herein may be implemented. The system 800 may correspond exactly to the system 105 described above, or have one or more different components. Computer system 800 includes a bus 802 or other communication mechanism for communicating information, and one or more hardware processors 804 coupled to bus 802 for processing information. For example, the hardware processor 804 may be one or more general purpose microprocessors. The processor 804 may correspond to the processor described above with reference to the computer system 105.
Computer system 800 also includes a main memory 806, such as Random Access Memory (RAM), cache, and/or other dynamic storage device, coupled to bus 802 for storing information and instructions to be executed by processor 804. Main memory 806 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 804. These instructions, when stored in a storage medium accessible to processor 804, cause computer system 800 to enter a special purpose machine that is customized to perform the operations specified in the instructions. In some embodiments, the instructions may cause the computer system 800 to obtain a geographic location of the device, obtain boundaries corresponding to contiguous geographic boundary regions around the geographic location of the device, load map data from the storage 810 into the memory 806 of the device, the map data including a plurality of map data blocks, each of the plurality of map data blocks including a portion of the geographic boundary region corresponding to a portion of the loaded map data. The plurality of map data blocks loaded into the memory 806 includes a center block having points corresponding to the geographic locations of the devices and map data blocks surrounding the center block. The boundary is centered on the center block and the range such that the geographic boundary region intersects surrounding map data blocks. The instructions may also cause the computer system to obtain an updated geographic location of the device while the vehicle is in motion, determine a location of the updated geographic location relative to the boundary region, and in response to determining that the updated geographic location is in a boundary region of the outer boundary region, obtain an updated boundary centered on the updated geographic location, and load map data from the storage 810 to the memory 806 based on the updated boundary such that the resulting loaded map data includes a center block having points corresponding to the updated geographic location of the device, and map data blocks surrounding the center block intersecting the geographic boundary region.
Computer system 800 also includes a Read Only Memory (ROM) 808 or other static storage device coupled to bus 802 for storing static information and instructions for processor 804. A storage device 810, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), is provided and coupled with bus 802 for storing information and instructions. The main memory 806, ROM 808, and/or storage 810 may correspond to the memory 106 described above for storing map data. In some embodiments, the main memory 806 is a memory for storing map data blocks when the map data blocks are used to control the vehicle 120. For example, one or more map data blocks may be initially stored on storage 810 and then loaded into memory 806 and used to control vehicle 120 as desired based on the methods and systems described herein.
Computer system 800 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and/or program logic, in conjunction with a computer system, to make computer system 800 a special purpose machine or to program the system into a special purpose machine. According to one embodiment, the techniques of this disclosure are performed by computer system 800 in response to processor 804 executing one or more sequences of one or more instructions contained in main memory 806. Such instructions may be read into main memory 806 from another storage medium, such as storage device 810. Execution of the sequences of instructions contained in main memory 806 causes one or more processors 804 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
Main memory 806, ROM 808, and/or storage 810 may include non-transitory storage media. The term "non-transitory medium" and similar terms as used herein refer to a medium storing data and/or instructions that cause a machine to operate in a specific manner, where the medium is devoid of transitory signals. Such non-transitory media may include non-volatile media and/or volatile media. For example, non-volatile media includes optical or magnetic disks, such as storage device 810. Volatile media includes dynamic memory, such as main memory 806. For example, common forms of non-transitory media include: a floppy disk, a hard disk, solid state disk, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, an NVRAM, any other memory chip or cartridge, and network versions thereof.
Computer system 800 also includes a communication interface 818 coupled with bus 802. Communication interface 818 provides a two-way data communication coupling to one or more network links that are connected to one or more local networks. For example, communication interface 818 may be an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a communication connection to data on a corresponding type of telephone line. As another example, communication interface 818 may be a Local Area Network (LAN) card to provide a communication connection between data to a compatible LAN (or WAN component that communicates with a WAN). Wireless links may also be implemented. In any such implementation, communication interface 818 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Computer system 800 can send messages and receive data, including program code, through the network 825, the network link 819 and communication interface 818. The network 825 may be connected to one or more servers 830. In the Internet example, a server might transmit a requested code for an application program through the Internet, ISP, local network and communication interface 818. The received code may be executed by processor 804 as it is received, and/or may be stored in storage device 810, or other non-volatile storage for later execution.
Fig. 9 is a schematic diagram illustrating another example of map data that may be loaded into memory based on a geographic location of a vehicle. In fig. 9, the map data includes a plurality of map data blocks 901-909, wherein at least a portion of each of the plurality of map data blocks 901-909 falls within an initial boundary 923 that defines a boundary region 925 around the vehicle 120. In fig. 9, a motion vector 930 indicating the speed and direction of the vehicle has been obtained (e.g., determined by the system based on a subsequent determination of the geographic location of the vehicle). The example shown in fig. 9 is similar to the example shown in fig. 4, except that information related to the speed and direction of the vehicle has been obtained and can therefore be used to determine an updated boundary 922 (fig. 10).
Fig. 10 is a schematic diagram illustrating another example of map data that may be loaded into memory based on a geographic location of a vehicle and a motion vector that determines a size or shape characteristic (e.g., a dimension) of a boundary that is used to determine which map data blocks to load into memory. In this embodiment, the speed of the vehicle 120 has been determined. Based on the speed of the vehicle, the system 105 may determine that a larger boundary 922 is needed to ensure that the map data block loaded in memory covers the area through which the vehicle 120 will move in the near future. In this case, since the higher the speed as indicated by the motion vector 920, the larger the boundary 922 is determined to protrude a larger distance in the direction in which the vehicle moves with respect to the vehicle rear direction or with respect to the vehicle side direction. In this embodiment, instead of loading 9 map data blocks based on updated boundary 922, 20 map data blocks 901-920 are loaded into memory. Boundary 922 defines a larger boundary region 940 than boundary region 425 shown in fig. 4. Map data blocks 901-920 each cover a portion of boundary region 940, and these map data blocks are surrounded by or intersect boundary 922.
Fig. 11 is a flow chart 1100 of a method of loading map data. The method may be implemented on a device of a mobile vehicle having at least one processor and a memory component coupled to the processor. At block 1105, the method includes obtaining, by the at least one processor, a geographic location vehicle of the device/vehicle. In various embodiments, the geographic location of the device may be obtained using one or more of the sensors described with reference to fig. 2 or other suitable components. At block 1110, the method obtains a boundary corresponding to a geographic boundary region around a geographic location of the device. The geographic boundary areas may be contiguous. In various embodiments, the boundary may have a predetermined size and shape, or it may be dynamically determined, for example, based on the direction and speed of the vehicle 120.
At block 1115, the method loads map data comprising a plurality of map data blocks from a storage component to a memory of the device. For example, the storage 810 may store hundreds or thousands of map data blocks. When needed, a plurality of stored map data blocks may be loaded into the memory 806, the map data blocks being loaded based on boundaries and based on which map data blocks have been loaded in the memory 806. The plurality of map data blocks eventually in memory include a center block having points corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the center block and sized such that the geographic boundary region intersects the surrounding map data blocks.
At block 1120 of the method, the at least one processor obtains an updated geographic location of the vehicle while the vehicle is in motion. Similar to block 1110, one or more sensors described with reference to FIG. 2 may be used to obtain an updated geographic location of the vehicle. At block 1125, the at least one processor may determine a location of the updated geographic location relative to the boundary (or geographic boundary region). At block 1130, in response to determining that the updated geographic location of the vehicle is outside the boundary region, the method obtains an updated boundary centered on the updated geographic location and loads map data from the storage component into a memory of the device based on the updated boundary. The updated boundary corresponds to an updated geographic area centered on the updated geographic location. The map data is loaded from the storage means into the memory of the device such that the finally loaded map data comprises a central block having points corresponding to updated positions of the device, and map data blocks surrounding the central block and intersecting the geographical boundary area. As the vehicle continues to move, blocks 1120, 1125, and 1130 may be repeated to provide map data in the geographic area surrounding the moving vehicle.
The foregoing description details certain embodiments of the systems, devices, and methods disclosed herein. However, it will be appreciated that such systems, devices, and methods can be implemented in a variety of ways, regardless of how detailed the foregoing is presented in text. As also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to specific characteristics with which those features or aspects of the technology with which that terminology is associated.
Each of the processes, methods, and algorithms described in the preceding sections may be implemented by and fully or partially automated by code modules executed by one or more computer systems or computer processors including computer hardware. The processes and algorithms may be partially or wholly implemented in dedicated circuitry.
The various features and processes described above may be used independently of one another or may be combined in various ways. All possible combinations and subcombinations are intended to be within the scope of the invention disclosed. In addition, in some implementations, certain methods or process blocks may be omitted. Nor is the method and process described herein limited to any particular sequence, and blocks or states associated therewith may be performed in other sequences as appropriate. For example, the described blocks or states may be performed in a different order than specifically disclosed, or multiple blocks or states may be combined in a single block or state. The exemplary blocks or states may be performed serially, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed exemplary embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added, removed, or rearranged as compared to the disclosed example embodiments.
Various operations of the example methods described herein may be performed, at least in part, by algorithms. The algorithm may be embodied in program code or instructions stored in a memory (e.g., the non-transitory computer readable storage medium described above). Such algorithms may include machine learning algorithms or models. In some embodiments, the machine learning algorithm or model may not explicitly program the computer to perform a function, but may learn from training data to produce a predictive model (a trained machine learning model) to perform the function.
Various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., via software) or permanently configured to perform the relevant operations. Whether temporarily configured or permanently configured, such a processor may constitute a processor-implemented engine to operate to perform one or more of the operations or functions described herein.
Similarly, the methods described herein may be implemented, at least in part, by processors, with one or more particular processors being examples of hardware. For example, at least some operations of a method may be performed by one or more processors or processor-implemented engines. In addition, one or more processors may also operate in a "cloud computing" environment or as a "software as a service" (SaaS) to support the execution of related operations. For example, at least some of the operations may be performed by a set of computers (e.g., a machine comprising multiple processors) that are accessible via a network (e.g., the Internet) and one or more suitable interfaces (e.g., application Program Interfaces (APIs)).
The performance of certain operations may be distributed among multiple processors, not only residing within a single machine, but also being deployable across multiple machines. In some example embodiments, the processor or processor-implemented engine may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processor or processor-implemented engine may be distributed across multiple geographic locations.
Throughout the specification, multiple examples may implement multiple components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more individual operations may be performed concurrently and nothing requires that the operations be performed in the order illustrated. Structures and functions presented as separate components in the example configuration may be implemented as a combined structure or component. Similarly, structures and functions presented as one component may be implemented as a separate component. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.
While the subject summary of the present application has been described with reference to specific exemplary embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the disclosed embodiments. Such embodiments of the application may be referred to herein, individually or collectively, by the term "application" merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or concept if more than one is in fact given.
The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The detailed description is, therefore, not to be taken in a limiting sense, and the scope of the various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Any process descriptions, elements, or blocks in the flowcharts described herein and/or depicted in the figures should be understood as potentially representing such modules, code segments, or portions of code: which comprises functions or steps in the course of one or more executable instructions for implementing the specified logic. Alternative implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, performed in an order other than that shown or discussed, including substantially simultaneously or in reverse order, depending upon the functionality involved, as would be understood by those skilled in the art.
As used herein, the term "or" may be interpreted as a meaning of including or not including. Further, multiple instances may support multiple resources, operations, or structures described herein as one instance. In addition, boundaries between various resources, operations, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of particular illustrative configurations. Other allocations of functionality are contemplated and may fall within the scope of various embodiments of the present disclosure. In general, structures and functions presented as separate resources in the example configuration may be implemented as a combined structure or resource. Similarly, the structures and functions presented for a single resource may be implemented as a separate resource. These and other variations, modifications, additions, and improvements fall within the scope of the disclosed embodiments of the invention as expressed in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Conditional language such as "capable," "possible," "may," or "may," unless specifically stated otherwise or otherwise understood in the context of use, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps must be in any way for one or more embodiments or that one or more embodiments necessarily contain logic for determining: whether such features, elements, and/or steps are included in or are to be performed in any particular embodiment with or without user input or prompting.
Furthermore, certain terminology has been used to describe embodiments of the disclosure. For example, the terms "one embodiment," "an embodiment," and "some embodiments" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, it is emphasized and should be appreciated that two or more references to "one embodiment" or "an alternative embodiment" in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined as suitable in one or more embodiments of the invention disclosed. Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, the claimed subject matter is not to be taken as dependent on all features of a single foregoing disclosed embodiment.
Moreover, those skilled in the art will recognize that aspects of the present disclosure may be illustrated and described herein in any of a number of patentable categories or contexts, including any novel and useful process, machine, manufacture, or combination, or any novel and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely in hardware, entirely in software (including firmware, resident software, micro-code, etc.) or in a combination of software and hardware implementations that may all generally be referred to herein as a "module," unit, "" component, "" device "or" system. Furthermore, aspects of the present disclosure may take the form of a computer program product contained in one or more computer-readable media having computer-readable program code embodied thereon.
Computer program code for carrying out operations of aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, scala, smalltalk, eiffel, JADE, emerald, C ++, c#, VB, NET, python and the like; conventional procedural programming languages, such as the "C" programming language, visual Basic, fortran 2003, perl, COBOL 2002, PHP, ABAP; dynamic programming languages such as Python, ruby, and Groovy or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider) or be provided as a service, for example, in a software-as-a-service (SaaS) environment.
Headings are included herein for reference and to aid in locating the various sections. These headings are not intended to limit the scope of the concepts described therein under. Such concepts have applicability throughout the entire specification.
Unless specifically stated otherwise, disjunctive language such as the phrase "at least one of X, Y or Z" is understood by conventional use in conjunction with the context to mean an item, etc., may be X, Y or Z, or any combination thereof (e.g., X, Y and/or Z). Thus, such disjunctive language is generally not intended and should not imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to be present for each. Those skilled in the art will recognize that the scope of the described technology does not depart from. Many modifications and variations are possible. Such modifications and variations are intended to fall within the scope of these embodiments. Those skilled in the art will also recognize that components included in one embodiment may be interchanged with other embodiments; one or more components from the illustrated embodiments may be included with other illustrated embodiments in any combination. For example, any of the various components described herein and/or shown in the figures may be combined, interchanged, or eliminated in the other embodiments.
The phrase "based on" does not mean "based only on" unless explicitly specified otherwise. In other words, the phrase "based on" describes "based only on" and "based at least on". Articles such as "a" or "an" should generally be construed to include one or more of the recited items unless expressly stated otherwise. Thus, a phrase such as "a device configured to perform … …" is intended to include one or more of the referenced devices.
The foregoing description discloses several methods and materials of the present application. The present application is susceptible to modifications in methods and materials, and alterations in manufacturing methods and apparatus. Such modifications will become apparent to those skilled in the art from a review of this disclosure or practice of the application disclosed herein. It is therefore intended that the application be not limited to the particular embodiments disclosed herein, but that it cover all modifications and alternatives falling within the true scope and spirit of the application as included in the appended claims. Applicant reserves the right to submit claims directed to combinations and subcombinations of the disclosed application, which are believed to be novel and nonobvious. applications embodied in other combinations and subcombinations of features, functions, elements, and/or properties may be claimed through amendment of those claims or presentation of new claims in this or a related application. Such modifications and new claims, whether they are directed to the same application or different applications, and whether they are different, broader, narrower or equal in scope to the original claims, are also regarded as included within the subject matter of the applications of the present disclosure.

Claims (32)

1. A method implemented on an apparatus on a vehicle, the apparatus having at least one processor and a storage component coupled to the processor, the method comprising:
obtaining, by the at least one processor, a geographic location of the device;
Obtaining a boundary corresponding to a geographic boundary region bordering around the geographic location of the device;
Loading map data comprising a plurality of map data blocks from the storage means into a memory of the device, each of the plurality of map data blocks comprising a portion of the geographic boundary area corresponding to a portion of the loaded map data, wherein the plurality of map data blocks comprises a central block having a point corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the central block and sized such that the geographic boundary area intersects the surrounding map data blocks; and
When the vehicle is in motion:
obtaining by the at least one processor an updated geographic location of the device,
Determining a location of the updated geographic location relative to the boundary region, and
In response to determining that the updated geographic location is outside the boundary region, obtaining an updated boundary corresponding to an updated geographic region centered around the updated geographic location, and loading map data from the storage component into the memory of the device based on the updated boundary, and removing from the memory blocks of map data that do not intersect with or are not surrounded by the updated boundary, such that the resulting loaded map data includes:
a center block having points corresponding to the updated geographic location of the device, and
Additional blocks of map data surrounding the center block intersecting the geographic boundary region.
2. The method of claim 1, wherein the surrounding map data block is adjacent to the center block.
3. The method of claim 1, wherein the map data block includes altitude information.
4. The method of claim 1, wherein the map data block includes concentration information.
5. The method of claim 1, wherein the geographic boundary region corresponds to a region comprising the center block and at least a portion of the map data block adjacent to the center block.
6. The method of claim 1, wherein the boundary is rectangular.
7. The method according to claim 6, wherein the method comprises,
Wherein each map data block includes a width dimension and a length dimension, and the boundary includes a width dimension and a length dimension, and
Wherein the boundary width dimension is between one and three times the width dimension of each map data block and the boundary length dimension is between one and three times the length dimension of each map data block.
8. The method of claim 1, wherein the loaded map data comprises 9 map data blocks.
9. The method of claim 8, wherein each of the 9 map data blocks has an equal size.
10. The method of claim 8, wherein the 9 map data blocks include one center map data block and eight surrounding map data blocks.
11. The method of claim 1, wherein the map data blocks comprise a center map data block and more than eight surrounding map data blocks.
12. The method of claim 1, wherein the vehicle is an autonomous vehicle.
13. The method of claim 1, wherein the boundary is non-rectangular.
14. The method of claim 1, wherein the sizes of the boundary and the updated boundary are predetermined.
15. The method of claim 1, wherein obtaining the updated boundary comprises dynamically determining the updated boundary.
16. The method of claim 15, wherein dynamically determining the updated boundary comprises obtaining a speed of the moving vehicle and determining a size of the boundary based on the speed.
17. The method of claim 15, wherein dynamically determining the updated boundary comprises obtaining a speed of the moving vehicle and determining a shape of the boundary based on the speed.
18. The method of claim 1, further comprising determining a direction of movement representing a direction of travel of the vehicle, wherein the boundary extends in a direction of the direction of movement farther from the updated geographic location of the device than the boundary extends in other directions.
19. The method of claim 1, wherein the storage component comprises an optical disk or a magnetic hard disk drive.
20. The method of claim 1, wherein each map data block represents an area having a width dimension of less than 1000 meters and a length dimension of less than 1000 meters.
21. The method of claim 1, wherein each map data block represents an area having a width dimension less than 500 meters and a length dimension less than 500 meters.
22. The method of claim 1, wherein each map data block represents an area having a width dimension less than 250 meters and a length dimension less than 250 meters.
23. The method of claim 1, wherein each map data block represents an area having a width dimension of about 200 meters and a length dimension of about 200 meters.
24. The method of claim 1, wherein each map data block represents an area having a width dimension less than 100 meters and a length dimension less than 100 meters.
25. The method of claim 1, wherein the boundary is sized such that loading map data based on the updated geographic location includes loading three map data blocks in response to determining that the updated geographic location is outside the boundary region.
26. The method of claim 1, wherein the boundary is sized such that loading map data based on the updated geographic location includes loading five map data blocks in response to determining that the updated geographic location is outside the boundary region.
27. The method of claim 1, wherein obtaining the geographic location of the device comprises receiving, by the at least one processor, information from a Global Positioning System (GPS).
28. The method of claim 1, wherein obtaining the geographic location of the device comprises receiving geographic location information from at least one transmitter at a fixed location.
29. The method of claim 1, wherein obtaining the geographic location of the device comprises sensing at least one fixed location indicator using a sensing system on the vehicle, and determining the geographic location based on the sensed at least one fixed location indicator.
30. A system, the system comprising:
a storage system configured to store map data, the map data comprising a plurality of map data blocks;
At least one processor coupled to a storage component comprising an instruction set and to the storage system, the at least one processor, when executing the instruction set, configured to cause the system to:
obtaining a geographic location of the device;
Obtaining boundaries corresponding to geographic boundary areas connected around the geographic position of the equipment;
Loading map data from the storage means into a memory of the device, the map data comprising a plurality of map data blocks, each of the plurality of map data blocks comprising a portion of the geographic boundary area and the geographic boundary area corresponding to a portion of the loaded map data, wherein the plurality of map data blocks comprise a central block having a point corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the central block and sized such that the geographic boundary area intersects the surrounding map data blocks; and
When the vehicle is in motion:
Obtaining an updated geographical location of the device,
Determining a location of the updated geographic location relative to the boundary region, and
In response to determining that the updated geographic location is outside the boundary region, obtaining an updated boundary centered on the updated geographic location, and loading map data from the storage component into the memory of the device based on the updated boundary, and removing from the memory blocks of map data that do not intersect with or are not surrounded by the updated boundary, such that the resulting loaded map data includes:
a center block having points corresponding to the updated geographic location of the device, and
Additional blocks of map data surrounding the center block intersecting the geographic boundary region.
31. The system of claim 30, further comprising a vehicle.
32. A non-transitory computer-readable medium storing instructions that, when executed by a computing device, cause the computing device to:
obtaining a geographic location of the device;
Obtaining boundaries corresponding to geographic boundary areas connected around the geographic position of the equipment;
Loading map data from a storage means into a memory of the device, the map data comprising a plurality of map data blocks, each of the plurality of map data blocks comprising a portion of the geographic boundary area and the geographic boundary area corresponding to a portion of the loaded map data, wherein the plurality of map data blocks comprise a center block having a point corresponding to the geographic location of the device and surrounding map data blocks, and wherein the boundary is centered on the center block and sized such that the geographic boundary area intersects the surrounding map data blocks; and
When the vehicle is in motion:
Obtaining an updated geographical location of the device,
Determining a location of the updated geographic location relative to the boundary region, and
In response to determining that the updated geographic location is outside the boundary region, obtaining an updated boundary centered on the updated geographic location, and loading map data from the storage component into the memory of the device based on the updated boundary, and removing from the memory blocks of map data that do not intersect with or are not surrounded by the updated boundary, such that the resulting loaded map data includes:
a center block having points corresponding to the updated geographic location of the device, and
Additional blocks of map data surrounding the center block intersecting the geographic boundary region.
CN201880100669.4A 2018-12-26 2018-12-26 System and method for loading and tracking maps on a vehicle Active CN113748418B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/067555 WO2020139330A1 (en) 2018-12-26 2018-12-26 Systems and methods for loading and tracking maps on a vehicle

Publications (2)

Publication Number Publication Date
CN113748418A CN113748418A (en) 2021-12-03
CN113748418B true CN113748418B (en) 2024-04-30

Family

ID=71128364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880100669.4A Active CN113748418B (en) 2018-12-26 2018-12-26 System and method for loading and tracking maps on a vehicle

Country Status (2)

Country Link
CN (1) CN113748418B (en)
WO (1) WO2020139330A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112734918B (en) * 2020-12-31 2023-05-23 潍柴动力股份有限公司 Dynamic updating method, device, equipment and medium of platform-end three-dimensional electronic map

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009027161A1 (en) * 2007-08-29 2009-03-05 Wayfinder Systems Ab Pre-fetching navigation maps
CN105571608A (en) * 2015-12-22 2016-05-11 苏州佳世达光电有限公司 Navigation system, vehicle and navigation map transmission method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100485059B1 (en) * 2001-10-19 2005-04-22 후지쓰 텐 가부시키가이샤 Image display
DE102005020152A1 (en) * 2005-04-29 2006-11-02 Volkswagen Ag Method for controlling map display in vehicle involves display device which is controlled in such manner that section of geographical map is displayed in three-dimensionally non-linear scale
US10353931B2 (en) * 2016-12-30 2019-07-16 DeepMap Inc. High definition map and route storage management system for autonomous vehicles

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009027161A1 (en) * 2007-08-29 2009-03-05 Wayfinder Systems Ab Pre-fetching navigation maps
CN105571608A (en) * 2015-12-22 2016-05-11 苏州佳世达光电有限公司 Navigation system, vehicle and navigation map transmission method

Also Published As

Publication number Publication date
CN113748418A (en) 2021-12-03
WO2020139330A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US10876844B2 (en) Systems and methods for loading and tracking maps on a vehicle
US20200209005A1 (en) Systems and methods for loading object geometry data on a vehicle
US11080216B2 (en) Writing messages in a shared memory architecture for a vehicle
EP3673407B1 (en) Automatic occlusion detection in road network data
US11423677B2 (en) Automatic detection and positioning of pole-like objects in 3D
US11255974B2 (en) Method of determining position of vehicle and vehicle using the same
US11616737B2 (en) Reading messages in a shared memory architecture for a vehicle
US10747597B2 (en) Message buffer for communicating information between vehicle components
US11327489B2 (en) Shared memory architecture for a vehicle
US11634153B2 (en) Identification of proxy calibration targets for a fleet of vehicles
CN104411559A (en) A robust method for detecting traffic signals and their associated states
CN115552200A (en) Method and system for generating importance occupancy grid map
US20230077837A1 (en) Collaborative perception for autonomous vehicles
US11673581B2 (en) Puddle occupancy grid for autonomous vehicles
CN111693055A (en) Road network change detection and local propagation of detected changes
CN114072784A (en) System and method for loading object geometric data on a vehicle
US20220269281A1 (en) Method and system for generating a topological graph map
CN113748418B (en) System and method for loading and tracking maps on a vehicle
WO2020139396A1 (en) Writing messages in a shared memory architecture for a vehicle
CN116569070A (en) Method and system for analyzing dynamic LiDAR point cloud data
WO2020139395A1 (en) Reading messages in a shared memory architecture for a vehicle
WO2020139393A1 (en) Message buffer for communicating information between vehicle components
US20220067399A1 (en) Autonomous vehicle system for performing object detections using a logistic cylinder pedestrian model
WO2020139389A1 (en) Shared memory architecture for a vehicle

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant