METHOD, APPARATUS, AND SYSTEM FOR PROVIDING INCREASED ACCURACY FOR A POSITIONING RECEIVER IN A MULTIPATH SIGNAL ENVIRONMENT

An approach is provided for increased accuracy for a positioning receiver in a multipath signal environment. The approach, for example, involves receiving real-time imagery data collected using one or more sensors. The real-time imagery data, for instance, depicts a geographic environment in which the positioning receiver is operating. The approach also involves processing the real-time imagery data to dynamically generate a mask angle. The approach further involves blocking one or more signals from one or more navigation satellites received at the positioning receiver using the mask angle. The approach further involves determining positioning data using the positioning receiver based on the blocking of the one or more signals.

BACKGROUND

Generally, Global Navigation Satellite Systems (GNSS) broadcast signals from multiple satellites to positioning receivers that compute positioning data (e.g., a location of a receiver) based on the timing of when signals for different satellites are received. However, in environments where a signal from one satellite can be bounced from surfaces or objects in the environment (e.g., environments with tall buildings or other structures), one signal can follow multiple paths to the receiver which can affect the accuracy of the positioning data determined by the receiver. This problem is commonly referred to as the “Urban Canyon and Obstruction Problem.” As a result, positioning receiver manufacturers and related location-based service providers face significant technical challenges with respect to reducing multipath signal interference that can affect the accuracy and reliability of positioning receivers.

SOME EXAMPLE EMBODIMENTS

Therefore, there is a need for an approach for providing increased accuracy for a positioning receiver in a multipath signal environment, particularly for positioning receivers that move in real-time such as in vehicles or mobile devices (e.g., smartphones, personal navigation devices, etc.) where the environment is constantly changing.

According to one embodiment, a method comprises receiving real-time imagery data collected using one or more sensors. The real-time imagery data, for instance, depicts a geographic environment in which a positioning receiver is operating. The method also comprises processing the real-time imagery data to dynamically generate a mask angle (e.g., a minimum acceptable elevation above the horizon that a positioning satellite of GNSS has to be to have line-of-sight to the positioning receiver). The method further comprises blocking one or more signals from one or more navigation satellites received at the positioning receiver using the mask angle. The method further comprises determining positioning data using the positioning receiver based on the blocking of the one or more signals.

According to another embodiment, an apparatus comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to receive real-time imagery data collected using one or more sensors. The real-time imagery data, for instance, depicts a geographic environment in which a positioning receiver is operating. The apparatus is also caused to process the real-time imagery data to dynamically generate a mask angle (e.g., a minimum acceptable elevation above the horizon that a positioning satellite of GNSS has to be to have line-of-sight to the positioning receiver). The apparatus is further caused to block one or more signals from one or more navigation satellites received at the positioning receiver using the mask angle. The apparatus is further caused to determine positioning data using the positioning receiver based on the blocking of the one or more signals.

According to another embodiment, a non-transitory computer-readable storage medium carries one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to receive real-time imagery data collected using one or more sensors. The real-time imagery data, for instance, depicts a geographic environment in which a positioning receiver is operating. The apparatus is also caused to process the real-time imagery data to dynamically generate a mask angle (e.g., a minimum acceptable elevation above the horizon that a positioning satellite of GNSS has to be to have line-of-sight to the positioning receiver). The apparatus is further caused to block one or more signals from one or more navigation satellites received at the positioning receiver using the mask angle. The apparatus is further caused to determine positioning data using the positioning receiver based on the blocking of the one or more signals.

According to another embodiment, an apparatus comprises means for receiving real-time imagery data collected using one or more sensors. The real-time imagery data, for instance, depicts a geographic environment in which a positioning receiver is operating. The apparatus also comprises means for processing the real-time imagery data to dynamically generate a mask angle (e.g., a minimum acceptable elevation above the horizon that a positioning satellite of GNSS has to be to have line-of-sight to the positioning receiver). The apparatus further comprises means for blocking one or more signals from one or more navigation satellites received at the positioning receiver using the mask angle. The apparatus further comprises means for determining positioning data using the positioning receiver based on the blocking of the one or more signals.

For various example embodiments, the following is applicable: An apparatus comprising means for performing a method of the claims.

DESCRIPTION OF SOME EMBODIMENTS

FIG.1is a diagram of a system capable of providing increased accuracy for a positioning receiver in a multipath environment, according to one embodiment. As described above, Global Navigation Satellite Systems (GNSS) generally operate by broadcasting signals (e.g., signals101a-101n—also collectively referred to as signals101) from positioning satellites (e.g., satellites103a-103n—also collectively referred to as satellites103) that are then received at a GNSS receiver (e.g., positioning receiver105). The positioning receiver105then uses the known positions of the satellites103and the timing of when the signals101from those satellites103are received to compute a location of the positioning receiver105(e.g., positioning data107comprising a latitude, longitude, and optionally altitude). In one embodiment, when the positioning receiver105is equipped in a vehicle109or other device (e.g., a user equipment (UE) device111), the positioning data107can be used to indicate the location of the corresponding vehicle109or UE111.

