The present disclosure teaches how to make a parking meter and how to operate a parking meter system using a device for detecting ferrous objects such as automobiles.
There has been a long term need for a device and method to detect ferrous objects by monitoring plural spaces for the arrival or departure of an object from the monitored spaces.
A method of operating a parking system having a pod includes a vehicle detector for monitoring plural parking spaces adjacent to the pod and a communications device. The detector generates a signal when a vehicle arrives or leaves one of the monitored parking spaces and the communications device transmits the signal when it is generated. A fee collection device is capable of servicing multiple spaces. A central controller receives the signal directly or indirectly from the communications device. The fee collection device transmits a signal to the central controller upon receipt of a fee for a particular parking space for a particular length of time. In operation the system is operated by (a) detecting an initial three dimensional magnetic field at a fixed location and in the absence of a ferrous object in any of the spaces to be monitored, (b) performing a calibration by (1) placing a calibration object successively in each of the spaces to be monitored, (2) successively determining a calibration change in the magnetic field at the fixed location from the initial field for each of the monitored spaces when the calibration object is placed successively in each of the monitored spaces and (3) associating each of the successive calibration changes in the magnetic field with the space where the calibration object was when each such change was determined, (c) measuring the three dimensional magnetic field at a first time and at a second time, (d) determining whether the magnetic field has changed from the first time to the second time by finding the difference between the field at the first time and the field at the second time, (e) comparing the difference determined in step (d) to each of the calibration changes to identify the calibration change most like the difference determined in step (d), and generating a signal representing the space associated with the identified calibration change, and (f) using the communications device to transmit the signal to the central controller.
The system disclosed includes a pod 10 (
The pod 10 (
The pod contains a vehicle detector which may be a magnetic detector. Such detector can detect a disturbance in the magnetic field caused by the presence of a vehicle in an adjacent space or spaces. Suitable detectors are available from PNI Center Corporation, 133 Aviation Blvd., Suite 101, Santa Rosa, Calif. 95403, under the brand name Macromag and from Honeywell under the model HMC 1053. Depending on the application, a two or three axis sensor may be used. The magnetic detector may be supplemented by a suitable acoustic sensor such as the Maxbotix XL—MaxSonar range finder or a low power laser range finder. If the magnetic detector is supplemented with another detection device, a signal from the magnetic detector is used to identify which space a vehicle has entered or left and the supplemental detector then confirms the event. The operation of the magnetic detector is described in detail below.
The vehicle detector generates a signal whenever a vehicle enters or leaves and adjacent parking spot. Depending on the position of the pod, as well as the type of sensor, it may be able to detect the presence and/or absence of vehicles in one, two, three, or four spaces. When a vehicle is detected by the vehicle detector, it transmits a signal to the central controller through a communication device which is connected to the vehicle detector. The signal indicates the particular space occupied and may also include a time stamp of the time the vehicle entered the space.
When the vehicle detector generates a signal indicating a car has arrived in a monitored parking space, the signal is transmitted to a central controller by the communications device. The communications device may be a radio transmitter, or the communications device may include a hardwired connection to the central controller. If a radio transmission is used, the signal may be transmitted using an IEEE 807.15.4-2003 compliant device such as a ZigBee device. Radio transmission may be directly to a receiver connected with the central controller, or it can be relayed between relay stations until reaching either a receiver which is hardwired to the central controller or which communicates with the central controller via a different method such as, for example, a cell phone connection. Accordingly, the central controller is informed by means of signals generated by the vehicle detector and transmitted by the communications device of each time a vehicle enters or leaves a monitored parking space. If the signal transmitted does not include a time stamp, the central controller adds a time stamp when the signal is received at the central controller.
The vehicle detection and signal transmission equipment with the pod may be powered in any of several ways. If the equipment is hardwired to the central controller as indicated by the dashed lines 26 (
The rechargeable power supply could also be recharged “manually”, that is, by a mobile power supply which is intermittently connected to the pod through conventional means such as a plug or through inductive coupling. Alternatively, the battery can be made removable, and when discharged, it may be replaced with a fully charged battery. In this latter case the battery need not be rechargeable, and the spent batteries may be discarded or recycled.
The central controller 12 (
The central pay station 14 may include one or more conventional devices for excepting consumer payments such as coin and bill rejector/acceptor 18 and/or a credit card reading device 20. The pay station 14 also includes a device such as keypad 22 by which the consumer may indicate the parking space his or her vehicle occupies. After the customer parks his or her vehicle, he or she approaches the nearby pay station 14 and arranges payment. The pay station may include a device such as keypad 22 and video display 24 by which the consumer can indicate how much time he or she wishes to purchase in the increments which the parking facility makes available and up to a maximum which the parking facility makes available. The pay station may also include input for the consumer's cell phone or other contact number. When the payment has been received, the pay station transmits a signal to the central controller which records the payment and calculates an expiration time based on the amount of money paid and the time stamp of the arrival time.
Another method of payment is directly by cell phone. The pod 10 and the neighboring pay station 14 may each display a telephone number which may be called to charge the cost of parking to an account held by the customer such as the customer's cell phone account or credit card account. Using this arrangement, the customer calls the posted telephone number, and indicates the parking space occupied and the amount of time to be purchased. The caller may also choose to receive notices concerning expiration of his or her purchased parking time. In this case the consumer may indicate the phone number or pager number to which notices of imminent parking expiration may be sent. The consumer may also be asked whether the charge should be applied to his or her cell phone account or to another account such as a debit or credit account. If the consumer elects the latter, account information will be requested and recorded.
Payment may also be arranged for regular users of the parking system through RFID devices. Radio Frequency Identification devices are well known and used in motor vehicle toll payment systems such as EZ Pass. In these systems, the vehicle is equipped with an electronic device that responds to an electromagnetic “query” by emitting a unique reply. In implementing a subscription parking system, regular parkers can be issued a conventional RFID tag to be mounted in their vehicles or carried on their person. The pod 10 is then equipped with a transmitter for activating the RFID tag and a receiver for receiving the unique reply generated by the RFID tag. Such receivers do not distinguish the location of the unique reply, and accordingly the pod 10 is also equipped with a button associated with each adjacent parking space. A parker who has subscribed may then park in a space, approach the pod and press the button associated with the space in which he has parked his vehicle. Pushing the button causes the transmitter in the pod to send a query signal to the RFID, and to record the unique reply. The unique reply, representing, in effect, the identity of the parker or the parker's account information, is transmitted, directly or indirectly, to the central controller 12 together with the identification of the space occupied to begin the payment period. When the vehicle leaves the space, the signal sent by the vehicle detection equipment demarks the end of the parking period, resulting in a charge to the customer's account in accordance with the length of the time the parking spot was used.
If the RFID tag is carried on the person of the parker, a transmitter for querying and receiving the RFID's unique reply may also be mounted in the central pay station 14. In such a case, the user would indicate that (s)he was paying by subscription, (triggering the query and recording the RDIF unique reply) by pressing the appropriate input device on the central pay station. In addition the parker would indicate the space in which his or her vehicle was parked. This information is then relayed to the central controller 12 to begin a parking period. Subscription parkers would not need to input their telephone number each time they park because that information can be retained together with their other account information, and they would automatically receive notifications of immanent expiration of allotted parking time.
The central controller 12 may be manually operated. That is, there may be a receiver for receiving signals from the various pods. An operator can make note of the time stamp and record the payment information. This may be done by answering a telephone call from the customer, taking down the necessary credit information and charging the customer's account. Likewise the subsequent steps of notifying the customer of a soon to expire status and alerting the meter reader of the status of a particular parking space can also be performed manually. However, it is also contemplated to automate the process by using a central controller consisting of a receiver, a general purpose computer having a central processing unit, a database, and appropriate software. A fully automated system can operate continuously without supervision and may be more economical to operate than a manual system. Alternatively, a system having a dedicated processor configured to perform the steps described herein may also be used.
The central controller 12 may be arranged to notify customers when their purchased parking time has expired. Where the consumer has provided a contact number, either by directly entering such a number into a pay station or electronically through the use of caller ID, the central controller then may be programmed to call the number or send a text message when a predetermined amount of time, for example, 15 minutes, remains. This warning enables the consumer to avoid unnecessary parking violations by either moving his or her vehicle or paying an additional fee, if permitted to do so.
The central controller 12 may also be arranged to notify parking enforcement personnel of the location of parking spaces with vehicles that are in violation. When the central controller 12 calculates that time has expired and a parking space is still occupied, a message may be sent to a nearby parking enforcement officer to take the appropriate action. These messages may be sent as soon as each parking space's time expires, or they may be batch processed and arranged in an order which makes it possible for the enforcement officer to proceed linearly through the parking district issuing the appropriate summonses or taking other appropriate action.
The central controller 12 may also be programmed so that as soon as a vehicle leaves a parking space, the record corresponding to that parking space in the central controller and any remaining time are cleared, and is therefore ready to receive another signal representing a new vehicle in the parking space.
The vehicle detector, its operation and calibration will now be described in detail. The detector uses a sensor to measure the geomagnetic field in three dimensions. During a calibration step changes in the geomagnetic field are recorded as a test object is placed in each of the positions to be monitored. After calibration, the detector takes periodic measurements of the geomagnetic field, comparing the current measurement to a preceding measurement to determine if an object has arrived at or departed from a monitored position. Determination of a change is a two-step process. First the scalar magnitude of the geomagnetic field at time (t) is compared to a subsequent measurement (taken, e.g., at t+1). If that difference exceeds a threshold (set to exclude irrelevant small fluctuations), then the determination proceeds to a second stage.
In the second stage, the vector lying in a horizontal plane and representing the geomagnetic field at time t, V(t), is compared to V(t+1), the vector at t+1. The size and direction of this change indicates how large and, significantly, in what direction from the sensor the change took place. This system can be used to detect any object that disturbs the earth's magnetic field. Using this two-step process enables reliable detection of ferromagnetic objects such as cars and other vehicles. In the calibration step the detector can be set up to monitor changes in two or more nearby locations.
The system and method of detecting ferrous objects such as motor vehicles can use any commercially available three dimensional low field magnetic sensor, such as, e.g., Honeywell HMC1053 or PNI Micromag. Honeywell has suggested that such sensors may be used to detect the presence of a ferrous object such as an automobile. The inventors are not aware of any successful use of a single one of such a sensor to monitor plural locations for the arrival or departure of ferrous objects. Two approaches are disclosed for using a single three dimensional, low field, magnetic sensor to monitor plural locations. The first is a vector magnitude and two dimensional position approach.
The vector magnitude and two dimensional position approach is illustrated in connection with monitoring two or more parking spaces for the presence of a vehicle, using a single three dimensional magnetic field sensor. The process begins with calibration steps, followed by repeated sequences of detection steps.
Beginning with step 102, “Measure no_car baseline vector V0” establishes the prevailing geomagnetic field in the absence of any vehicles. There follows a sequence of calibrating steps, one for each space to be monitored, for example two, in which case the loop limit “n” is set to 2, though this is not limiting. Detection of more than two spaces can be accomplished in the same way. Thus, with step 104, “count i=1”, the count is initialized to calibrate the first space. Step 106 is “Place calibration object in space i”, for example a relatively small vehicle that provides a good directional indication of the middle of the parking space. Step 108 is “Measure vector Vi” for determining the perturbed magnetic field vector with the calibration object occupying space “i”. Step 110 is “dV=Vi−V0” wherein the vector difference dV is computed between the empty-space vector V0 and the vector Vi with a calibration object occupying space number “i”. Step 112 is “dXY(i)=(dVx, dVy)” in which the vertical dVz component of dV is ignored and the 2D field perturbation caused by the calibration object in space (i) in the horizontal (x,y) plane is recorded in a table for future use. The quantity dXY(i) thus represents the change in the magnetic field, viewed in the horizontal plane, caused by the presence of a vehicle in space (i).
Step 114 is “Remove calibration object from space i” in preparation for a possible next step. Step 116 is “i<n?” which tests to see if there is another space to be calibrated. If True, then step 118 “i=i+1” advances the index, and the procedure returns to step 106 with a new space number “i” to calibrate. If test 116 gives a False outcome, then the calibration procedure is “done” in step 120.
When the calibration routine has been completed, the routine has generated a table containing a set of vectors representing the change in the ambient magnetic field when each of the monitored spaces is occupied and the other monitored spaces are empty. In a two-parking space arrangement (n=2), those conditions are: no cars (this is V0); space A occupied, Space B empty; and space A empty, space B occupied. The system does not test every possible combination, so for example there is no vector representing: space A occupied and Space B occupied. When four spaces are monitored, the table includes four entries in addition to the V0 data.
Following the above calibration steps, the object detection steps proceed in flowchart 200 as follows. The purpose of steps 202-213 is to detect whether there has been a change in the filled or empty status (i.e. occupancy status) of a monitored space such as a parking space. At step 202, the program calls up “AbsVsq” from memory. This is the scalar quantity representing the square of the strength of the magnetic field as last measured by the sensor; it represents the state against which the currently measured vector is to be measured to determine whether there has been a change. Immediately after calibration and before any object has occupied a monitored space, “AbsVsq” is based on V0; at a later time after objects have come and gone “AbsVsq” will have some other value based on the most recently measured magnetic field. “AbsVsq” thus serves as a baseline, and its value is the magnitude-squared measure of the vector field strength.
At step 204, “(”dXY0” is previous baseline 2D field vector)” is also called up from memory. This value represents the component of the ambient geomagnetic field vector that lies in the horizontal plane measured, like “AbsVsq”, initially at calibration; at a later time (after objects have come and gone) it will have some other value based on the most recently measured magnetic field. The value of dXY0 is stored for later use. Together “AbsVsq” and “dXY0” represent the three dimensional magnitude-squared and horizontal plane vector components of the magnetic field in the most recent stable state against which the current measurements will be compared to determine whether there has been a change.
The next series of steps determine whether the change in the magnetic field is large enough to merit further examination or is merely noise. At step 206, “Measure magnetic field vector V” establishes a newly-measured 3D magnetic field vector. This vector is the vector to be compared to AbsVsq to determine whether ferrous objects have come or gone since AbsVsq was determined. In step 208, “absVsq=Vx̂2+Vŷ2+Vẑ2” computes and stores the square of the magnitude of the newly-measured vector. In step 210, “DELT=absVsq−AbsVsq” computes and stores the scalar difference between the newly-measured magnitude-squared measurement and the current baseline value. In step 212, “ABS(DELT)<Threshold_0?” asks if the absolute of “DELT” computed step 210 is smaller than a minimum threshold for detection of significant change. If the answer is True, then this detection sequence is “Done” in step 213, and the system waits for a period of time before beginning the sequence of Detection Steps again.
A False result in 212 means the change has exceeded the threshold and leads to a continuing sequence of steps to further analyze the detected change, leading to step 214. In 214, “dxy=(Vx, Vy)−dXY0” computes the 2D vector field difference, in the horizontal (x,y) plane, between the reference vector dXY0 and the vector (Vx, Vy) consisting of the x and y components of the newly-measured magnetic field vector.
Next the procedure prepares a table listing the difference between each of the calibration vectors and the vector dxy calculated in step 214. Each difference is identified by the term “Distance (i)” where “i” is an integer between 1 and n. To this end in step 216, “i=1” sets a counter to go through the spaces from 1 to n, where n is the number of spaces monitored. At step 218, “Distance(i)” is calculated from “Distance(i)=AbsSq(dxy−dXY(i))”. This value is a vector distance-squared comparing the newly-measured 2D vector reading to one of the reference stored calibration readings generated by flowchart 100, step 112. Step 219 calculates the opposite of the vector calculated in step 218. The resulting value is stored in a table.
Step 220, “i<n” checks for completion of the determinations of step 218, with a “not complete” indication of True sending execution to 222, “i=+1” to increment the index and return execution to 218 for comparison to another stored value “dXY(i)”. When this loop is complete a table has been created which contains 2n entries, each containing a comparison of the change from the previous state to the newly-measured state (1 to n) or a comparison of the opposite of the change from the previous state to the newly-measured state (n+1 to 2n).
When this loop is complete, execution continues with step 224, “MN=MIN(Distance(i))” wherein the minimum value of the values “Distance(i)” is determined. At step 226, “k=(i such that Distance(i)=MN)” identifies the particular index “k” associated with the minimum distance. This minimum corresponds to the newly-measured 2D magnetic vector direction that is closest to one of the calibration vectors from step 112, or to the negative of one of those calibration vectors. A value of k that is between n+1 and 2n means that the monitored space has been vacated, a value of k between 1 and n means the monitored space has been recently occupied. Steps 227-230 perform this test. If k is greater than n, the value of k is reduced by n and the status of monitored space associated with k is set to empty (occupied=false) at steps 228 and 229. If k is less than n, the status of the monitored space corresponding to k is set to “occupied.”
With “k” now identified, step 228, “occ(k)=(SIGN(DELT)<0)” tentatively assigns to space “k” an occupied=True status if DELT was negative, that is, if the magnetic field strength at the sensor was observed to decrease, or otherwise an occupied=False status for a magnitude increase. Step 231 begins an error checking process. First in step 231, “error=(occ(k)==Occ(k))”, it is determined whether the supposedly changed “occupied” status of the identified parking space is in fact unchanged from its earlier status (“Occ(k)”). The “==” or “double equal” symbol is a true-false comparison symbol for equality, as contrasted for the “=” programming symbol for assignment.
Step 231 includes a second consistency check namely occ(k)<>(DELT<0). DELT is the change in the squared length of the magnetic vector. If DELT<0, that means that the new field reading, absVsq, was smaller than the previously stored reference AbsVsq in step 210. That means that, based on field magnitudes (or magnitudes-squared), we expect that the previously empty space has become occupied, with the vehicle drawing magnetic flux into itself and away from the sensor. So a True outcome of “DELT<0” is equivalent to saying that the newly determined, still-tentative value for “occ” should be True. Likewise, a False outcome to “DELT<0” implies that the space has become vacant, which means that “occ” should also be false. The “<>” operator is a “not equal” operator, so that when occ(k) and DELT<0 yield the same result, then the “<>” operator yields False, no error. On the other hand, if “<>” yields True, it means we have an error, and this should force the result of the OR operator to become True as well.
The error value, True or False, from step 231 is checked in step 232, and if True, there is nothing new to report except possibly an error flag because, despite exceeding the threshold for significant changes passed in step 212, in fact, the status of space k had not changed, and the sequence is “Done” at step 234.
The routine that called the sequence 200 will typically involve higher level decisions, for example, to decide whether a vehicle is in the process of parking and is generating an ongoing magnetic signal variation, or if there might be some inconsistency, for example that a long-filled parking space is becoming “more filled” or a long-vacant parking space is becoming “more vacant.” A False reading from 232 means that the new status of space k does represent a change in status from the previously recorded status and sends execution to 236, “Occ(k)=occ(k)” in which the tentative True/False logic status of “occ(k)” is stored in the decided logic status represented by “Occ(k)” using an uppercase rather than lowercase first letter. In step 238, “AbsVsq=absVsq” records the new squared-magnitude of the field strength, which becomes a new reference for detection of change when the steps of 200 are called again from a higher-level program.
Another pair of calibration steps and detection steps is described in flowcharts 300 and 400 of
Following a one-time calibration, the often-repeated detection routine proceeds as illustrated in flowchart 400 of
(u,v,w)(dot)(x,y,z)=ux+vy+wz
that is, by the sum of the products of the respective vector components. This product takes on a maximum positive value for vectors of given magnitude that are parallel, a maximum negative value for vectors of given magnitude that are antiparallel, pointing in opposite directions, and a value of zero for vectors that are orthogonal. Step 414, “Cross(i)=ABS(dV(i)(cross)dV)” computes the magnitude of the vector cross product. The cross product itself, a vector quantity, is given by:
(u,v,w)(cross)(x,y,z)=(vz−wy, −uz+wx, uy−vx)
The absolute value “ABS” or magnitude of this vector is the square root of the sum of squares of the vector components, following the Pythagorean Theorem. Computation continues in step 416, “i<n” with a determination if the loop is incomplete, with a True outcome leading to step 418 “i=i+1” where the index is incremented and execution returns to step 412. Otherwise execution continues to step 420, “MX=MAX(ABS(Dot))” in which maximum among the values of Dot(i) from step 412 is assigned to the variable MX. In step 422, “MX<Threshold_0” this MX value is compared to a zeroth threshold magnitude. If MX is smaller than this threshold, then no significant magnetic change is detected, and execution proceeds to step 424, “Done” returning execution control to a higher-level routine that will normally call the detection routine 400 again, repeatedly, at later times.
If a significant change is detected, execution proceeds to step 426, “k=(i such that ABS(Dot(i))=MX)” in which the index i giving the maximum magnitude MX is assigned to “k”. In step 428, “occ(k)=(Dot(k)>0)” a True or False test leads to an assignment to the Boolean variable “occ(k)” being True if the result of the dot product computation from step 412 was positive, i.e. a determination that the measured and reference vectors were pointing generally in the same direction rather than opposite directions.
A True outcome in step 428 tentatively indicates an occupied space, and a False outcome an empty space. In step 430, “error=(occ(k)==Occ(k))”, similar to step 230 of flowchart 200, an error variable is set to True if an already-filled space is apparently re-filled, or an already-empty space is re-emptied. Unlike the following sequence in procedure 200, procedure 400 proceeds with two optional additional steps to detect possible error conditions. In 432, “error=(error OR ABS(Cross(k)/Dot(k))>Threshold_1)” asks if the absolute value of the ratio of the cross product divided by the dot product is larger than a first threshold (“threshold_1”). An unusually large cross product magnitude, compared to the dot product, indicates a significant angle alignment error compared to the reference vector perturbation for an object in the identified space. The Boolean “OR” function combines this outcome with the previous value for “error” so that a True from either input yields a True error output. Step 434, “error=(error OR (MAX(Dot(i<>k)/Dot(k))>Threshold_2))” performs another consistency test for error detection. The values of Dot for all indices “i” excepting for index “k”, which may be just one other index, are compared by ratio to the result for the identified index “k”.
The “MAX” operation here is actually the maximum of the absolute value of the ratio. If this ratio is large, that is if the identification magnitude for space “k” is not much larger than the identification magnitude for a different parking space, “i” not equal to “k”, then there is a high uncertainty in the identification. The resulting “True” outcome of the comparison test is combined with the previous “error” value by the Boolean “OR” function, so that a True outcome from any one of the three optional tests will register as True in step 436, “error==T?” leading to a routine exit at 438, “Done”, along with an error flag that will alert the calling routine to a potential problem.
Optionally, various of the parameters computed in 400 will be made available to the calling routine for further evaluation. If there is no error indication, execution proceeds to 440, “Occ(k)=occ(k)” in which the tentative logic value “occ(k)” for the identified space “k” is assigned to the more permanent “Occ(k)” Boolean variable for that space. In step 442, “V0=V” the most recently measured magnetic vector “V” is assigned as the new baseline reference vector “V0” for detection of further change. Step 442, “Done” completes this routine and flowchart 400.
The signal output from the detector 500 may be used for any of a variety of purposes. For example, when applied to a parking facility, the information about which spaces are occupied and which are empty may be displayed on a sign to direct drivers to unoccupied spaces. This may be particularly important if the bollard 516 in which the detector 500 is mounted also happens to provide facilities not available at all bollards in a parking lot or street, such as vehicle battery recharging services. Instead or in addition to the sign 514, the bollard 516 or post mounting the detector 500 may be equipped with a light 518 positioned to be visible from a distance to help drivers locate an available parking space. The information provided by detector 500 may also be combined with whether a customer has exceeded the parking time purchased to alert law enforcement or a parking lot operator to take necessary action. In addition, the detector 500 with our without additional sensor 516, may be used to detect the presence or absence of ferrous items other than automobiles, such as articles in a warehouse, where a bin or container, itself not ferrous, may carry a magnet so that its presence distorts the earth's magnetic field.
Flowchart 600 of
Step 606, “Option: Status indication from independent measurement” teaches that the system may optionally input and use additional data form independent measurements or sensing means. Such means may include, but are not limited to, optical sensing, infrared sensing (which is particularly sensitive to engine heat from an arriving vehicle), sonar, radar, noise detection and analysis, transponder pinging (as with the transponders otherwise used for automatic toll collection), and mechanical strain sensors that will sense the effects of vehicle weight. Some of these approaches will be too expensive for mass commercialization, others of them good for detecting vehicle presence but not location, and others readily vandalized, for example by placing a piece of tape over the lens of an optical or infrared sensor. Used in conjunction with the processes taught by this disclosure, however, data from one or more secondary measurements can reduce the incidence of errors in the primary magnetic method.
Following step 604 and possibly step 606, if that option is taken, step 608, “Significant change or error” asks if the prior steps report changes or errors that merit further action. If not (a False output), program control proceeds to step 610, “Time delay,” before returning to step 604 for another round. Note that step 610 is optional, in that the loop just described could continue rapidly and uninterrupted until a significant change or error signal arises.
A “True” output from step 608 leads to step 612, “Control program analyzes status data and errors”. Data from intermediate steps in procedures 200 or 400 can be made available to step 612, along with optional independent sensor data from step 606, for the analysis of step 612. Parts of the analysis of step 612 may optionally be incorporated in earlier decision step 608, for example where the system recognizes changing data, such as when a vehicle is parking or leaving or when another vehicle is moving nearby. In such a case, the analysis of step 608 may optionally wait until several consecutive passes through steps 610, 604, 606 and back to 608 have yielded data with little change, indicating a stable situation upon which to base a reliable decision in step 612. The decision output of step 612 is recorded and reported to an external system in step 614, “Filled(k)=best estimate from redundant data”. Such an external system could, for example, be a space vacancy and occupancy display such as display 514 of
Given knowledge of the methods and associated apparatus taught here, those skilled in the art will recognize variations on these methods and apparatus. For example, calibration methods 100 and 300 have been described in terms of placement of a ferromagnetic test object sequentially in each of the two or more spaces to be tested. One variation is to place test objects in the spaces in all possible combinations of occupied and empty, record all the results, and base a detection method on this larger data set. Such an approach could better account for nonlinear interactions among ferromagnetic objects, such as vehicles, thus yielding more reliable results from a nonlinear model that characterizes the magnetic field change for a given space while taking into account the effects of objects present or absent in neighboring spaces.
In a second example of alternative calibration methods the calibration of either 100 or 300 could be accomplished mathematically without the use of physical ferrous test objects. It is known that when a magnetically soft ferrous object is placed in an external magnetic field, for example the geomagnetic field, then the external field induces an overall magnetic dipole moment in the ferrous object, along with higher-order multipole moments that depend on the particular shape of the object. The induced dipole moment will be parallel to the inducing external field, and the sensing apparatus taught here measures that inducing external field when vehicles and other ferrous objects are absent. Equations readily found in textbooks or online describe the vector field of a magnetic dipole. It is also known that higher-order multipole moments attenuate with distance more rapidly than the dipole moment, so that the dipole approximation of a complex object generally yields reliable results. Thus, if the locations of the spaces (for example, parking spaces) are known in relation to the sensor apparatus, then the apparatus can self-calibrate by measuring the local geomagnetic field, generating a “virtual ferromagnetic object” whose induced dipole moment is parallel to the measured local geomagnetic field, then “placing” that “virtual object” mathematically at the known coordinates (relative to the sensor location and orientation) of the spaces to be sensed, and computing the directions of magnetic perturbations caused by the presence of that virtual object at the specified location coordinates.
This virtual method can be refined through empirical testing, for example to determine where, within a parking space, best to mathematically place the virtual dipole, in order to minimize the chances of errors in detecting real vehicles having a range of complex shapes and not-centered parking locations. This virtual approach has the advantage of being applicable universally for parking spaces with arbitrary compass orientations over a range of latitudes. Combined with the methodology of procedures 300 and 400, this virtual approach becomes applicable an nearly all latitudes, excepting special cases. An example of a special case is very near the geomagnetic poles, where the near-absence of a horizontal geomagnetic field component will lead to a poor or nonexistent differentiation of location for a sensor that is at the same horizontal level as the ferromagnetic object. Symmetries of this sort, leading to poor or ambiguous readings, can often be avoided, in this case by placing the sensor well above the level of the spaces to be monitored. At non-polar latitudes there will be symmetries that reduce the effectiveness of the procedures taught herein, for example when the magnetic sensor is located between, rather than at the head of, a pair of parking spaces, so that a vehicle centered magnetically due-east of the sensor might cause the same field perturbation as a vehicle centered magnetically due-west of the same sensor. Again, the procedures taught herein can be made to work better by avoiding the offending symmetric sensor placement. An advantage of the “virtual object” calibration approach is that it facilitates identification and avoidance of symmetry situations that would cause problems with detection or discrimination of location as taught in this Specification.
A will be seen from procedures 200 and 400, the method described here relies on the relative independence of magnetic vector changes associated with a new occupancy or new vacancy of a given space, regardless of the occupancy status of adjacent spaces. whether occupied or vacant. Thus, in 200, step 218 provided an array of n values, “Distance(i)” checking for a minimum associated with an occupancy status transition from vacant to occupied, while step 219 extended that array for n additional values, checking for a minimum associated with a status transition from occupied to vacant, where step 219 used the negatives of the calibration changes associated with step 218. Similarly in procedure 400, step 428 determined whether a given dot product was positive or negative, the result of which determined the respective True or False status of the variable “occ(k)”. A reversal of the direction of a vector change causes a reversal of the sign of a dot product, while the absolute value of that dot product is unaffected by the direction reversal. In 400, the sign of the dot product indicated whether the direction of status change was toward “occupied” or toward “vacant.” The fixed occupancy status of other spaces did not matter except for setting the “previous baseline vector” of step 404. Thus, a general calibration procedure will depend only on changes in occupancy status of spaces tested in sequence, and not on the background state of unchanged spaces.
The calibration procedure of either 100 or 300 can be performed entirely mathematically, without the use of physical test objects, except to the extent that a few empirical tests with test objects can be used to fine-tune the mathematical procedure to minimize the chance of detection error. For the purposes of calibration 300, the magnitude of a vector change associated with new-occupancy or new-vacancy of a given space is unimportant, while in calibration 100, the vector changes need to be smaller than the magnitude of the prevailing geomagnetic field so that status transitions toward occupied, when added to the measured field vector, will decrease rather than increase the vector magnitude under conditions described previously. Even though detection magnitudes will differ for spaces at different distances from a detector, little reliance can be placed on vector magnitudes since the sizes of various ferrous objects to be detected, for example vehicles, might vary widely, causing large differences in vector magnitudes having similar directions associated with particular identified spaces. To simplify the vector calculations, the magnetic perturbation field associated with a ferrous object will be modeled not as a mathematical point-dipole (as would be a typical approach taken in theoretical physics), but rather as two point-monopoles separated by a finite distance. To correlate with the actual field perturbation of a “large” object, the separation of the monopoles can be set to the order-of-magnitude of the metallic height (not counting mostly non-metal components such as tires) of an object to be detected, or slightly less than the height to account for rounding of the shape. For simplicity and concreteness of the example, an arbitrary height of one meter will be considered, while distance measurements will be in meters, though this convention is obviously not limiting. Also for convenience, the point monopoles will be of unit strength, meaning that the strength of the vector field associated with a monopole will be just the reciprocal-square of the distance from the monopole, in meters. With these arbitrary conventions,
In step 702, “(Space locations XYZ(i) specified, relative to sensor)”, the computation system must be supplied with the physical vector locations (x, y, z) of the centers of spaces “i” between 1 and n, relative to the location and spatial orientation of the magnetic sensor. In this example, the unit of distance is taken arbitrarily to be one meter. In step 704, “Measure baseline field V0=(V0x, V0y, V0z)”, the sensor measures the geomagnetic field for empty spaces. This vector field direction is taken to be a good estimate of the field that will induce a dipole moment in a ferrous object in a space, while in practice the local field at various spaces might be perturbed, within limits, by distortions such as ferrous structures no too nearby. In step 706, “ABS(V0)=SQRT(V0x̂2+V0ŷ2+V0ẑ2)” the absolute value, or length, of the vector “V0” is computed as the square root of the sum of squares of the three vector components. In step 708, “V0n=V0/(2*Abs(V0))” a normalized vector “V0n” is defined by dividing the vector quantity V0 by twice the absolute value of the vector as computed in the previous step. This division yields a vector of length one-half. In step 710, “i=1” set an index counter to run through the n spaces, for example, two spaces, or optionally more. In step 712, “Mplus(i)=XYZ(i)+V0n” using vector addition, add the normalized half-unit-length field vector V0n to the location vector XYZ(i) for space number “i”. Similarly in step 714, “M_minus(i)=XYZ(i)−V0n” subtract the normalized field vector V0n from the location vector XYZ(i) for space number “i”. Observe that these resulting two “plus” and “minus” monopole locations are one meter apart, while their line of separation is parallel to the prevailing geomagnetic field and the vector direction going from the monopole “minus” to monopole “plus” is the same as the vector direction of the geomagnetic field. In steps 716 and 718, the monopole vector fields are computed, pointing from the objects toward the sensor. Thus in step 716, “V_plus(i)=−M_plus(i)/(ABS(M_plus(i))̂3)”, the minus sign to the right of the equal sign causes the field to point toward the sensor, or in the opposite direction of the vector “M_plus(i)” directed from the sensor to the positive monopole. Division of “M_plus(i)” by “ABS(M_plus(i))” to the first power rather than the third power would result in a vector of unit length in the defined direction. By raising the denominator to the third power rather than the first power, the magnitude of the resulting vector varies inversely as the square of distance, describing a monopole field. Similarly in step 718, “V_minus(i)=M_minus(i)/(ABS(M_minus(i))̂3)” computes a vector associated with the negative monopole, with the opposite polarity of V_plus(i) of step 716, thus explaining the “double reversal” canceling the minus sign of 716 so that there is no minus sign in step 718. In step 720, “dV(i)=V_plus(i)+V_minus(i)”, the two monopole field vectors are summed, giving the field of a dipole with a finite monopole separation, of one meter in this example, though other separation choices are possible, including in a limit process where the monopoles become closer together while their strengths are increased, leading to the description of a point dipole in the mathematical limit. The calibration vector dV(i) of step 720 is useful where only the vector direction matters, as in detection procedure 400, while detection procedure 200 or similar is likely to require a magnitude scale that is realistic in relation to the magnitude of the prevailing geomagnetic field. Where scaling matters, optional step 722 scales each calibration vector dV(i) by a scaling factor called “constant” that is set to an appropriate magnitude as needed. With or without scaling step 722, execution proceeds to the test step 724, “i<n?”, to determine if there are one or more additional space locations have been calibrated. A True outcome indicates more locations, causing execution to proceed to step 726, “i=i+1”, incrementing the counter, after which execution loops back to step 712. A False result in 724 sends execution to step 728, “Done”, which typically implies a subroutine return to the calling routine, such as the end of step 602 in procedure 600,
Observe that if one were to set XYZ(i)=(0, 0, 0), thus placing the magnetic sensor midway between the magnetic monopoles, then the positive monopole would be “downstream” of the sensor in relation to the geomagnetic field direction, and the negated vector defined by “V_plus(i)” would point “upstream,” opposing the geomagnetic vector, and similarly for the field from the negative monopole, with no minus sign in the expression of step 718. This is the correct vector direction, because the vector perturbation from the finite-spacing dipole should oppose the prevailing geomagnetic field at the sensor location if the sensor is located between the monopoles or in the equatorial plane equidistant from the two monopoles. If, on the other hand, the sensor were located beyond either end of the spaced monopole pair, on the axis defined by their spacing, then the net effect would be to strengthen the sensor reading. This description provides a check to determine whether the programming of procedure 700 has been done with the correct signs and polarities.
The procedures taught in connection with
The flow charts of
Although the flow charts
Also, where the procedures (
This application is a continuation in part of U.S. Ser. No. 61/228,997 filed Jul. 28, 2009 and of U.S. Ser. No. 12/705,919 filed Feb. 15, 2010.
Number | Date | Country | |
---|---|---|---|
61228997 | Jul 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12705919 | Feb 2010 | US |
Child | 12844934 | US |