Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AN EDGE COMPUTING BASED PATH PLANNING SYSTEM FOR AGV WITH INTELLIGENT DEVIATION CORRECTION ALGORITHM
Document Type and Number:
WIPO Patent Application WO/2022/002885
Kind Code:
A1
Abstract:
The present invention provides a path planning method for an automated guided vehicle (AGV) cluster. The AGV cluster comprises a plurality of AGVs. The path planning method comprises: creating a running environment map of the AGV cluster on a server; generating a planned path according to a path planning request of each of the AGVs on the server and sending the planned path to the corresponding AGV, wherein the path planning request contains the current position and the target position of the AGV; each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position. Compared with the prior art, the present invention can balance the load between the server and AGVs, avoid a communication delay between the server and AGVs and improve the reliability of path planning for the AGV cluster by letting the server perform global path planning, letting AGVs perform a deviation correction according to the planned paths and letting AGVs have the edge computing function.

Inventors:
WANG LU (CN)
LI CHANG LONG (CN)
YU ZHI QIANG (CN)
QIU WEN QING (CN)
YANG ZHAN BIN (CN)
YU QI (CN)
Application Number:
PCT/EP2021/067760
Publication Date:
January 06, 2022
Filing Date:
June 29, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G05D1/02
Foreign References:
US20190286145A12019-09-19
US20050246078A12005-11-03
US20180111274A12018-04-26
US5488277A1996-01-30
US20120041677A12012-02-16
Attorney, Agent or Firm:
ISARPATENT - PATENT- UND RECHTSANWÄLTE BARTH CHARLES HASSA PECKMANN UND PARTNER MBB (DE)
Download PDF:
Claims:
Claims

1. A path planning method (300) for an AGV cluster, the AGV cluster comprising a plurality of AGVs, characterized in that the path planning method (300) comprises: creating a running environment map of the AGV cluster on a server (310); generating a planned path according to a path planning request of each of the AGVs on the server and sending the planned path to the corresponding AGV (320), wherein the path planning request contains the current position and the target position of the AGV; each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position (330).

2. The method as claimed in claim 1, characterized in that the path planning method (300) comprises queuing path planning requests of the plurality of AGVs and processing the path planning requests in the queue according to the first-in first- out (FIFO) principle.

3. The method as claimed in claim 1, characterized in that each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position (330) comprises: acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV, generating a path deviation according to the running environment information and the planned path, and performing a distance correction and an angle correction for the path deviation.

4. The method as claimed in claim 3, characterized in that the vehicle-mounted sensor comprises an inertia measuring unit and a light detection and ranging (LiDAR) device, and the acquisition of running environment information, sensed by the vehicle- mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the light detection and ranging (LiDAR) device.

5. The method as claimed in claim 4, characterized in that the vehicle-mounted sensor further comprises an ultrasonic sensor, and the acquisition of running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor.

6. The method as claimed in claim 1, characterized in that the path planning method (300) further comprises setting up a first proxy interface on the server, setting up a second proxy interface on the AGV, and transmitting communication data of the server and the AGV through the first proxy interface and the second proxy interface.

7. A path planning device (400) for an AGV cluster, the AGV cluster comprising a plurality of AGVs, characterized in that the path planning device (400) comprises: a creating unit (410), configured to create a running environment map of the AGV cluster on the server; a global path planning unit (420), configured to generate a planned path according to a path planning request of each of the AGVs on the server and send the planned path to the corresponding AGV, wherein the path planning request contains the current position and the target position of the AGV; a deviation correcting unit (430), each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position.

8. The device as claimed in claim 7, characterized in that the global path planning unit (420) arranges path planning requests of the plurality of AGVs in a queue and processes the path planning requests in the queue according to the first-in first- out principle.

9. The device as claimed in claim 7, characterized in that the deviation correcting unit (430) acquires running environment information, sensed by the vehicle-mounted sensor, of the AGV, generates a path deviation according to the running environment information and the planned path, and performs a distance correction and an angle correction for the path deviation.

10. The device as claimed in claim 9, characterized in that the vehicle-mounted sensor comprises an inertia measuring unit and a LiDAR device, and the deviation correcting unit (430) acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the LiDAR device.

11. The device as claimed in claim 10, characterized in that the vehicle-mounted sensor further comprises an ultrasonic sensor, and the deviation correcting unit (430) acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor.