In one embodiment, the positioning data107can then be used by any location-based service or application. By way of example, these location-based services and/or application can include but are not limited to: (1) location-based applications113(e.g., mapping and/or navigation applications) executing on the vehicle109and/or UE111; (2) online location-based services (e.g., online or cloud-based mapping or navigation services) provided over a communication network115by a services platform117comprising one or more services119a-119m(also collectively referred to as services119) and/or other content providers121.

These location-based services and applications generally on the accuracy of the positioning data107to provide their highest quality of service. Accordingly, if the accuracy or reliability the positioning data107is reduced, so is the quality of the location-based service and/or application. For example, in an urban canyon and obstruction problem scenario (e.g., also referred to as a multipath signal problem or environment), signals101from one or more satellites103can be obstructed or bounced off structures, objects, surfaces, etc. in the environment before being received at the positioning receiver105. Bounced signals will have a longer path from the originating satellite103to the positioning receiver105, then the timing for when the signal is broadcast from the satellite103to when the signal101is received at the positioning receiver105will also be longer than expected. This difference in signal timing can then result in increased error in computing the resulting positioning data107. Accordingly, service providers face significant technical challenges with respect to mitigating the urban canyon and obstruction problem to improve the performance of positioning receivers105.

To address these technical challenges, the system100ofFIG.1introduces a capability to minimize the urban canyon and obstruction problem by providing a mask angle application123to generate a dynamic mask angle125that changes with the environment (e.g., in real-time) to substantially increase accuracy, reliability, and consistency of GNSS positions (e.g., positioning data107) in obstructed situations. A mask angle, for instance, is a threshold elevation above the horizon such that any positioning signals101received at an angle below the threshold elevation would be blocked or otherwise filtered from use in computing the positioning data107. In one embodiment, the system100uses real-time imagery data127captured using one or more sensors (e.g., camera sensor129) onboard the vehicle109and/or other UE111in which the positioning receiver105is equipped to generate the dynamic mask angle125. The real-time imagery data127can be processed to determine a line-of-sight to one or more positioning satellites103. The elevation threshold of the dynamic mask angle125can then be dynamically adjusted to block or filter angles that are below the light-of-sight angle as the positioning receiver105or potentially obstructing surfaces, objects, etc. move within the geographic environment. Thus, the system100advantageously makes it possible to use a dynamic mask angle125to block out bounced signals101from the satellites103(e.g., multipath) which are the primary source of the urban canyon and obstruction problems.

The various embodiments described herein use a dynamic mask angle125because, it may not be enough to have a static unmoving mask angle. Accordingly, in one embodiment, as the conditions around a vehicle109or UE111change the GNSS dynamic mask angle125does too. For example, the dynamic mask angle125should increase when obstructions impinge (e.g., on the line-of-sight from the positioning receiver105to the satellites103) and decrease when the obstructions fade. In some cases, a “learned” or dynamic mask angle can be generated using sensor data such as LiDAR modeling of the environment around the positioning receiver105. However, this LiDAR approach is applicable only to vehicles109and/or UEs111that have onboard LiDAR sensors, which currently is not very widespread. To address this issue, the system100relies on real-time environmental data (e.g., real-time imagery data127) that is generated from sensors (e.g., camera sensor129) that are onboard a greater number of vehicles109or UEs111.

In some scenarios, use of the dynamic mask angle125(e.g., particularly high-angle mask angles) may reduce the number satellites103visible to the positioning receiver105below a threshold number (e.g., minimum of four visible satellites103) to achieve a target level of positioning accuracy or reliability. To address this issue, in one embodiment, the positioning receiver105can be configured to receive signals from multiple constellations of positioning satellites instead of just a single constellation. Examples of different constellations of GNSS satellites include but are not limited to those associated with the Global Positioning System (GPS), Global Orbiting Navigation Satellite System (GLONASS), Galileo, BeiDou, and/or the like. In this way, a positioning receiver105capable of receiving signals from multiple GNSS constellations can maximize the possible number of visible satellites103for generating positioning data107even when signals101from some of those satellites103are blocked or filtered by the dynamic mask angle125.

FIGS.2A and2Bare diagrams illustrating examples of using a dynamic mask angle125to provide increased accuracy for a positioning receiver105in a multipath environment, according to one embodiment. In the example ofFIG.2A, a vehicle109equipped with a positioning receiver105(not shown) and a camera sensor129(not shown) is traveling in an urban environment. In this example, the camera sensor129of the vehicle109is used to capture a real-time image of the urban environment. The image is processed to determine surfaces, objects, and/or any other obstructions (e.g., buildings that are line-of-sight obstructions to the sky and/or any of the positioning satellites103a-103f). Based on the determined obstructions or lines of sight, the system100can determine corresponding angles to generate a dynamic mask angle125that will block signals that are received at angles below the determined line of sight elevations. In this example, satellite103ais blocked from a direct line of sight to the positioning receiver105of vehicle109by a building. Thus, the signal101afrom satellite103areaches the positioning receiver105only after bouncing off the surface of an adjacent building. Bounced signals are the primary cause of the urban canyon obstruction problem. Thus, the dynamic mask angle125generated based on the real-time imagery data127captured by an onboard vehicle camera sensor129can be used to block signal101afrom use in computing the positioning data107at the location.

