Space is often a concern in urban areas. High population density often means traffic congestion and limited or expensive parking options. Further, parking revenue is limited by the capacity of the parking lot. Larger lots have to opportunity to receive more revenue simply because larger lots have a larger capacity than smaller lots.
One way to increase parking capacity without changing the footprint of a parking lot is by vertically angling the vehicles. Vertically angling the vehicles includes lifting the front or rear end of the vehicle off the ground. Doing so reduces the amount of space each vehicle takes up.
One way to vertically angle vehicles is with a parking robot having lifting rails, wheel clamps, and a lift motor. Each wheel clamp is disposed on one of the lifting rails and is moveable from a first position to a second position along the lifting rail. The lift motor is operatively connected to each of the lifting rails. The lift motor moves the wheel clamp from the first position to the second position. Thus, when the wheel clamps receive the wheels of a vehicle while the wheel clamps are in the first position (e.g., near the ground), the parking robot can move the wheel clamps up to the second position (e.g., away from the ground) to lift the front or rear of the vehicle.
The elements shown may take many different forms and include multiple and/or alternate components and facilities. The example components illustrated are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used. Further, the elements shown are not necessarily drawn to scale unless explicitly stated as such.
As illustrated in
The housing 105 may be formed from a rigid material such as plastic or metal and may structurally support other components of the parking robot 100. For instance, the housing 105 may structurally support the grip assembly 115, which in turn may support the lifting rails 110. The lift motor 125 may be located inside the housing 105, and the user interface 130 may be located on an exterior surface of the housing 105. Other components that may be located inside the housing 105 include a pneumatic pump to drive the grip assembly 115, one or more batteries to power various electronic components of the parking robot 100, a navigation system for determining the location of the parking robot 100 and planning routes to particular destinations, the processor 145, one or more controllers for controlling certain operation of the parking robot 100, etc. Moreover, the housing 105 may include a rotation mechanism 155 (e.g., a ball and socket joint and an electric drive motor) for rotating relative to the platform 135, as discussed in greater detail below.
The lifting rails 110 may be formed of a rigid, high strength material that, when used together, are strong enough to support the weight of a vehicle. While only two lifting rails 110 are shown in
Each grip assembly 115 extends from the housing 105 the one of the lifting rails 110. In one possible implementation, each grip assembly 115 may be fixed relative to the housing 105 and may releasably attach to the one of the lifting rails 110. As mentioned above, one or more grip assemblies 115 may include ratchet components (pawl, cog, or tooth, for example) that can extend between the bars 160 of the lifting rail 110 to hold the lifting rail 110 despite the lifting rail 110 at least partially supporting the weight of the vehicle. Thus, the grip assemblies 115 may bear some of the weight of the vehicle. Moreover, the grip assemblies 115 may be electrically or pneumatically operated to grip and release the lifting rails 110. The grip assemblies 115 are discussed in greater detail below with reference to
The wheel clamps 120 are disposed on the lifting rails 110 and, in some instances, may move relative to the lifting rails 110. For instance, the wheel clamps 120 may be movable from a first position (at or near the ground) to a second position (away from the ground). As shown in
The lift motor 125 may be implemented as an electric DC motor that converts electrical energy into motion, such as rotational motion. For instance, the lift motor 125 may include a shaft operatively connected to the lifting rails 110 (see
In some possible approaches, the lift motor 125 may be located outside the parking robot 100, such as in the floor. For example, the parking robot 100, as discussed in greater detail below, may set the lifting rails 110 into designated areas in the floor where the lift motor 125 may lift the wheel clamps 120 from the first position to the second position. Thus, the parking robot 100 need not wait for the vehicle to be fully angulated before leaving to retrieve the next vehicle queued for angulated parking.
The user interface 130 is implemented via circuits, chips, or other electronic components that can present information to a user and receive user inputs. For instance, the user interface 130 may include an electronic display screen. Further, the user interface 130 may include buttons for receiving user inputs. The buttons may be located near the display screen. In one possible approach, the buttons may be contextual softkeys so the user input may be based on the information presented on the display screen at the time the button is pressed. Further, in some implementations, the user interface 130 may include a touch sensitive display screen that both presents information to the user and receives user input via, e.g., virtual buttons. In some possible approaches, the user interface 130 may be equipped for wireless communication. For instance, the user interface 130 may include various chips or circuits for wirelessly communicating with a user's mobile device according to any number of wireless communication protocols. Examples of such protocols may include Bluetooth®, Bluetooth® Low Energy, WiFi, Near Field Communication (NFC), etc. The user interface 130 may pair or otherwise communicate with the user's mobile device and receive instructions sent from the user's mobile device. Such instructions may include instructions for the parking robot 100 to retrieve the vehicle from a parking area, tow the vehicle to the parking location, and park the user's vehicle at the parking location in an angulated position. Other instructions may include instructions for the parking robot 100 to retrieve the user's vehicle from the parking location and tow the vehicle to the parking area to deliver the vehicle back to its owner.
The platform 135 is formed of a rigid material, such as metal or plastic, that can support the housing 105 and possibly other components of the parking robot 100. The platform 135 may be rotatably connected to the housing 105 so that, e.g., the housing 105 can rotate relative to the platform 135. For instance, the platform 135 may define an opening for receiving the rotation mechanism 155 of the housing 105. The electric drive motor of the rotation mechanism 155 may convert electrical energy into motion to rotate the housing 105 relative to the platform 135. Further, wheels 165 may be located on the bottom of the platform 135, and the wheels 165 may be driven by the same or another drive motor as that incorporated into the rotation mechanism 155. In some instances, a pneumatic suspension may be mounted to the platform 135 to help the parking robot 100 navigate over certain types of terrain or while towing or parking a vehicle.
The autonomous driving sensors 140 are implemented via circuits, chips, or other electronic components that can help autonomously navigate the parking robot 100. Examples of autonomous driving sensors 140 include one or more lidar sensors, radar sensors, vision sensors (e.g., cameras), ultrasonic sensors, or the like. The sensors may sense the environment around the parking robot 100 and output signals representing the sensed environment to the processor 145.
The processor 145 is implemented via circuits, chips, or other electronic components programmed to carry out certain operations of the parking robot 100. The processor 145 may be programmed to receive various user inputs, such as user inputs provided via the user interface 130, commanding the parking robot 100 to, e.g., park a particular vehicle, retrieve a particular vehicle, etc. The processor 145 may be further programmed to receive signals output by the navigation system representing the present location of the parking robot 100, a destination of the parking robot 100, a route from the present location to the destination, etc. The processor 145 may be further programmed to receive signals output by the autonomous driving sensors 140. The processor 145 may be programmed to output command signals to various components of the parking robot 100 in accordance with the user inputs, the signals from the navigation system, the signals from the autonomous driving sensors 140, etc. For instance, the processor 145 may output command signals commanding the drive motor to turn the housing 105 relative to the platform 135, commanding the same or a different drive motor to turn the wheels 165 to move the parking robot 100 in a particular direction, command the lift motor 125 to move the wheel clamps 120 from the first position to the second position, command the lift motor 125 to move the wheel clamps 120 from the second position from the first position, command the grip assembly 115 to grip the lifting rails 110, command the grip assembly 115 to release the lifting rails 110, etc. More operations of the processor 145 are discussed below with reference to
The wheel chocks 150 may be formed of a relatively rigid material such as metal or plastic. As discussed in greater detail below with respect to
Referring now to
The clamping wall 185 is hingedly attached to the first side wall 175 and moveable from an open position to a closed position. The clamping wall 185 is disposed on both the first side wall 175 and the second side wall 180 when in the closed position. In one possible approach, the clamping wall 185 may be biased toward the open position. For instance, a spring 205 may be attached to or located inside the second side wall 180 to push the clamping wall 185 away from an edge of the second side wall 180.
The wheel clamps 120, as shown in
The endless screw 270 may be attached to the wheel clamp 120. For example, the lifting rail 110 may define a track or other opening so that part of the wheel clamp 120 can extend inside the lifting rail. The endless screw 270 may attach to the part of the wheel clamp 120 located inside the lifting rail. Further, the endless screw 270 may attach to a fixed shelf or nut 275 located inside the lifting rail. The fixed shelf 275 may define a threaded hole for receiving the endless screw 270. In some possible implementations, the fixed shelf 275 may be replaced with a threaded nut extending through the lifting rail 110 and the threads of which engaging the threads of the endless screw 270. In some possible approaches, the fixed shelf 275 or threaded nut may be located at the maximum height of the wheel clamp 120. That is, the fixed shelf 275 or threaded nut may define the location of the second position. Thus, the gear 265 may be located above the fixed shelf 275 or threaded nut so the gear 265 does not interfere with the height of the wheel clamp 120 while in the second position.
Accordingly, linear movement of the endless screw 270 up and down the lifting rail 110 may result in corresponding movement of the wheel clamp 120. As such, rotation of the gear 265 by the lift motor 125 can cause the wheel clamp 120 to move from the first position (
At decision block 905, the parking robot 100 waits for a request to park a vehicle. The request may be received via the user interface 130. For instance, the request may be received via a user input provided directly to the user interface 130 or via wireless communication with, e.g., a user's mobile device. The processor 145 may process the received user inputs to determine whether the user inputs include a request for the parking robot 100 to park the vehicle. Information included in the request may include the location of the vehicle (e.g., the parking area defined by GPS coordinates), a description of the vehicle, or the like. If the request is received, the process 900 may proceed to block 910. If no request is received, the process 900 may continue to execute block 905 until a request is received.
At block 910, the parking robot 100 is deployed to the parking area to pick up the vehicle. The parking robot 100 may navigate to the parking area according to the location defined by the parking request received at block 905. For instance, the navigation system, autonomous driving sensors 140, wheels 165, drive motor, and processor 145 may work in conjunction with one another to navigate the parking robot 100 to the designated parking area to retrieve the vehicle.
At decision block 915, the parking robot 100 determines whether it needs to take lifting rails 110 to the vehicle. For instance, the processor 145 may determine whether the grip assembly 115 is presently carrying lifting rails 110. The decision may be made via sensors monitoring the position of the articulated hand 230, the position of the piston 250, the amount of air in the cylinder 245, etc. Alternatively, the decision may be inferred from the last command the processor 145 output to the grip assembly 115. For instance, if the last command was to release compressed air into the cylinder 245, the processor 145 may determine that the grip assembly 115 is in the closed position and therefore already is carrying lifting rails 110. If the last command was to release air from the cylinder 245, the processor 145 may determine that the grip assembly 115 is in the open position and therefore not carrying lifting rails 110. If the parking robot 100 needs to pick up lifting rails 110, the process 900 may proceed to block 920. Otherwise, the process 900 may proceed to block 925.
At block 920, the parking robot 100 retrieves lifting rails 110. For instance, the processor 145 may, using signals received from the autonomous driving sensors 140, output command signals to various components of the parking robot 100, such as the navigation system, the drive motor, etc., that cause the parking robot 100 to navigate to someplace where available lifting rails 110 are stored. The processor 145 may output signals to the grip assembly 115 to grab available lifting rails 110. The process 900 may proceed to block 925 after the parking robot 100 picks up the lifting rails 110.
At block 925, the parking robot 100 finds the vehicle associated with the parking request received at block 905 and attaches the wheel clamps 120 to the front or rear wheels 230 of the vehicle 170. Attaching the wheel clamps 120 may include the processor 145 outputting commands to the lift motor 125 to move the wheel clamps 120 to the first position and outputting commands to the wall motor 215 to move the clamping wall 185 to the open position. With the wheel clamp 120 in the first position and the clamping wall 185 in the open position, and the vehicle can be manually or autonomously driven onto the wheel clamps 120. To finish attaching the wheel clamps 120, the processor 145 may output commands to the wheel motor to move the clamping wall 185 to the closed position.
At block 930, the parking robot 100 tows the vehicle to its designated parking spot (e.g., the location where the vehicle will be parked in an angular position). Towing the vehicle may include the processor 145 outputting command signals to move the wheel clamps 120 from the first position to the second position and outputting command signals to drive the wheels 165 of the parking robot 100. Instead of the second position, the processor 145 may instead output a command signal for the lift motor 125 to move the wheel clamps 120 to a towing position (e.g., between the first position and the second position). Another possible approach is to keep the wheel clamps 120 in the first position and for the parking robot 100 to lift the vehicle with its pneumatic suspension. Thus, towing the vehicle may include the processor 145 outputting control signals that cause the pneumatic suspension to at least partially lift the vehicle.
At block 935, the parking robot 100 places the vehicle into the wheel chocks 150 located at the designated parking spot. For instance, if the front wheels 230 of the vehicle 170 are in the wheel clamps 120, the parking robot 100 may position the vehicle so that the rear wheels are in the wheel chocks 150. Alternatively, if the rear wheels 230 of the vehicle 170 are in the wheel clamps 120, the parking robot 100 may position the vehicle so that the front wheels are in the wheel chocks 150. The processor 145 may output commands to the drive motor driving the wheels of the parking robot 100 to position the vehicle accordingly.
At decision block 940, the parking robot 100 determines whether the wheel chocks 150 have been applied to the wheels 230 of the vehicle 170. The processor 145 may make such a determination from sensors located in the wheel chocks 150, sensors located on the parking robot 100, a user input confirming that the wheel chocks 150 have been applied, etc. If the processor 145 determines that the wheel chocks 150 have been applied, the process 900 may proceed to block 945. Otherwise, the process 900 may return to block 935.
At block 945, the parking robot 100 places the lifting rails 110 on the ground. For instance, the parking robot 100, through the autonomous driving sensors 140, may locate particular slots in the floor for receiving the lifting rails 110, and the processor 145 may output control signals to navigate the parking robot 100 to the slots. In some instances, the slots may be located near lift motors 125 that can drive the gear 265 and endless screw 270 located in the lifting rail.
At block 950, the parking robot 100 releases the lifting rails 110 and navigates away from the lifting rails 110. Releasing the lifting rails 110 may include the processor 145 outputting signals for the grip assembly 115 to release the lifting rails 110. After the grip assembly 115 has released the rail, the parking robot 100 may move away from the lifting rail. That is, the processor 145 may output signals to the drive motor that controls the wheels 165 of the parking robot 100. Further, in some possible implementations, the parking robot 100 may wirelessly communicate with the lift motor 125. For example, the processor 145 may command the user interface 130 to wirelessly transmit signals to the lift motor 125 indicating that the lifting rails 110 have been released and instructing the lift motor 125 to begin moving the wheel clamps 120 from the first position (or the towing position) to the second position.
At block 955, the parking robot 100 waits for confirmation that the vehicle has been lifted to the angled parking position. The confirmation to the parking robot 100 may be based on signals received from sensors monitoring the lift motor 125, the position of the vehicle 170, the position of the wheel clamps 120, etc. Alternatively or in addition, the confirmation may be based on signals from sensors located on the parking robot 100 or on a user input provided to the parking robot 100 confirming that the vehicle is in the angulated parking position. The processor 145 may determine whether confirmation has been received after processing such signals.
At decision block 960, the parking robot 100 determines whether more vehicles are queued for angulated parking. For instance, the processor 145 may make this determination based on whether more parking requests (see block 905) have been received. If so, the process 900 may proceed to block 910. If not, the process 900 may proceed to block 965.
At decision block 965, the parking robot 100 determines if there is a vehicle delivery request pending for that parking robot 100. Vehicle delivery requests are discussed below with respect to block 1005. In short, if the processor 145 determines that one or move vehicle delivery requests have been received, the process 900 ends and the process 1000 begins for that parking robot 100. If there are no pending vehicle delivery requests for the parking robot 100, the process 900 may proceed to block 970.
At block 970, the parking robot 100 enters a standby mode. The standby mode may be a low power mode where certain components are turned off, at least until the parking robot 100 is ready to park a vehicle or retrieve a parked vehicle. The standby mode may be controlled in accordance with signals output by the processor 145 to, e.g., turn off certain components. The process 900 may proceed to block 960.
At decision block 1005, the parking robot 100 waits for a request to retrieve a parked vehicle. The request may be received via the user interface 130. For instance, the request may be received via a user input provided directly to the user interface 130 or via wireless communication with, e.g., a user's mobile device. The processor 145 may process the received user inputs to determine whether the user inputs include a request for the parking robot 100 to retrieve the parked vehicle. Information included in the request may include the location of the parked vehicle (e.g., the parking spot defined by GPS coordinates), a description of the vehicle 170, or the like. If the request is received, the process 1000 may proceed to block 1010. If no request is received, the process 1000 may continue to execute block 1005 until a request is received.
At block 1010, the parking robot 100 is deployed to the parking spot where the vehicle is parked. The parking robot 100 may navigate to the parking area according to the location defined by the pickup request received at block 1005. For instance, the navigation system, autonomous driving sensors 140, wheels 165, drive motor, and processor 145 may work in conjunction with one another to navigate the parking robot 100 to the designated parking spot to retrieve the parked vehicle.
At decision block 1015, the parking robot 100 determines whether it is presently carrying lifting rails 110. For instance, the processor 145 may determine whether the grip assembly 115 is presently carrying lifting rails 110. The decision may be made via sensors monitoring the position of the articulated hand 230, the position of the piston 250, the amount of air in the cylinder 245, etc. Alternatively, the decision may be inferred from the last command the processor 145 output to the grip assembly 115. For instance, if the last command was to release compressed air into the cylinder 245, the processor 145 may determine that the grip assembly 115 is in the closed position and is therefore carrying lifting rails 110. If the last command was to release air from the cylinder 245, the processor 145 may determine that the grip assembly 115 is in the open position and is therefore not carrying lifting rails 110. If the parking robot 100 is carrying lifting rails 110, the process 1000 may proceed to block 1020. Otherwise, the process 1000 may proceed to block 1025.
At block 1020, the parking robot 100 takes the lifting rails 110 to a designated storage area. For instance, the processor 145 may output signals that navigate the parking robot 100 to the designated storage area for the lifting rails 110. When the parking robot 100 has arrived at the designated storage area, the processor 145 may output signals for the grip assembly 115 to release the lifting rails 110. When the parking robot 100 is no longer carrying the lifting rails 110, the process 1010 may proceed to block 1015 to confirm that the parking robot 100 is no longer carrying lifting rails 110.
At block 1025, the parking robot 100 navigates to the parking spot where the parked vehicle is located. For instance, the processor 145 may output signals that navigate the parking robot 100 to the parking spot identified in the pickup request.
At block 1030, the parking robot 100 finds the parking spot and grips the lifting rails 110. Gripping the lifting rails 110 may include the processor 145 outputting signals to the grip assembly 115 to move to the closed position around the lifting rails 110. In some possible approaches, the processor 145 may wirelessly communicate with the lift motor 125 via the user interface 130 by, e.g., commanding the lift motor 125 to lower the wheel clamps 120 to a position between the first and second positions (e.g., the towing position).
At block 1035, the parking robot 100 tows the vehicle away from the wheel chocks 150. Towing the vehicle may include the processor 145 outputting command signals to drive the wheels 165 of the parking robot 100. In some instances, towing the vehicle may include the processor 145 outputting control signals for the lift motor 125 to move the wheel clamps 120 to a towing position (e.g., between the first position and the second position). Another possible approach is for the lift motor 125 to lower the wheel clamps 120 to the first position and for the parking robot 100 to lift the vehicle with its pneumatic suspension. Thus, towing the vehicle may include the processor 145 outputting control signals that cause the pneumatic suspension to at least partially lift the vehicle.
At decision block 1040, the parking robot 100 determines whether the wheels have been released from the wheel chocks 150. The processor 145 may make such a determination from sensors located in the wheel chocks 150, sensors located on the parking robot 100, a user input confirming that the vehicle has been removed from the wheel chocks 150, etc. If the processor 145 determines that the vehicle is clear of the wheel chocks 150, the process 1000 may proceed to block 1045. Otherwise, the process 1000 may return to block 1035.
At block 1045, the parking robot 100 tows the vehicle to a pickup area where, e.g., the owner of the vehicle 170 can enter the vehicle and drive away. Towing the vehicle to the pickup area may include the processor 145 outputting control signals that cause the parking robot 100 to navigate to the pickup area in accordance with signals received from the navigation system, the autonomous driving sensors 140, etc. When the parking robot 100 arrives at the pickup area, the processor 145 may output control signals to lower the wheel clamps 120 from the second position or towing position to the first position, to lower the vehicle by lowering the pneumatic suspension of the parking robot 100, moving the clamping wall 185 to the open position, remove the wheel clamps 120 from the wheels 230 of the vehicle 170, etc.
At block 1050, the parking robot 100 confirms delivery of the vehicle 170 at the pickup area. The processor 145 may confirm delivery according to signals output by sensors 140 located on the parking robot 100, other sensors communicating with the parking robot 100, a user input provided to the user interface 130, etc.
At decision block 1055, the parking robot 100 determines if there is a subsequent delivery request pending for that parking robot 100. If the processor 145 determines that one or move vehicle delivery requests have been received, the process 1000 proceeds to block 1010. If there are no pending vehicle delivery requests for the parking robot 100, the process 1000 may proceed to block 1060.
At decision block 1060, the parking robot 100 determines whether any vehicles are queued for angulated parking. For instance, the processor 145 may make this determination based on whether any parking requests (see block 905) have been received. If so, the process 1000 may end and the process 900 may begin. If no vehicles are queued for angled parking, the process 1000 may proceed to block 1065.
At block 1065, the parking robot 100 enters a standby mode. The standby mode may be a low power mode where certain components are turned off, at least until the parking robot 100 is ready to park a vehicle or retrieve a parked vehicle. The standby mode may be controlled in accordance with signals output by the processor 145 to, e.g., turn off certain components. The process 1000 may proceed to block 1055.
In general, the computing systems and/or devices described may employ any of a number of computer operating systems, including, but by no means limited to, versions and/or varieties of the Ford Sync® application, AppLink/Smart Device Link middleware, the Microsoft Automotive® operating system, the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation of Redwood Shores, Calif.), the AIX UNIX operating system distributed by International Business Machines of Armonk, N.Y., the Linux operating system, the Mac OSX and iOS operating systems distributed by Apple Inc. of Cupertino, Calif., the BlackBerry OS distributed by Blackberry, Ltd. of Waterloo, Canada, and the Android operating system developed by Google, Inc. and the Open Handset Alliance, or the QNX® CAR Platform for Infotainment offered by QNX Software Systems. Examples of computing devices include, without limitation, an on-board vehicle computer, a computer workstation, a server, a desktop, notebook, laptop, or handheld computer, or some other computing system and/or device.
Computing devices generally include computer-executable instructions, where the instructions may be executable by one or more computing devices such as those listed above. Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, etc. Some of these applications may be compiled and executed on a virtual machine, such as the Java Virtual Machine, the Dalvik virtual machine, or the like. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media.
A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (DRAM), which typically constitutes a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Databases, data repositories or other data stores described herein may include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and are accessed via a network in any one or more of a variety of manners. A file system may be accessible from a computer operating system, and may include files stored in various formats. An RDBMS generally employs the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures, such as the PL/SQL language mentioned above.
In some examples, system elements may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), stored on computer readable media associated therewith (e.g., disks, memories, etc.). A computer program product may comprise such instructions stored on computer readable media for carrying out the functions described herein.
With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims.
Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation.
All terms used in the claims are intended to be given their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary is made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary.
The Abstract is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2016/044982 | 8/1/2016 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/026347 | 2/8/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
3035812 | Wineteer | May 1962 | A |
3675795 | Dluhy | Jul 1972 | A |
4609179 | Chern | Sep 1986 | A |
5518220 | Bertrand et al. | May 1996 | A |
20100283016 | Drake | Nov 2010 | A1 |
20130280018 | Meirer et al. | Oct 2013 | A1 |
Number | Date | Country |
---|---|---|
102758549 | Oct 2012 | CN |
203247893 | Oct 2013 | CN |
104612437 | May 2015 | CN |
104831971 | Aug 2015 | CN |
105201250 | Dec 2015 | CN |
204876730 | Dec 2015 | CN |
205394584 | Jul 2016 | CN |
0449521 | Oct 1991 | EP |
Entry |
---|
China Notification of First Office Action dated May 27, 2020; re Appl. No. 2016800881529. |
International Search Report and Written Opinion dated Oct. 7, 2016 re PCT/US2016/044982. |
Number | Date | Country | |
---|---|---|---|
20190177138 A1 | Jun 2019 | US |