Method, device and non-volatile storage medium for synchronizing robot with conveyor belt
通过调节机器人的线速度以匹配圆形传送带的角位移,解决了机器人与圆形传送带同步的问题,提高了自动化产线的生产效率。
Patent Information
- Application Number
- CN202411842994.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-12
- Publication Date
- 2025-04-04
AI Technical Summary
The prior art is difficult to synchronize the robot with the circular conveyor belt, especially when the conveyor belt tracking direction changes or needs to change.
By obtaining the current linear velocity of the robot, determine the angular displacement of the robot during the control period, and adjust the current linear velocity according to the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt.
The synchronization between the robot and the circular conveyor belt is achieved, the production efficiency of the automated production line is improved, and the need to adapt to the changes in the conveyor belt tracking direction is achieved.
Smart Images

Figure CN119759000A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of robot technology, and in particular to a method, a device and a non-volatile storage medium for synchronizing a robot with a conveyor belt. Background Art
[0002] With the development of collaborative robot technology, collaborative robots are widely used in various automated production lines. In automated production lines, workstations are often connected by conveyor belts. In automated production lines with robot applications, robots pick up and place workpieces on conveyor belts or perform other related process operations. In order to improve the production efficiency of automated production lines, robot conveyor belt tracking is a relatively mature technology that can support robots to track conveyor belt movement and complete workpiece operations without stopping the conveyor belt, thus avoiding the reduction of production line efficiency caused by frequent start and stop of the conveyor belt. Most of the current conveyor belt tracking is only for linear conveyor belt tracking. As the application scope of collaborative robots expands, the demand for circular, annular or arc conveyor belt tracking is gradually increasing. Linear conveyor belt tracking technology cannot meet the needs of such scenarios. At the same time, the current conveyor belt tracking direction is followed by the direction taught in advance. The current technology cannot meet the needs of changes in conveyor belt tracking during the application process or changes in use.
[0003] To address the above-mentioned problems, no effective solution has been proposed yet. Summary of the invention
[0004] The embodiments of the present invention provide a method, device, and non-volatile storage medium for synchronizing a robot with a conveyor belt, so as to at least solve the technical problem that the robot cannot be synchronized with a circular conveyor belt.
[0005] According to one aspect of an embodiment of the present invention, a method for synchronizing a robot with a conveyor belt is provided, comprising: acquiring a current linear speed of the robot; determining an angular displacement of the robot within a control period based on the current linear speed; determining an angular displacement of a circular conveyor belt within the control period; and adjusting the current linear speed based on the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot with the circular conveyor belt.
[0006] Optionally, obtaining the current linear speed of the robot includes: determining whether the current linear speed is within a predetermined linear speed range; if the current linear speed is outside the predetermined linear speed range, adjusting the current linear speed, and re-obtaining the current linear speed of the robot until the current linear speed is within the predetermined linear speed range.
[0007] Optionally, the angular displacement of the robot within the control cycle is determined based on the current linear velocity, including: selecting multiple points with a common center on the circular conveyor belt; determining the corresponding circles of the multiple points, and the centers and radii of the corresponding circles of the multiple points; determining the angular displacement of the robot based on the radii of the corresponding circles of the multiple points and the current linear velocity.
[0008] Optionally, the current linear speed is adjusted according to the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt, including: determining the difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt; when the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; when the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
[0009] Optionally, when the difference is greater than a predetermined threshold, the current linear speed is adjusted to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, including: adjusting the current linear speed according to the relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt to obtain the adjusted linear speed of the robot; calculating the adjusted angular displacement of the robot within the control period according to the adjusted linear speed of the robot; determining the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; adjusting the adjusted linear speed according to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than the predetermined threshold, and determining that the adjusted linear speed is the target linear speed.
[0010] Optionally, determining the angular displacement of the circular conveyor belt within the control cycle includes: obtaining the pulse equivalent of the encoder of the circular conveyor belt and the number of pulses generated by the encoder within the control cycle, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; determining the angular displacement of the circular conveyor belt within the control cycle based on the number of pulses and the pulse equivalent.
[0011] According to another aspect of an embodiment of the present invention, a device for synchronizing a robot with a conveyor belt is provided, comprising: a first acquisition module for acquiring the current linear velocity of the robot; a first determination module for determining the angular displacement of the robot within a control period based on the current linear velocity; a second determination module for determining the angular displacement of the circular conveyor belt within the control period; and a first adjustment module for adjusting the current linear velocity based on the angular displacement of the robot and the angular displacement of the circular conveyor belt so as to synchronize the robot with the circular conveyor belt.
[0012] According to another aspect of an embodiment of the present invention, a non-volatile storage medium is provided, wherein the non-volatile storage medium stores a plurality of instructions, wherein the instructions are suitable for being loaded by a processor and executing any one of the methods for synchronizing a robot with a conveyor belt.
[0013] According to another aspect of an embodiment of the present invention, there is provided an electronic device comprising: one or more processors and a memory, the memory being used to store one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement any one of the methods for synchronizing a robot with a conveyor belt.
[0014] According to yet another aspect of an embodiment of the present invention, there is further provided a computer program product, comprising a computer program, which implements any one of the above methods for synchronizing a robot with a conveyor belt when the computer program is executed by a processor.
[0015] In an embodiment of the present invention, by acquiring the current linear speed of the robot; determining the angular displacement of the robot within a control period based on the current linear speed; determining the angular displacement of the circular conveyor belt within the control period; and adjusting the current linear speed based on the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt, the purpose of synchronizing the robot and the circular conveyor belt is achieved, the technical problem that the robot and the circular conveyor belt cannot be synchronized is solved, and the technical effect of improving the production efficiency of the automated production line is achieved. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The drawings described herein are used to provide a further understanding of the present invention and constitute a part of this application. The exemplary embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute an improper limitation of the present invention. In the drawings:
[0017] Figure 1 is a flow chart of a method for synchronizing a robot and a conveyor belt according to an embodiment of the present invention;
[0018] Figure 2 is a schematic diagram of circles corresponding to a plurality of points having a common center on a circular conveyor belt provided by an embodiment of the present invention;
[0019] Figure 3 is a schematic diagram of a robot and conveyor belt synchronization device provided according to an embodiment of the present invention. DETAILED DESCRIPTION
[0020] In order to enable those skilled in the art to better understand the scheme of the present invention, the technical scheme in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.
[0021] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0022] According to an embodiment of the present invention, a method embodiment of synchronizing a robot with a conveyor belt is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0023] Figure 1 is a flow chart of a method for synchronizing a robot with a conveyor belt according to an embodiment of the present invention. Figure 1 As shown, the method comprises the following steps:
[0024] Step S102, obtaining the current linear velocity of the robot.
[0025] In this step, usually, before the robot starts working, the robot is in a stationary state. When the robot receives an operating instruction, such as grabbing express items on the prototype conveyor belt, the circular conveyor belt may be in a uniform motion state. In order for the robot to complete the current operating instruction, the robot must first be synchronized with the moving circular conveyor belt, so the robot needs to be set with a suitable linear speed.
[0026] In an optional embodiment, obtaining the current linear speed of the robot includes: determining whether the current linear speed is within a predetermined linear speed range; if the current linear speed is outside the predetermined linear speed range, adjusting the current linear speed, and re-obtaining the current linear speed of the robot until the current linear speed is within the predetermined linear speed range.
[0027] Optionally, when the robot starts working, set a suitable linear speed for the robot, which should be within the linear speed constraint range set by the user. If the linear speed of the robot is greater than the linear speed constraint range set by the user, the linear speed of the robot is decelerated and decelerated to within the linear speed constraint range. If the linear speed of the robot is less than the linear speed constraint range set by the user, the linear speed of the robot is accelerated and accelerated to within the linear speed constraint range. For example, when the linear speed constraint range set by the user is 3-5, when the linear speed of the robot is 6, the linear speed of the robot needs to be reduced to within 3-5. When the linear speed of the robot is 1, the linear speed of the robot also needs to be increased to within 3-5.
[0028] Step S104, determining the angular displacement of the robot within the control period according to the current linear velocity.
[0029] In this step, the linear velocity is the speed of the robot in a straight line, and the angular displacement is the change in the robot's rotational direction. By knowing the robot's current linear velocity, the angular displacement of the robot in the rotational direction within a control cycle can be calculated. This is very important for controlling the robot's motion and ensuring that it moves on a predetermined path. By accurately calculating the angular displacement, the robot can be made to move along a predetermined path and direction within a control cycle, thereby achieving a specific task or goal.
[0030] In an optional embodiment, the angular displacement of the robot within the control period is determined according to the current linear speed, including: selecting multiple points with the same center on the circular conveyor belt; determining the corresponding circles of the multiple points, and the centers and radii of the corresponding circles of the multiple points; and determining the angular displacement of the robot according to the radii of the corresponding circles of the multiple points and the current linear speed.
[0031] Optional, such as Figure 2 As shown, three points P1, P2, and P3 on the plane with the same center can determine a circle. The center O of the circular conveyor can be determined by teaching the three points of the same plane and circle in the direction of the circular conveyor in sequence. The circular conveyor coordinate system {O} is established with the center O as the origin, and the z-axis of the coordinate system {O} is defined as the rotation axis of the conveyor:
[0032]
[0033] Define the x-axis of the coordinate system {O} as Then the y-axis is:
[0034] In this way, the origin, coordinate system, and radius of the circular conveyor coordinate system can be determined, and the circular conveyor is calibrated in the robot base coordinate system. According to the relationship between angular velocity and linear velocity in circular motion, the angular velocity ω of the robot following the circular conveyor can be calculated. robot =vrobot / R, where R represents the radius of the circle, v robot Indicates the current linear velocity of the robot. It is known that the angular displacement of the robot in the previous cycle is θ robot_last , then the angular displacement of the robot relative to the rotating axis of the circular conveyor belt in the current cycle is θ robot =ω robot *T+θ robot_last , where T represents the controller period.
[0035] Step S106, determining the angular displacement of the circular conveyor belt during the control period.
[0036] In this step, within the control cycle, the angular displacement of the circular conveyor belt refers to the angular change of each point on the conveyor belt along the circular path within one cycle. After the robot obtains the linear speed and synchronizes with the circular conveyor belt, the circular conveyor belt also undergoes a certain angular displacement. For the circular conveyor belt, the change of angular displacement is periodic and can be used to control the position and movement direction of objects on the conveyor belt.
[0037] In an optional embodiment, determining the angular displacement of the circular conveyor belt within a control cycle includes: obtaining the pulse equivalent of the encoder of the circular conveyor belt and the number of pulses generated by the encoder within the control cycle, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; determining the angular displacement of the circular conveyor belt within the control cycle based on the number of pulses and the pulse equivalent.
[0038] Optionally, the pulse equivalent represents the angle of the conveyor belt that corresponds to one pulse sent by the encoder. By calibrating the pulse equivalent, the conveyor belt speed and displacement and other motion information can be obtained through the encoder pulse number during real-time tracking. The pulse equivalent is determined by the angle of the conveyor belt when the encoder moves one circle. Assuming that the number of pulses sent by the encoder when it rotates one circle is Pulse, and the conveyor belt rotates Degree degrees, then: Pulse equivalent = Degree / Pulse. When the encoder pulse number and pulse equivalent are known, the angular displacement θ of the circular conveyor belt in the current motion control cycle can be determined.
[0039] Step S108, adjusting the current linear speed according to the angular displacement of the robot and the angular displacement of the circular conveyor belt, so as to synchronize the robot and the circular conveyor belt.
[0040] In this step, the robot's linear speed is continuously adjusted, and the robot's angular displacement is determined according to the robot's linear speed, until the robot's angular displacement is basically consistent with the angular displacement of the circular conveyor belt, indicating that the robot and the circular conveyor belt are synchronized successfully. This method can be achieved. If the speed of the circular conveyor belt changes during continuous operation, the robot's linear speed can be adjusted to re-complete the synchronization process between the robot and the circular conveyor belt, and the operation task can be continued after the synchronization is successful. When the robot's operation is completed, the synchronization mechanism with the circular conveyor belt also needs to be stopped, which involves the decoupling control of the robot and the conveyor belt. The first step of decoupling control is to confirm whether the robot has completed other predetermined motion instructions in addition to the synchronous movement with the conveyor belt. For example, when following the circular conveyor belt for linear motion, if the motion is terminated in advance, it is necessary to ensure that the robot has been smoothly decelerated to a stopped state to avoid sudden motion changes from causing unnecessary impact on the robot or the conveyor belt.
[0041] Next, it is necessary to calculate the target position that the circular conveyor should reach under the deceleration limit set by the user. This calculation is based on the current speed of the conveyor and the stopping position to be reached, ensuring that the conveyor can also decelerate smoothly to a standstill. When the robot exits the follow mode, it must not only consider its own motion control, but also take the deceleration planning of the conveyor into consideration to achieve a smooth transition of the entire system.
[0042] In the "tracking" stage when the robot and the circular conveyor belt are running synchronously, in order to improve the stability and accuracy of the operation, the mean filter technology of the encoder pulse number can be used. This technology calculates the average value of the encoder pulses over a period of time to filter out the instantaneous speed fluctuations caused by external interference or sensor errors, so that the robot's following movement is smoother and more accurate, effectively improving the overall coordination and performance of the system.
[0043] In summary, after the operation is completed, decoupling control is used to ensure that both the robot and the circular conveyor belt can decelerate smoothly to a stop. During the synchronous motion stage, mean filtering technology is used to optimize the encoder data to improve the stability of the robot's following motion.
[0044] In an optional embodiment, the current linear speed is adjusted according to the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt, including: determining the difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt; when the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; when the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
[0045] Optionally, whether the robot and the circular conveyor belt are synchronized can be determined based on the angular displacement of the robot and the angular displacement of the circular conveyor belt. The determination method is: calculate the angular displacement of the robot and the angular displacement of the circular conveyor belt respectively, and make a difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt. If the difference between the angular displacements of the two is large, it means that the two have not yet achieved synchronization, and it is necessary to readjust the linear speed of the robot, obtain the angular displacement of the robot again and compare it with the angular displacement of the circular conveyor belt. If the difference between the two is small, that is, within a predetermined range, it can be determined that the robot and the circular conveyor belt are synchronized successfully. After the synchronization is successful, the robot can perform related work tasks.
[0046] In an optional embodiment, when the difference is greater than a predetermined threshold, the current linear speed is adjusted to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, including: adjusting the current linear speed according to the relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt to obtain the adjusted linear speed of the robot; calculating the adjusted angular displacement of the robot within the control period according to the adjusted linear speed of the robot; determining the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; adjusting the adjusted linear speed according to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than the predetermined threshold, and determining that the adjusted linear speed is the target linear speed.
[0047] Optionally, when the robot and the circular conveyor belt are synchronized, the linear speed of the robot may need to be adjusted repeatedly to achieve synchronization. After the first comparison of the angular displacements of the robot and the conveyor belt, the angular displacements of the robot and the conveyor belt differ greatly. At this time, the linear speed of the robot can be adjusted, and the angular displacements of the robot and the circular conveyor belt can be re-obtained and compared again. This step is repeated until the angular displacement difference between the robot and the circular conveyor belt is reduced to within the preset range. At this time, it can be determined that the robot and the circular conveyor belt are synchronized successfully.
[0048] By the above method, the current linear speed of the robot is obtained; according to the current linear speed, the angular displacement of the robot within the control period is determined; the angular displacement of the circular conveyor belt within the control period is determined; according to the angular displacement of the robot and the angular displacement of the circular conveyor belt, the current linear speed is adjusted to synchronize the robot and the circular conveyor belt, thereby achieving the purpose of synchronizing the robot and the circular conveyor belt, solving the technical problem that the robot and the circular conveyor belt cannot be synchronized, and realizing the technical effect of improving the production efficiency of the automated production line.
[0049] Based on the above embodiments and optional embodiments, the present invention proposes an optional implementation manner.
[0050] Step S1, obtaining the current linear speed of the robot, including: determining whether the current linear speed is within a predetermined linear speed range; if the current linear speed is outside the predetermined linear speed range, adjusting the current linear speed, and re-obtaining the current linear speed of the robot until the current linear speed is within the predetermined linear speed range.
[0051] Optionally, when the robot starts working, set a suitable linear speed for the robot, which should be within the linear speed constraint range set by the user. If the linear speed of the robot is greater than the linear speed constraint range set by the user, the linear speed of the robot is decelerated and decelerated to within the linear speed constraint range. If the linear speed of the robot is less than the linear speed constraint range set by the user, the linear speed of the robot is accelerated and accelerated to within the linear speed constraint range. For example, when the linear speed constraint range set by the user is 3-5, when the linear speed of the robot is 6, the linear speed of the robot needs to be reduced to within 3-5. When the linear speed of the robot is 1, the linear speed of the robot also needs to be increased to within 3-5.
[0052] Step S2, determining the angular displacement of the robot within the control period according to the current linear velocity, including: selecting multiple points with the same center on the circular conveyor belt; determining the corresponding circles of the multiple points, and the centers and radii of the corresponding circles of the multiple points; determining the angular displacement of the robot according to the radii of the corresponding circles of the multiple points and the current linear velocity.
[0053] Optionally, three points P1, P2, and P3 on the plane with the same center can determine a circle. The center O of the circular conveyor can be determined by teaching the three points on the same plane and circle in the direction of the circular conveyor. The circular conveyor coordinate system {O} is established with the center 0 as the origin, and the z axis of the coordinate system {O} is defined as the rotation axis of the conveyor:
[0054]
[0055] Define the x-axis of the coordinate system {O} as but
[0056] In this way, the origin, coordinate system, and radius of the circular conveyor coordinate system can be determined, and the circular conveyor is calibrated in the robot base coordinate system. According to the relationship between angular velocity and linear velocity in circular motion, the angular velocity ω of the robot following the circular conveyor can be calculated. robot =v robot / R, where R represents the radius of the circle, v robot Indicates the current linear velocity of the robot. It is known that the angular displacement of the robot in the previous cycle is θ robot_last , then the angular displacement of the robot relative to the rotating axis of the circular conveyor belt in the current cycle is θ robot =ω robot *T+θrobot_last , where T represents the controller period.
[0057] Step S3, determining the angular displacement of the circular conveyor belt within the control period, includes: obtaining the pulse equivalent of the encoder of the circular conveyor belt, and the number of pulses generated by the encoder within the control period, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; determining the angular displacement of the circular conveyor belt within the control period based on the number of pulses and the pulse equivalent.
[0058] Optionally, the pulse equivalent represents the angle of the conveyor belt corresponding to one pulse sent by the encoder, in degrees / CNT. By calibrating the pulse equivalent, the motion information such as the conveyor belt speed and displacement can be obtained through the encoder pulse number during real-time tracking. The pulse equivalent is determined by the angle of the conveyor belt when the encoder moves one circle. Assuming that the number of pulses sent by the encoder when it rotates one circle is Pulse, and the conveyor belt rotates Degree degrees, then: Pulse equivalent = Degree / Pulse. When the encoder pulse number and pulse equivalent are known, the angular displacement θ of the circular conveyor belt in the current motion control cycle can be determined.
[0059] Step S4, according to the angular displacement of the robot and the angular displacement of the circular conveyor belt, adjust the current linear speed to synchronize the robot and the circular conveyor belt, including: determining the difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt; when the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; when the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
[0060] Optionally, whether the robot and the circular conveyor belt are synchronized can be determined based on the angular displacement of the robot and the angular displacement of the circular conveyor belt. The determination method is: calculate the angular displacement of the robot and the angular displacement of the circular conveyor belt respectively, and make a difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt. If the difference between the angular displacements of the two is large, it means that the two have not yet achieved synchronization, and it is necessary to readjust the linear speed of the robot, obtain the angular displacement of the robot again and compare it with the angular displacement of the circular conveyor belt. If the difference between the two is small, that is, within a predetermined range, it can be determined that the robot and the circular conveyor belt are synchronized successfully. After the synchronization is successful, the robot can perform related work tasks.
[0061] Step S41, when the difference is greater than a predetermined threshold, adjust the current linear speed to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, including: adjusting the current linear speed according to the relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt to obtain the adjusted linear speed of the robot; calculating the adjusted angular displacement of the robot within the control period according to the adjusted linear speed of the robot; determining the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; adjusting the adjusted linear speed according to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than a predetermined threshold, and determining that the adjusted linear speed is the target linear speed.
[0062] Optionally, when the robot and the circular conveyor belt are synchronized, the linear speed of the robot may need to be adjusted repeatedly to achieve synchronization. After the first comparison of the angular displacements of the robot and the conveyor belt, the angular displacements of the robot and the conveyor belt differ greatly. At this time, the linear speed of the robot can be adjusted, and the angular displacements of the robot and the circular conveyor belt can be re-obtained and compared again. This step is repeated until the angular displacement difference between the robot and the circular conveyor belt is reduced to within the preset range. At this time, it can be determined that the robot and the circular conveyor belt are synchronized successfully.
[0063] The above optional implementation achieves at least the following effects: the purpose of synchronizing the robot and the circular conveyor belt is achieved, the technical problem that the robot and the circular conveyor belt cannot be synchronized is solved, and the technical effect of improving the production efficiency of the automated production line is achieved.
[0064] It should be noted that the steps shown in the flowcharts of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and that, although a logical order is shown in the flowcharts, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0065] In this embodiment, a robot and conveyor belt synchronization device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the terms "module" and "device" can implement a combination of software and / or hardware for a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.
[0066] According to an embodiment of the present invention, there is also provided an embodiment of a device for implementing a method for synchronizing a robot with a conveyor belt. Figure 3 is a schematic diagram of a robot and conveyor belt synchronization device according to an embodiment of the present invention, such as Figure 3As shown, the above-mentioned robot and conveyor belt synchronization device includes a first acquisition module 31, a first determination module 32, a second determination module 33, and a first adjustment module 34. The device is described below.
[0067] The first acquisition module 31 is used to acquire the current linear velocity of the robot;
[0068] A first determination module 32, connected to the first acquisition module 31, for determining the angular displacement of the robot within the control period according to the current linear velocity;
[0069] A second determination module 33, connected to the first determination module 32, for determining the angular displacement of the circular conveyor belt within a control period;
[0070] The first regulating module 34 is connected to the second determining module 33 and is used to adjust the current linear speed according to the angular displacement of the robot and the angular displacement of the circular conveyor belt so as to synchronize the robot and the circular conveyor belt.
[0071] In a robot and conveyor belt synchronization device provided by an embodiment of the present invention, a first acquisition module is set to acquire the current linear speed of the robot; a first determination module is used to determine the angular displacement of the robot within the control period according to the current linear speed; a second determination module is used to determine the angular displacement of the circular conveyor belt within the control period; and a first adjustment module is used to adjust the current linear speed according to the angular displacement of the robot and the angular displacement of the circular conveyor belt, so as to synchronize the robot and the circular conveyor belt. The purpose of synchronizing the robot and the circular conveyor belt is achieved, the technical problem that the robot and the circular conveyor belt cannot be synchronized is solved, and the technical effect of improving the production efficiency of the automated production line is achieved.
[0072] It should be noted that the above modules can be implemented by software or hardware. For example, for the latter, it can be implemented in the following ways: the above modules can be located in the same processor; or the above modules can be located in different processors in any combination.
[0073] It should be noted that the first acquisition module 31, the first determination module 32, the second determination module 33, and the first adjustment module 34 correspond to steps S102 to S108 in the embodiment, and the examples and application scenarios implemented by the modules and the corresponding steps are the same, but are not limited to the contents disclosed in the above embodiments. It should be noted that the modules as part of the device can be run in a computer terminal.
[0074] It should be noted that the optional or preferred implementation of this embodiment can refer to the relevant description in the embodiment, which will not be repeated here.
[0075] The above-mentioned device for synchronizing the robot with the conveyor belt may also include a processor and a memory. The first acquisition module 31, the first determination module 32, the second determination module 33, the first adjustment module 34, etc. are all stored in the memory as program units, and the processor executes the above-mentioned program units stored in the memory to realize the corresponding functions.
[0076] Optionally, the processor can perform the following steps when running: obtain the current linear speed of the robot; determine the angular displacement of the robot within the control cycle based on the current linear speed; determine the angular displacement of the circular conveyor belt within the control cycle; adjust the current linear speed based on the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt.
[0077] Optionally, the processor can also perform the following steps when running: obtaining the current linear speed of the robot, including: determining whether the current linear speed is within a predetermined linear speed range; if the current linear speed is outside the predetermined linear speed range, adjusting the current linear speed, and re-obtaining the current linear speed of the robot until the current linear speed is within the predetermined linear speed range.
[0078] Optionally, the processor can also perform the following steps when running: determine the angular displacement of the robot within the control cycle based on the current linear speed, including: selecting multiple points with the same center on the circular conveyor belt; determining the corresponding circles of the multiple points, and the center and radius of the corresponding circles of the multiple points; determine the angular displacement of the robot based on the radius of the corresponding circles of the multiple points and the current linear speed.
[0079] Optionally, the processor can also perform the following steps when running: adjust the current linear speed according to the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt, including: determining the difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt; when the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; when the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
[0080] Optionally, the processor may also perform the following steps when running: when the difference is greater than a predetermined threshold, adjusting the current linear speed to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, including: adjusting the current linear speed according to the relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt to obtain the adjusted linear speed of the robot; calculating the adjusted angular displacement of the robot within the control period according to the adjusted linear speed of the robot; determining the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; adjusting the adjusted linear speed according to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than the predetermined threshold, and determining that the adjusted linear speed is the target linear speed.
[0081] Optionally, the processor can also perform the following steps when running: determine the angular displacement of the circular conveyor belt within the control cycle, including: obtaining the pulse equivalent of the encoder of the circular conveyor belt, and the number of pulses generated by the encoder within the control cycle, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; determine the angular displacement of the circular conveyor belt within the control cycle based on the number of pulses and the pulse equivalent.
[0082] The processor includes a kernel, which retrieves the corresponding program unit from the memory. There can be one or more kernels. The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM, and the memory includes at least one storage chip.
[0083] An embodiment of the present invention provides a non-volatile storage medium on which a program is stored. When the program is executed by a processor, a method for realizing synchronization between a robot and a conveyor belt is implemented.
[0084] Optionally, when the program is executed by the processor, the following steps are implemented: obtaining the current linear speed of the robot; determining the angular displacement of the robot within the control cycle based on the current linear speed; determining the angular displacement of the circular conveyor belt within the control cycle; adjusting the current linear speed based on the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt.
[0085] Optionally, when the program is executed by the processor, the following steps are also implemented: obtaining the current linear speed of the robot, including: determining whether the current linear speed is within a predetermined linear speed range; if the current linear speed is outside the predetermined linear speed range, adjusting the current linear speed, and re-obtaining the current linear speed of the robot until the current linear speed is within the predetermined linear speed range.
[0086] Optionally, when the program is executed by the processor, the following steps are also implemented: according to the current linear speed, the angular displacement of the robot within the control cycle is determined, including: selecting multiple points with the same center on the circular conveyor belt; determining the corresponding circles of the multiple points, and the center and radius of the corresponding circles of the multiple points; determining the angular displacement of the robot according to the radius of the corresponding circles of the multiple points and the current linear speed.
[0087] Optionally, when the program is executed by the processor, the following steps are also implemented: according to the angular displacement of the robot and the angular displacement of the circular conveyor belt, the current linear speed is adjusted to synchronize the robot and the circular conveyor belt, including: determining the difference between the angular displacement of the robot and the angular displacement of the circular conveyor belt; when the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; when the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
[0088] Optionally, when the program is executed by the processor, the following steps are also implemented: when the difference is greater than a predetermined threshold, the current linear speed is adjusted to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, including: adjusting the current linear speed according to the relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt to obtain the adjusted linear speed of the robot; calculating the adjusted angular displacement of the robot within the control period according to the adjusted linear speed of the robot; determining the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; adjusting the adjusted linear speed according to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than the predetermined threshold, and determining that the adjusted linear speed is the target linear speed.
[0089] Optionally, when the program is executed by the processor, the following steps are also implemented: determining the angular displacement of the circular conveyor belt within the control cycle, including: obtaining the pulse equivalent of the encoder of the circular conveyor belt, and the number of pulses generated by the encoder within the control cycle, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; determining the angular displacement of the circular conveyor belt within the control cycle based on the number of pulses and the pulse equivalent.
[0090] An embodiment of the present invention provides a robot, which includes a processor, a memory, and a program stored in the memory and executable on the processor. When the processor executes the program, the following steps are implemented: the memory is used to store a computer program, wherein, when the computer program is executed by the processor, the processor implements the above-mentioned method of synchronizing the robot with a conveyor belt. The device in this article may be a server, a PC, etc.
[0091] The present invention also provides a computer program product, which, when executed on a data processing device, is suitable for executing a program that initializes the following method steps: computer instructions are executed by a processor to perform the above-mentioned robot and conveyor belt synchronization method.
[0092] Those skilled in the art will appreciate that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0093] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0094] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0095] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0096] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0097] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.
[0098] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0099] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0100] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
[0101] The above are only embodiments of the present invention and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent substitution, improvement, etc. made within the spirit and principle of the present invention should be included in the scope of the claims of the present invention.
Claims
1. A method for synchronizing a robot with a conveyor belt, characterized in that: include: Obtaining the current linear velocity of the robot; Determining the angular displacement of the robot within a control period according to the current linear velocity; determining an angular displacement of the circular conveyor belt during the control period; The current linear speed is adjusted according to the angular displacement of the robot and the angular displacement of the circular conveyor belt to synchronize the robot and the circular conveyor belt.
2. The method according to claim 1, characterized in that The obtaining of the current linear velocity of the robot comprises: Determining whether the current linear speed is within a predetermined linear speed range; When the current linear speed is outside the predetermined linear speed range, the current linear speed is adjusted, and the current linear speed of the robot is reacquired until the current linear speed is within the predetermined linear speed range.
3. The method according to claim 1, characterized in that According to the current linear velocity, determining the angular displacement of the robot within the control period includes: Selecting a plurality of points on the circular conveyor belt that are co-centered; Determine the corresponding circles of the plurality of points, and the centers and radii of the corresponding circles of the plurality of points; The angular displacement of the robot is determined according to the radii of the circles corresponding to the multiple points and the current linear velocity.
4. The method according to claim 1, characterized in that According to the angular displacement of the robot and the angular displacement of the circular conveyor belt, the current linear speed is adjusted to synchronize the robot and the circular conveyor belt, comprising: determining a difference between an angular displacement of the robot and an angular displacement of the circular conveyor belt; When the difference is less than a predetermined threshold, determining that the robot is synchronized with the circular conveyor belt at the current linear speed; When the difference is greater than the predetermined threshold, the current linear speed is adjusted to the target linear speed, so that the robot is synchronized with the circular conveyor belt at the target linear speed.
5. The method according to claim 4, characterized in that When the difference is greater than the predetermined threshold, adjusting the current linear speed to the target linear speed so that the robot is synchronized with the circular conveyor belt at the target linear speed, comprising: According to the magnitude relationship between the angular displacement of the robot and the angular displacement of the circular conveyor belt, the current linear velocity is adjusted to obtain the adjusted linear velocity of the robot; Calculating the adjusted angular displacement of the robot during the control period according to the adjusted linear velocity of the robot; determining a difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt; According to the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt, the adjusted linear speed is adjusted until the difference between the adjusted angular displacement of the robot and the angular displacement of the circular conveyor belt is less than the predetermined threshold value, and the adjusted linear speed is determined to be the target linear speed.
6. The method according to claim 1, characterized in that Determining the angular displacement of the circular conveyor belt during the control period comprises: Acquire the pulse equivalent of the encoder of the circular conveyor belt and the number of pulses generated by the encoder in the control cycle, wherein the pulse equivalent represents the angle through which the circular conveyor belt rotates when the encoder sends a single pulse; Based on the pulse number and the pulse equivalent, the angular displacement of the circular conveyor belt within the control period is determined.
7. A device for synchronizing a robot with a conveyor belt, characterized in that: include: A first acquisition module, used to acquire the current linear velocity of the robot; A first determination module, used to determine the angular displacement of the robot within a control period according to the current linear velocity; A second determination module, for determining the angular displacement of the circular conveyor belt during the control period; The first regulating module is used to regulate the current linear speed according to the angular displacement of the robot and the angular displacement of the circular conveyor belt so as to synchronize the robot and the circular conveyor belt.
8. A non-volatile storage medium, characterized in that: The non-volatile storage medium stores a plurality of instructions, wherein the instructions are suitable for being loaded by a processor and executed by the method for synchronizing the robot with a conveyor belt according to any one of claims 1 to 6.
9. A robot, characterized in that: include: One or more processors and a memory, wherein the memory is used to store one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the method for synchronizing the robot with a conveyor belt as claimed in any one of claims 1 to 6.
10. A computer program product comprising computer instructions, characterized in that The computer instructions are executed by the processor to execute the method of synchronizing the robot with a conveyor belt according to any one of claims 1 to 6.