However, the dynamic mask angle125generated in the example ofFIG.2Ais optimized for that specific location of the vehicle109and positioning receiver105. Thus, when the vehicle109moves to another location, the mask angle125may no longer be optimal (e.g., with respect to maximizing accuracy and maximizing the number of visible satellites103for use in positioning). In the example ofFIG.2B, the vehicle109has traveled out of the urban area ofFIG.2Ato a highway. Satellites103a-103fbroadcasting respective signals101a-101fare available in this environment. However, a large truck201has moved alongside the vehicle109creating a potential for a multipath signal environment. In this case, the side of the truck201creates a surface from which signal101ffrom satellite103fcan be bounced before being received at the positioning receiver105of the vehicle109. In addition, the positioning receiver has a direct line of sight to the satellite103fso that there are at least two paths that signals from satellite103fcan reach the positioning receiver103(e.g., via signal101fbounced off of the surface of the truck201, or directly via a light of sight signal (not shown)). This creates a multipath problem that can decrease the accuracy and/or relatively of positioning data107generated in this scenario. Accordingly, the system100can capture real-time imagery data127depicting the truck201and any other nearby objects, surfaces, etc. that can bounce, block, or otherwise interface with signals101a-101foriginating satellites103a-103fAs described above, the real-time imagery data127can be processed to determine lines of sight to sky and/or satellites103a-103fgenerate or update the dynamic mask angle125so that bounced signals (e.g., bounced signal101f) can be blocked or filtered when computing positioning data107at the location, thereby increasing accuracy and reliability of the resulting positioning data107. In one use case, the positioning data107generated according to the embodiments described herein can be matched against road links or other map features of a digital map (e.g., a geographic database131) to identify specific road links/segments or other map features (e.g., points of interest, terrain features, political boundaries, etc.) corresponding to the raw geo-coordinates of the positioning data107.

In one embodiment, the various embodiments for generating a dynamic mask angle125as described herein can be used with additional optional processes for increasing accuracy and/or reliability. Examples of these optional processes can include but are not limited to: (1) configuring the positioning receiver105to receive signals from multiple GNSS constellations or systems (e.g., GPS plus GLONASS plus Galileo, etc.) and not from just a signal constellation only (e.g., GPS only); (2) using a dynamic mask angle125in combination with differential correction' and/or the like. For example, increasing the number of supported GNSS constellations can increase the maximum elevation angle that can be used in the dynamic mask angle125while still maintaining a minimum number of visible satellites for computing the positioning data107.

The various embodiments of the approach described herein provide for several technical advantages. For example, one traditional approach to generating a mask angle relies on Street View imagery (e.g., panoramic street view images captured by mapping vehicles at an earlier time) as opposed the real-time imagery data127used in the various embodiments described herein. For example, Street View imagery is static, by definition out of date and computationally difficult to process (e.g., the location of the car or positioning receiver105in each epoch was used to find the nearest previously stored Street View panorama to generate sky view images). Under the approach of the various embodiments described herein, this is all unnecessary. Instead, in one embodiment, the real-time imagery data127that is used to alter the dynamic mask angle125is captured by the vehicle109or UE111itself in real time so that the real-time imagery data127is dynamic and temporally correct. The alteration of the dynamic mask angle125can therefore be virtually instantaneous. Furthermore, there is no need to use an almanac to pre-plan the positions of the satellites for creating a mask angle. This is because the various embodiments of the system100are real-time system that work as efficiently in tree-obstructed areas as in an urban canyon and in traffic where a semi-trailer truck is beside the vehicle. There generally are not Street View or pre-stored imagery for those conditions.

In one embodiment, the system100includes a mask angle application123or equivalent platform or module for performing one or more functions associated with providing increased accuracy for a positioning receiver in a multipath environment.FIG.3is a diagram of components of a mask angle application or platform, according to one embodiment. As shown, the mask angle application123includes an imagery module301, a mask angle module303, and a positioning module305. The above presented modules and components of the mask angle application123can be implemented in hardware, firmware, software, or a combination thereof. Though depicted as a separate entity inFIG.1, it is contemplated that the mask angle application123may be implemented as a module of any of the components of the system100(e.g., a component of the positioning receiver105, vehicle109, UE111, application113, services platform117, services119, content providers121, and/or the like). It is also contemplated that the functions of the components of the mask angle application123may be combined or performed by other components or modules of equivalent functionality. In another embodiment, one or more of the modules301-305may be implemented as a cloud-based service, local service, native application, hardware, firmware, or combination thereof. The functions of the mask angle application123and modules301-305are discussed with respect to the figures below.

