IP Library Granted Patent US 10,967,500
Granted Patent B2
US 10,967,500 · App. 16/212,634 · Granted Apr 6, 2021

Motion control method and apparatus for robot, and robot with the same

Inventors: Youjun Xiong (Shenzhen, CN); Rixin Shen (Shenzhen, CN)
Assignee: UBTECH ROBOTICS CORP
B25J9/0006B25J9/0009B25J9/1633B25J13/085B25J13/088B25J19/02B62D57/032
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,967,500
App. No.
16/212,634
Granted
Apr 6, 2021
Kind
B2
Abstract

The present disclosure provides a motion control method and apparatus and a robot with the same. The method includes: obtaining a first rotational angle P 1 of an output shaft of the servo currently at and a first time T 1 for the output shaft of the servo to perform one rotation; obtaining a second rotational angle P 2 for the output shaft of the servo to reach and a second time T 2 for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ; calculating a motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 ; and controlling the servo to rotate according to the motion curve B(t). The present disclosure solves the instability in the gravity center of the robot.

Claims (251)

1. A computer-implemented motion control method for a servo of a robot, comprising executing on a processor the steps of:

obtaining a first rotational angle P 1 of an output shaft of the servo currently at and a first time T 1 for the output shaft of the servo to perform one rotation;

obtaining a second rotational angle P 2 for the output shaft of the servo to reach and a second time T 2 for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ;

calculating a motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 , wherein the motion curve B(t) indicates every reached rotational angle of the output shaft of the servo during the second time T 2 ; the slope of each point on the motion curve B(t) has the same sign as a first slope K 1 , where the first slope K 1 is the slope of uniform motion determined based on the second rotational angle P 2 , the first rotational angle P 1 , the second time T 2 , and the first time T 1 ; and an absolute value of the slope of the motion curve B(t) at a start rotation phase and an end rotation phase of the servo is less than an absolute value of the first slope K 1 ; and

controlling the servo to rotate according to the motion curve B(t);

wherein the step of calculating the motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 comprises:

setting an angle threshold Y based on the first rotational angle P 1 and the second rotational angle P 2 ;

determining a third rotational angle P 3 based on a sum of the first rotational angle P 1 and the angle threshold Y, and determining a fourth rotational angle P 4 based on a difference between the second rotational angle P 2 and the angle threshold;

determining a first number N of the motion curve B(t) through dividing the second time T 2 by the first time T 1 , wherein the first number N is a total rotation number for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ; and

calculating the motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the third rotational angle P 3 , the fourth rotational angle P 4 , and the first number N through the following formula:

B

(

t

)

=

(

1

-

t

)

3

×

P

1

+

3

(

1

-

t

)

2

×

t

×

P

3

+

3

(

1

-

t

)

×

t

2

×

P

4

+

t

3

×

P

2

n

[

1

,

N

]

,

t

=

n

N

;

and

wherein the step of setting the angle threshold Y based on the first rotational angle P 1 and the second rotational angle P 2 comprises:

calculating a difference between the second rotational angle P 2 and the first rotational angle P 1 ; and

setting the angle threshold Y, wherein the angle threshold Y is not greater than 10% of the difference.

2. The method of claim 1 , wherein the motion curve B(t) comprises a slope increase phase and a slope decrease phase;

the method further comprising setting the slope increase phase and the slope decrease phase according to a change trend of an absolute value of the slope of the points on the motion curve B(t), wherein:

in the slope increase phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is negative, and the difference is greater than a first threshold value V 1 ; and

in the slope decrease phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is positive, and the difference is less than a second threshold value V 2 .

3. The method of claim 1 , wherein the second time T 2 is any integer between 30 and 100 times of the first time T 1 .

4. A motion control apparatus for a servo of a robot, comprising:

one or more processors;

a storage; and

one or more computer programs stored in the storage and executed by the one or more processors;

wherein the motion control apparatus is installed in the robot, and the one or more computer programs comprise:

instructions to obtain a first rotational angle P 1 of an output shaft of the servo currently at and a first time T 1 for the output shaft of the servo to perform one rotation, and obtain a second rotational angle P 2 for the output shaft of the servo to reach and a second time T 2 for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ;

instructions to calculate a motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 , wherein the motion curve B(t) indicates every reached rotational angle of the output shaft of the servo during the second time T 2 ; the slope of each point on the motion curve B(t) has the same sign as a first slope K 1 , where the first slope K 1 is the slope of uniform motion determined based on the second rotational angle P 2 , the first rotational angle P 1 , the second time T 2 , and the first time T 1 ; and an absolute value of the slope of the motion curve B(t) at a start rotation phase and an end rotation phase of the servo is less than an absolute value of the first slope K 1 ; and

instructions to control the servo to rotate according to the motion curve B(t);

wherein the instructions to calculate the motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 comprise:

instructions to set an angle threshold Y based on the first rotational angle P 1 and the second rotational angle P 2 ;

instructions to determine a third rotational angle P 3 based on a sum of the first rotational angle P 1 and the angle threshold Y, and determine a fourth rotational angle P 4 based on a difference between the second rotational angle P 2 and the angle threshold;

