This application claims priority to Chinese Patent Application No. 201710464448.2, filed Jun. 19, 2017, which is hereby incorporated by reference herein in its entirety.
The present disclosure relates to a motion-controlled field, and more particularly to an anti-shake method of robots and a robot thereof.
Robot is a mechanical product including components, such as limbs, joints, and intelligent control panels. Each of the joints may rotate to different angles according to corresponding instructions for controlling the components. As such, the components, such as, the limbs, the arm, and the leg, may move accordingly.
In one example, when the servo of the limb of the robot moves to a certain position and stays at the certain position, the servo has to provide particular current to maintain the servo of the limb to stay still at the position. If any change exists with respect to the current or the voltage, the servo may continuously adjust the robot, which results in shaking limbs.
To clarify the purpose, technical solutions, and the advantages of the disclosure, embodiments of the invention will now be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. The figure and the embodiment described according to figure are only for illustration, and the present disclosure is not limited to these embodiments. It should be noted that the relational terms herein, such as “first” and “second”, are used only for differentiating one entity or operation, from another entity or operation, which, however do not necessarily require or imply that there should be any real relationship or sequence. Moreover, the terms “comprise”, “include” or any other variations thereof are meant to cover non-exclusive including, so that the process, method, article or device comprising a series of elements do not only comprise those elements, but also comprise other elements that are not explicitly listed or also comprise the inherent elements of the process, method, article or device. In the case that there are no more restrictions, an element qualified by the statement “comprises a . . . ” does not exclude the presence of additional identical elements in the process, method, article or device that comprises the said element.
In one example, the robot may have arms, legs, hands, neck, and a head. The arms and legs (“limbs”) may have one or more joints corresponding to hips, shoulders elbows, or knees of a person or an animal, for example. A servo may be positioned on the robot and be electrically connected to one or more corresponding joints, and the servo configured to control the one or more joints to move/rotate the limbs up/down/right/left, for example. The movement may be in two-dimensions (moving in the x-y plane) or three-dimensions (moving in the x-y-z plane). The servos may be positioned on or near the joints, for example.
In step S1: initializing a fault tolerance range.
When a control system is activated, the fault tolerance range of the system is preset as follows. The fault tolerance range may be between a target start angle and a target end angle. The target start angle is a target angle (θ1) minus a first angle (ϕ1), and the target end angle is obtained by summing the target angle (θ1) and a second angle (ϕ2). The first angle (ϕ1) may equal to the second angle (ϕ2), while the first angle (ϕ1) and the second angle (ϕ2) may not be zero degrees simultaneously. Specifically, the first angle (ϕ1) and the second angle (ϕ2) may be preset and stored in the robot in advance.
In step S2: receiving at least one motion-controlling instruction by the servo of the limb from a main control unit of a robot.
After initializing the fault tolerance range, the servo of the limb may receive and execute the motion-controlling instruction transmitted from the main control unit. Specifically, the motion-controlling instructions may be instructions driving the servo to rotate accordingly, such as to rotate to different target angles with different speeds, or to stop rotating. The limb moves (e.g., rotates) with the rotation of the servo.
In step S3: determining whether the servo of the limb is under motion control of the main control unit. The servo of the limb being under motion control of the main control unit is defined to be, for example, the servo corresponding to the motion-controlling instruction transmitted from the main control unit which represents “rotating from 30 degrees to 60 degrees within 0.5 seconds.”
Specifically, when the servo of the limb is under the control of the main control unit, it is not necessary to perform a fault tolerance range process. For example, if the motion-controlling instruction transmitted from the main control unit is “rotating from 30 degrees to 60 degrees within 0.5 seconds”, the fault tolerance range process may not be performed within during the 0.5 second.
In step S4: obtaining a target angle and a current angle of the servo of a corresponding limb. The current angle is, for example, an angle of the rotation of the servo which has already been performed. The target angle is, for example, an angle of the rotation of the servo which is to be performed.
If the servo is not under the control of the main control unit, the target angle (θ1) and the current angle (θ2) driving the servo of the limb may be obtained. If the servo is under the control of the main control unit, the process goes back to step S3 to determine a state of the servo.
In step S5: determining whether the current angle is within the fault tolerance range.
Referring to
Referring to
1) When the current angle (θ2) is greater than the target angle (θ1).
It is determined whether the difference between the current angle (θ2) and the target angle (θ1), i.e., [θ1−θ2], is within the fault tolerance range ranging from the third angle (ϕ3) to zero degrees, [−ϕ3, 0].
2) When the current angle (θ2) is less than the target angle (θ1).
It is determined whether the difference between the current angle (θ2) and the target angle (θ1), i.e., [θ1−θ2], is within the fault tolerance range ranging from zero degrees to the fourth angle (ϕ4), i.e., [0, ϕ4].
In step S6: rotating the limb using the servo upon determining the current angle is not within the fault tolerance range.
If the current angle is within the fault tolerance range [θ1−ϕ1, θ1+ϕ2], or the difference between the target angle (θ1) and the current angle (θ2), i.e., [θ1−θ2], is within the fault tolerance range ranging from the third angle (ϕ3) to zero degrees, i.e., [−ϕ3, 0] when the current angle (θ2) is greater than the target angle (θ1), or the difference between the target angle (θ1) and the current angle (θ2), i.e., [θ1−θ2], is within the fault tolerance range ranging from zero degrees to the fourth angle (ϕ4) i.e., [0, ϕ4], the servo has no need to be rotated. As such, the servo of the limb is configured to be under the motion control of the main control unit and without shaking, and the process goes to the step S3 to determine the state of the servo.
If the current angle is not in the fault tolerance range [θ1−ϕ1, θ1+ϕ2], or the difference between the target angle (θ1) and the current angle (θ2), [θ1−θ2], is not in the fault tolerance range ranging from the third angle (ϕ3) to zero degrees, i.e., [−ϕ3,0] when the current angle (θ2) is greater than the target angle (θ1), or the difference between the target angle (θ1) and the current angle (θ2), i.e., [θ1−θ2], is not the fault tolerance range ranging from zero degrees to the fourth angle (ϕ4), i.e., [0, ϕ4], the servo may be driven to rotate to the target angle (θ1). Or the servo may rotate the current angle to the fault tolerance range [θ1−ϕ1, θ1+ϕ2], or to satisfy the difference between the target angle (θ1) and the current angle (θ2) being within the range [−ϕ3, 0] or [0, ϕ4].
Wherein the step S1 and the step S2 may be omitted in the present disclosure.
In view of the above, the fault tolerance range is set in each of the servos corresponding to the limbs. It is determined whether the angle of servo is within the fault tolerance range when the servo of the limb is not under the control of the main control unit. Such that the shaking of the robot may be avoided when the robot performs actions, so as to reduce power consuming and to extend stand-by time.
Referring to
The computing control module 10 is configured to determine whether the servo of the limb is under the control of the main control unit. If the servo of the limb is not under the control of the main control unit, the target angle of the servo may be obtained, and the current angle of the servo may be obtained by the servo angle detection module 11. The computing control module 10 is further configured to determine whether the difference of the current angle and the target angle is within the fault tolerance range. If the difference of the current angle and the target angle is within the fault tolerance range, the computing control module 10 continues to determine whether the servo of the limb is under the control the main control unit.
If the computing control module 10 determines the difference of the current angle and the target angle is not in the fault tolerance range, the motor driving module 12 may control the servo to rotate the current angle to the fault tolerance range.
The computing control module 10 is configured to control the servo to rotate to the target angle via the motor driving module 12.
The computing control module 10 is further configured to initialize the fault tolerance range of the system. The servo is configured to receive the motion-controlling instruction from the computing control module 10 and to perform the motion-controlling instruction via the motor driving module 12.
The fault tolerance range is between the target start angle and the target end angle. The target start angle is the target angle minus the first angle, and the target end angle is obtained by summing the target angle and the second angle. Wherein the first angle and the second angle may be configured and stored in the storage module 13 in advance. In one example, the first angle may be the second angle, while the first angle and the second angle may not be zero degrees simultaneously. In another example, the first angle may be greater than or less than the second angle. Terminating the servo means to stop rotating the servo.
Each of the modules is configured to conduct each of the steps of the anti-shake method described above.
In view of the above, the fault tolerance range is set in each of the servos of the limbs. It is determined whether the angle of servo is within the fault tolerance range when the servo of the limb is not under the control of the main control unit. Such that the shaking of the robot may be avoided when the robot performs actions, so as to reduce power consuming and to extend stand-by time.
The above description is merely the embodiments in the present disclosure, the claim is not limited to the description thereby. The equivalent structure or changing of the process of the content of the description and the figures, or to implement to other technical field directly or indirectly should be included in the claim.
Number | Date | Country | Kind |
---|---|---|---|
201710464448.2 | Jun 2017 | CN | national |