12. The device as claimed in claim 7, characterized in that the path planning device (400) further comprises a proxy setup unit, the proxy setup unit sets up a first proxy interface on the server, sets up a second proxy interface on the AGV and performs data communications between the first proxy interface and the second proxy interface. 13. An electronic device, comprising a processor, a memory and an instruction stored in the memory, wherein the instruction implements the method as claimed in any of claims 1 to 6 when executed by the processor. 14. A computer-readable storage medium, a computer instruction being stored therein, the computer instruction implementing the method as claimed in any of claims 1 to 6 when run.

Description:
AN EDGE COMPUTING BASED PATH PLANNING SYSTEM FOR AGV WITH

INTELLIGENT DEVIATION CORRECTION ALGORITHM

Technical Field

The present invention relates to the field of the Internet of Things, in particular to a path planning method and device for an AGV cluster.

Background Art

An AGV is a transport vehicle equipped with an automated guided device so as to be able to run along a planned guided path and having the safety protection function and various load-moving functions.

Two major path planning methods for AGVs are available in the prior art.

One major path planning method is that AGVs are separated from a server and AGVs perform path planning and self control independently. However, if AGVs perform path planning and self control independently, cluster management is impossible for a cluster comprising a plurality of AGVs, resulting in a risk of path conflicts between the plurality of AGVs and requiring the AGVs to be of a high hardware computing capability.

The other major path planning method is that a server takes over path planning and control of AGVs. This method can reduce or eliminate the risk of path conflicts between the plurality of AGVs. However, if the server performs a large amount of computations, the server will be overloaded. In addition, a delay exists in data transmission between the server and the plurality of AGVs, resulting in path conflicts between the plurality of AGVs.

Summary of the Invention

To solve the above-mentioned technical problem, the present invention provides a path planning method and device to balance the load between the server and AGVs, avoid a communication delay between the server and AGVs and improve the reliability of path planning for an AGV cluster.

To achieve the above-mentioned object, the present invention provides a path planning method for an AGV cluster. The AGV cluster comprises a plurality of AGVs. The path planning method comprises: creating a running environment map of the AGV cluster on a server; generating a planned path according to a path planning request of each of the AGVs on the server and sending the planned path to the corresponding AGV, wherein the path planning request contains the current position and the target position of the AGV; each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position To this end, let the server perform global path planning, let AGVs perform a deviation correction according to the planned paths and let AGVs have the edge computing function so that the present invention can balance the load between the server and AGVs, avoid a communication delay between the server and AGVs and improve the reliability of path planning for the AGV cluster. In one embodiment of the present invention, the path planning method comprises queuing path planning requests of the plurality of AGVs and processing the path planning requests in the queue according to the first-in first-out principle. To this end, the efficiency of processing path planning requests can be improved and thus the efficiency of path planning can be improved.

In one embodiment of the present invention, each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position comprises: acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV, generating a path deviation according to the running environment information and the planned path, and performing a distance correction and an angle correction for the path deviation. To this end, a deviation correction can be performed by a vehicle-mounted sensor on the AGV.

In one embodiment of the present invention, the vehicle-mounted sensor comprises an inertia measuring unit and a LiDAR device, and the acquisition of running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the LiDAR device. To this end, a distance correction and an angle correction can be performed by the inertia measuring unit and the LiDAR device of the AGV, respectively.

In one embodiment of the present invention, the vehicle-mounted sensor further comprises an ultrasonic sensor, and the acquisition of running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor. To this end, the obstacle avoidance function can be realized by detecting and analyzing ultrasonic echoes since ultrasonic waves will produce ultrasonic echoes when they contact an object.

In one embodiment of the present invention, the path planning method further comprises setting up a first proxy interface on the server, setting up a second proxy interface on the AGV, and transmitting communication data of the server and the AGV through the first proxy interface and the second proxy interface. To this end, the addressing speed can be improved by setting up proxy interfaces, and then the efficiency of path planning can be improved.

The present invention further provides a path planning device for an AGV cluster. The AGV cluster comprises a plurality of AGVs. The path planning device comprises: a creating unit, configured to create a running environment map of the AGV cluster on a server; a global path planning unit, configured to generate a planned path according to a path planning request of each of the AGVs on the server and send the planned path to the corresponding AGV, wherein the path planning request contains the current position and the target position of the AGV; a deviation correcting unit, each of the AGVs performing a real time deviation correction for the actual path according to the planned path and running from the current position to the target position.

In one embodiment of the present invention, the global path planning unit arranges path planning requests of the plurality of AGVs in a queue and processes the path planning requests in the queue according to the first-in first-out principle.

In one embodiment of the present invention, the deviation correcting unit acquires running environment information, sensed by the vehicle-mounted sensor, of the AGV, generates a path deviation according to the running environment information and the planned path, and performs a distance correction and an angle correction for the path deviation.