FIG.4is a flowchart of a process for providing increased accuracy for a positioning receiver in a multipath environment, according to one embodiment. In various embodiments, the mask angle application123and/or any of the modules301-305may perform one or more portions of the process400and may be implemented in, for instance, a chip set including a processor and a memory as shown inFIG.9. As such, the mask angle application123and/or any of the modules301-305can provide means for accomplishing various parts of the process400, as well as means for accomplishing embodiments of other processes described herein in conjunction with other components of the system100. Although the process400is illustrated and described as a sequence of steps, it is contemplated that various embodiments of the process400may be performed in any order or combination and need not include all of the illustrated steps.

In step401, the imagery module301receives real-time imagery data127collected using one or more sensors (e.g., camera sensors129or equivalent), wherein the real-time imagery data127depicts a geographic environment in which a positioning receiver105is operating. In one embodiment, the one or more sensors (e.g., camera sensors129), the positioning receiver105, or a combination thereof are equipped in a vehicle109, a device (e.g., UE111), or a combination thereof traveling in the geographic environment. In other words, the positioning receiver105and camera sensor129(or equivalent sensor capable of generating real-time imagery data127) are co-located onboard a common device (e.g., UE111such as but not limited to a smartphone, personal navigation device, or equivalent) or vehicle109(e.g., car, truck, boat, bicycle, etc.).

In one embodiment, the real-time imagery data127is collected by the one or more sensors (e.g., camera sensor129) at a location in the geographic environment corresponding to the positioning receiver105. In this way, the captured real-time imagery data127will depict or correspond to the location and time at which the positioning receiver105is concurrently receiving positioning signals101from the satellites103. In addition, the real-time imagery data127also enables the mask angle application123to continuously or periodically monitor the environment in which the positioning receiver105so that changes that may affect line of sight to the satellites103or other conditions affecting multipath possibilities for the signals101to reach the positioning receiver105can be monitored. For example, the monitoring can occur such that the real-time imagery can be capture at specified spatial and/or temporal intervals.

In step403, the mask angle module303processes the real-time imagery data127to dynamically generate a mask angle (e.g., dynamic mask angle125). Dynamic, for instance, refers a mask angle that can change in threshold elevation or angle for blocking bounced signals101based on changes in the environment. These changes can include but are not limited to changes resulting from movement of the positioning receiver105and/or the vehicle109/UE111in which it is equipped, as well as changes in the movement or positions of nearby objects, surfaces, and/or any other feature capable of obstructing or reflecting signals101from the satellites103.

As discussed above, in one embodiment, the dynamic mask angle125blocks the one or more signals101(e.g., broadcast from satellites103) that are bounced off of one or more surfaces, one or more objects, or a combination thereof in the environment before being received by the positioning receiver105. This bouncing or multipath signal propagation is one of the primary causes of the urban canyon or obstruction problem. According, the mask angle module303can process the real-time imagery data127to determine one or more respective positions of the one or more surfaces, the one or more objects, or a combination thereof relative to the positioning receiver, wherein the dynamic mask angle125is generated based on the determined one or more respective positions. In one embodiment, the dynamic mask angle125is generated based on at least one angle with respect to a line-of-sight from the positioning receiver105to sky or the satellites that is unobstructed by the one or more surfaces, the one or more objects, or a combination thereof as depicted in the real-time imagery data127.

In one embodiment, the processing can be performed using computer vision or equivalent object recognition techniques that can segment and classify different sections into, for instance, sky versus non-sky regions. Then using properties of the camera sensor129(e.g., focal length, lens type, etc.), the mask angle can compute elevation angles from the horizon to the line of sight to an unobstructed view of the sky or satellites103from the perspective of the current location of the camera sensor129or positioning receiver105. It is noted that the above example of generating the dynamic mask angle125from the real-time imagery data127is provided by way of illustration and not as a limitation. It is contemplated that any equivalent for extracting mask angles from imagery can be used according to the various embodiments described herein.

In step405, the positioning receiver205blocks one or more signals101from one or more navigation satellites103received at the positioning receiver105using the dynamic mask angle125. By way of example, the blocking refers to filtering or removing signals101that are received at the positioning receiver at an angle that is below the threshold angle or elevation specified in the dynamic mask angle125. For example, if the dynamic mask angle has an angle of 60°, then any signals101arriving at the positioning receiver105at an incident angle of less than 60° will be blocked or filtered.

