TECHNICAL FIELD
[0001] The present disclosure relates to a movement information calculating device and a
method of calculating movement information which receive GNSS signals by a plurality
of antennas and calculate the movement information, such as a speed.
BACKGROUND ART
[0002] Patent Document 1 discloses a position and posture estimating device. The position
and posture estimating device of Patent Document 1 is provided with a plurality of
antennas mounted on a movable body. The position and posture estimating device of
Patent Document 1 performs positioning by using GNSS signals received by the plurality
of antennas.
[Reference Document of Conventional Art]
[Patent Document]
DESCRIPTION OF THE DISCLOSURE
[Problem to be Solved by the Disclosure]
[0004] However, according to the configuration disclosed in Patent Document 1, the estimation
accuracy varies according to the number of GNSS signals receivable by each of the
plurality of antennas. That is, if there is an antenna with fewer receivable GNSS
signals, the estimation accuracy falls due to this effect.
[0005] Therefore, one purpose of the present disclosure is to provide a movement information
calculating device capable of calculating movement information with high accuracy,
without being influenced by the number of GNSS signals receivable by each of a plurality
of antennas.
[Summary of the Disclosure]
[0006] A movement information calculating device according to the present disclosure includes
a plurality of antennas, a clock generator, a plurality of GNSS receivers, and an
arithmetic logical unit. The plurality of antennas, each receives a GNSS signal. The
clock generator generates a clock signal. The plurality of GNSS receivers are connected
to the respective antennas. The plurality of GNSS receivers calculate GNSS observed
values by using the GNSS signals and the clock signal. The arithmetic logical unit
calculates movement information including a speed of a movable body based on the GNSS
observed values from the plurality of GNSS receivers.
[0007] According to this configuration, the plurality of GNSS receivers use the same clock
signal. That is, the clock signal is a common clock signal for the plurality of GNSS
receivers. Thus, even when the combination or the number of positioning satellites
which are transmission sources of the GNSS signals received by the plurality of GNSS
receivers (the plurality of antennas) differ from each other, the arithmetic logic
unit can calculate the movement information by using all the GNSS signals received
by the plurality of GNSS receivers.
[Effect of the Disclosure]
[0008] According to the present disclosure, movement information can be calculated with
high accuracy, without being influenced by the number of GNSS signals receivable by
each of a plurality of antennas.
BRIEF DESCRIPTION OF DRAWINGS
[0009]
Fig. 1 is a block diagram illustrating a configuration of a movement information calculating
device according to a first embodiment.
Fig. 2 is a functional block diagram of an arithmetic logical unit according to the
first embodiment.
Fig. 3 is a view illustrating a concept of an estimation accuracy of the movement
information of the present disclosure.
Fig. 4 is a flowchart illustrating one example of a method of calculating the movement
information.
Fig. 5 is a block diagram illustrating a configuration of a movement information calculating
device according to a second embodiment.
Fig. 6 is a functional block diagram of an arithmetic logical unit according to the
second embodiment.
Fig. 7 is a block diagram illustrating a configuration of a movement information calculating
device according to a third embodiment.
MODES FOR CARRYING OUT THE DISCLOSURE
(First Embodiment)
[0010] A movement information calculating device and a method of calculating movement information
according to a first embodiment is described with reference to the drawings. Fig.
1 is a block diagram illustrating a configuration of the movement information calculating
device according to the first embodiment.
[0011] As illustrated in Fig. 1, the movement information calculating device 10 includes
an antenna 21, an antenna 22, a clock generator 30, a GNSS receiver 41, a GNSS receiver
42, an IMU 50, and an arithmetic logical unit 60. "A plurality of antennas" of the
present disclosure is comprised of the antenna 21 and the antenna 22. "A plurality
of GNSS receivers" of the present disclosure is comprised of the GNSS receiver 41
and the GNSS receiver 42.
[0012] GNSS is an abbreviation of Global Navigation Satellite System, and it includes the
GPS (Global Positioning System).
[0013] The antenna 21 and the antenna 22 are installed in a movable body 90 (see Fig. 3)
which is an object for a calculation of the movement information, such as a speed.
The movable body 90 is a ship, for example. The antenna 21 and the antenna 22 are
disposed in an open-sky environment. The installed position of the antenna 21 differs
from the installed position of the antenna 22. The antenna 21 is connected to the
GNSS receiver 41, and the antenna 22 is connected to the GNSS receiver 42.
[0014] The antenna 21 receives GNSS signals from positioning satellites, and outputs them
to the GNSS receiver 41. The antenna 22 receives GNSS signals from positioning satellites,
and outputs them to the GNSS receiver 42. The positioning satellites which are transmission
sources of the GNSS signals received by the antenna 22 may be the same as or may differ
from the positioning satellites which are transmission sources of the GNSS signals
received the antenna 21.
[0015] The clock generator 30, the GNSS receiver 41, and the GNSS receiver 42 are implemented
by a given electronic circuit.
[0016] The clock generator 30 generates a clock signal, and outputs it to the GNSS receiver
41 and the GNSS receiver 42. The clock signal is a signal used as a reference of processing
of the GNSS receiver 41 and processing of the GNSS receiver 42.
[0017] The GNSS receiver 41 is provided with a DLL circuit for a code phase, and a PLL circuit
for a carrier phase. The GNSS receiver 41 acquires and tracks the GNSS signals received
by the antenna 21 by using the DLL circuit and the PLL circuit. The GNSS receiver
41 calculates a GNSS observed value based on the tracking result. Here, the GNSS receiver
41 uses the clock signal to perform a timing control of the DLL circuit and the PLL
circuit and a calculation of the GNSS observed value on the basis of the clock signal.
The GNSS observed value includes a code phase and a carrier phase for every positioning
signal. The GNSS receiver 41 outputs the GNSS observed value to the arithmetic logical
unit 60.
[0018] The GNSS receiver 42 is provided with a DLL circuit for the code phase, and a PLL
circuit for the carrier phase. The GNSS receiver 42 acquires and tracks the GNSS signal
received by the antenna 22 by using the DLL circuit and the PLL circuit. The GNSS
receiver 42 calculates the GNSS observed value based on the tracking result. Here,
the GNSS receiver 42 uses the clock signal to perform a timing control of the DLL
circuit and the PLL circuit, and a calculation of the GNSS observed value on the basis
of the clock signal. The GNSS observed value includes a code phase and a carrier phase
for every positioning signal. The GNSS receiver 42 outputs the GNSS observed value
to the arithmetic logical unit 60.
[0019] In this way, according to the movement information calculating device 10, the GNSS
observed value calculated by the GNSS receiver 41 and the GNSS observed value calculated
by the GNSS receiver 42 are based on the same clock signal (common (shared) clock
signal).
[0020] The IMU 50 is an inertia sensor provided with a 3-axis acceleration sensor and an
angular velocity sensor, for example. The IMU 50 is installed in the movable body.
The IMU 50 measures an acceleration or an angular velocity, and outputs the measurement
value (sensor output value) to the arithmetic logical unit 60. Here, the IMU 50 measures
and outputs the measurement value at a given interval.
[0021] Fig. 2 is a functional block diagram of the arithmetic logical unit according to
the first embodiment. The arithmetic logical unit 60 includes a GNSS data arithmetic
logical unit 611, an IMU data arithmetic logical unit 612, and an integrated arithmetic
logical unit 62. The arithmetic logical unit 60 is implemented, for example, by a
program of processing of each of the GNSS data arithmetic logical unit 611, the IMU
data arithmetic logical unit 612, and the integrated arithmetic logical unit 62, and
an arithmetic unit, such as a CPU, which executes the program.
[0022] The GNSS observed value from the GNSS receiver 41 and the GNSS observed value from
the GNSS receiver 42 are inputted into the GNSS data arithmetic logical unit 611.
The GNSS data arithmetic logical unit 611 uses the code phase of each GNSS operation
value to calculate a pseudo range, and a line-of-sight direction vector which connects
each antenna and each positioning satellite. Upon the calculation of the pseudo range,
time based on the clock signal described above is used as well.
[0023] The GNSS data arithmetic logical unit 611 estimates a GNSS speed based on an integrated
value of the carrier phase of each GNSS operation value, along with the calculation
data. Here, the GNSS data arithmetic logical unit 611 estimates the GNSS speed based
on a clock drift error estimated by the integrated arithmetic logical unit 62. The
GNSS data arithmetic logical unit 611 outputs the estimated GNSS speed to the integrated
arithmetic logical unit 62.
[0024] The measurement value from the IMU 50 is inputted into the IMU data arithmetic logical
unit 612. The IMU data arithmetic logical unit 612 calculates an IMU acceleration
and an IMU angular velocity based on the measurement value. Here, the IMU data arithmetic
logical unit 612 calculates the IMU acceleration and the IMU angular velocity based
on an acceleration bias and an angular-velocity bias which are estimated by the integrated
arithmetic logical unit 62.
[0025] The IMU data arithmetic logical unit 612 calculates an IMU speed based on the integrated
value of the IMU acceleration and the IMU angular velocity. The IMU data arithmetic
logical unit 612 outputs the calculated IMU speed to the integrated arithmetic logical
unit 62.
[0026] The integrated arithmetic logical unit 62 is implemented by an extended Kalman-filter
EKF, for example. The integrated arithmetic logical unit 62 sets an observation vector
of the extended Kalman filter including the GNSS speed and the IMU speed. Moreover,
the integrated arithmetic logical unit 62 sets a state vector of the extended Kalman
filter including the integrated speed which is outputted as the movement information
calculating device 10, the clock drift error of the clock signal, and the acceleration
bias error of the IMU 50.
[0027] The integrated arithmetic logical unit 62 estimates the integrated speed and various
kinds of errors by implementing the extended Kalman filter having the observation
vector and the state vector. The integrated arithmetic logical unit 62 feeds back,
to the GNSS data arithmetic logical unit 611, the estimated error related to the GNSS
observed value including the clock drift error included in the state vector. The GNSS
data arithmetic logical unit 611 estimates the GNSS speed etc. based on the fed-back
estimated error. The integrated arithmetic logical unit 62 feeds back, to the IMU
data arithmetic logical unit 612, the estimated error related to an IMU observed value
(measurement value), such as the acceleration bias error and the angular-velocity
bias error, included in the state vector. The IMU data arithmetic logical unit 612
calculates the IMU speed etc. based on the fed-back estimated error.
[0028] In such a configuration, the clock signal is common to the plurality of GNSS receivers
(in this embodiment, the GNSS receiver 41 and the GNSS receiver 42). Thus, the arithmetic
logical unit can estimate the clock drift error based on all the observed values acquired
by the plurality of GNSS receivers, without estimating the clock drift error for every
GNSS receiver. Therefore, the number of different GNSS signals which are used for
the estimation of the clock drift error increases.
[0029] For this reason, the clock drift error is estimated with high accuracy. Therefore,
the speed estimated based on the clock drift error is highly precise.
[0030] Fig. 3 is a view illustrating a concept of the estimation accuracy of the movement
information of the present disclosure. In the case of Fig. 3, the antenna 21 can receive
the GNSS signal of a positioning satellite SAT1 and the GNSS signal of a positioning
satellite SAT2, but cannot receive the GNSS signal of a positioning satellite SAT3
and the GNSS signal of a positioning satellite SAT4. The antenna 22 can receive the
GNSS signal of the positioning satellite SAT3 and the GNSS signal of the positioning
satellite SAT4, but cannot receive the GNSS signal of the positioning satellite SAT1
and the GNSS signal of the positioning satellite SAT2. This is caused when the receiving
condition of the GNSS signal changes according to the position of the movable body
90, for example. In more detail, such a state may be caused by a case where the reception
of the GNSS signal by the antenna is blocked by a gantry crane etc. when the movable
body 90 is a ship and the movable body 90 reaches a shore.
[0031] Here, suppose that the clock signal of the GNSS receiver 41 connected to the antenna
21 differs from the clock signal of the GNSS receiver 41 connected to the antenna
22. In this case, the arithmetic logical unit 60 estimates the clock drift error of
the clock signal of the GNSS receiver 41 based on the GNSS observed value of the GNSS
signal of the positioning satellite SAT1 and the GNSS signal of the positioning satellite
SAT2. Moreover, the arithmetic logical unit 60 estimates the clock drift error of
the clock signal of the GNSS receiver 42 based on the GNSS observed value of the GNSS
signal of the positioning satellite SAT3 and the GNSS signal of the positioning satellite
SAT4.
[0032] In this way, when the clock signal is made individual for every GNSS receiver, the
clock drift error of each clock signal is estimated based on the GNSS observed value
of the two GNSS signals. Therefore, the estimation accuracy of the clock drift error
becomes for the two GNSS signals.
[0033] On the other hand, according to the present disclosure, the clock signal is common
to the GNSS receiver 41 and the GNSS receiver 42. In this case, the clock drift error
is estimated based on the GNSS observed value of four GNSS signals which is a combination
of the two GNSS signals received by the GNSS receiver 41 and the two GNSS signals
received by the GNSS receiver 42. Thus, in the present disclosure, the estimation
accuracy of the clock drift error becomes for the four GNSS signals.
[0034] Therefore, the estimation accuracy of the clock drift error improves by using the
configuration and the processing of the present disclosure. In addition, the estimation
accuracy of the integrated speed included in the same state vector improves by the
improvement in the estimation of the clock drift error. Moreover, the estimation accuracies
of the position or the attitude angle also improve by the improvement in the estimation
accuracy of the integrated speed.
[0035] Therefore, the movement state including the speed can be estimated and calculated
with high accuracy, without being influenced by the receiving condition of the GNSS
signals of the plurality of antennas.
[0036] Moreover, in this configuration and processing, the number of clock drift errors
included in the state vector is one. Thus, the unknown factor which constitutes the
state vector of the extended Kalman filter decreases compared with the case where
the clock drift error is estimated for every GNSS receiver. Therefore, the processing
load of the arithmetic logical unit 60 can be reduced. Therefore, the estimated speed
improves together with the estimation accuracy of the movement state, for example.
(Description of Method of Calculating Movement State)
[0037] The above configuration is implemented by dividing the various processings for calculating
the movement state into a plurality of functional parts. However, each of the processings
may be performed by a processing unit, such as a CPU, after being programmed. In this
case, the program is stored in a memory, and the processing unit reads and executes
the program stored in the memory. Note that the concrete description of each processing
is as described above, and therefore, it is omitted.
[0038] Fig. 4 is a flowchart illustrating one example of the method of calculating the movement
information. The processing unit generates the common clock signal (S11). The processing
unit calculates the GNSS observed value based on the received GNSS signal by using
the common clock signal (S12). Moreover, the processing unit acquires the IMU observed
value which is the measurement value of the IMU.
[0039] The processing unit estimates the integrated speed based on the various kinds of
observed values which are calculated or acquired (S13). Here, the processing unit
estimates the clock drift error together with the integrated speed, and uses them
for the correction at the time of preprocessing of the estimation of the integrated
speed.
(Second Embodiment)
[0040] A movement information calculating device according to a second embodiment is described
with reference to the drawings. Fig. 5 is a block diagram illustrating a configuration
of the movement information calculating device according to the second embodiment.
[0041] As illustrated in Fig. 5, the movement information calculating device 10A according
to the second embodiment differs from the movement information calculating device
10 according to the first embodiment in that the numbers of antennas and GNSS receivers
are changed and a camera 70 is added, and in that processing of an arithmetic logical
unit 60A according to the modification and the addition is changed. Other configurations
and processings of the movement information calculating device 10A are the same as
those of the movement information calculating device 10, and therefore, description
of similar parts is omitted.
[0042] As illustrated in Fig. 5, the movement information calculating device 10A includes
the antenna 21, the antenna 22, an antenna 23, an antenna 24, the clock generator
30, the GNSS receiver 41, the GNSS receiver 42, a GNSS receiver 43, a GNSS receiver
44, the IMU 50, the arithmetic logical unit 60A, and the camera 70.
[0043] The installed position of the antenna 21, the installed position of the antenna 22,
the installed position of the antenna 23, and the installed position of the antenna
24 differ from each other. Here, the antenna 21, the antenna 22, the antenna 23, and
the antenna 24 are installed so that all the antennas are not lined up linearly at
the same time. The antenna 21 is connected to the GNSS receiver 41, and the antenna
22 is connected to the GNSS receiver 42. The antenna 23 is connected to the GNSS receiver
43, and the antenna 24 is connected to the GNSS receiver 44.
[0044] The clock generator 30 generates a clock signal, and outputs it to the GNSS receiver
41, the GNSS receiver 42, the GNSS receiver 43, and the GNSS receiver 44.
[0045] The GNSS receiver 41 calculates a GNSS observed value based on the GNSS signal received
by the antenna 21, and outputs it to the arithmetic logical unit 60A. The GNSS receiver
42 calculates a GNSS observed value based on the GNSS signal received by the antenna
22, and outputs it to the arithmetic logical unit 60A. The GNSS receiver 43 calculates
a GNSS observed value based on the GNSS signal received by the antenna 23, and outputs
it to the arithmetic logical unit 60A. The GNSS receiver 44 calculates a GNSS observed
value based on the GNSS signal received by the antenna 24, and outputs it to the arithmetic
logical unit 60A.
[0046] The IMU 50 outputs the measurement value to the arithmetic logical unit 60A.
[0047] The camera 70 acquires the behavior of the movable body 90 and the surrounding situation
as a video image. The camera 70 outputs the video to the arithmetic logical unit 60A.
[0048] Fig. 6 is a functional block diagram of the arithmetic logical unit according to
the second embodiment. The arithmetic logical unit 60A includes a GNSS data arithmetic
logical unit 611, an IMU data arithmetic logical unit 612, a visual data arithmetic
logical unit 613, and an integrated arithmetic logical unit 62.
[0049] The GNSS data arithmetic logical unit 611 estimates a GNSS speed and a GNSS attitude
angle based on the GNSS observed value from the GNSS receiver 41, the GNSS observed
value from the GNSS receiver 42, the GNSS observed value from the GNSS receiver 43,
and the GNSS observed value from the GNSS receiver 44, and outputs them to the integrated
arithmetic logical unit 62.
[0050] The IMU data arithmetic logical unit 612 calculates an IMU speed and an IMU attitude
angle based on the measurement value from the IMU 50, and outputs them to the integrated
arithmetic logical unit 62.
[0051] The visual data arithmetic logical unit 613 sets a reference point, while extracting
a plurality of characteristic points from the video. The visual data arithmetic logical
unit 613 generates spatial information including the positions of a plurality of characteristic
points with respect to the position of the reference point, a moving amount, and a
scale, and outputs it to the integrated arithmetic logical unit 62. The scale is expressed
by a ratio of a distance between the characteristic point obtained from the video
and the reference point and a distance between the characteristic point obtained from
the GNSS speed and the reference point.
[0052] The integrated arithmetic logical unit 62 sets an observation vector of the extended
Kalman filter including the GNSS speed and the GNSS attitude angle from the GNSS data
arithmetic logical unit 611, the IMU speed and the IMU attitude angle from the IMU
data arithmetic logical unit 612, and the spatial information from the visual data
arithmetic logical unit 613. The integrated arithmetic logical unit 62 sets a state
vector of the extended Kalman filter including the integrated speed outputted as the
movement information calculating device 10, a clock drift error of the clock signal,
an acceleration bias error of the IMU 50, an angular-velocity bias error, and a scale
error of the spatial information.
[0053] The integrated arithmetic logical unit 62 estimates the integrated speed and various
kinds of errors by performing the extended Kalman filter having the observation vector
and the state vector. Moreover, the integrated arithmetic logical unit 62 corrects
the spatial information based on the scale error.
[0054] According to this configuration, the movement information calculating device 10A
can calculate the speed of the movable body 90 with high accuracy, and can give the
highly-precise distance and position for visual information. Further, in this case,
since the clock drift error is estimated based on all the GNSS signals received by
the four antennas, the clock drift error is estimated with high accuracy. Therefore,
the speed of the movable body 90 can be calculated with high accuracy, and the distance
and the position which are given to the visual information also become highly precise.
[0055] Moreover, even if the number of GNSS receivers is four, the number of clock drift
errors to be estimated is one. Therefore, the estimation becomes high speed and highly
precise.
[0056] Particularly, in this way, when estimating of the speed etc. by integrating the visual
information, the observed value by the GNSS signal, and the observed value of the
IMU, the processing load of the integrated arithmetic logical unit 62 becomes very
high. Therefore, by reducing the clock drift error to be estimated, the processing
load of the integrated arithmetic logical unit 62 is reduced, and the various kinds
of processings, such as a formation of the visual information can be further increased
in the speed, while estimating the speed with high accuracy.
(Third Embodiment)
[0057] A movement information calculating device according to a third embodiment is described
with reference to the drawings. Fig. 7 is a block diagram illustrating a configuration
of the movement information calculating device according to the third embodiment.
[0058] As illustrated in Fig. 7, the movement information calculating device 10B according
to the third embodiment differs from the movement information calculating device 10
according to the first embodiment in that the numbers of antennas and GNSS receivers
are changed, and the IMU 50 is omitted, and in that processing of an arithmetic logical
unit 60B is changed according to the modification and the addition. Other configurations
and processings of the movement information calculating device 10B are similar to
those of the movement information calculating device 10, and therefore, description
of similar parts is omitted.
[0059] As illustrated in Fig. 7, the movement information calculating device 10B includes
the antenna 21, the antenna 22, the antenna 23, the clock generator 30, the GNSS receiver
41, the GNSS receiver 42, the GNSS receiver 43, and the arithmetic logical unit 60B.
[0060] The installed position of the antenna 21, the installed position of the antenna 22,
and the installed position of the antenna 23 differ from each other. Here, the antenna
21, the antenna 22, and the antenna 23 are installed so that all the antennas are
not lined up linearly at the same time. The antenna 21 is connected to the GNSS receiver
41, and the antenna 22 is connected to the GNSS receiver 42. The antenna 23 is connected
to the GNSS receiver 43.
[0061] The clock generator 30 generates a clock signal, and outputs it to the GNSS receiver
41, the GNSS receiver 42, and the GNSS receiver 43.
[0062] The GNSS receiver 41 calculates a GNSS observed value based on the GNSS signal received
by the antenna 21, and outputs it to the arithmetic logical unit 60B. The GNSS receiver
42 calculates a GNSS observed value based on the GNSS signal received by the antenna
22, and outputs it to the arithmetic logical unit 60B. The GNSS receiver 43 calculates
a GNSS observed value based on the GNSS signal received by the antenna 23, and outputs
it to the arithmetic logical unit 60B.
[0063] In the arithmetic logical unit 60B, a GNSS observed value from the GNSS receiver
41, a GNSS observed value from the GNSS receiver 42, and a GNSS observed value from
the GNSS receiver 43 are inputted into the GNSS data arithmetic logical unit 611.
[0064] The arithmetic logical unit 60B is implemented by an extended Kalman-filter EKF,
for example. The arithmetic logical unit 60B sets an observation vector of the extended
Kalman filter including a GNSS speed. Moreover, the arithmetic logical unit 60B sets
a state vector of the extended Kalman filter including the integrated speed outputted
as the movement information calculating device 10B, and a clock drift error of the
clock signal.
[0065] Thus, in this way, even when the IMU 50 is not used, the movement information calculating
device 10B can estimate the integrated speed with high accuracy, similar to the movement
information calculating device 10.
[0066] Note that the configuration of each of the above embodiments can suitably be combined,
and operation and effects according to the combination can be acquired.
DESCRIPTION OF REFERENCE CHARACTERS
[0067]
- 10, 10A, 10B:
- Movement Information Calculating Device
- 21, 22, 23, 24:
- Antenna
- 30:
- Clock Generator
- 41, 42, 43, 44:
- GNSS Receiver
- 50:
- IMU
- 60, 60A, 60B:
- Arithmetic Logical Unit
- 62:
- Integrated Arithmetic Logical Unit
- 70:
- Camera
- 90:
- Movable Body
- 611:
- GNSS Data Arithmetic Logical Unit
- 612:
- IMU Data Arithmetic Logical Unit
- 613:
- Visual Data Arithmetic Logical Unit
- SAT1, SAT2, SAT3, SAT4:
- Positioning Satellite
TERMINOLOGY
[0068] It is to be understood that not necessarily all objects or advantages may be achieved
in accordance with any particular embodiment described herein. Thus, for example,
those skilled in the art will recognize that certain embodiments may be configured
to operate in a manner that achieves or optimizes one advantage or group of advantages
as taught herein without necessarily achieving other objects or advantages as may
be taught or suggested herein.
[0069] All of the processes described herein may be embodied in, and fully automated via,
software code modules executed by a computing system that includes one or more computers
or processors. The code modules may be stored in any type of non-transitory computer-readable
medium or other computer storage device. Some or all the methods may be embodied in
specialized computer hardware.
[0070] Many other variations than those described herein will be apparent from this disclosure.
For example, depending on the embodiment, certain acts, events, or functions of any
of the algorithms described herein can be performed in a different sequence, can be
added, merged, or left out altogether (e.g., not all described acts or events are
necessary for the practice of the algorithms). Moreover, in certain embodiments, acts
or events can be performed concurrently, e.g., through multi-threaded processing,
interrupt processing, or multiple processors or processor cores or on other parallel
architectures, rather than sequentially. In addition, different tasks or processes
can be performed by different machines and/or computing systems that can function
together.
[0071] The various illustrative logical blocks and modules described in connection with
the embodiments disclosed herein can be implemented or performed by a machine, such
as a processor. A processor can be a microprocessor, but in the alternative, the processor
can be a controller, microcontroller, or state machine, combinations of the same,
or the like. A processor can include electrical circuitry configured to process computer-executable
instructions. In another embodiment, a processor includes an application specific
integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable
device that performs logic operations without processing computer-executable instructions.
A processor can also be implemented as a combination of computing devices, e.g., a
combination of a digital signal processor (DSP) and a microprocessor, a plurality
of microprocessors, one or more microprocessors in conjunction with a DSP core, or
any other such configuration. Although described herein primarily with respect to
digital technology, a processor may also include primarily analog components. For
example, some or all of the signal processing algorithms described herein may be implemented
in analog circuitry or mixed analog and digital circuitry. A computing environment
can include any type of computer system, including, but not limited to, a computer
system based on a microprocessor, a mainframe computer, a digital signal processor,
a portable computing device, a device controller, or a computational engine within
an appliance, to name a few.
[0072] Conditional language such as, among others, "can," "could," "might" or "may," unless
specifically stated otherwise, are otherwise understood within the context as used
in general to convey that certain embodiments include, while other embodiments do
not include, certain features, elements and/or steps. Thus, such conditional language
is not generally intended to imply that features, elements and/or steps are in any
way required for one or more embodiments or that one or more embodiments necessarily
include logic for deciding, with or without user input or prompting, whether these
features, elements and/or steps are included or are to be performed in any particular
embodiment.
[0073] Disjunctive language such as the phrase "at least one of X, Y, or Z," unless specifically
stated otherwise, is otherwise understood with the context as used in general to present
that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g.,
X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and
should not, imply that certain embodiments require at least one of X, at least one
of Y, or at least one of Z to each be present.
[0074] Any process descriptions, elements or blocks in the flow diagrams described herein
and/or depicted in the attached figures should be understood as potentially representing
modules, segments, or portions of code which include one or more executable instructions
for implementing specific logical functions or elements in the process. Alternate
implementations are included within the scope of the embodiments described herein
in which elements or functions may be deleted, executed out of order from that shown,
or discussed, including substantially concurrently or in reverse order, depending
on the functionality involved as would be understood by those skilled in the art.
[0075] Unless otherwise explicitly stated, articles such as "a" or "an" should generally
be interpreted to include one or more described items. Accordingly, phrases such as
"a device configured to" are intended to include one or more recited devices. Such
one or more recited devices can also be collectively configured to carry out the stated
recitations. For example, "a processor configured to carry out recitations A, B and
C" can include a first processor configured to carry out recitation A working in conjunction
with a second processor configured to carry out recitations B and C. The same holds
true for the use of definite articles used to introduce embodiment recitations. In
addition, even if a specific number of an introduced embodiment recitation is explicitly
recited, those skilled in the art will recognize that such recitation should typically
be interpreted to mean at least the recited number (e.g., the bare recitation of "two
recitations," without other modifiers, typically means at least two recitations, or
two or more recitations).
[0076] It will be understood by those within the art that, in general, terms used herein,
are generally intended as "open" terms (e.g., the term "including" should be interpreted
as "including but not limited to," the term "having" should be interpreted as "having
at least," the term "includes" should be interpreted as "includes but is not limited
to," etc.).
[0077] For expository purposes, the term "horizontal" as used herein is defined as a plane
parallel to the plane or surface of the floor of the area in which the system being
described is used or the method being described is performed, regardless of its orientation.
The term "floor" can be interchanged with the term "ground" or "water surface." The
term "vertical" refers to a direction perpendicular to the horizontal as just defined.
Terms such as "above," "below," "bottom," "top," "side," "higher," "lower," "upper,"
"over," and "under," are defined with respect to the horizontal plane.
[0078] As used herein, the terms "attached," "connected," "mated," and other such relational
terms should be construed, unless otherwise noted, to include removable, moveable,
fixed, adjustable, and/or releasable connections or attachments. The connections/attachments
can include direct connections and/or connections having intermediate structure between
the two components discussed.
[0079] Numbers preceded by a term such as "approximately," "about," and "substantially"
as used herein include the recited numbers, and also represent an amount close to
the stated amount that still performs a desired function or achieves a desired result.
For example, the terms "approximately," "about," and "substantially" may refer to
an amount that is within less than 10% of the stated amount. Features of embodiments
disclosed herein preceded by a term such as "approximately," "about," and "substantially"
as used herein represent the feature with some variability that still performs a desired
function or achieves a desired result for that feature.
[0080] It should be emphasized that many variations and modifications may be made to the
above-described embodiments, the elements of which are to be understood as being among
other acceptable examples. All such modifications and variations are intended to be
included herein within the scope of this disclosure and protected by the following
claims.