In one embodiment of the present invention, the vehicle-mounted sensor comprises an inertia measuring unit and a LiDAR device, and the deviation correcting unit acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the LiDAR device.

In one embodiment of the present invention, the vehicle-mounted sensor further comprises an ultrasonic sensor, and the deviation correcting unit acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor.

In one embodiment of the present invention, the path planning device further comprises a proxy setup unit, the proxy setup unit sets up a first proxy interface on the server, sets up a second proxy interface on the AGV and performs data communications between the first proxy interface and the second proxy interface.

The present invention further provides an electronic device, and the electronic device comprises a processor, a memory and an instruction stored in the memory, wherein the instruction implements the above-mentioned method when executed by the processor.

The present invention further provides a computer-readable storage medium, a computer instruction is stored therein, and the computer instruction implements the above-mentioned method when run.

Brief Description of the Drawings

The following drawings are only used to give an exemplary description and explanation of the present invention, but are not used to limit the scope of the present invention. Wherein, Fig. 1 is a schematic diagram of an Internet of things (IoT) system according to one embodiment of the present invention, Fig. 2 is a block diagram of the structure of an AGV according to one embodiment of the present invention,

Fig. 3 is a flowchart of the path planning method for an AGV cluster according to one embodiment of the present invention, and

Fig. 4 is a schematic diagram of the path planning device for an AGV cluster according to one embodiment of the present invention.

Description of reference numerals in the attached drawings

100: IoT system

110: AGV cluster

110A, 110B, H OC: AGVs

120: Router

130: Server

111: Communication interface 112: Vehicle-mounted sensor 112A: Inertia measuring unit

112B: LiDAR device

113: Processor

114: Motor driver

115: Motor

300: Path planning method for an AGV cluster S310-S330: Steps

400: Path planning device for an AGV cluster 410: Creating unit 420: Global path planning unit 430: Deviation correcting unit

Detailed Description of the Invention

To understand the technical characteristics, objective, and effects of the present invention more clearly, the following describes the embodiments of the present invention in combination with the drawings.

Specific details are given in the following description to help understand the present invention. However, the present invention can be implemented in other modes than those described here. Therefore, the present invention is not restricted by the specific embodiments disclosed below.

As shown in the present application and the claims, words such as "one", "one piece", "one type", and/or "the" do not mean a singular form, but also include the plural form, unless an exception is clearly pointed out in the context. Generally speaking, the terms "comprise" and "contain" only indicate that clearly identified steps and elements are included, but these steps and elements do not constitute an exclusive enumeration. The method or device may also comprise other steps or elements. Fig. 1 is a schematic diagram of an Internet of things (IoT) system 100 according to one embodiment of the present invention. As shown in Fig. 1, the IoT system 100 comprises an AGV cluster 110, a router 120 and a server 130.

The AGV cluster 110 comprises a plurality of AGVs. For convenience of description, three AGVs 110A, H OB and H OC are shown in Fig. 1. The AGVs 110A, 110B and H OC can transport materials from one workstation to another workstation, and the path from one workstation to another workstation is the path of an AGV. The paths of AGVs are planned in the embodiments of the present invention. It can be understood that the AGVs are provided with moving portions so that the AGVs can move from one workstation to another workstation. The moving portions may be moving wheels. The AGVs may produce position data and the position data can be sent to the server 130 through the router 120.

The router 120 is provided between the AGV cluster 110 and the server 130 and is configured to enable the AGV cluster 110 and the server 130 to perform data transmission. The connection of the router 120 with each AGV of the AGV cluster 110 may be a wireless connection. The wireless connection may support various transport protocols such as Zigbee, Bluetooth, WiFi and NB-IOT. The connection between the router 120 and the server 130 may be a wired connection or may be a wireless connection.

Connected to the router 120, the server 130 can receive position data of each AGV from the router 120. The server 130 can also send path planning data to each AGV through the router 120. The server 130 may be a cloud server. The server may be an architecture consisting of a processor, a memory and a communication interface.

Fig. 2 is a block diagram of the structure of an AGV H OA according to one embodiment of the present invention. It can be understood that other AGVs of the AGV cluster 110, for example, AGV H OB and AGV H OC, may have the same structure as that of the AGV H OA. As shown in Fig. 2, the AGV H OA comprises a communication interface 111, a vehicle-mounted sensor 112, a processor 113, a motor driver 114 and a motor 115. The communication interface 111 and the router 120 support the same transport protocol and the communication interface is configured to receive data sent by the router 120. The vehicle-mounted sensor 112 is configured to acquire real-time running environment information of the AGV 110A. Fig. 2 shows that the vehicle-mounted sensor 112 may comprise an inertia measuring unit 112A and a LiDAR device 112B, wherein the inertia measuring unit 112A senses the steering angle and acceleration of the AGV 110A and the LiDAR device 112B senses the observation distance of the AGV 110A. The processor 113 receives data of the communication data 111 and the vehicle-mounted sensor 112 and analyzes and processes the data to generate a control instruction, and the motor driver 114 controls the motor 115 according to the control instruction, for example, changes the direction or speed. Fig. 3 is a flowchart of the path planning method 300 for an AGV cluster according to one embodiment of the present invention. As shown in Fig. 3, the path planning method comprises:

Step S310: creating a running environment map of the AGV cluster on the server.

In this step, a running environment map of the AGV cluster is created on the server 130. The running environment map may comprise information such as workstation, working position, guided path, cross point of a path, one-way traffic and two-way traffic. An existing running environment map may be acquired from the memory, a new running environment map may be created in real time.

Step S320: generating a planned path according to a path planning request of each of the AGVs on the server and sending the planned path to the corresponding AGV.

In this step, the server 130 may adopt the conflict management algorithm to generate a planned path according to the path planning request of each of the AGVs. The basic rule of the conflict management algorithm is that at most one AGV can be planned on a side or a node of a path network at any point of time. For example, the conflict management algorithm may be the Floyd algorithm. After the planned path is generated, the planned path is sent to the corresponding AGV. For example, an address label may be added to the data packet of the planned path, and the data packet of the planned path is sent to the corresponding AGV of the address label.

Specifically, a path planning request contains the current position and the target position of an AGV, and in response to the path planning request of the AGV, a planned path may be generated according to the current position and the target position of the AGV on the server, and sent to the corresponding AGV. For example, the AGV 110A sends a path planning request to the server 130, and the server 130 responds to the path planning request of the AGV 110A, adopts the conflict management algorithm to generate a planned path and sends the planned path to the AGV 110A.

The path planning requests sent by a plurality of AGVs may be arranged in a queue and the path planning requests in the queue may be processed according to the FIFO principle. For example, the path planning requests of the AGVs 110A, H OB and H OC are sequentially arranged in a queue, the server 130 processes the path planning requests in the queue according to the FIFO principle. That is, the server adopts the conflict management algorithm to first generate a planned path for the AGV 110A, then generate a planned path for the AGV 110B, and finally generate a planned path for the AGV H OC. To this end, the efficiency of processing path planning requests can be improved and thus the efficiency of path planning can be improved.

In some embodiments, a first proxy interface may be set up on the server, a second proxy interface may be set up on the AGVs, and communication data of the server and the AGVs may be transmitted through the first proxy interface and the second proxy interface. For example, after a planned path is generated, the planned path data packet generated by the server is sent to the corresponding AGV of an address label through the first proxy interface and the second proxy interface. To this end, the addressing speed can be improved by setting up proxy interfaces, and then the efficiency of path planning can be improved.

Step S330: each of the AGVs performs a real-time deviation correction for the actual path according to the planned path and runs from the current position to the target position.

In this step, each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position comprises: acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV, generating a path deviation according to the running environment information and the planned path, and performing a distance correction and an angle correction for the path deviation.

Specifically, the communication interface 111 of the AGV receives a planned path from the server 130 and forwards the planned path to the processor 113. The processor 113 further receives running environment information, sensed by the vehicle- mounted sensor 112, of the AGV, wherein the running environment information may contain information such as current position, acceleration and steering angle of the AGV. The processor 113 adopts the kinematic model to generate a path deviation according to the running environment information. The motor driver 114 drives the motor 115 to perform a distance correction and an angle correction according to the path deviation, for example, to change the direction and move. The AGV performs a real-time deviation correction during running until it runs to the target position.

Alternatively, the vehicle-mounted sensor may comprise an inertia measuring unit and a LiDAR device, and the acquisition of running environment information, sensed by the vehicle- mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the LiDAR device. Specifically, the inertia measuring unit (IMU) is configured to sense the steering angle and acceleration of the AGV, and the LiDAR device is configured to sense the observation distance, for example, the distance from other AGVs, in the running environment of the AGV. The acceleration sensed by the inertia measuring unit and the observation distance sensed by the LiDAR device may be used for a distance correction, and the steering angle sensed by the inertia measuring unit may be used for angle correction. The processor 113 may generate a linear speed according to the kinematic model and the motor driver 114 drives the motor 115 according to the linear speed.

Alternatively, the vehicle-mounted sensor further comprises an ultrasonic sensor, and the acquisition of running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor. Ultrasonic waves will produce ultrasonic echoes when they contact an object, and the obstacle avoidance function can be realized by detecting and analyzing ultrasonic echoes.