In one embodiment, the positioning receiver105is capable of receiving and processing positioning signals from more than one GNSS constellations to enable the positioning receiver to maximize the number of visible satellites103and positioning accuracy while also filtering or blocking some signals101. Thus. the one or more navigation satellites103being used for positioning can belong to a plurality of different satellite constellations. By way of example, the different satellite constellations are Global Navigation Satellite Systems (GNSS) including but not limited to at least two of: (1) Global Positioning System (GPS); (2) Global Orbiting Navigation Satellite System (GLONASS); (3) Galileo; and (4) BeiDou Navigation Satellite System. The satellite constellations listed above are provided by way of illustration and not as limitations. It is contemplated that any equivalent GNSS (current or future) can be used according to the various embodiments described herein.

In step407, the positioning module305determines positioning data107using the positioning receiver105based on the blocking of the one or more signals. For example, the positioning receiver105can compute the positioning data107(e.g., latitude, longitude, and/or altitude of the positioning receiver105) based on the know locations of the satellites103(e.g., based on orbital data) and the difference in the arrival times of signals101received from a minimum number of satellites103(e.g., at least four satellites103). The broadcasting of the signals101are synchronized among the satellites103(or otherwise known) such that the arrival times of their corresponding signals are associated with the relative distance of the positioning receiver105to each of the satellites103so that the positioning data107can be triangulated from the signals101that have not been blocked or filtered by the dynamic mask angle125. In embodiments where the positioning receiver105is capable of using multiple satellite constellations for positioning, the positioning receiver105can have the orbital data and signal transmission synchronicity for the multiple constellations.

In one embodiment, the positioning data107can be differentially corrected to improve accuracy. For example, the differentially corrected positioning data107can be determined using Differential GPS (DGPS) (or any other equivalent positioning technology) that can improve location data accuracy (e.g., to meter-level accuracy or better). DGPS uses ground-based reference stations located at known locations that broadcast the difference between their known locations and their locations as determined from satellite signals. The difference (e.g., differences in the x, y, and z axes—3D location difference) can then be used to correct the location readings taken by nearby GPS receivers.

