This disclosure relates generally to electronics, and more specifically, but not exclusively, to methods, apparatuses, and articles of manufacture that determine a position of a device and/or otherwise make use of a visible light communication (VLC) transmission.
Information communicated by a specific LED luminary device using VLC can include an identifier that identifies the specific LED luminary device from another LED luminary device. However, groups of LED luminary devices often are not programmed with unique identifiers. This non-uniqueness can cause gross positioning ambiguity when a mobile device attempts to locate the mobile device's position using transmissions from the non-unique LED luminary devices.
Accordingly, there are long-felt industry needs for methods and apparatus that improve upon conventional methods and apparatus, including the provided improved methods and improved apparatus.
This summary provides a basic understanding of some exemplary aspects of the present teachings. This summary is not exhaustive in detail, and is neither intended to identify all critical features, nor intended to limit the scope of the claims.
Exemplary methods and apparatus for determining a position of a mobile device are provided. An exemplary method includes: detecting a first visible light communication (VLC) transmission from a first VLC light fixture; detecting a second VLC transmission from a second VLC light fixture, where a fixture vector between the first VLC light fixture and the second VLC light fixture is known; determining, using the detected first VLC transmission, a first device vector between the mobile device and the first VLC light fixture; determining, using the detected second VLC transmission, a second device vector between the mobile device and the second VLC light fixture; measuring, using a tilt sensor, a rotation matrix of a mobile device coordinate system relative to an absolute coordinate system; creating a compensated fixture vector by converting, using the rotation matrix, the fixture vector to the mobile device coordinate system; calculating a first distance between the mobile device and the first VLC light fixture, and a second distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the first device vector, and the second device vector; and triangulating the position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the first distance and the second distance. The method can further include refining the position of the mobile device by combining the position of the mobile device with additional positioning data from at least one of the following: a pose estimation based on an acquired image, a radio frequency (RF) transmission, or a combination thereof. The method can further include disambiguating the position of the mobile device using a particle belief propagation filter to compute a maximum-a-posteriori (MAP) estimate from the position of the mobile device and the additional positioning data. The RF transmission can be at least one of a Bluetooth device transmission, a WiFi device transmission, an RFID device transmission, a femtocell device transmission, a Zigbee device transmission, or a combination thereof. The absolute coordinate system can be based on at least one of an absolute gravity vector, a building envelope, a geomagnetic orientation, or a combination thereof. The method can further include: detecting a third visible VLC transmission from the first VLC light fixture; detecting a fourth VLC transmission from the second VLC light fixture; determining, using the detected third VLC transmission, a third device vector between the mobile device and the first VLC light fixture; determining, using the detected second VLC transmission, a fourth device vector between the mobile device and the second VLC light fixture; calculating a third distance between the mobile device and the first VLC light fixture, and a fourth distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the third device vector, and the fourth device vector; triangulating a second position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the third distance and the fourth distance; and determining a direction of travel vector of the mobile device from the first position and the second position. The method can further include disambiguating the position of the mobile device by computing a maximum of a product of a WiFi position density and a direction of travel vector density of the direction of travel vector of the mobile device. In a further example, provided is a non-transitory computer-readable medium, having processor-executable instructions stored thereon that are executable by a processor to cause the processor to execute at least a part of the aforementioned method. The non-transitory computer-readable medium can be integrated with a device, such as a mobile device, a music player, a video player, an entertainment device, a navigation device, a communications device, a computer, or a combination thereof.
In another example, provided is an apparatus configured to determine a position of a mobile device. The apparatus includes: means for detecting a first visible light communication (VLC) transmission from a first VLC light fixture; means for detecting a second VLC transmission from a second VLC light fixture, where a fixture vector between the first VLC light fixture and the second VLC light fixture is known; means for determining, using the detected first VLC transmission, a first device vector between the mobile device and the first VLC light fixture; means for determining, using the detected second VLC transmission, a second device vector between the mobile device and the second VLC light fixture; means for measuring, using a tilt sensor, a rotation matrix of a mobile device coordinate system relative to an absolute coordinate system; means for creating a compensated fixture vector by converting, using the rotation matrix, the fixture vector to the mobile device coordinate system; means for calculating a first distance between the mobile device and the first VLC light fixture, and a second distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the first device vector, and the second device vector; and means for triangulating the position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the first distance and the second distance. The apparatus can further include means for refining the position of the mobile device by combining the position of the mobile device with additional positioning data from at least one of the following: a pose estimation based on an acquired image, a radio frequency (RF) transmission, or a combination thereof. The apparatus can further include means for disambiguating the position of the mobile device using a particle belief propagation filter to compute a maximum-a-posteriori (MAP) estimate from the position of the mobile device and the additional positioning data. The RF transmission can be at least one of a Bluetooth device transmission, a WiFi device transmission, an RFID device transmission, a femtocell device transmission, a Zigbee device transmission, or a combination thereof. The absolute coordinate system can be based on at least one of an absolute gravity vector, a building envelope, a geomagnetic orientation, or a combination thereof. The apparatus can further include: means for detecting a third visible VLC transmission from the first VLC light fixture; means for detecting a fourth VLC transmission from the second VLC light fixture; means for determining, using the detected third VLC transmission, a third device vector between the mobile device and the first VLC light fixture; means for determining, using the detected second VLC transmission, a fourth device vector between the mobile device and the second VLC light fixture; means for calculating a third distance between the mobile device and the first VLC light fixture, and a fourth distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the third device vector, and the fourth device vector; means for triangulating a second position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the third distance and the fourth distance; and means for determining a direction of travel vector of the mobile device from the first position and the second position. The apparatus can further include means for disambiguating the position of the mobile device by computing a maximum of a product of a WiFi position density and a direction of travel vector density of the direction of travel vector of the mobile device. The apparatus can be a part of the mobile device. At least a part of the apparatus can be integrated on a semiconductor die. Further, at least a part of the apparatus can include a device, such as a mobile device, a music player, a video player, an entertainment device, a navigation device, a communications device, a computer, or a combination thereof, with a part of the apparatus being a constituent part of the device. In a further example, provided is a non-transitory computer-readable medium having lithographic device-executable instructions stored thereon that are executable by a lithographic device to cause the lithographic device to fabricate at least a part of the apparatus.
In another example, provided is an apparatus. The apparatus includes a communication device and a processor coupled to the communication device. The processor is configured to: initiate detecting a first visible light communication (VLC) transmission from a first VLC light fixture; initiate detecting a second VLC transmission from a second VLC light fixture, where a fixture vector between the first VLC light fixture and the second VLC light fixture is known; initiate determining, using the detected first VLC transmission, a first device vector between the mobile device and the first VLC light fixture; initiate determining, using the detected second VLC transmission, a second device vector between the mobile device and the second VLC light fixture; initiate measuring, using a tilt sensor, a rotation matrix of a mobile device coordinate system relative to an absolute coordinate system; initiate creating a compensated fixture vector by converting, using the rotation matrix, the fixture vector to the mobile device coordinate system; initiate calculating a first distance between the mobile device and the first VLC light fixture, and a second distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the first device vector, and the second device vector; and initiate triangulating a position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the first distance and the second distance. The processor can be further configured to refine the position of the mobile device by combining the position of the mobile device with additional positioning data from at least one of a pose estimation based on an acquired image, a radio frequency (RF) transmission, or a combination thereof. The processor can be further configured to disambiguate the position of the mobile device using a particle belief propagation filter to compute a maximum-a-posteriori (MAP) estimate from the position of the mobile device and the additional positioning data. The RF transmission can be at least one of a Bluetooth device transmission, a WiFi device transmission, an RFID device transmission, a femtocell device transmission, a Zigbee device transmission, or a combination thereof. The absolute coordinate system can be based on at least one of an absolute gravity vector, a building envelope, a geomagnetic orientation, or a combination thereof. The processor can be further configured to: detect a third visible VLC transmission from the first VLC light fixture; detect a fourth VLC transmission from the second VLC light fixture; determine, using the detected third VLC transmission, a third device vector between the mobile device and the first VLC light fixture; determine, using the detected second VLC transmission, a fourth device vector between the mobile device and the second VLC light fixture; calculate a third distance between the mobile device and the first VLC light fixture, and a fourth distance between the mobile device and the second VLC light fixture, from the compensated fixture vector, the third device vector, and the fourth device vector; triangulate a second position of the mobile device relative to the first VLC light fixture and the second VLC light fixture using the third distance and the fourth distance; and determine a direction of travel vector of the mobile device from the first position and the second position. The processor can be further configured to disambiguate the position of the mobile device by computing a maximum of a product of a WiFi position density and a direction of travel vector density of the direction of travel vector of the mobile device. At least a part of the apparatus can be integrated on a semiconductor die. Further, at least a part of the apparatus can include a device, such as a mobile device, a music player, a video player, an entertainment device, a navigation device, a communications device, a computer, or a combination thereof, with a part of the apparatus being a constituent part of the device. In a further example, provided is a non-transitory computer-readable medium having lithographic-device executable instructions that are executable by a lithographic device to cause the lithographic device to fabricate at least a part of the apparatus.
The foregoing broadly outlines some of the features and technical advantages of the present teachings in order that the detailed description and drawings can be better understood. Additional features and advantages are also described in the detailed description. The conception and disclosed examples can be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present teachings. Such equivalent constructions do not depart from the technology of the teachings as set forth in the claims. The inventive features that are characteristic of the teachings, together with further objects and advantages, are better understood from the detailed description and the accompanying figures. Each of the figures is provided for the purpose of illustration and description only, and does not limit the present teachings.
The accompanying drawings are presented to aid in the description of various aspects of the disclosure and are provided solely for illustration of the aspects and not limitation thereof.
In accordance with common practice, the features depicted by the drawings may not be drawn to scale. Accordingly, the dimensions of the depicted features may be arbitrarily expanded or reduced for clarity. In accordance with common practice, some of the drawings are simplified for clarity. Thus, the drawings may not depict all components of a particular apparatus or method. Further, like reference numerals denote like features throughout the specification and figures.
At least one of the exemplary apparatuses and/or exemplary methods disclosed herein advantageously addresses the long-felt industry needs, as well as other previously unidentified needs, and mitigates shortcomings of the conventional methods and the conventional apparatus. For example, an advantage provided by at least one example of the disclosed apparatuses and/or at least one example of the methods disclosed herein is an improvement in accuracy of determining a mobile device's position over conventional devices.
More specific aspects of the disclosure are provided in this description and related drawings directed to various examples provided for illustration purposes. Alternate aspects can be devised without departing from the scope of the disclosure. Additionally, well-known aspects of the disclosure may not be described in detail or may be omitted so as not to obscure more relevant details.
As used herein, the term “exemplary” means “serving as an example, instance, or illustration.” Any example described as “exemplary” is not necessarily to be construed as preferred or advantageous over other examples. Likewise, the term “examples” does not require that all examples include the discussed feature, advantage, or mode of operation. Use of the terms “in one example,” “an example,” “in one feature,” and/or “a feature” in this specification does not necessarily refer to the same feature and/or example. Furthermore, a particular feature and/or structure can be combined with one or more other features and/or structures. Moreover, at least a portion of the apparatus described hereby can be configured to perform at least a portion of a method described hereby.
A reference using a designation such as “first,” “second,” and so forth does not limit either the quantity or the order of those elements. Rather, these designations are used as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements can be employed, or that the first element must necessarily precede the second element. Also, unless stated otherwise, a set of elements can comprise one or more elements. In addition, terminology of the form “at least one of: A, B, or C” or “one or more of A, B, or C” or “at least one of the group consisting of A, B, and C” used in the description or the claims can be interpreted as “A or B or C or any combination of these elements.” For example, this terminology can include A, or B, or C, or A and B, or A and C, or A and B and C, or 2A, or 2B, or 2C, and so on.
The terminology used herein is for the purpose of describing particular examples only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” include the plural forms as well, unless the context clearly indicates otherwise. Further, the terms “comprises,” “comprising,” “includes,” and “including,” specify a presence of a feature, an integer, a step, an operation, an element, a component, and the like, but do not necessarily preclude a presence or an addition of another feature, integer, step, operation, element, component, and the like.
The term “signal” can include any signal such as a data signal, an audio signal, a video signal, a multimedia signal, an analog signal, a digital signal, and the like. Information and signals described herein can be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that are referenced herein can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any practical combination thereof, depending in part on the particular application, in part on a desired design, in part on a corresponding technology, and the like.
Further, some examples are described in terms of sequences of actions to be performed by, for example, elements of a computing device. The actions described herein can be performed by specific circuits (e.g., an Application Specific Integrated Circuits (ASICs)), by program instructions being executed by one or more processors (e.g., one of more special-purpose processors), or by a combination thereof. Further, for any of the examples described herein, a corresponding form of any such example can be implemented as, for example, “logic configured to” perform the described action.
It should be noted that the terms “connected,” “coupled,” and any variant thereof, mean any connection or coupling between elements, either direct or indirect, and can encompass a presence of an intermediate element between two elements that are “connected” or “coupled” together via the intermediate element. Coupling and connection between the elements can be physical, logical, or a combination thereof. Elements can be “connected” or “coupled” together, for example, by using one or more wires, cables, printed electrical connections, electromagnetic energy, and the like. The electromagnetic energy can have a wavelength at a radio frequency, a microwave frequency, a visible optical frequency, an invisible optical frequency, and the like, as practicable. These are several non-limiting and non-exhaustive examples.
In at least one example, the provided apparatuses can be a part of, and/or coupled to, an electronic device such as, but not limited to, at least one of a mobile device, a navigation device (e.g., a global positioning system receiver), a wireless device a camera, an audio player, a camcorder, and a game console.
The term “mobile device” can describe, and is not limited to, at least one of a mobile phone, a mobile communication device, a pager, a personal digital assistant, a personal information manager, a personal data assistant, a mobile hand-held computer, a portable computer, a tablet computer, a wireless device, a wireless modem, other types of portable electronic devices typically carried by a person and having communication capabilities (e.g., wireless, cellular, infrared, short-range radio, etc.), or any other device that is capable of receiving wireless communication signals used in determining a position fix. Further, the terms “user equipment” (UE), “mobile terminal,” “user device,” “mobile device,” and “wireless device” can be interchangeable.
The following list of abbreviations, acronyms, and terms is provided to assist in comprehending the current disclosure, and are not provided as limitations.
The communication network 100 can also include one or more radio frequency wireless APs 108 that can interact with one or more mobile devices 104 using a radio-frequency (RF) transmission 110. The radio frequency wireless AP 108 is described in greater detail in
The communication network 100 can be referred to as a wireless local area network (WLAN), and can employ one or more of a variety of networking protocols to couple devices. Some of these networking protocols can be referred to as “WiFi,” including any member of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 wireless protocol family.
The mobile device 200 can include a processor 205 which is configured to control operation of the mobile device 200, and can perform at least a part of a method described herein. The processor 205 can be configured to determine a respective location of the mobile device 200. The processor 205 can determine two-dimensional coordinates, three-dimensional coordinates, latitudes and longitudes, Cartesian coordinates, spherical coordinates, geodesic coordinates, and/or other suitable location indicators associated with the mobile device 200, a visible light communication (VLC) access point (AP) 300, and/or a radio frequency wireless AP 400.
The processor 205 can be a central processing unit (CPU) and/or a special-purpose processor. A memory 210, which can include at least one of read-only memory (ROM) and random access memory (RAM) provides at least one of instructions and data to the processor 205. The data can include a location of VLC APs. The processor 205 can perform logical and arithmetic operations based on processor-executable instructions stored within the memory 210. The instructions stored in the memory 210 can be executed to implement at least a part of a method described herein.
The processor 205 can comprise or be a component of a processing system implemented with one or more processors. The one or more processors can be implemented with a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), an application-specific integrated circuit (ASIC), a controller, a non-generic computer, a state machine, gated logic, at least one discrete hardware component, a dedicated hardware finite state machine, any other suitable entity that can at least one of manipulate information (e.g., calculating, logical operations, and the like) and control another device, or a combination thereof. The processing system can also include a non-transitory machine-readable media (e.g., the memory 210) that stores software. Software can mean any type of instructions, whether referred to as at least one of software, firmware, middleware, microcode, hardware description language, and the like. Instructions can include code (e.g., in source code format, binary code format, executable code format, or any other suitable code format). The instructions, when executed by the processor 205, can transform the processor 205 into a special-purpose processor that is configured to perform at least a part of a function described herein.
The mobile device 200 can also include a housing 215, an RF transmitter 220, and an RF receiver 225 to allow transmission and reception of data between the mobile device 200 and a remote location. The RF transmitter 220 and the RF receiver 225 can be combined into a transceiver 230. An RF antenna 235 can be attached to the housing 215 and electrically coupled to the transceiver 230. The RF transmitter 220 can be configured to send the RF transmission 110 via the RF antenna 235 and/or the RF receiver 225 can be configured to receive the RF transmission 110 via the RF antenna 235. The mobile device 200 can also include (not shown in
The components of the mobile device 200 can be coupled together by a bus system 240. The bus system 240 can include at least one of a data bus, a power bus, a control signal bus, and a status signal bus. The components of the mobile device 200 can be coupled together to accept and/or provide inputs to each other using a different suitable mechanism.
The mobile device 200 can also further comprise a user interface 245. The user interface 245 can comprise at least one of a keypad, a touchscreen, a microphone, a speaker, or a display. The user interface 245 can include a component that at least one of conveys information to a user of the mobile device 200 and receives input from the user.
The mobile device 200 can further comprise a VLC receiver 250 that is configured to communicate with a VLC AP, such as the VLC AP 102. The VLC receiver 250 can include an image sensor 255 (e.g., a photodiode, a camera, a CMOS sensor, and the like), an amplifier 260, and an analog to digital converter (ADC) 265. Visible light transmissions (e.g., the beam of visible light 106 from the VLC AP 102) detected by the image sensor 255 are amplified by the amplifier 260, and the amplified analog signal is processed by the ADC 265 resulting in a digital signal communicating information which is received and processed by the processor 205.
The processor 205 can decode a VLC identifier embedded in visible light transmissions to identify one or more VLC APs. Ideally, each VLC AP has a unique identifier, however, in practice, this may not be the situation, and multiple VLC APs may be transmitting the same identifier. The processor 205 can also process data received via the visible light transmissions. The data can include a venue ID, information specific to the venue (e.g., advertising, a message targeting a user of the mobile device), a location of the VLC AP relative to an absolute coordinate system, and the like.
The mobile device 200 can further comprise a positioning satellite receiver 270 that is configured to communicate with a positioning satellite, such as the positioning satellite 114, via a positioning satellite antenna 275.
The mobile device 200 can further comprise a tilt sensor 280 that is configured to measure, a rotation matrix of a mobile device coordinate system relative to the absolute coordinate system. The absolute coordinate system can be based on at least one of an absolute gravity vector, a building envelope, a geomagnetic orientation, or a combination thereof.
The communication network 100 can support any practicable number of the VLC AP 300 distributed in a geographic region (also known as a venue) to provide communication coverage for at least one mobile device. Exemplary venues include a shopping mall wing, a store in a shopping mall, a terminal in an airport, a department in a store, a classroom in a school building, a floor in a structure (e.g., a building, a home), a hall in a structure, and the like. For simplicity, only one VLC AP is depicted in
As depicted in
The processor 305 can be a central processing unit (CPU) and/or a special-purpose processor. A memory 310, which can include at least one of read-only memory (ROM) and random access memory (RAM) provides at least one of instructions and data to the processor 305. The processor 305 can perform logical and arithmetic operations based on processor-executable instructions stored within the memory 310. The instructions stored in the memory 310 can be executed to implement at least a part of a method described herein.
The processor 305 can comprise or be a component of a processing system implemented with one or more processors. The one or more processors can be implemented with a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), an application-specific integrated circuit (ASIC), a controller, a non-generic computer, a state machine, gated logic, at least one discrete hardware component, a dedicated hardware finite state machine, any other suitable entity that can at least one of manipulate information (e.g., calculating, logical operations, and the like) and control another device, or a combination thereof. The processing system can also include a non-transitory machine-readable media (e.g., the memory 310) that stores software. Software can mean any type of instructions, whether referred to as at least one of software, firmware, middleware, microcode, hardware description language, and the like. Instructions can include code (e.g., in source code format, binary code format, executable code format, or any other suitable code format). The instructions, when executed by the processor 305, can transform the processor 305 into a special-purpose processor that is configured to perform at least a part of a function described herein.
The VLC AP 300 can also include a housing 315. The components of the VLC AP 300 can be coupled together by a bus system 320. The bus system 320 can include a data bus, a power bus, a control signal bus, a status signal bus, or a combination thereof. The components of the VLC AP 300 can be coupled together to accept and/or provide inputs to each other using a different suitable mechanism.
The VLC AP 300 can also comprise a user interface 325. The user interface 325 can comprise a keypad, a touchscreen, a microphone, a speaker, a display, or a combination thereof. The user interface 325 can include a component that at least one of conveys information to a user of the VLC AP 300 and receives input from the user.
The VLC AP 300 includes a VLC transmitter 330. The VLC transmitter 330 can include an encoder and modulator 335 that is configured to receive data from the bus system 320. For example, the data can be an identifier (e.g., a media access control (MAC) address) that uniquely identifies a geographic location (e.g., a room in a building, a venue, and the like). Based on these inputs, the encoder and modulator 335 can generate a transmission that is sent to a luminary device 340 (e.g., an LED) to be communicated using VLC. The encoder and modulator 335 can implement any practicable modulation scheme in generating the transmission, such as amplitude modulation (AM), Pulse Width Modulation (PWM), Frequency Shift Keying (FSK), and the like. The luminary device 340 then illuminates according to the transmission, converting the transmission to visible light 345 (e.g., the visible light 106) that can be received by a mobile device (e.g., the mobile device 200).
As depicted in the example of
The controller 450 is configured to control operation of the access point 400. The controller 450 can be a central processing unit (CPU) and/or a special-purpose processor. The memory 455, which can include at least one of read-only memory (ROM) and random access memory (RAM) provides at least one of instructions and data to the controller 450. The controller 450 can perform logical and arithmetic operations based on processor-executable instructions stored within the memory 455. The instructions in the memory 455 can be executable to implement at least a part of a method described herein.
The controller 450 can comprise or be a component of a processing system implemented with one or more processors. The one or more processors can be implemented with a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), an application-specific integrated circuit (ASIC), a controller, a non-generic computer, a state machine, gated logic, at least one discrete hardware component, a dedicated hardware finite state machine, any other suitable entity that can at least one of manipulate information (e.g., calculating, logical operations, and the like) and control another device, or a combination thereof. The processing system can also include a non-transitory machine-readable media (e.g., the memory 455) that stores software. Software can mean any type of instructions, whether referred to as at least one of software, firmware, middleware, microcode, hardware description language, and the like. Instructions can include code (e.g., in source code format, binary code format, executable code format, or any other suitable code format). The instructions, when executed by the controller 450, can transform the controller 450 into a special-purpose processor that causes the processor to perform at least a part of a function described herein.
The RF wireless AP 400 can also include an interface 465 that is configured to couple at least one of the constituent components of the RF wireless AP 400 to the backhaul connection 112. Thus, the RF wireless AP 400 can communicate with other APs and/or other networks (e.g., at least one of the Internet, a cellular network, a private network, and the like) via the backhaul connection 112.
The components of the RF wireless AP 400 can be coupled together by the bus system 460. The bus system 460 can include at least one of a data bus, a power bus, a control signal bus, and a status signal bus. The components of the RF wireless AP 400 can be coupled together to accept and/or provide inputs to each other using a different suitable mechanism.
In block 505, a first VLC transmission from a first VLC light fixture is detected.
In block 510, a second VLC transmission from a second VLC light fixture is detected. A fixture vector between the first VLC light fixture and the second VLC light fixture is known, or can be determined from VLC AP location data that is stored by a mobile station, retrieved by the mobile station, or a combination thereof.
In block 515, using the detected first VLC transmission, a first device vector between the mobile device and the first VLC light fixture is determined.
In block 520, using the detected second VLC transmission, a second device vector between the mobile device and the second VLC light fixture is determined.
In block 525, using a tilt sensor, a rotation matrix of a mobile device coordinate system is measured relative to an absolute coordinate system. The absolute coordinate system can be based on at least one of an absolute gravity vector, a building envelope, a geomagnetic orientation, or a combination thereof.
In block 530, a compensated fixture vector is created by converting, using the rotation matrix, the fixture vector to the mobile device coordinate system.
In block 535, a first distance between the mobile device and the first VLC light fixture is calculated, and a second distance between the mobile device and the second VLC light fixture is calculated, from the compensated fixture vector, the first device vector, and the second device vector.
In block 540, the position of the mobile device is triangulated relative to the first VLC light fixture and the second VLC light fixture using the first distance and the second distance.
Blocks 545 through 590 are optional.
In block 545, the position of the mobile device can be refined and/or disambiguated by combining the position of the mobile device with additional positioning data from at least one of a pose estimation based on an acquired image, a radio frequency (RF) transmission, or a combination thereof. The RF transmission can be at least one of a Bluetooth device transmission, a WiFi device transmission, an RFID device transmission, a femtocell device transmission, a Zigbee device transmission, or a combination thereof. Please also refer to
In block 550, the position of the mobile device can be disambiguated using a particle belief propagation filter to compute a maximum-a-posteriori (MAP) estimate from the position of the mobile device and the additional positioning data to determine where the mobile device is most likely to be located. Disambiguating in this manner can leverage output data from a precise indoor positioning (PIP) system. For example, the MAP estimate can be calculated using Equation One:
argmaxztεSp(xt|r1,r2, . . . ,rt,v1,v2, . . . ,vt,ID1,ID2, . . . ,IDt)
xt is a determined location of the mobile device at time t.
S is a set of locations (xt) of the mobile device at time t;
r1, r2, . . . , rt are WiFi received signal strength measurements (RSSI) rt at time t.
v1, v2, . . . , vt are Direction of Arrival (DoA) vectors (vt) to detected VLC APs at time t; and
ID1, ID2, . . . , IDt are identifiers IDt of the detected VLC APs at time t.
In an example, blocks 555 through 585 can be performed as a group.
In block 555, a third visible VLC transmission from the first VLC light fixture can be detected.
In block 560, a fourth VLC transmission from the second VLC light fixture can be detected.
In block 565, using the detected third VLC transmission, a third device vector between the mobile device and the first VLC light fixture can be determined.
In block 570, using the detected second VLC transmission, a fourth device vector between the mobile device and the second VLC light fixture can be determined.
In block 575, a third distance between the mobile device and the first VLC light fixture can be calculated, and a fourth distance between the mobile device and the second VLC light fixture can be calculated, from the compensated fixture vector, the third device vector, and the fourth device vector.
In block 580, a second position of the mobile device can be triangulated relative to the first VLC light fixture and the second VLC light fixture, using the third distance and the fourth distance.
In block 585, a direction of travel vector of the mobile device from the first position and the second position can be determined.
In block 590, the position of the mobile device can be disambiguated by computing a maximum of a product of a WiFi position density and the direction of travel vector density to determine where the mobile device is most likely to be located. This calculation uses the fact that VLC IDs are locally unique to remove a need for conditioning the data. For example, the maximum can be calculated using Equation Two:
argmaxxtεSp(xt|r1,r2, . . . ,rt)p(xt|vt,IDt)
xt is a determined location of the mobile device at time t.
S is a set of locations (xt) of the mobile device at time t;
p(xt|r1, r2, . . . , rt) is probability of the mobile device being located at location xt based on a PIP system output indicating a range (rt) at time t; and
p(xt|vt, IDE) is probability of the mobile device being located at location xt based on a VLC AP detector engine output indicating a vector (vt) to the VLC AP having identifier ID at time t.
The functionality of the modules depicted in
In addition, the components and functions represented by
α1ū1+α2ū2=R−1Δū Equation Three
Once the distance to the first VLC AP 610 (α1) and the distance to the second VLC AP 615 (α2) are known, then the position of the mobile device 605 can be determined by triangulating, relative to the known positions of the first VLC AP 610 and the second VLC AP 615.
The foregoing steps are not limiting of the examples. The steps can be combined and/or the order can be rearranged, as practicable.
Then, the mobile device can determine which of the candidate positions 715A-715D is the correct location of the mobile device by correlating the candidate positions 715A-715D to the respective RF transmission coverage zone within which the mobile device is located. For example, if the mobile device determines, using a VLC-based positioning technique, that the mobile device is located at one of the candidate positions 715A-715D, and the mobile device receives an RF transmission from RF transmitter 720A, then the mobile device can disambiguate and determine that the mobile device is located at candidate position 715A, and not at candidate positions 715B-715D.
In view of the descriptions and explanations above, those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans can implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
Exemplary aspects of the disclosure can include a computer-readable medium embodying a method for determining a position of a mobile device. An example can include a non-transitory (i.e., a non-transient) machine-readable media and/or a non-transitory (i.e., a non-transient) computer-readable media storing processor-executable instructions which, when executed by a processor (such as a special-purpose processor), transform the processor and any other cooperating devices into a machine (e.g., a special-purpose processor) configured to perform at least a part of a function described herein. In an example, executing the stored instructions can transform a processor and any other cooperating devices into at least a part of an apparatus described herein. A non-transitory (i.e., a non-transient) machine-readable media specifically excludes a transitory propagating signal.
An apparatus or any component of an apparatus can be configured to (or made operable to or adapted to) provide functionality as taught herein. This can be achieved, for example: by manufacturing (e.g., fabricating) the apparatus or component so that it will provide the functionality, by programming the apparatus or component so that it will provide the functionality, or through the use of some other suitable implementation technique. As one example, an integrated circuit can be fabricated to provide the requisite functionality. As another example, an integrated circuit can be fabricated to support the requisite functionality and then configured (e.g., via programming) to provide the requisite functionality. As yet another example, a processor circuit can execute code to provide the requisite functionality.
Moreover, the methods, sequences, and algorithms described in connection with the aspects disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor (e.g., cache memory).
This disclosure is not intended to be limited to any specific example. For example, unless otherwise noted, the functions, steps, and/or actions of the method claims in accordance with the aspects of the disclosure described herein need not be performed in any particular order. Furthermore, although certain aspects can be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
Nothing stated or illustrated depicted in this application is intended to dedicate any component, step, feature, object, benefit, advantage, or equivalent to the public, regardless of whether the component, step, feature, object, benefit, advantage, or the equivalent is recited in the claims. Changes and modifications can be made to the examples without departing from the scope defined by the claims.