Here, the flowchart is used to describe the operations performed in the method according to one embodiment of the present invention. It should be understood that the previous operations are not necessarily accurately performed in sequence. On the contrary, the steps may be performed in reverse order or simultaneously. In addition, other operations may be added to the procedure or one step or more steps may be deleted from the procedure.

In the path planning method for an AGV cluster provided by one embodiment of the present invention, the server performs global path planning, AGVs perform a deviation correction according to the planned paths and AGVs have the edge computing function so that the present invention can balance the load between the server and AGVs, avoid a communication delay between the server and AGVs and improve the reliability of path planning for the AGV cluster.

Fig. 4 is a schematic diagram of the path planning device 400 for an AGV cluster according to one embodiment of the present invention. The AGV cluster comprises a plurality of AGVs. As shown in Fig. 4, the path planning device 400 comprises: a creating unit 410, configured to create a running environment map of the AGV cluster on the server; a global path planning unit 420, configured to generate a planned path according to a path planning request of each of the AGVs on the server and send the planned path to the corresponding AGV, wherein the path planning request contains the current position and the target position of the AGV; a deviation correcting unit 430, each of the AGVs performing a real-time deviation correction for the actual path according to the planned path and running from the current position to the target position.

Alternatively, the global path planning unit 420 arranges path planning requests of the plurality of AGVs in a queue and processes the path planning requests in the queue according to the first-in first-out principle.

Alternatively, the deviation correcting unit 430 acquires running environment information, sensed by the vehicle-mounted sensor, of the AGV, generates a path deviation according to the running environment information and the planned path, and performs a distance correction and an angle correction for the path deviation.

Alternatively, the vehicle-mounted sensor comprises an inertia measuring unit and a LiDAR device, and the deviation correcting unit 430 acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring the steering angle and acceleration sensed by the inertia measuring unit and acquiring the observation distance sensed by the LiDAR device.

Alternatively, the vehicle-mounted sensor further comprises an ultrasonic sensor, and the deviation correcting unit 430 acquiring running environment information, sensed by the vehicle-mounted sensor, of the AGV comprises acquiring ultrasonic waves sensed by the ultrasonic sensor.

Alternatively, the path planning device 400 further comprises a proxy setup unit, the proxy setup unit sets up a first proxy interface on the server, sets up a second proxy interface on the AGV and performs data communications between the first proxy interface and the second proxy interface.

For the implementation mode of the path planning device 400 and the specific process, refer to the path planning method 300. They will not be described here again.

The present invention further provides an electronic device, and the electronic device comprises a processor, a memory and an instruction stored in the memory, wherein the instruction implements the above-mentioned method when executed by the processor.

The present invention further provides a computer-readable storage medium, a computer instruction is stored therein, and the computer instruction implements the above-mentioned method when run.

Some aspects of the method and device of the present invention may be completely implemented by hardware, may be completely implemented by software (including firmware, resident software and microcodes) or may be implemented by a combination of hardware and software. Hardware or software above may be called "data block", "module", "engine", "unit", "assembly" or "system" The processor may be one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing device (DAPD), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors or a combination thereof. Each aspect of the present invention may be one or more computer products located in one or more computer-readable medium. The product comprises a computer-readable program code. For example, the computer-readable medium includes but is not limited to a magnetic storage device (for example, hard disk, floppy disk and magnetic tape), an optical disk (for example, compact disk (CD), digital versatile disk (DVD)...), a smart card and flash memory device (for example, card, rod and key driver...). The computer-readable medium may include a propagated data signal containing computer program codes, for example, on the baseband or as a part of a carrier. The propagated signal may have various forms, including electromagnetic form, optical form or a proper combination form. The computer-readable medium may be any computer readable medium other than a computer-readable storage medium, and after the medium is connected to an instruction executing system, apparatus or device, the communication, propagation or transmission of a program for use can be implemented. Program codes in the computer-readable medium may be propagated through any proper medium, including radio, an optical fiber cable, an RF signal, or a similar medium or a combination thereof.

It should be understood that although the Description is outlined in accordance with various embodiments, it does not mean that each embodiment contains only one independent technical solution. The description method in the Description is only for the sake of clarity. Those skilled in the art should consider the Description as an integral body. The technical solutions in all these embodiments can be combined properly to form other embodiments that those skilled in the art can understand.

The above are only exemplary embodiments of the present invention, but are not used to limit the scope of the present invention. All equivalent variations, modifications, and combinations made by those skilled in the art without departing from the conception and principle of the present invention should fall within the scope of protection of the present invention.