In one embodiment, the resulting positioning data107can be provided an output to a location-based service or application. The output can be in the form of raw geocoordinates (e.g., latitude, longitude, and/or altitude. In addition or alternatively, the output can include map matched data (e.g., matched to road links or features of a digital map such as the geographic database131). As discussed above, the output can be used to by any location-based service or application such mapping, navigation, and/or the like.

FIG.5is a diagram illustrating an example of generating a dynamic mask angle125for a positioning receiver105in a moving vehicle109, according to one embodiment. In the example ofFIG.5, a vehicle109is equipped with a positioning receiver105(not shown) configured to generate a dynamic mask angle125based on real-time imagery data at time intervals (e.g., time501a,time501b,and time501c) during a trip. At time501a,the camera sensor129(not shown) of the vehicle109captures an image503aof the surrounding geographic environment. The image503ashows that the vehicle109is located in an urban center and is processed according to the embodiments described herein to generate the dynamic mask angle125. Because the image503ashows that the vehicle109is driving among tall buildings, the generated dynamic mask angle125is set at threshold angle or elevation of 70° indicating that the line of sight to the sky or satellites103is at a relatively steep angle. The positioning data107for the location of the vehicle109at time501ais then generated using the dynamic mask angle125to block signals arriving at incident angles below 70°.

At time501b,the vehicle109has traveled outside the urban center and is now in a more rural area. The camera sensor129of the vehicle109captures an image503bshowing that the terrain is relatively flat except for distant mountains on the horizon. The dynamic mask angle125is updated based on the new image503b,resulting in an updated mask angle125with a threshold angle of 15°. This relatively low mask angle enables the positioning receiver105to dynamically take advantage of the more expansive view of the sky and increased number of satellites to generating positioning data107for the location of the vehicle109at time 50 lb.

At time501c,a semi-trailer track is traveling next to the vehicle109and is obstructing more of the line of sight to overhead satellites103. The camera sensor129captures an image403cshowing the truck next to the vehicle109. The dynamic mask angle125is updated based on the new image503c,resulting in an updated mask angle125that has been increased from 15° to 50° to avoid the obstruction between the positioning receiver105and some of the satellites103. In this way, inaccuracies created by potential multipath interference created by the truck can be avoided to improve positioning accuracy and reliability.

By enabling a dynamic mask angle125, the system100provides for increased accuracy and consistency of positioning accuracy across a broader range of multipath environments.FIG.6is a diagram illustrating an example of mapping user interface presenting positioning data107generated using a dynamic mask angle125, according to one embodiment. In the example ofFIG.6, a vehicle109is equipped with a positioning receiver105configured with a dynamic mask angle125generated according to the various embodiments described herein. A mapping user interface601depicts a map of a route603that is taken by the vehicle109. Positioning data107is generated at multiple points (e.g., indicated by white dots) along the planned route603that takes the vehicle109through dense urban canyon areas as well as open spaces. By using the dynamic mask angle125to filter out potentially multipath signals101, the resulting positioning data107shows that most of the white dots (e.g., indicating location data points determined by the positioning receiver105) is consistently on the route603with little if no outlier points that are well off the route603(e.g., which might indicate positioning inaccuracy) even when traveling in urban canyon areas.

Returning toFIG.1, as shown, the system100includes the mask angle application123for providing increased accuracy for a positioning receiver105in a multipath signal environment according to the various embodiments described herein. The mask angle application123also has connectivity or access to the geographic database131which stores digital map data in combination with the positioning data107generated according to the various embodiments described herein. In one embodiment, the geographic database131includes road link records and records of other map features that can be used to match against the generated positioning data107and/or to confirm the presence of obstruction, objects, surfaces, etc. detected in the real-time imagery data127from which the dynamic mask angle125is generated. As shown, the mask angle application123has connectivity over the communication network115to the services platform117that provides one or more services119that can use or provide data for generating the dynamic mask angle125. By way of example, the services119may be third party services and include mapping services, navigation services, travel planning services, notification services, social networking services, content (e.g., audio, video, images, etc.) provisioning services, application services, storage services, contextual information determination services, location-based services, information-based services (e.g., weather, news, etc.), etc. In one embodiment, the services119uses the output of the mask angle application123to provide services119such as navigation, mapping, other location-based services, etc.

In one embodiment, the mask angle application123may be a platform with multiple interconnected components. The mask angle application123may include multiple servers, intelligent networking devices, computing devices, components, and corresponding software for providing the dynamic mask angle125. In addition, it is noted that the mask angle application123may be a separate entity of the system100, a part of the one or more services119, a part of the services platform117, or included within the UE111and/or vehicle109. In one embodiment, content providers121(collectively referred to as content providers121) may provide content or data for use according to the various embodiments described herein.

In one embodiment, the UE111and/or vehicle109may execute a software application113to capture sensor data (e.g., real-time imagery data127) for providing the dynamic mask angle125according to the embodiments described herein. By way of example, the application113may also be any type of application that is executable on the UE111and/or vehicle109, such as autonomous driving applications, mapping applications, location-based service applications, navigation applications, content provisioning services, camera/imaging application, media player applications, social networking applications, calendar applications, and the like. In one embodiment, the application113may act as a client for the mask angle application123and perform one or more functions associated with generating the dynamic mask angle125alone or in combination with the mask angle application123.

By way of example, the UE111is any type of embedded system, mobile terminal, fixed terminal, or portable terminal including a built-in navigation system, a personal navigation device, mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, fitness device, television receiver, radio broadcast receiver, electronic book device, game device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It is also contemplated that the UE111can support any type of interface to the user (such as “wearable” circuitry, etc.). In one embodiment, the UE111may be associated with the vehicle109or be a component part of the vehicle109.

In one embodiment, the UE111and/or vehicle109are configured with various sensors for generating or collecting sensor data (e.g., real-time imagery data127), related geographic data, etc. In one embodiment, the sensed data represent sensor data associated with a geographic location or coordinates at which the sensor data was collected. By way of example, the sensors may include a global positioning sensor for gathering location data (e.g., GPS or other GNSS), a network detection sensor for detecting wireless signals or receivers for different short-range communications (e.g., Bluetooth, Wi-Fi, Li-Fi, near field communication (NFC) etc.), temporal information sensors, a camera/imaging sensor for gathering image data (e.g., the camera sensors may automatically capture ground control point imagery, etc. for analysis), an audio recorder for gathering audio data, velocity sensors mounted on steering wheels of the vehicles, switch sensors for determining whether one or more vehicle switches are engaged, and the like.

Other examples of sensors of the UE111and/or vehicle109may include light sensors, orientation sensors augmented with height sensors and acceleration sensor (e.g., an accelerometer can measure acceleration and can be used to determine orientation of the vehicle), tilt sensors to detect the degree of incline or decline of the vehicle along a path of travel, moisture sensors, pressure sensors, etc. In a further example embodiment, sensors about the perimeter of the UE111and/or vehicle109may detect the relative distance of the vehicle from a lane or roadway, the presence of other vehicles, pedestrians, traffic lights, potholes and any other objects, or a combination thereof In one scenario, the sensors may detect weather data, traffic information, or a combination thereof. In one embodiment, the UE111and/or vehicle109may include GPS or other satellite-based receivers to obtain geographic coordinates for determining current location and time. Further, the location can be determined by visual odometry, triangulation systems such as A-GPS, Cell of Origin, or other location extrapolation technologies. In yet another embodiment, the sensors can determine the status of various control elements of the car, such as activation of wipers, use of a brake pedal, use of an acceleration pedal, angle of the steering wheel, activation of hazard lights, activation of head lights, etc.

FIG.7is a diagram of a geographic database, according to one embodiment. In one embodiment, the geographic database131includes geographic data701used for (or configured to be compiled to be used for) mapping and/or navigation-related services, such as for video odometry based on the mapped features (e.g., lane lines, road markings, signs, etc.). In one embodiment, the geographic database131includes high resolution or high definition (HD) mapping data that provide centimeter-level or better accuracy of map features. For example, the geographic database131can be based on Light Detection and Ranging (LiDAR) or equivalent technology to collect billions of 3D points and model road surfaces and other map features down to the number lanes and their widths. In one embodiment, the HD mapping data (e.g., HD data records711) capture and store details such as the slope and curvature of the road, lane markings, roadside objects such as signposts, including what the signage denotes. By way of example, the HD mapping data enable highly automated vehicles to precisely localize themselves on the road.

“Node”—A point that terminates a link.

As shown, the geographic database131includes node data records703, road segment or link data records705, POI data records707, mask angle data records709, HD mapping data records711, and indexes713, for example. More, fewer or different data records can be provided. In one embodiment, additional data records (not shown) can include cartographic (“carto”) data records, routing data, and maneuver data. In one embodiment, the indexes713may improve the speed of data retrieval operations in the geographic database131. In one embodiment, the indexes713may be used to quickly locate data without having to search every row in the geographic database131every time it is accessed. For example, in one embodiment, the indexes713can be a spatial index of the polygon points associated with stored feature polygons.

In exemplary embodiments, the road segment data records705are links or segments representing roads, streets, or paths, as can be used in the calculated route or recorded route information for determination of one or more personalized routes. The node data records703are end points corresponding to the respective links or segments of the road segment data records705. The road link data records705and the node data records703represent a road network, such as used by vehicles, cars, and/or other entities. Alternatively, the geographic database131can contain path segment and node data records or other data that represent pedestrian paths or areas in addition to or instead of the vehicle road record data, for example.

The road/link segments and nodes can be associated with attributes, such as functional class, a road elevation, a speed category, a presence or absence of road features, geographic coordinates, street names, address ranges, speed limits, turn restrictions at intersections, and other navigation related attributes, as well as POIs, such as gasoline stations, hotels, restaurants, museums, stadiums, offices, automobile dealerships, auto repair shops, buildings, stores, parks, etc. The geographic database131can include data about the POIs and their respective locations in the POI data records707. The geographic database131can also include data about places, such as cities, towns, or other communities, and other geographic features, such as bodies of water, mountain ranges, etc. Such place or feature data can be part of the POI data records707or can be associated with POIs or POI data records707(such as a data point used for displaying or representing a position of a city).

In one embodiment, the geographic database131can also include mask angle data records709for storing data related to generating dynamic mask angles125from real-time imagery data127according to the various embodiments described herein. By way of example, the mask angle data records709can be associated with one or more of the node records703, road segment records705, and/or POI data records707so specific dynamic mask angle125threshold elevation/angle data can be associated with corresponding positions at which the angle values were calculated.

In one embodiment, as discussed above, the HD mapping data records711model road surfaces and other map features to centimeter-level or better accuracy. The HD mapping data records711also include lane models that provide the precise lane geometry with lane boundaries, as well as rich attributes of the lane models. These rich attributes include, but are not limited to, lane traversal information, lane types, lane marking types, lane level speed limit information, and/or the like. In one embodiment, the HD mapping data records711are divided into spatial partitions of varying sizes to provide HD mapping data to vehicles109and other end user devices with near real-time speed without overloading the available resources of the vehicles109and/or devices (e.g., computational, memory, bandwidth, etc. resources).

In one embodiment, the HD mapping data records711are created from high-resolution 3D mesh or point-cloud data generated, for instance, from LiDAR-equipped vehicles. The 3D mesh or point-cloud data are processed to create 3D representations of a street or geographic environment at centimeter-level accuracy for storage in the HD mapping data records711.

In one embodiment, the HD mapping data records711also include real-time sensor data collected from probe vehicles in the field. The real-time sensor data, for instance, integrates real-time traffic information, weather, and road conditions (e.g., potholes, road friction, road wear, etc.) with highly detailed 3D representations of street and geographic features to provide precise real-time also at centimeter-level accuracy. Other sensor data can include vehicle telemetry or operational data such as windshield wiper activation state, braking state, steering angle, accelerator position, and/or the like.

In one embodiment, the geographic database131can be maintained by the content provider105in association with the services platform117(e.g., a map developer). The map developer can collect geographic data to generate and enhance the geographic database131. There can be different ways used by the map developer to collect data. These ways can include obtaining data from other sources, such as municipalities or respective geographic authorities. In addition, the map developer can employ field personnel to travel by vehicle (e.g., vehicle109and/or UE111) along roads throughout the geographic region to observe features and/or record information about them, for example. Also, remote sensing, such as aerial or satellite photography, can be used.

The processes described herein for providing a dynamic mask angle125based on real-time imagery data127may be advantageously implemented via software, hardware (e.g., general processor, Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or a combination thereof. Such exemplary hardware for performing the described functions is detailed below.

A bus810includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus810. One or more processors802for processing information are coupled with the bus810.

Computer system800also includes a memory804coupled to bus810. The memory804, such as a random access memory (RAM) or other dynamic storage device, stores information including processor instructions for providing a dynamic mask angle125based on real-time imagery data127. Dynamic memory allows information stored therein to be changed by the computer system800. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory804is also used by the processor802to store temporary values during execution of processor instructions. The computer system800also includes a read only memory (ROM)806or other static storage device coupled to the bus810for storing static information, including instructions, that is not changed by the computer system800. Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus810is a non-volatile (persistent) storage device808, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system800is turned off or otherwise loses power.

Information, including instructions for providing a dynamic mask angle125based on real-time imagery data127, is provided to the bus810for use by the processor from an external input device812, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system800. Other external devices coupled to bus810, used primarily for interacting with humans, include a display device814, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), or plasma screen or printer for presenting text or images, and a pointing device816, such as a mouse or a trackball or cursor direction keys, or motion sensor, for controlling a position of a small cursor image presented on the display814and issuing commands associated with graphical elements presented on the display814. In some embodiments, for example, in embodiments in which the computer system800performs all functions automatically without human input, one or more of external input device812, display device814and pointing device816is omitted.

Network link878typically provides information communication using transmission media through one or more networks to other devices that use or process the information. For example, network link878may provide a connection through local network880to a host computer882or to equipment884operated by an Internet Service Provider (ISP). ISP equipment884in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet890.

A computer called a server host892connected to the Internet hosts a process that provides a service in response to information received over the Internet. For example, server host892hosts a process that provides information representing video data for presentation at display814. It is contemplated that the components of system can be deployed in various configurations within other computer systems, e.g., host882and server892.

The processor903and accompanying components have connectivity to the memory905via the bus901. The memory905includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide a dynamic mask angle125based on real-time imagery data127. The memory905also stores the data associated with or generated by the execution of the inventive steps.

FIG.10is a diagram of exemplary components of a mobile terminal (e.g., handset) capable of operating in the system ofFIG.1, according to one embodiment. Generally, a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry. Pertinent internal components of the telephone include a Main Control Unit (MCU)1003, a Digital Signal Processor (DSP)1005, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit1007provides a display to the user in support of various applications and mobile station functions that offer automatic contact matching. An audio function circuitry1009includes a microphone1011and microphone amplifier that amplifies the speech signal output from the microphone1011. The amplified speech signal output from the microphone1011is fed to a coder/decoder (CODEC)1013.

A radio section1015amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna1017. The power amplifier (PA)1019and the transmitter/modulation circuitry are operationally responsive to the MCU1003, with an output from the PA1019coupled to the duplexer1021or circulator or antenna switch, as known in the art. The PA1019also couples to a battery interface and power control unit1020.

The encoded signals are then routed to an equalizer1025for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator1027combines the signal with a RF signal generated in the RF interface1029. The modulator1027generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter1031combines the sine wave output from the modulator1027with another sine wave generated by a synthesizer1033to achieve the desired frequency of transmission. The signal is then sent through a PA1019to increase the signal to an appropriate power level. In practical systems, the PA1019acts as a variable gain amplifier whose gain is controlled by the DSP1005from information received from a network base station. The signal is then filtered within the duplexer1021and optionally sent to an antenna coupler1035to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna1017to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile station1001are received via antenna1017and immediately amplified by a low noise amplifier (LNA)1037. A down-converter1039lowers the carrier frequency while the demodulator1041strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer1025and is processed by the DSP1005. A Digital to Analog Converter (DAC)1043converts the signal and the resulting output is transmitted to the user through the speaker1045, all under control of a Main Control Unit (MCU)1003—which can be implemented as a Central Processing Unit (CPU) (not shown).

The MCU1003receives various signals including input signals from the keyboard1047. The keyboard1047and/or the MCU1003in combination with other user input components (e.g., the microphone1011) comprise a user interface circuitry for managing user input. The MCU1003runs a user interface software to facilitate user control of at least some functions of the mobile station1001to provide a dynamic mask angle125based on real-time imagery data127. The MCU1003also delivers a display command and a switch command to the display1007and to the speech output switching controller, respectively. Further, the MCU1003exchanges information with the DSP1005and can access an optionally incorporated SIM card1049and a memory1051. In addition, the MCU1003executes various control functions required of the station. The DSP1005may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP1005determines the background noise level of the local environment from the signals detected by microphone1011and sets the gain of microphone1011to a level selected to compensate for the natural tendency of the user of the mobile station1001.

The CODEC1013includes the ADC1023and DAC1043. The memory1051stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet. The software module could reside in RAM memory, flash memory, registers, or any other form of writable computer-readable storage medium known in the art including non-transitory computer-readable storage medium. For example, the memory device1051may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, or any other non-volatile or non-transitory storage medium capable of storing digital data.

An optionally incorporated SIM card1049carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card1049serves primarily to identify the mobile station1001on a radio network. The card1049also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile station settings.