The disclosed subject matter relates to systems and methods for scanning and duplicating keys.
A kiosk that is configured to scan a key to determine the bitting pattern and key type of that key for duplication and/or storage of the key information typically relies on one or more mechanisms for capturing information about the key, such as image sensors. However, as many people keep keys in their pocket or bag, the key may collect lint, dirt or other detritus, which may be introduced into the kiosk when the user inserts or otherwise presents the key for scanning. This debris may interfere with accurately recording information about the key, as it may accumulate between the mechanism for capturing information about the key and the key itself.
Therefore, there is a need for new systems and methods for maintaining a kiosk that scans and/or duplicates keys.
In accordance with various embodiments of the disclosed subject matter, systems and methods for maintaining a kiosk that scans and/or duplicates keys are provided.
In accordance with some embodiments of the disclosed subject matter, a system for scanning a key is provided, the system comprising: a kiosk comprising: a key slot disposed in a surface of the kiosk; a key scanning device; a key scanning housing mounted behind the key slot, wherein the key scanning device is positioned in relation to the key scanning housing to facilitate capturing information about the key inserted in the key slot; a vacuum cleaner; a hose connecting the vacuum cleaner and the key scanning housing; and at least one hardware processor that is programmed to: determine that the key is to be scanned; and cause the vacuum cleaner to run creating a partial vacuum in the vicinity of the key scanning housing.
In accordance with some embodiments, the kiosk further comprises: a key shaping device that creates a second key using geometric information about the key based at least in part on information about the key captured by the key scanning device; and a second hose connecting the vacuum cleaner and the key shaping device.
In accordance with some embodiments, the hardware processor is further programmed to cause the vacuum cleaner to run during at least a portion of the operation of the key shaping device creating a partial vacuum in the vicinity of the key shaping device.
In accordance with some embodiments, the vacuum cleaner creates the partial vacuum in the vicinity of the key shaping device and the partial vacuum in the vicinity of the key scanning housing simultaneously.
In accordance with some embodiments, the partial vacuum created in the vicinity of the key scanning housing is not strong enough to hold the key in place if a user attempted to remove the key.
In accordance with some embodiments, the key scanning housing forms a substantially enclosed space when mounted behind the key slot.
In accordance with some embodiments, the hardware processor is further programmed to cause the vacuum cleaner to run periodically regardless of whether the key has been inserted in the key slot.
In accordance with some embodiments, the key scanning device comprises at least one imaging device, and wherein the hardware processor is further programmed to: cause the imaging device to capture a reference image; cause the imaging device to capture an image of the interior of the key scanning housing when no key is inserted in the key slot; compare the image of the interior of the key scanning housing to the reference image; and determine that there is debris in the key scanning housing based on the comparison.
In accordance with some embodiments, the hardware processor is further programmed to, in response to determining that there is debris in the key scanning housing, cause the vacuum cleaner to run creating a partial vacuum in the vicinity of the key scanning housing.
In accordance with some embodiments, the hardware processor is further programmed to: cause the imaging device to capture a second image of the interior of the key scanning housing subsequent to running the vacuum; compare the second image of the interior of the key scanning housing to a previous image; determine that there is still debris in the key scanning housing based on the comparison; and send a message to a central server indicating that there is debris in the key scanning housing.
In accordance with some embodiments of the disclosed subject matter, a method for scanning a key is provided, the method comprising: determining that the key is to be scanned and has been inserted in a key slot disposed in a surface of a kiosk that includes a key scanning device positioned in relation to a key scanning housing mounted behind the key slot to facilitate capturing information about the key inserted in the key slot; and causing a vacuum cleaner to run creating a partial vacuum in the vicinity of the key scanning housing via a hose connected between the vacuum cleaner and the key scanning housing.
The above and other objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
In accordance with various embodiments, systems and methods for managing key information are provided.
In some embodiments, these systems and methods allow a user to create a copy of a key. For example, a user can create a copy of a key if the key has been lost, if the user wishes to make a copy for a friend, or for any other suitable reason. In order to do so, in some embodiments, these systems and methods can detect a bitting pattern and a blank type of a user's key. This bitting pattern, blank type, and any other suitable information can then be stored in any suitable storage mechanism. At a suitable subsequent point in time (such as when the user has lost the key), these systems and methods can generate a duplicate of the key without the presence of the original key. This can be accomplished by retrieving the stored information from storage, selecting a blank key corresponding to the blank type, cutting the blank key according to the bitting pattern, and dispensing the key to the user. Any suitable security mechanisms can be included in these systems and methods to prevent unauthorized key duplication.
One of the uses of such systems and methods can be to provide a user with a way of creating a duplicate key when the original is not available, for instance during a lockout situation. Another use of these systems and methods can allow a user to obtain a duplicate key in a self-service fashion without assistance from, for example, a skilled locksmith or an employee at a hardware store that duplicates keys. Additionally, the systems and methods can be used to verify user identification through biometric scanning to provide a secure method for duplicating sensitive keys (e.g., a home key, a vehicle key, etc.).
Turning to
This hardware can be arranged in any suitable manner in some embodiments. For example, this hardware can be arranged in a kiosk, such as kiosk 200 of
In some embodiments, a subset of the hardware shown in
Display 102 can be any suitable display, such as an LCD display, a cathode ray tube display, an electronic paper display, etc. Input device(s) 104 can include any suitable input devices, such as a keypad, a keyboard, a fingerprint reader, an eye scanner (e.g., a retina or iris scanner), a touchpad, a credit card scanner, a smart card reader, a near field communication device, an RFID scanner, a touch sensor, a camera, a Quick Response code (QR code) reader, a barcode reader, etc. In some embodiments, display 102 and an input device 104 can be combined as a touch sensitive display (or touchscreen device).
Key detector 106 can be any suitable mechanism for detecting the bitting pattern and/or the blank type of a key. For example, the key detector can be any suitable device that detects the bitting pattern and/or blank type of a key using any suitable technology such as optical technologies, mechanical technologies, electrical technologies, and/or any other technology, as described further below. More generally, key detector 106 can detect geometric information about a key. For example, key detector 106 can detect the dimensions of a key (e.g., length, width, height, profile, shoulder shape, etc.) and features of the key. Examples of features of the key can include, but are not limited to, a bitting pattern, protuberances, dimples, voids, grooves, a milling profile, a milling pattern of the key from one or more side views, a milling pattern of the key from a front view (e.g., looking from the tip of the key toward the head of the key), etc.
In some embodiments, key detector 106 can detect the presence of an instruction to not duplicate the key. For example, such an instruction can be printed or engraved on a key by words, such as, “do not duplicate.” As another example, such an instruction can be embedded in the key as an RFID chip, or the like. As another example, such an instruction can be indicated by the presence of a physical indication to not copy the key. For instance, a notch can be cut in the top of the key, or material can added to a portion of the key that is not inserted into a lock. In such embodiments, the presence of an instruction to not duplicate the key can cause the mechanisms described herein to inhibit scanning and/or duplication of the key as described herein.
Storage 108 can be any suitable storage. For example, storage 108 can be random access memory (RAM), electrically erasable programmable read only memory (EEPROM), flash memory, disk memory, network storage, a database, any other suitable storage, or any suitable combination thereof.
Hardware processor 110 can be any suitable processing hardware. For example, hardware processor 110 can be a microprocessor, a microcontroller, dedicated logic, a field programmable gate array, a general purpose computer, a special purpose computer, a client, a server, and/or any other suitable processing hardware.
Communication network interface 112 can be any suitable interface facilitating communications on a communication network. For example, communication network interface can be a wired network interface (such as an Ethernet network interface card (NIC), a USB interface, a cable television network interface, a telephone network interface, etc.), a wireless network interface (such as an IEEE 802.11x interface, a Bluetooth interface, a mobile telephone interface, a wireless data network interface, a satellite communications interface, etc.), an optical interface, and/or any other suitable interface.
Key movement mechanism 114 can be any suitable mechanism for moving a key from a key blank storage area 118 to key cutting and cleaning mechanism 116. For example, key movement mechanism 114 can include a key blank holding mechanism connected to one or more belts and/or stabilizer bars in which the position and operation of the gripper is controllable by hardware processor 110 and/or any other suitable mechanism. As another example, key movement mechanism 114 can be a robotic arm that is controllable by hardware processor 110 and/or any other suitable mechanism. Additionally or alternatively, as described in more detail below in connection with
In some embodiments, key blank storage 118 can house an inventory of any suitable number of types of key blanks (sometimes referred to herein as “blanks”). In some embodiments, keys of each blank type (e.g., key blanks with different milling patterns, key blanks of different sizes, etc.) can be stored in stacks within the storage area. Each stack can include any suitable number of blanks. Inventory levels of blanks can be monitored (locally or remotely) to keep track of how many key blanks are remaining in each stack. In some embodiments, each stack can have one or more sensors which can be used to determine how many blanks remain in the stack. In some embodiments, in response to sensing that the number of blanks in a stack (or the number of blanks of a certain type) has fallen below a threshold, a technician can be alerted and dispatched to add blanks. The technician can be alerted using any suitable communication method. For example, an email, a text message or a voice message can be sent to the technician. As another example, a message can be sent to the technician using a specialized application that includes software for managing inventory levels of key blanks.
In some embodiments, blanks can be removed from a stack as needed by key movement mechanism 114. For example, the magazines holding stacks of inventoried key blanks can be aligned vertically, in some embodiments. This can allow for key blanks to be fed to the bottom of the magazine by gravity as key blanks are removed by key movement mechanism 114. If the stacks are aligned vertically, the blank on the bottom of each stack can be removable by key movement mechanism 114. In an alternative example, if the stacks are aligned vertically, the blank at the top of each stack can be removable by key movement mechanism 114. In yet another example, key movement mechanism 114 can remove a blank from an arbitrary position in each stack. In some embodiments, stacks can be arranged in any suitable orientation, such as horizontally.
In some embodiments, a magazine can hold the stacks of inventories blanks. These magazines can be, for example, a storage and feeding device for holding a stack of inventory blanks. The magazines for holding the stacks of inventory can be made from any suitable material, such as: steel, aluminum, plastic, rubber, carbon fiber, etc. The magazines can be shaped to facilitate selection and removal of key blanks from the stack of blanks by key movement mechanism 114. In some embodiments, the magazines can be replaceable in a housing that houses hardware 100 to facilitate placement of blanks for use by allowing multiple keys to be placed at the same time. For example, if a technician is alerted that an inventory of a particular type of blank is below a threshold, the technician can refill the inventory of the particular type of blank.
In some embodiments, the magazines holding stacks of inventoried key blanks can be placed on a rotating carousel. An illustrative example is shown in
In some cases in which the kiosk height is greater than its width, for example, magazines can be aligned horizontally so that the number of magazines which can be accommodated is increased in some embodiments. This can allow for more types of keys to be stocked, for example, in a kiosk having a limited footprint. An illustrative example is in
In some embodiments, key blanks can be dispensed from the magazines (using any suitable mechanism) into a funnel and alignment mechanism where they can be properly oriented and then retrieved by key movement mechanism 114. It should be noted that the funnel and alignment mechanisms along with mechanisms for dispensing blanks from the magazines can be thought of as part of key movement mechanism 114, in some embodiments. An illustrative example is shown in
In some embodiments, each magazine can contain an inventory of multiple key types so that the number of magazines does not restrict the number of key types which can be accommodated in a kiosk. An illustrative example is shown in
Key cutting and cleaning mechanism 116 can be any suitable mechanism for cutting and cleaning a key. For example, key cutting and cleaning mechanism 116 can include a key blank holding mechanism, a cutting tool, a deburring tool, a scrap metal guard and debris container, and/or any other suitable key cutting and/or key cleaning device. In some embodiments, various parts described herein can be part of a computer numerical control (CNC) machine used to create a duplicate key. For example, mechanisms 114 and 116 combined can together be part of a CNC machine that can be precisely controlled. For example, such a CNC machine can have a key blank holding mechanism attached one or more belts and/or stabilizing bars that can receive a blank key from key storage area 118. The key blank holding mechanism of the CNC machine can then be moved with the blank key to a cutting blade of the cutting tool under the control of the hardware processor and cause the key to be cut according to specifications. After a key is cut, the CNC machine can then move the blank key to the deburring tool to be cleaned of burrs that can result from the cutting process. After deburring is complete, the holding mechanism can release the new key into a key dispensing chute where it can be retrieved by the user.
As another example, mechanism 116 can include a CNC machine having a robotic arm that can be precisely controlled. A key blank holding mechanism can be attached to the end of such a robotic arm that can be used to retrieve a key from key movement mechanism 114 (e.g., the funnel and alignment mechanism described above). The robotic arm of the CNC machine can then move the blank key to a cutting blade of the cutting tool under the control of the hardware processor and cause the key to be cut according to specifications. After a key is cut, the CNC machine can then move the blank key to the deburring tool to be cleaned of burrs that can result from the cutting process. After deburring is complete, the holding mechanism can release the new key into a key dispensing chute where it can be retrieved by the user.
A scrap metal guard and debris container can include one or more flaps surrounding the cutting blade. These flaps can contain and direct scrap metal generated during the cutting process to the scrap metal container. This container can be located below the cutting tool. The container can be easily accessible to facilitate convenient removal of scrap metal during routine maintenance.
In some embodiments, a key can be replicated by an additive manufacturing process such as three-dimensional printing, whereby a new key is fabricated by laying successive layers of an inventoried material to the desired specifications. Such a technique can allow for the duplication of a large number of different key types and can negate the need for inventoried blank keys.
In some embodiments, keys can be replicated from a sheet, bar or coil of metal (generally referred to herein as “stock”). For example, material to create a new key can be removed from the stock as needed. Any suitable technique can be used for removing a required amount of material from the stock to create a new key. For example, a required amount of material can be removed from the stock by stamping. As another example, a required amount to material can cut from the stock using any suitable technique (e.g., cut with a blade, milled, cut with a laser, cut with a plasma tool, a water jet cutting tool, etc.). The material removed from the stock can then be shaped into a new key using any suitable techniques. For example, the CNC machine described above can be used to shape a new key from material removed from the stock. Such a technique can allow for the duplication of a large number of different key types and can negate the need for inventoried blank keys.
In some embodiments, keys can be replicated from a material such as hard plastic (e.g., thermoplastics or thermosetting polymers, such as, polyethylene, polypropylene, polystyrene, polyvinyl chloride, and polytetrafluoroethylene, etc., polyvinyl chloride (PVC), or any other suitable plastic). In such an embodiment, a block (or blocks) of such a plastic can be stored to be used to replicate keys. A required amount of material for replicating a key can be removed from the block as required and can be shaped into an appropriate shape for replicating a particular key. Such a technique can allow for the duplication of a large number of different key types and can negate the need for inventoried blank keys. In other embodiments, key blanks can be made of plastic rather than metal. Using plastic rather than metal to replicate keys can allow for keys to be replicated that can be easily and safely disposed of by a user after the key has fulfilled a particular purpose. For example, if the user gets locked out of their home, the user can create a replica key from plastic and retrieve the original key. The user can then dispose of the plastic replica key (e.g., by cutting up or shredding the key) so that there are not multiple unused copies of the key for the user to keep track of. Using plastic can also allow for keys to be more easily created as shaping plastic is generally easier than shaping metal.
Any suitable material can be used for replicating keys using the mechanisms described herein.
In some embodiments, a user can supply an appropriate key blank for replicating a particular key. In such an embodiment, a user can determine a type of key blank required for replicating a particular key and obtain that type of key blank to use in replicating the key. For example, the user can look up the type of key blank using a computer application, mobile application, or web platform. In some cases a user can buy a blank of the required type at a retail location (e.g., a hardware store), or blanks can be available at a location where the kiosk for replicating keys is located where the user can select a key blank herself or acquire the appropriate blank from an attendant (e.g., a clerk). When the user has acquired the appropriate blank type, the user can supply the blank to the mechanism for replicating the key. In such an embodiment, the mechanism can verify that the blank supplied by the user is the correct type of blank for the particular key to be replicated. This can be done by capturing one or more images of the blank, or by using any other suitable technique for determining the properties of the blank, such as the techniques for determining the properties of a key described herein. Such a technique can allow for the duplication of a large number of different key types and can negate the need for inventoried blank keys.
Turning to
As shown, after process 300 begins at 302, the process can receive a user input of an action to be taken. For example, in some embodiments, this action can be to immediately create a duplicate of a key, to save a template of a key, or to recreate a key from a template. Any other actions can additionally or alternatively be taken in some embodiments. This user input can be received in any suitable manner. For example, in some embodiments, this user input can be specified by the user pressing a button on a touch screen interface, by a user inserting a key in to a key detector, by a user swiping a finger on a fingerprint reader or scanning an eye with a retina scanner, and/or by the user taking any other suitable action.
If the user selects to immediately duplicate a key, then process 300 can branch at 306 to 308 where payment information can be received. Any suitable mechanism for receiving payment information can be used. For example, in some embodiments, credit card information can be entered via user input device(s) 104. As another example, in some embodiments, an electronic device (such as a mobile phone) can be brought into proximity or tapped against a user input device 104. As yet another example, payment information can be received as an electronic message received via communication network interface 112. As still another example, input device(s) 104 can scan an image presented by the user that contains payment information such as an account number, etc. In such an example, the payment information can be encoded in the image so that it is difficult or impossible for a human to discern the payment information with the naked eye.
Next, at 310, process 300 can scan a key presented by the user. Any suitable approach to scanning a key can be used in some embodiments. For example, a key can be scanned as described below in connection with
Then, at 312, process 300 can replicate the scanned key. This replication can be performed in any suitable manner. For example, in some embodiments, the key can be replicated by the hardware processor 110: (a) controlling the key movement mechanism 114 to retrieve an appropriate key blank from a key repository and move the key to the key cutting and cleaning mechanism 116; and (b) controlling the key cutting and cleaning mechanism 116 to cut the key according to the detected bitting pattern and then clean the key to remove burrs, etc.
Finally, at 314, the process can cause the key to be dispensed to a user. For example, the hardware processor can control the key cutting and cleaning mechanism 116 to drop the key in the key dispensing chute.
If the user selects to save a key template, then process 300 can branch at 306 to 316 where user information can be received. Any suitable user information can be received, and this information can be received in any suitable manner, in some embodiments. For example, in some embodiments, a user name, a key name, a user physical address, a user phone number, a user credit card number, a user identification number (e.g., social security number, driver's license number, passport number, etc.), a user name, a user email address, and/or any other suitable user information can be received using one or more user input device(s) 104. In some embodiments, receiving user information can be omitted from process 300.
At 318, process 300 can then receive security information. Any suitable security information can be received and this information can be received in any suitable manner, in some embodiments. For example, in some embodiments, a user password, a user spoken word, a user fingerprint scan, a user retina or iris scan, a face image, a DNA sample, a palm print, a hand geometry measurement and/or any other suitable security information can be received using one or more user input device(s) 104. In some embodiments, receiving security information can be omitted from process 300.
Next, at 320, process 300 can scan a user's key. Any suitable approach to scanning a key can be used in some embodiments. For example, a key can be scanned as described below in connection with
Finally, at 322, the information received at 316, 318, and/or 320 can be stored. This information can be stored in any suitable manner and at any suitable location. For example, in some embodiments, this information can be stored in storage 108. As another example, in some embodiments, this information can be transmitted via communication network interface 112 to a remote storage device. As yet another example, in some embodiments, some information can be stored locally and some information can be stored remotely. In some embodiments, any suitable security procedures can be performed in connection with storing the information. For example, in some embodiments, the information can be encrypted prior to being stored. The information stored at 322 can then later be accessible by the same hardware and/or any other suitable hardware. For example, if a first kiosk is used to save a key template, a second kiosk can be configured to recreate a key from that template in some embodiments. Such a second kiosk can be nearby or remote from the first kiosk.
In some embodiments, a user can have the option to save key information after immediately creating a duplicate key. In such a case, if a user elects to save the key information, similarly to what is described above in connection with 316, 318, and 322, the user can be prompted to enter user information and/or security information and that information, along with the bitting pattern and key blank type information, can be stored. If a user does not choose to save key information after immediate duplication, or if the option to do so is not presented to the user, the key information can be deleted to protect the security of the user.
In some embodiments, information on a key type and bitting information of a key provided by the user can be sent to the user in addition to, or instead of, being stored in storage device 108. For example, the information can be sent to the user by e-mail, text message, mail, or any other suitable manner of sending the information. This can allow for a user to have access to the information on the type of key and bitting information without relying on storage 108. In a case where the information is not stored in storage 108, this can allow a user that is especially concerned with privacy to know that information required to create a replica of the key is not stored with personal information of the user.
In some embodiments, when a key is scanned at 320, an anonymous entry can be created corresponding to the key and the entry can be assigned an index number. The index number, bitting information, key type information, and/or information entered by a user (e.g., a password, a pin number, etc.) can be used to create a unique number that corresponds to the key. The user can then use the unique number to obtain a replica of the key, or give the unique number to another user so that the second user can obtain a replica of the key. This can allow for a user that is especially concerned with privacy to know that information required to create a replica of the key is not stored with personal information of the user, because the entry corresponding to the key is anonymous.
In some embodiments, a user can have the option to immediately create a duplicate key after saving a key template. In such a case, if a user elects to create a duplicate key, similarly to what is described above in connection with 308, 312, and 314, the user can be prompted to enter payment information and the key can be replicated and dispensed.
If the user selects to recreate a key from a template (e.g., because the user has lost his or her key), then process 300 can branch at 306 to 324 where user and security information can be received. Any suitable user information and/or any suitable security information can be received, and this information can be received in any suitable manner, in some embodiments. For example, this information can be received to securely identify the user and/or the key. More particularly, this information can include a user name and a password, a fingerprint scan, a face image capture, a credit card swipe, a key name for a previously stored key template, any other suitable information, or any suitable combination thereof. As an even more particular example, the user can be prompted to select a key from the list of those that were previously stored. Such a list can include descriptive names entered during a key template storage process, key images, etc.
Next, at 326, payment information can be received. Any suitable mechanism for receiving payment information can be used. For example, in some embodiments, credit card information can be entered via user input device(s) 104. As another example, in some embodiments, an electronic device (such as a mobile phone) can be brought into proximity or tapped against a user input device 104. As yet another example, payment information can be received as an electronic message received via communication network interface 112.
Then, at 328, process 300 can replicate the desired key. This replication can be performed in any suitable manner. For example, in some embodiments, they key can be replicated by the hardware processor 110: (a) controlling the key movement mechanism 114 to retrieve an appropriate key blank from a key repository and move the key to the key cutting and cleaning mechanism 116; and (b) controlling the key cutting and cleaning mechanism 116 to cut the key according to the stored bitting pattern and then clean the key to remove burrs, etc.
In some embodiments, the bitting pattern from the originally scanned key can be compared to a database of known bitting specifications for keys and locks. From this comparison, an inference can be made as to the factory specifications of the bitting of the to-be-copied key. When a duplicate is created, it can be cut to these factory specifications instead of merely replicating the original key's bitting profile. This allows for correction of flaws in the original key resulting from wear-and-tear, previous duplications, or other causes. An example of this is shown in
In addition to correcting for imperfections in a key's bitting depths during a duplication, other imperfections in a previous key can also be corrected. For example, the bitting platform length, the platform spacing, the platform offset, localized deformations, and/or bitting angles can be corrected in some embodiments. In some embodiments keys at custom, non-factory specifications can additionally be produced.
Finally, at 330, the process can cause the key to be dispensed to a user. For example, the hardware processor can control the key cutting and cleaning mechanism 116 to drop the key in the key dispensing chute.
In some embodiments, a subset of what is shown in process 300 can be used. For example, when hardware 100 is implemented as a scan-only kiosk, only steps 316, 318, 320, and 322 can be performed by a corresponding process.
It should be understood that some of the above steps of the flow diagram of
Referring to
As shown in
As shown in
Once in the slot, one or more imaging devices 406 and 408 can be used to optically detect a bitting pattern and a key blank type of the key in some embodiments. For example, as shown in
In order to do so, in some embodiments, a thresholding algorithm, such as Otsu's Method (described, for example, in N. Otsu, “A thresholding selection method from gray level histogram”, IEEE Trans. on Systems, Man and Cybernetics, 9 (1), 62-66, January 1979, which is hereby incorporated by reference herein in its entirety), can first be used to pre-process the images and remove any spectral noise data. Then, once pre-processing of both images has been accomplished, a corner detection algorithm, such as Harris' Method (described, for example, in C. Harris and M. J. Stephens. “A combined corner and edge detector”, Alvey Vision Conference, pages 147-152, 1988, which is hereby incorporated by reference herein in its entirety), can be used to detect reference points 504 and 604 in images 502 and 602, respectively.
As shown in
As shown in
Machine learning algorithms can also be employed to improve the accuracy and capabilities of the machine vision software.
In some embodiments, a laser-based mechanism, for detecting a milling type and a bitting pattern of a key can be used. Such a laser-based mechanism can be used to scan a key and detect the outline of the key from each of the perspectives illustrated in
As described above, additionally or alternatively to detecting the bitting pattern and the blank type optically, a mechanical mechanism can be used to detect one or more of these features of a key. For example, as shown in
In some embodiments, rather than detecting key blank type (or milling type) as described above, a dedicated key slot for each key type available can be used. In such a case, upon entering a key into a key slot, the key blank type can be determined simply from the fact that the key fits into the slot.
In some embodiments, a tray can be provided where a user can place a key to be scanned. Such a tray can be provided in lieu of or in addition to slot 404. Such a tray can allow for irregularly shaped keys (e.g., tubular keys, four sided keys, Zeiss keys, skeleton keys, etc.) that may not fit into slot 404 to be scanned by the kiosk using any suitable technique, such as the techniques described herein.
In some embodiments, a key to be replicated can be held in front of a particular location on a kiosk where the key can be scanned. This can allow for irregularly shaped keys (e.g., tubular keys, four sided keys, Zeiss keys, skeleton keys, etc.) that may not fit into slot 404 to be scanned by the kiosk using any suitable technique, such as the techniques described herein.
In some embodiments, any other suitable mechanisms for detecting bitting patterns and/or key blank type can be used in some embodiments. For example, in some embodiments, key bitting can be detected by: many small mechanical pins which are pushed by key bitting and the pin positions get detected by suitable electromechanical sensors; one or more LED and/or photodiode arrays which detect obstruction created by the key bitting; micro air flow detectors which detect obstructions caused by bitting; heat sensors which detect obstructions caused by bitting; ultrasonic distance sensors; etc.
In some embodiments, in addition to a key being scanned using one or more key detector(s) 106 as described above, a key can be scanned using any other suitable device(s). For example, in some embodiments, a key can be scanned using any optical detector, scanner, camera, mobile phone, smartphone, tablet computer, etc. In such embodiments, for example, a user can be able to photograph a key and supply one or more corresponding images to hardware processor 110 (or any other suitable hardware processor) so that the hardware processor can process the image(s) to detect the key's bitting pattern and/or key blank type. In some embodiments, the image(s) can contain reference objects, such as a quarter, in order to determine the size of the key.
In some embodiments, users can scan a key on their smartphone or tablet computer. Furthermore, in some embodiments, an application can be downloaded to assist users in capturing quality images of their key. From a mobile application or website platform, users can also request a duplicate of their scanned key be sent via mail to an address of their choosing, in some embodiments.
In some embodiments, a user can also authorize others to access their key information using the mobile application or website platform. Authorized recipients can use the digital key information to request a physical copy via mail order, create a physical copy at a kiosk, or make a physical copy with any suitable key duplication hardware. For example, in some embodiments, when a user is locked out, that person can retrieve his/her key type and bitting code information from the mobile application or website platform, enabling any operator of a suitable key duplication machine to create a copy without the physical presence of the original.
In some embodiments, a user can retrieve his/her key type and bitting code information from the mobile application or website platform, and order a duplicate key to be delivered to the user based on location information provided to the mobile application or website platform. For example, the location information can be provided using a mobile phone equipped with a Global Positioning System (GPS) receiver. As another example, a user can specify coordinates where the duplicate key is to be delivered. As yet another example, a user can specify an address where the duplicate key is to be delivered. The order for the duplicate key ordered by the user can be received by a key duplicating service. The key duplicating service can then use the key type and bitting information to create a duplicate key and can deliver the duplicate key to the user at the specified location. Additionally, the user can use the application or web site platform to pay for the duplication and delivery of the duplicate key to their location.
In accordance with various embodiments, mechanisms (which can include systems and methods) for duplicating transponder keys and managing key information thereof are provided.
In some embodiments, the mechanisms for duplicating transponder keys and managing key information thereof can determine that information for a transponder key (such as a key for an automobile) is to be scanned. For example, a user can indicate, through an input device of a kiosk, that the user wishes to scan a transponder key. In some embodiments, the mechanisms described herein for duplicating transponder keys and managing key information thereof can receive information related to the transponder key, which can be used to determine likely properties of a signal that is emitted by the transponder key and/or a signal to be used to initiate the emission of such a signal from the transponder key. For example, the mechanisms for duplicating transponder keys and managing key information thereof can receive the make, model and year of an automobile corresponding to the transponder key (e.g., an automobile that can be used by possessing and using the transponder key). In some embodiments, the mechanisms described herein for duplicating transponder keys and managing key information thereof can detect a signal emitted by the transponder key (which may or may not be a response to a signal emitted by the mechanisms described herein). This signal can be used by the mechanisms described herein for duplicating transponder keys and managing key information thereof to determine a transponder chip and/or programming for a transponder chip to be used in creating a duplicate key. For example, in the case of an automobile key using a passive transponder chip, the mechanisms described herein for duplicating transponder keys and managing key information thereof can cause a signal to be emitted that, in turn, causes the passive transponder chip of the automobile key to emit a responsive signal that is required by the automobile in order to allow the automobile to be started and/or turned on. This responsive signal can be used to identify the properties and/or programming of a transponder chip to be used to create a duplicate of the automobile key. In some embodiments, the mechanisms described herein can receive an instruction from a user to create a duplicate and deliver that duplicate to the user at a location specified by the user.
In some embodiments, transponder antenna 1302 can be any suitable antenna or antennas for sending and/or receiving signals to and/or from a transponder chip (e.g., transponder chip 1306). For example, transponder antenna 1302 can include a loop antenna that operates in the range of 100-150 kilohertz (kHz). In a more particular example, for certain types of transponder keys (such as automobile transponder keys associated with certain manufacturers) transponder antenna 1302 can emit and receive signals at 125 kHz, and for other types of transponder keys (such as automobile transponder keys associated with other manufacturers) transponder antenna 1302 can emit and receive signals at 134.2 kHz. In some embodiments, transponder antenna 1302 can include one or more antennas suitable for emitting and/or receiving signals at frequencies at which transponder keys to be duplicated operate.
In some embodiments, transponder key 1304 can be any suitable key for accessing or using any suitable property and/or for operating any suitable locking mechanism or mechanisms. For example, transponder key 1304 can be a key for an automobile, such as a car. In some embodiments, transponder key 1304 can include bitting information on a key shaft (e.g., can include a geometric information). As another example, bitting information can be omitted from transponder key 1304 such that a signal from a transponder (e.g., transponder chip 1306) of transponder key 1304 is sufficient to operate a lock/ignition to which transponder key 1304 corresponds.
Transponder chip 1306 can be any suitable transponder hardware, firmware and/or software for causing a signal to be transmitted to a transponder antenna associated with a lock and/or an ignition (or any other suitable transponder antenna). Although the signal emitted by the transponder key is described as being emitted by a transponder chip, this is merely used for convenience of explanation and is not intended to limit the hardware, firmware and/or software used to emit such as signal to only those devices that can be described as chips. In some embodiments, transponder chip 1306 can be a passive device that does not require connection to a power source, such as a battery. For example, transponder chip 1306 can be an inductively coupled transponder, which can emit a signal in response to a received signal having proper characteristics (e.g., a proper frequency, amplitude, etc.). In some embodiments, such passive transponder chips can have a limited range (e.g., a range at which a signal transmitted by the transponder can be received at an adequate power) on the order of two to fifteen centimeters due to the lack of a power source other than the received signal. Alternatively, transponder chip 1306 can be an active device that uses a connected power source, such as a battery, when generating a signal. Such an active transponder key and/or transponder chip can, in some embodiments, transmit a signal that can be received at a longer range than a passive transponder chip. In some embodiments, transponder chip 1306 can store a code that is included in the signal emitted by transponder chip 1306. Such a code, emitted by the transponder chip, can be encrypted in storage and/or can be encrypted prior to emission by the transponder chip. In some embodiments, transponder chip 1306 can be coupled to an antenna disposed within transponder key 1304 for receiving power and/or signals from an external source and/or for emitting a signal. Such a code can be stored by transponder chip using any suitable technique or combination of techniques.
As described below in connection with
In some embodiments, kiosk 200 can cause information received by transponder antenna 1302 to be transmitted to a server 1310 over a communication link 1308 and/or a communication network, as described below in connection with
Additionally or alternatively, database 1316 can store information that can be used in identifying a proper transponder chip and/or proper programming for creating a duplicate of transponder key 1304. In some embodiments, a database for storing key information can be different than a database for storing information for identifying a transponder chip and/or proper programming to be used for creating a duplicate of a transponder key.
In some embodiments, server 1310 can execute a key ordering/duplicating application 1314 which can use the key information received from kiosk 200 and/or retrieved from database 1316 to create and/or order a duplicate of a particular transponder key (e.g., transponder key 1304). Key ordering/duplicating application 1314 can cause one or more devices to perform any suitable actions. For example, key ordering/duplicating application 1314 can cause a key blank to be selected and/or retrieved based on the key information about the key to be duplicated. As another example, key ordering/duplicating application 1314 can cause a key blank to be cut based on geometric information included in the key information. As yet another example, key ordering/duplicating application 1314 can cause a transponder chip to be selected and/or programmed based on the information determined, for example, by transponder identification application 1312. As still another example, key ordering/duplicating application 1314 can cause information required to create a duplicate of a transponder key to be transmitted to a remote location for creation of the duplicate transponder key.
In some embodiments, transponder antenna 1302 can be arranged at any suitable location, and can have any suitable size and/or shape. For example, in some embodiments, transponder antenna 1302 can be arranged as a raised or flush reader to which a user is directed to hold up a transponder key. In such an example, transponder antenna 1302 can be arranged in a different portion than slot 1404 (and/or slot 404).
System 1600 can include one or more servers 1310. Server 1310, as described above in connection with
In some embodiments, each of kiosks 200, server 1310, and mobile devices 1602 can include any of a general purpose device such as a computer or a special purpose device such as a client, a server, etc. Any of these general or special purpose devices can include any suitable components such as a hardware processor (which can be a microprocessor, digital signal processor, a controller, etc.), memory, communication interfaces, display controllers, input devices, etc. For example, kiosk 200 can implemented as a device including any suitable components, such as those described above in connection with
Communications network 1606 can be any suitable computer network or combination of such networks including the Internet, an intranet, a wide-area network (WAN), a local-area network (LAN), a wireless network, a Wi-Fi network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), an intranet, etc. Each of communications links 1604, 1608 and 1610 can be any communications links suitable for communicating data among kiosks 200, server 1310 and/or mobile devices 1602, such as network links, dial-up links, wireless links, hard-wired links, any other suitable communications links, or any suitable combination of such links. Note that, in some embodiments, multiple servers 1310 can be used to provide access to different mechanisms associated with the mechanisms described herein for duplicating keys and/or duplicating transponder keys and managing the key information thereof. For example, system 1600 can include: a transponder key information server 1310 that facilitates identification of a proper transponder chip and/or transponder chip programming for a particular transponder key using the mechanisms described herein; a key ordering server 1310 that causes a key and/or transponder key to be ordered based on received and/or stored information about such a key and/or transponder key; a management server 1310 that coordinates operations of various kiosks 200 and/or other servers; and/or any other suitable servers for performing any suitable functions of the mechanisms described herein.
Hardware processor 1702 can use the computer program to execute the mechanisms described herein for duplicating keys and/or duplicating transponder keys and managing the key information thereof (e.g., as described above in connection with
Server 1310 can include a hardware processor 1722, a display 1724, an input device 1726, and memory 1728, which can be interconnected. In some embodiments, memory 1728 can include a storage device for storing data received through communications link 1604 or through other links. The storage device can further include a server program for controlling hardware processor 1722. In some embodiments, memory 1728 can include information stored as a result of user activity (e.g., requests to store key information, requests to store user information, a request to create a duplicate key, etc.), and hardware processor 1722 can receive requests to store key information from kiosk 200 and/or mobile devices 1602 and cause such key information to be stored and/or cause a duplicate key to be created (e.g., as described above in connection with
Hardware processor 1722 can use the server program to communicate with kiosks 200 and/or mobile devices 1602 as well as provide access to and/or copies of the mechanisms described herein for duplicating keys (e.g., as described above in connection with
In some embodiments, server 1310 can be implemented in one server or can be distributed as any suitable number of servers. For example, multiple servers 1310 can be implemented in various locations to increase reliability and/or increase the speed at which the server can communicate with kiosks 200 and/or mobile devices 1602. Additionally or alternatively, as described above in connection with
At 1804, process 1800 can receive information related to the transponder key for which key information is to be detected. Process 1800 can use any suitable technique or combination of techniques to receive information related to the transponder key. For example, process 1800 can prompt a user to provide information (e.g., using input device 104) related to the transponder key, such as what the key is for (e.g., an automobile), manufacturer information (e.g., the manufacturer of a lock for which the key is used and/or a manufacturer of property for which the key is used), and/or any other suitable information related to the transponder key. In a more particular example, in the case of an automobile transponder key, the user can be prompted to provide information about the make (i.e., manufacturer/brand), model, and year of the automobile. In another more particular example, in the case of an automobile transponder key, the user can be prompted to provide a vehicle identification number (VIN) associated with the automobile to which the transponder key corresponds.
As another example, in some embodiments, process 1800 can prompt a user to present the transponder key for which information is to be detected to a camera. Process 1800 can use the output of the camera to determine at least a portion of information about the transponder key based on image data of one or more images of the transponder key. Such image data can include a shape of the key head, one or more logos associated with the transponder key, a shape and/or position of the shaft of the transponder key (if the transponder key includes a shaft), a bitting pattern of the transponder key (if the transponder key includes a bitting pattern), an overall shape of the transponder key, textual information associated with the transponder key and/or any other suitable information.
As yet another example, in some embodiments, process 1800 can prompt a user to present a registration document, title document and/or any other suitable document associated with an automobile to which the transponder key corresponds. Process 1800 can use textual information associated with such a document as received information related to the transponder key.
At 1806, process 1800 can detect a signal from the transponder key based on information related to the transponder key. In some embodiments, process 1800 can use the information related to the transponder key received at 1804 to determine an appropriate signal to emit to the transponder key to cause a responsive signal to be emitted by the transponder key and/or can determine likely properties of a signal emitted by the transponder key such that the transponder antenna can be tuned to an appropriate frequency (and/or any other suitable properties of the transponder antenna can be adjusted) to receive such a signal.
In some embodiments, process 1800 can submit a query to a database to determine an appropriate signal to send to the transponder key and/or properties of the signal emitted by the transponder key. Such a database can be organized using any suitable technique or combination of techniques. Process 1800 can, for example, provide the model, make and year of an automobile to which the transponder key corresponds, and information about an appropriate signal to emit to the transponder key and/or properties of the signal emitted by the transponder key can be provided from the database. In some embodiments, as described above in connection with
In some embodiments, process 1800 can cause a transponder antenna (e.g., transponder antenna 1302) to emit a signal based on the information related to the transponder key received at 1804. For example, such a signal can be a signal having properties retrieved from the database in response to a query based on information provided by the user.
In some embodiments, process 1800 can receive a signal from a transponder chip of the transponder key. Such a signal can be a response to a properly formatted signal emitted by transponder antenna 1302 and/or can be emitted by the transponder chip regardless of whether a properly formatted signal was emitted by transponder antenna 1302.
In some embodiments, prior to detecting a signal emitted by the transponder key, process 1800 can use any suitable sensor or sensors to determine that the transponder chip is within a threshold distance of the transponder antenna. For example, based on the information related to the transponder key, process 1800 can determine a maximum distance at which the transponder key can be disposed from the transponder antenna, and process 1800 can confirm that the transponder chip is less than the maximum distance from the transponder antenna. In a more particular example, based on the make, model and year of an automobile to which the transponder key corresponds, process 1800 can determine a maximum distance at a signal emitted by the transponder chip of the transponder key can be read. Process 1800 can then use a sensor (e.g., such as detectors 106) and information known about the geometry of the transponder key and the location of the transponder chip relative to a reference point that has a known position to determine whether the transponder chip is within the maximum range.
In some cases, certain transponder keys require reception of a signal that includes particular information before the transponder key emits a responsive signal. For example, certain active automobile transponder keys require reception of a signal including a particular code that is emitted by the automobile corresponding to the transponder key before emitting a responsive signal. Such a signal is often designed to be difficult to replicate as an additional safety measure to prevent illicit duplication of the transponder key from a distance as active transponder keys often have greater range than passive transponder keys and often work without a physical portion of the key, which could leave such keys vulnerable to illicit copying by a person that does not have physical access to the key. In such cases, process 1800 can, in some embodiments, determine whether the transponder key requires a signal from a corresponding device (e.g., the automobile) to emit the signal based on the received information related to the transponder key (e.g., a make, model and year of the automobile to which the transponder key corresponds). In some cases, further information, such as a trim level of an automobile may be required to determine whether the transponder key requires reception of a particular signal that cannot be readily replicated by kiosk 200 (or any other suitable device executing process 1800). For example, in some cases a less expensive trim level can use a passive transponder key, while a more expensive trim level may use an active transponder key.
In some embodiments, where the transponder key to be duplicated requires reception of a signal that includes particular information prior to emitting a responsive signal, process 1800 can instruct the user to carry a portable scanning device (e.g., including a power source, a transponder antenna, a hardware processor, one or more input mechanisms, etc.) associated with a computing device executing process 1800 (e.g., kiosk 200) to the device that emits the signal that includes the particular information (e.g., the automobile corresponding to the transponder key). In some embodiments, the portable scanning device can capture one or more signals emitted by the transponder key responsive to a signal emitted by, for example, the automobile. In some embodiments, the portable scanning device can include an input device (e.g., a button), and process 1800 can instruct a user to operate the input device (e.g., by pressing the button) when the user has brought the transponder key into the automobile and/or performed any other suitable actions (such as operating an ignition of the automobile). Process 1800 can present the user with any other suitable instructions for using the portable scanning device to capture one or more signals emitted by the transponder key. In some embodiments, the portable scanning device can communicate the one or more signals emitted by the transponder key and/or any suitable information encoded in the one or more signals emitted by the transponder key to the computing device executing process 1800 as data emitted by the transponder key.
At 1808, process 1800 can cause data based on a signal detected at 1806 to be used to identify a proper transponder chip and/or proper programming for a transponder chip to be used in creating a duplicate transponder key. In some embodiments, the data can include information encoded in the signal, such as a code which may or may not be encrypted. Any suitable technique or techniques can be used to identify the proper transponder chip and/or proper programming for a transponder chip. For example, process 1800 can use information encoded in the signal received from the transponder key to determine a proper transponder chip and/or proper programming for a transponder chip. In a more particular example, information encoded in the signal received from the transponder key can be used to identify properties of a transponder chip to be used in duplicating the transponder key.
In some embodiments, process 1800 can determine at least a portion of properties for a transponder chip to be used to duplicate the transponder key based on the information related to the transponder key received at 1804. For example, a particular transponder chip to be used to duplicate the transponder key and/or particular programming of a transponder chip to be used to duplicate the transponder key can be determined based on the make, model and year of an automobile to which the transponder key corresponds. In some cases, further information, such as a trim level may be required to determine a particular transponder chip to be used and/or particular programming of a transponder chip to be used. For example, in some cases a less expensive trim level can use a passive transponder key, while a more expensive trim level may use an active transponder key.
In some embodiments, process 1800 can cause information received in the signal emitted by the transponder key to be sent to a server (e.g., server 1310). In some embodiments, server 1310 can use the information related to the transponder key to determine whether the information received from the transponder key is encrypted and/or can decrypt the information received from the transponder key.
At 1810, process 1800 can cause key information that can be used to duplicate the transponder key to be stored and/or used to create a duplicate of the transponder key. For example, process 1800 can cause geometric information about a shaft portion of the transponder key (if such a shaft portion exists) and the properties of a transponder chip to be used to duplicate the signal emitted by the transponder chip of the transponder key to be sent to a server (e.g., server 1310). As described above in connection with
In some embodiments, process 1800 can operate in conjunction with process 300 described above in connection with
In some embodiments, server 1310 can receive a request from a kiosk (e.g., kiosk 200) and/or any other suitable computing device (e.g., a smartphone, a personal computer, etc.) to create a duplicate of a particular transponder key. As described above in connection with
In some embodiments, at least a portion of process 1800 can be executed by any device that includes suitable hardware for detecting one or more signals from the transponder key. For example, a smartphone or tablet computer can include an antenna, such as transponder antenna 1302 (and/or any other suitable antenna) and any associated hardware that can be used for detecting one or more signals from the transponder key (e.g., as described above in connection with 1806). As another example, a smartphone or tablet computer can communicate with separate hardware (e.g., a dongle, a handheld device, etc.) that includes an antenna and/or any associated hardware that can be used for detecting one or more signals from the transponder key. Such hardware can communicate with the smartphone or tablet using any suitable communication protocol, such as wired communication through a headphone jack connection to the smartphone or tablet, wired communication through a USB connection to the smartphone or tablet, wired communication using a proprietary connector (e.g., an APPLE LIGHTING connector) to connect to the smartphone or tablet, wireless communication through a BLUETOOTH connection, and/or through any other suitable connection. Note that smartphones and tablet computers are merely used as examples, and any suitable computing device having appropriate hardware (and/or coupled to appropriate hardware) for detecting a signal from the transponder key can be used to execute at least a portion of process 1800. In such examples, at least a portion process 1800 can be executed by an application executed by the device and/or can be executed using a web browser that accesses a web page that causes the device to execute at least a portion of process 1800.
In some embodiments, the mechanisms described herein can use a vacuum cleaner, compressed air and/or any other suitable technique or combination of techniques to clear and/or collect debris that may accumulate in an area used for determining key information. For example, in some embodiments, a kiosk can include a vacuum cleaner that can be used when cutting a duplicate key to reduce the amount of debris that collects within the kiosk. In such an example, the vacuum cleaner can also be used to clean debris from an imaging area of the kiosk that may have been introduced in connection with users inserting keys into a key slot of the kiosk.
In some embodiments, kiosk 1902 can include a cleaning mechanism 1910. In some embodiments, cleaning mechanism 1910 can include any suitable hardware that can be used to clear debris from a CNC table 1916 (e.g., implemented as part of key cutting and cleaning mechanism 116) and/or key scanning housing 1908. For example, cleaning mechanism 1910 can be a vacuum cleaner that is connected, via hose 1912 and/or hose 1914 to CNC table 1916 and key scanning housing 1908. Additionally or alternatively, in some embodiments, separate vacuum cleaners can be provided for cleaning key scanning housing 1908 and CNC table 1916. In some embodiments, kiosk 1902 can include a carousel 1918 that can implemented using any suitable technique or combination of techniques (e.g., as described above in connection with
As shown in
At 2004, process 2000 can determine whether the user has selected to create a duplicate key (e.g., in connection with the scanning of the key, from stored key information, etc.). In some embodiments, process 2000 can determine whether the user has selected to create a duplicate key using any suitable technique or combination of techniques, such as based on user input received as part of process 300 described above in connection with
If process 2000 determines that a key is not to be duplicated (“NO” at 2004), process 2000 can cause vacuum 1910 to run to clean key scanning housing 1908 during and/or after the user inserts a key to be scanned.
On the other hand, if process 2000 determines that a key is to be duplicated (“YES” at 2004), process 2000 can cause vacuum cleaner 1910 to run during key duplication to clean debris produced during key duplication and debris introduced into key scanning housing 1908 by the user inserting a key.
Additionally or alternatively, in some embodiments, vacuum cleaner 1910 can be run every time a key is inserted into key slot 1904, periodically (e.g., once an hour, once per day, etc.) to clean key scanning housing 1908, only when a key is duplicated, and/or at any other suitable time.
In some embodiments, kiosk 1902 can include a compressor (not shown) in addition to, or in lieu of, vacuum cleaner 1910, which can be used in combination with a nozzle to keep certain areas clear of debris. For example, lint, dirt and/or other debris may become lodged in certain areas of key scanning housing 1908 that may inhibit collection by vacuum cleaner 1910, which may be dislodged using compressed air. In some embodiments, vacuum cleaner 1910 can be a combination vacuum cleaner and air compressor, and can be used to dislodge and/or collect debris from parts of kiosk 1902 automatically without user intervention.
At 2010, in some embodiments, process 2000 can cause a key scanning device (e.g., imaging devices 406 and/or 408, a laser-based key scanning mechanism, etc.) to capture one or more images and/or scans when a key is not inserted in key slot 1904 to scan for debris that may cause errors in scanning keys inserted in key slot 1904. For example, process 2000 can cause one or more images to be captured to be compared with one or more reference images.
At 2012, process 2000 can determine whether debris is detected in key scanning housing 1908 based on a comparison of the image or images (and/or other scanned information) captured at 2010 with one or more reference images (e.g., images and/or scans of key scanning housing 1908 that are free of debris). If process 2000 determines that debris was not detected (“NO” at 2012), process 2000 can return to 2002 to wait for a key to be inserted and/or can return to 2010 to periodically scan for debris.
Otherwise, if process 2000 determines that debris is detected at 2012, process 2000 can proceed to 2014. At 2014, process 2000 can run vacuum cleaner 1910 to attempt to dislodge and capture the debris (and optionally use compressed air to attempt to dislodge the debris). Additionally, in some embodiments, at 2014 process 2000 can cause one or more new images to be captured to be used to determine whether the debris detected at 2012 has been removed, has changed position, or has not moved.
At 2016, process 2000 can determine whether the debris detected at 2012 has been removed based on the one or more images captured after running vacuum cleaner 1910 at 2014. For example, process 2000 can compare the one or more images and/or scans captured after running the vacuum cleaner to the images and/or scans captured before running the vacuum cleaner and/or to the reference images and/or scans to determine whether the debris has been removed, has moved to a different position or has remained in place.
If process 2000 determines that the debris detected at 2012 has been removed and/or that no debris is present (“YES” at 2016), process 2000 can return to 2002 to wait for a key to be inserted and/or can return to 2010 to periodically scan for debris. Otherwise, if process 2000 determines that the debris has not been removed and/or that debris is still present, process 2000 can proceed to 2018.
At 2018, process 2000 can send a message to a central server (e.g., server 1310) that indicates the presence of debris in key scanning housing 1908, which may cause errors in capturing key information. Additionally, in some embodiments, process 2000 can cause kiosk 1902 to be taken offline, or otherwise inhibit capturing new key information until maintenance is performed to remove the debris. In some embodiments, one or more of the images captured at 2010 and/or 2014 can be sent to the central server in connection with the message indicating the presence of the debris.
In some embodiments, the mechanisms described herein can include server-side software, client-side software, server-side hardware, client-side hardware, client-side firmware, server-side firmware, or any suitable combination thereof. For example, these mechanisms can encompass one or more web pages or web page portions (e.g., via any suitable encoding, such as Hyper Text Markup Language (“HTML”), Dynamic Hyper Text Markup Language (“DHTML”), Extensible Markup Language (“XML”), JavaServer Pages (“JSP”), Active Server Pages (“ASP”), Cold Fusion, or any other suitable approaches). As another example, these mechanisms can encompass a computer program that causes a processor (such as hardware processor 110, hardware processor 1702 and/or hardware processor 1722) to execute the mechanisms described herein. For instance, these mechanisms can encompass a computer program (such as a mobile application, a computer application and/or a server application) written in a programming language recognizable by kiosk 200, mobile device 1602, and/or server 1310 that is executing the mechanisms (e.g., a program written in a programming language, such as, Java, C, Objective-C, C++, C#, JavaScript, Visual Basic, HTML, XML, ColdFusion, any other suitable approaches, or any suitable combination thereof).
In some embodiments, any suitable computer readable media can be used for storing instructions for performing the processes described herein. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact discs, digital video discs, BLU-RAY discs, etc.), semiconductor media (such as flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.
Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed embodiments can be combined and rearranged in various ways.