instructions to determine a first number N of the motion curve B(t) through dividing the second time T 2 by the first time T 1 , wherein the first number N is a total rotation number for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ; and

instructions to calculate the motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the third rotational angle P 3 , the fourth rotational angle P 4 , and the first number N through the following formula:

B

(

t

)

=

(

1

-

t

)

3

×

P

1

+

3

(

1

-

t

)

2

×

t

×

P

3

+

3

(

1

-

t

)

×

t

2

×

P

4

+

t

3

×

P

2

n

[

1

,

N

]

,

t

=

n

N

;

and

wherein the instructions to set the angle threshold Y based on the first rotational angle P 1 and the second rotational angle P 2 comprise:

instructions to calculate a difference between the second rotational angle P 2 and the first rotational angle P 1 ; and

instructions to set the angle threshold Y, wherein the angle threshold Y is not greater than 10% of the difference.

5. The apparatus of claim 4 , wherein the second time T 2 is any integer between 30 and 100 times of the first time T 1 .

6. The apparatus of claim 4 , wherein the motion curve B(t) comprises a slope increase phase and a slope decrease phase; and

the one or more computer programs further comprise:

instructions to set the slope increase phase and the slope decrease phase according to a change trend of an absolute value of the slope of the points on the motion curve B(t), wherein:

in the slope increase phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is negative, and the difference is greater than a first threshold value V 1 ; and

in the slope decrease phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is positive, and the difference is less than a second threshold value V 2 .

7. A robot comprising:

at least a servo;

one or more processors;

a memory; and

one or more computer programs stored in the memory and executable on the one or more processors, wherein the one or more computer programs comprise:

instructions for obtaining a first rotational angle P 1 of an output shaft of the servo currently at and a first time T 1 for the output shaft of the servo to perform one rotation, and obtain a second rotational angle P 2 for the output shaft of the servo to reach and a second time T 2 for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ;

instructions for calculating a motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the first time T 1 , and the second time T 2 , wherein the motion curve B(t) indicates every reached rotational angle of the output shaft of the servo during the second time T 2 ; the slope of each point on the motion curve B(t) has the same sign as a first slope K 1 , where the first slope K 1 is the slope of uniform motion determined based on the second rotational angle P 2 , the first rotational angle P 1 , the second time T 2 , and the first time T 1 ; and an absolute value of the slope of the motion curve B(t) at a start rotation phase and an end rotation phase of the servo is less than an absolute value of the first slope K 1 ; and

instructions for controlling the servo to rotate according to the motion curve B(t);

wherein the instructions for calculating the motion curve B(t) of the output shaft of the servo comprise:

instructions for setting an angle threshold Y based on the first rotational angle P 1 and the second rotational angle P 2 ;

instructions for determining a third rotational angle P 3 based on a sum of the first rotational angle P 1 and the angle threshold Y, and determine a fourth rotational angle P 4 based on a difference between the second rotational angle P 2 and the angle threshold;

instructions for determining a first number N of the motion curve B(t) through dividing the second time T 2 by the first time T 1 , wherein the first number N is a total rotation number for the output shaft of the servo to rotate from the first rotational angle P 1 to the second rotational angle P 2 ; and

instructions for calculating the motion curve B(t) of the output shaft of the servo based on the first rotational angle P 1 , the second rotational angle P 2 , the third rotational angle P 3 , the fourth rotational angle P 4 , and the first number N through the following formula:

B

(

t

)

=

(

1

-

t

)

3

×

P

1

+

3

(

1

-

t

)

2

×

t

×

P

3

+

3

(

1

-

t

)

×

t

2

×

P

4

+

t

3

×

P

2

n

[

1

,

N

]

,

t

=

n

N

;

and

wherein the instructions for setting the angle threshold Y comprise:

instructions for calculating a difference between the second rotational angle P 2 and the first rotational angle P 1 ; and

instructions for setting the angle threshold Y, wherein the angle threshold Y is not greater than 10% of the difference.

8. The robot of claim 7 , wherein the second time T 2 is any integer between 30 and 100 times of the first time T 1 .

9. The robot of claim 7 , wherein the motion curve B(t) comprises a slope increase phase and a slope decrease phase; and

the one or more computer programs further comprise:

instructions for setting the slope increase phase and the slope decrease phase according to a change trend of an absolute value of the slope of the points on the motion curve B(t), wherein:

in the slope increase phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is negative, and the difference is greater than a first threshold value V 1 ; and

in the slope decrease phase, a difference between an absolute value of the slope of any current point on the motion curve B(t) and an absolute value of the slope of the next point of the current point is positive, and the difference is less than a second threshold value V 2 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2024
From: UBTECH ROBOTICS CORP
To: FUTRONICS (NA) CORPORATION
Reel/Frame 068402/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2018
From: XIONG, YOUJUN; SHEN, RIXIN
To: UBTECH ROBOTICS CORP
Reel/Frame 047736/0715 →
Priority Claims (1)
CN 201711484283.1 · Dec 29, 2017 · national
Continuity (1)
Related Publication 20190202049A1 · Jul 4, 2019