Three-degree-of-freedom control method for robot head posture and related device

By using a lifting mechanism and motor drive in a three-degree-of-freedom parallel neck mechanism, the problem of limited anthropomorphism in robot head movements was solved, achieving more natural head movement control.

CN115990878BActive Publication Date: 2026-04-14SHENZHEN PENGXING INTELLIGENT RES CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHENZHEN PENGXING INTELLIGENT RES CO LTD
Filing Date
2022-12-20
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

The anthropomorphism of existing robot head movements is limited, mainly because the roll axis and pitch axis of the three-degree-of-freedom serial neck mechanism do not intersect, which affects the anthropomorphic effect of head movements.

Method used

A three-degree-of-freedom parallel neck mechanism is adopted. Through the parallel connection of the lifting mechanism and the motor, the desired rotation angle of the motor and the desired movement distance of the push rod of the lifting mechanism are calculated to generate drive commands to control the robot's head posture, thereby performing kinematic solutions when the roll axis, pitch axis and yaw axis are not orthogonal.

Benefits of technology

It improves the anthropomorphism of the robot's head movements and enables flexible head movement control in non-orthogonal axis situations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115990878B_ABST
    Figure CN115990878B_ABST
Patent Text Reader

Abstract

The application discloses a robot head posture three-freedom-degree control method and related equipment, relates to the technical field of robots, and aims to solve the technical problem of how to improve the humanization degree of robot head movement. The robot head posture three-freedom-degree control method comprises the following steps: in response to a head posture control instruction, calculating a desired rotation angle of at least one motor and a push rod desired movement distance of each of at least two lifting mechanisms; obtaining a motor driving instruction according to the desired rotation angle of the at least one motor; obtaining a lifting mechanism driving instruction according to the push rod desired movement distance of each of the at least two lifting mechanisms; driving the at least one motor in response to the motor driving instruction; and driving the at least two lifting mechanisms in response to the lifting mechanism driving instruction, so as to control the head of the robot to move from a current posture to a desired posture.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robotics technology, specifically to a method and related equipment for controlling the three degrees of freedom of robot head posture. Background Technology

[0002] With the development of robotics technology, users have increasingly higher requirements for the human-likeness of robots. Among these requirements, head movements significantly affect the human-likeness of robots, which are driven by the neck mechanism. Currently, most robot neck mechanisms adopt a three-degree-of-freedom serial configuration. In this configuration, the roll and pitch axes do not intersect, which severely affects the human-likeness of the robot's head movements. Summary of the Invention

[0003] In view of this, this application provides a three-degree-of-freedom control method and related equipment for robot head posture, aiming to solve the technical problem of how to improve the anthropomorphism of robot head movements.

[0004] The first aspect of this application provides a three-degree-of-freedom (DOF) control method for robot head posture. The robot includes a head, a body, and a neck connecting the head and the body. The neck includes at least two lifting mechanisms and at least one motor. The at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to the push rods of the at least two lifting mechanisms via at least one connector. The three-DOF control method for robot head posture includes: in response to a head posture control command, calculating the desired rotation angle of the at least one motor and the desired movement distance of the push rods of the at least two lifting mechanisms; obtaining a motor drive command based on the desired rotation angle of the at least one motor; obtaining a lifting mechanism drive command based on the desired movement distance of the push rods of the at least two lifting mechanisms; driving the at least one motor in response to the motor drive command; and driving the at least two lifting mechanisms in response to the lifting mechanism drive command to control the robot's head to move from the current posture to the desired posture.

[0005] The robot head posture three-degree-of-freedom control method of this embodiment first responds to the head posture control command by calculating the desired rotation angle of at least one motor and the desired movement distance of the push rods of at least two lifting mechanisms. Then, it obtains motor drive commands based on the desired rotation angle of at least one motor and lifting mechanism drive commands based on the desired movement distance of the push rods of at least two lifting mechanisms. Finally, it drives at least one motor based on the motor drive commands and at least two lifting mechanisms based on the lifting mechanism drive commands, thereby controlling the robot's head to move from the current posture to the desired posture. The kinematic solution of the robot's neck mechanism can be performed when the roll axis, pitch axis and yaw axis of the three-degree-of-freedom parallel configuration neck mechanism are orthogonal or non-orthogonal, thereby improving the anthropomorphism of the robot's head movements.

[0006] A second aspect of this application provides a robot including a processor, a head, a body, and a neck connecting the head and the body. The neck includes at least two lifting mechanisms and at least one motor. The at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to the push rods of the at least two lifting mechanisms via at least one connector. The robot is configured to: calculate, in response to a head posture control command, a desired rotation angle of the at least one motor and a desired movement distance of the push rods of the at least two lifting mechanisms; obtain a motor drive command based on the desired rotation angle of the at least one motor; obtain a lifting mechanism drive command based on the desired movement distance of the push rods of the at least two lifting mechanisms; drive the at least one motor in response to the motor drive command; and drive the at least two lifting mechanisms in response to the lifting mechanism drive command to control the robot's head to move from a current posture to a desired posture.

[0007] A third aspect of this application provides a robot control terminal, including a processor. The control terminal is communicatively connected to the robot. The robot includes a head, a body, and a neck connecting the head and the body. The neck includes at least two lifting mechanisms and at least one motor. The at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to the push rods of the at least two lifting mechanisms via at least one connector. The control terminal is configured to: calculate, in response to a head posture control command, a desired rotation angle of at least one motor in the robot's neck and a desired movement distance of the push rods of each of the at least two lifting mechanisms; obtain a motor drive command based on the desired rotation angle of the at least one motor, the motor drive command being used to drive the at least one motor; obtain lifting mechanism drive commands based on the desired movement distance of the push rods of each of the at least two lifting mechanisms, the lifting mechanism drive commands being used to drive the at least two lifting mechanisms; and send the motor drive commands and lifting mechanism drive commands to the robot to control the robot's head to move from the current posture to the desired posture.

[0008] It is understood that the specific implementation methods and beneficial effects of the robot control terminal provided in the second aspect and the robot provided in the third aspect of this application are largely the same as the specific implementation methods and beneficial effects of the robot head posture three-degree-of-freedom control method provided in the first aspect of this application, and will not be repeated here. Attached Figure Description

[0009] Figure 1 This is a structural block diagram of a robot provided in one embodiment of this application.

[0010] Figure 2 This is a schematic diagram of the neck structure of a robot provided in one embodiment of this application.

[0011] Figure 3 This is a flowchart of a three-degree-of-freedom control method for robot head posture provided in one embodiment of this application.

[0012] Figure 4 This is one embodiment provided by this application. Figure 3 The flowchart of the sub-steps of step S301 is shown.

[0013] Figure 5 This is one embodiment provided by this application. Figure 4 The flowchart of the sub-step of step S406 is shown.

[0014] Figure 6 This is one embodiment provided by this application. Figure 3 The flowchart of the sub-step of step S306 is shown.

[0015] Figure 7 This is a structural block diagram of a control terminal provided in one embodiment of this application.

[0016] Figure 8 This is a structural block diagram of a multi-legged robot provided in one embodiment of this application.

[0017] Figure 9 This is a schematic diagram of a scenario where a control terminal controls a multi-legged robot according to one embodiment of this application. Detailed Implementation

[0018] It should be noted that in the embodiments of this application, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone, where A and B can be singular or plural. The terms "first," "second," "third," "fourth," etc. (if present) in the specification, claims, and drawings of this application are used to distinguish similar objects, not to describe a specific order or sequence.

[0019] It should also be noted that the methods disclosed in the embodiments of this application or the methods shown in the flowcharts include one or more steps for implementing the method. Without departing from the scope of the claims, the execution order of multiple steps can be interchanged, and some steps can also be deleted.

[0020] The following describes some of the technical terms used in the embodiments of this application.

[0021] 1. Kinematic solution

[0022] The robot's head movements are driven by the neck mechanism. Before the neck mechanism can drive head movement, kinematic solutions for the neck mechanism are required. Kinematic solutions include forward kinematics solutions and inverse kinematics solutions. The process of converting the rotation angle of the robot's neck motors or the movement distance of the lifting mechanism's push rod into the robot's head posture is called the forward kinematics solution. The process of converting the robot's head posture into the rotation angle of the robot's neck motors or the movement distance of the lifting mechanism's push rod is called the inverse kinematics solution.

[0023] 2. Tandem neck mechanism

[0024] A serial neck mechanism refers to a robot's neck in which at least two lifting mechanisms are connected in series. In a three-degree-of-freedom serial neck mechanism, the roll and pitch axes do not intersect, severely impacting the anthropomorphism of the robot's head movements.

[0025] 3. Parallel configuration neck mechanism

[0026] A parallel neck mechanism refers to a robot's neck in which at least two lifting mechanisms are connected in parallel. The roll and pitch axes of a three-DOF parallel neck mechanism intersect at a single point, effectively improving the anthropomorphism of the robot's head movements. However, the roll, pitch, and yaw axes of a three-DOF parallel neck mechanism are orthogonal, leading to a simplistic and limited kinematic solution process.

[0027] Based on this, this application provides a three-degree-of-freedom control method and related equipment for robot head posture. First, in response to the head posture control command, the desired rotation angle of at least one motor and the desired movement distance of the push rods of at least two lifting mechanisms are calculated. Then, motor drive commands are obtained based on the desired rotation angle of at least one motor, and lifting mechanism drive commands are obtained based on the desired movement distance of the push rods of at least two lifting mechanisms. At least one motor is driven according to the motor drive commands, and at least two lifting mechanisms are driven according to the lifting mechanism drive commands, thereby controlling the robot's head to move from the current posture to the desired posture. This method can perform kinematic solutions on the robot's neck mechanism when the roll axis, pitch axis, and yaw axis of the three-degree-of-freedom parallel neck mechanism are not orthogonal, thereby improving the anthropomorphism of the robot's head movements.

[0028] The robot described in the embodiments of this application will be described below.

[0029] Figure 1 This is a structural block diagram of a robot 10 provided in one embodiment of this application.

[0030] See also Figure 1The robot 10 includes a head 100, a body 200, a neck 300, and a processor 400. The neck 300 connects the head 100 and the body 200. The neck 300 includes at least two lifting mechanisms 310, at least one motor 320, and at least one connector 330. The at least two lifting mechanisms 310 are connected in parallel, and the at least one motor 320 is connected to the at least two lifting mechanisms 310 via the at least one connector 330. Each lifting mechanism 310 includes a push rod 311 and at least one motor 312.

[0031] In this embodiment, the robot 10 can respond to the head posture control command via the processor 400, calculate the desired rotation angle of at least one motor 320 and the desired movement distance of the push rods 311 of each of the at least two lifting mechanisms 310, and then generate motor drive commands and lifting mechanism drive commands, and then drive at least one motor 320 and at least two lifting mechanisms 310 respectively.

[0032] Specifically, robot 10 can respond to motor drive commands via processor 400, driving at least one motor 320 to rotate, thereby causing neck 300 to rotate around the yaw axis. Robot 10 can also respond to lifting mechanism drive commands via processor 400, driving at least two motors 312 within lifting mechanisms 310 to rotate, thereby moving push rods 311 and causing neck 300 to rotate around the roll axis and / or pitch axis. The rotation of at least one motor 320 and the movement of push rods 311 within at least two lifting mechanisms 310 cause neck 300 to rotate around at least one of the yaw, roll, and pitch axes, thereby moving the head 100 connected to neck 300.

[0033] It is understood that the movement of push rod 311 may include extension or retraction. The movement of head 100 may include swinging back and forth, swinging left and right, or rotating.

[0034] For example, when a user issues a head posture control command to the robot 10 via voice or touch, the robot 10, in response to the head posture control command, calculates the desired rotation angle of at least one motor 320 and the desired movement distance of the push rods 311 of each of the at least two lifting mechanisms 310. The robot 10 then generates motor drive commands based on the desired rotation angle of the at least one motor 320 and lifting mechanism drive commands based on the desired movement distance of the push rods 311 of each of the at least two lifting mechanisms 310, through the processor 400. Then, in response to the motor drive commands, the robot 10 drives at least one motor 320 to rotate, causing the neck 300 to rotate around the yaw axis, thereby causing the head 100 to rotate. The robot 10 then responds to the lifting mechanism drive command via the processor 400, driving the motors 312 inside at least two lifting mechanisms 310 to rotate, causing the push rods 311 of each of the at least two lifting mechanisms 310 to extend or shorten, thereby causing the neck 300 to rotate around the roll axis, and then causing the head 100 to swing left and right; and / or, causing the neck 300 to rotate around the pitch axis, and then causing the head 100 to swing back and forth.

[0035] The neck of the robot in this embodiment will be described below using a three-degree-of-freedom parallel neck mechanism as an example.

[0036] Figure 2 This is a schematic diagram of the neck 300 of a robot 10 provided in one embodiment of this application.

[0037] See also Figure 2The neck 300 of robot 10 is a three-degree-of-freedom parallel neck mechanism. The neck 300 includes two lifting mechanisms 310, a motor 320, a connector 330, and a base 340. The two lifting mechanisms 310 include a left lifting mechanism 3101 and a right lifting mechanism 3102. The left lifting mechanism 3101 and the right lifting mechanism 3102 are connected in parallel, and the motor 320 connects the left lifting mechanism 3101 and the right lifting mechanism 3102 via the connector 330. The left lifting mechanism 3101 includes a left push rod 3111 and at least one motor (not shown). The right lifting mechanism 3102 includes a right push rod 3112 and at least one motor (not shown). The hinge point between the left push rod 3111 and the connector 330 is the upper left hinge point 3301, and the hinge point between the left push rod 3111 and the base 340 is the lower left hinge point 3401. The hinge point between the right push rod 3112 and the connecting piece 330 is the upper right hinge point 3302, and the hinge point between the right push rod 3112 and the base 340 is the lower right hinge point 3402. The direction perpendicular to the left push rod 3111 and the right push rod 3112 is the pitch axis direction. The roll axis direction is orthogonal to the pitch axis direction and is parallel to the lower surface of the base 340. The direction perpendicular to the upper and lower surfaces of the motor 320 is the yaw axis direction. It can be seen that the roll axis direction and the yaw axis direction are not orthogonal.

[0038] In this embodiment, the robot 10 can calculate the desired rotation angle of the motor 320, the desired movement distance of the left push rod 3111, and the desired movement distance of the right push rod 3112 by constructing three local coordinate systems. The three local coordinate systems include a base coordinate system, a neck coordinate system, and a head coordinate system. The origin of the base coordinate system is located near the base 340, and the base coordinate system includes X0, Y0, and Z0 axes, which are orthogonal to each other. The X0 and Y0 axes are parallel to the lower surface of the base 340, and the Z0 axis is perpendicular to the lower surface of the base 340. The origin of the neck coordinate system is located near the connector 330, and the neck coordinate system includes X1, Y1, and Z1 axes, which are orthogonal to each other. The Y1 axis is parallel to the pitch axis, and the Z1 axis is parallel to the yaw axis. The origin of the head coordinate system is located near motor 320. The head coordinate system includes the X2 axis, Y2 axis and Z2 axis. The three axes are orthogonal to each other. The X2 axis, Y2 axis and Z2 axis are parallel to the X0 axis, Y0 axis and Z0 axis of the basic coordinate system, respectively.

[0039] The following is based on Figure 2 The three-degree-of-freedom control method for robot head posture in this application embodiment will be described using the neck 300 of the robot 10 shown as an example.

[0040] Figure 3 This is a flowchart of a three-degree-of-freedom control method for robot head posture provided in one embodiment of this application.

[0041] See also Figure 3The three-degree-of-freedom control method for robot head posture may include the following steps:

[0042] S301, in response to the head posture control command, calculates the desired rotation angle of the motor 320, the desired movement distance of the left push rod 3111 of the left lifting mechanism 3101, and the desired movement distance of the right push rod 3112 of the right lifting mechanism 3102.

[0043] In this embodiment, the head posture control command is used to control the head 100 of the robot 10 to move from the current posture to the desired posture. The head posture control command includes the desired head posture, which refers to the desired posture of the head 100 of the robot 10 in the head coordinate system. The robot 10 can first identify the desired head posture from the head posture control command, and then calculate the desired rotation angle of the motor 320, the desired movement distance of the left push rod 3111 of the left lifting mechanism 3101, and the desired movement distance of the right push rod 3112 of the right lifting mechanism 3102 based on the desired head posture through inverse motion solution.

[0044] It can be understood that the rotation of motor 320 to the desired rotation angle can drive the neck 300 of robot 10 to rotate around the yaw axis, thereby causing the head 100 to rotate. The left lifting mechanism 3101 moving to the left push rod 3111 by the desired distance, and the right lifting mechanism 3102 moving to the right push rod 3112 by the desired distance, can drive the neck 300 to rotate around the roll axis, thereby causing the head 100 to swing left and right; and / or, can drive the neck 300 to rotate around the pitch axis, thereby causing the head 100 to swing back and forth.

[0045] For example, when motor 320 rotates clockwise, neck 300 rotates clockwise around the yaw axis, thereby causing head 100 to rotate clockwise. When motor 320 rotates counterclockwise, neck 300 rotates counterclockwise around the yaw axis, thereby causing head 100 to rotate counterclockwise. When the extension distance of left push rod 3111 of left lifting mechanism 3101 is greater than the extension distance of right push rod 3112 of right lifting mechanism 3102, neck 300 rotates clockwise around the roll axis, thereby causing head 100 to swing to the right. When the extension distance of left push rod 3111 of left lifting mechanism 3101 is less than the extension distance of right push rod 3112 of right lifting mechanism 3102, neck 300 rotates counterclockwise around the roll axis, thereby causing head 100 to swing to the left. When both the left push rod 3111 of the left lifting mechanism 3101 and the right push rod of the right lifting mechanism 3102 are extended, the neck 300 rotates counterclockwise around the pitch axis, thereby causing the head 100 to swing backward. When both the left push rod 3111 of the left lifting mechanism 3101 and the right push rod of the right lifting mechanism 3102 are shortened, the neck 300 rotates clockwise around the pitch axis, thereby causing the head 100 to swing forward.

[0046] S302, obtain motor drive commands based on the desired rotation angle of motor 320.

[0047] In this embodiment, when the robot 10 calculates the desired rotation angle of the motor 320, it can generate a motor drive command. The motor drive command is used to drive the motor 320 to rotate towards the desired rotation angle.

[0048] S303, obtain the lifting mechanism drive command based on the expected movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the expected movement distance of the right push rod 3112 of the right lifting mechanism 3102.

[0049] In this embodiment, when the robot 10 calculates the desired movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the desired movement distance of the right push rod 3112 of the right lifting mechanism 3102, it can generate lifting mechanism drive commands. These lifting mechanism drive commands are used to drive the left lifting mechanism 3101 to move the desired movement distance of the left push rod 3111, and to drive the right lifting mechanism 3102 to move the desired movement distance of the right push rod 3112.

[0050] S304, in response to motor drive commands and lifting mechanism drive commands, controls the head 100 of robot 10 to move from the current posture to the desired posture.

[0051] In this embodiment, the robot 10 responds to the motor drive command and drives the motor 320 to rotate to the desired rotation angle; responds to the lifting mechanism drive command and drives the left lifting mechanism 3101 to move to the left push rod 3111 by the desired distance, and drives the right lifting mechanism 3102 to move to the right push rod 3112 by the desired distance, thereby controlling the head 100 of the robot 10 to move from the current posture to the desired posture.

[0052] For example, suppose the motor drive command is "motor 320 rotates 60 degrees clockwise", and the lifting mechanism drive command is "the left push rod 3111 of the left lifting mechanism 3101 extends 30 cm, and the right push rod 3112 of the right lifting mechanism 3102 extends 20 cm". In response to the motor drive command, robot 10 drives motor 320 to rotate 60 degrees clockwise, causing the neck 300 to rotate 60 degrees clockwise around the yaw axis, thereby causing the head 100 to rotate 60 degrees clockwise. In response to the lifting mechanism drive command, robot 10 drives the left push rod 3111 of the left lifting mechanism 3101 to extend by 30 cm and the right push rod 3112 of the right lifting mechanism 3102 to extend by 20 cm, causing the neck 300 to rotate clockwise around the roll axis by the desired angle, thereby causing the head 100 to swing to the right by the desired angle; at the same time, it drives the neck 300 to rotate counterclockwise around the pitch axis by the desired angle, thereby causing the head 100 to swing backward by the desired angle.

[0053] S305 detects the rotation angle of motor 320, the movement distance of left push rod 3111 of left lifting mechanism 3101, and the movement distance of right push rod 3112 of right lifting mechanism 3102.

[0054] In this embodiment, the robot 10 can detect the rotation angle of the motor 320 in real time or periodically, as well as the movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the movement distance of the right push rod 3112 of the right lifting mechanism 3102 through sensors.

[0055] S306, based on the detected rotation angle of motor 320, the movement distance of left push rod 3111 of left lifting mechanism 3101 and the movement distance of right push rod 3112 of right lifting mechanism 3102, calculate the current posture of head 100 of robot 10.

[0056] In this embodiment, after detecting the rotation angle of the motor 320, the movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the movement distance of the right push rod 3112 of the right lifting mechanism 3102, the robot 10 can calculate the current posture of the head 100 of the robot 10 through forward motion solution based on the rotation angle of the motor 320 and the movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the movement distance of the right push rod 3112 of the right lifting mechanism 3102.

[0057] S307, determine whether the current posture of the head 100 of robot 10 has reached the desired posture.

[0058] In this embodiment, when the head 100 of the robot 10 moves from the current posture to the desired posture, the current posture of the head 100 is constantly changing. The robot 10 can periodically calculate the current posture of the head 100 and detect whether the current posture of the head 100 has reached the desired posture.

[0059] When the current posture of the head 100 of robot 10 reaches the desired posture, return to step S301. That is, receive the head posture control command in the next control cycle, and continue to respond to the head posture control command to calculate the desired rotation angle of motor 320, the desired movement distance of the left push rod 3111 of left lifting mechanism 3101 and the desired movement distance of the right push rod 3112 of right lifting mechanism 3102.

[0060] When the current posture of the head 100 of robot 10 does not reach the desired posture, the process returns to step S305. That is, it waits for the head 100 to continue moving towards the desired posture, and then continues to detect the rotation angle of motor 320, the movement distance of the left push rod 3111 of left lifting mechanism 3101 and the movement distance of the right push rod 3112 of right lifting mechanism 3102, and then calculates the current posture of the head 100 of robot 10 until the current posture of the head 100 reaches the desired posture.

[0061] It is understandable that robot 10 has multiple control cycles T, and the control cycle T can be set as needed.

[0062] For example, a control period T may include at least one first control period T1, at least one second control period T2, and at least one third control period T3. There is at least a two-control-per-cycle interval T between any two adjacent first control periods T1. The second control period T2 is the time period following the first control period T1. For example, the second control period T2 and the first control period T2 can be two consecutive time periods, meaning the second control period T2 begins immediately after the first control period T1. The second control period T2 may also be separated from the first control period T1 by at least one control period T. For example, the second control period T2 may be located between two adjacent first control periods T1, or between two first control periods T1 that are spaced apart. That is, at least one second control period T2 may be included between two adjacent first control periods T1, or it may not include a second control period T2. Similarly, the third control period T3 is the time period following the second control period T2. For example, the second control period T2 and the third control period T3 can be two consecutive time periods, meaning the third control period T3 begins immediately after the second control period T2. The second control period T2 may also be separated from the third control period T3 by at least one control period T. For example, the third control cycle T3 can be located between two adjacent second control cycles T2, or it can be located between two second control cycles T2 that are spaced apart. That is, at least one third control cycle T3 may be included between two adjacent second control cycles T2, or it may not include a third control cycle T3.

[0063] Figure 4 This is one embodiment provided by this application. Figure 3 The flowchart of the sub-steps of step S301 is shown.

[0064] See also Figure 4 In response to head posture control commands, robot 10 calculates the desired rotation angle of motor 320, the desired movement distance of left push rod 3111 of left lifting mechanism 3101, and the desired movement distance of right push rod 3112 of right lifting mechanism 3102, which may include the following steps:

[0065] S401, obtain the desired head posture of robot 10 according to the head posture control command.

[0066] In this embodiment, the head posture control command includes the desired head posture. The desired head posture includes the head roll angle r2, the head pitch angle p2, and the head yaw angle y2. The head roll angle r2 refers to the rotation angle of the robot 10's head 100 around the X2 axis of the head coordinate system, the head pitch angle p2 refers to the rotation angle of the robot 10's head 100 around the Y2 axis of the head coordinate system, and the head yaw angle y2 refers to the rotation angle of the robot 10's head 100 around the Z2 axis of the head coordinate system.

[0067] For example, when a user issues a head posture control command to the robot 10 via voice or touch, such as "tilt the head forward 30 degrees, tilt it to the left 45 degrees, and rotate it clockwise 60 degrees", the robot 10 can identify the desired head posture from the head posture control command. The desired head posture includes a head roll angle r2 = -45°, a head pitch angle p2 = 30°, and a head yaw angle y2 = 60°.

[0068] It can be understood that the head roll angle r2, head pitch angle p2, and head yaw angle y2 are all vector values, and the direction of these vector values ​​can be set as needed. For example, when the head wobbles to the right, the head roll angle r2 is positive; when the head wobbles to the left, the head roll angle r2 is negative. When the head wobbles forward, the head pitch angle p2 is positive; when the head wobbles backward, the head pitch angle p2 is negative. When the head rotates clockwise, the head yaw angle y2 is positive; when the head rotates counterclockwise, the head yaw angle y2 is negative.

[0069] S402 transforms the head roll angle r2, head pitch angle p2, and head yaw angle y2 into a homogeneous coordinate transformation matrix for the desired head attitude.

[0070] In this embodiment, after the robot 10 identifies the desired head posture, it can transform the head roll angle r2, head pitch angle p2 and head yaw angle y2 into a homogeneous coordinate transformation matrix of the desired head posture through homogeneous coordinate transformation, thereby enabling coordinate system transformation of the desired head posture.

[0071] For example, robot 10 can convert the head roll angle r2, head pitch angle p2, and head yaw angle y2 into the following homogeneous coordinate transformation matrix of the desired head posture:

[0072]

[0073] Among them, T head Let be the homogeneous coordinate transformation matrix of the desired head attitude; sr2 is the sine of the head roll angle r2, cr2 is the cosine of the head roll angle r2, sp2 is the sine of the head pitch angle p2, cp2 is the cosine of the head pitch angle p2, sy2 is the sine of the head yaw angle y2, cy2 is the cosine of the head yaw angle y2; (x2, y2, z2) are the coordinates of a reference point of the head 100 after transformation from the head coordinate system to the base coordinate system.

[0074] S403 transforms the homogeneous coordinate transformation matrix of the desired head posture into the first homogeneous coordinate transformation matrix of the desired neck posture through coordinate transformation.

[0075] In this embodiment, after the robot 10 obtains the homogeneous coordinate transformation matrix of the desired head posture, it transforms the desired head posture in the head coordinate system to the desired neck posture in the neck coordinate system according to the coordinate transformation relationship between the head coordinate system and the neck coordinate system.

[0076] For example, robot 10 can use matrix transformation to convert the homogeneous coordinate transformation matrix of the desired head pose into the first homogeneous coordinate transformation matrix of the desired neck pose as follows:

[0077] T neck =T head ×T headtoneck

[0078] Among them, T neck Let T be the first homogeneous coordinate transformation matrix for the desired neck posture. head Let T be the homogeneous coordinate transformation matrix of the desired head pose. headtoneck This is the coordinate transformation matrix for transforming from the head coordinate system to the neck coordinate system.

[0079] S404 transforms the first homogeneous coordinate transformation matrix of the desired neck posture into the neck roll angle r1, neck pitch angle p1, and neck yaw angle y1.

[0080] In this embodiment, after obtaining the first homogeneous coordinate transformation matrix of the desired neck posture, the robot 10 can convert the first homogeneous coordinate transformation matrix of the desired neck posture into the neck roll angle r1, neck pitch angle p1, and neck yaw angle y1 through the inverse transformation of the homogeneous coordinate transformation matrix. Among them, the neck yaw angle y1 is the desired rotation angle of the motor 320.

[0081] S405 transforms the neck roll angle r1 and neck pitch angle p1 into the second homogeneous coordinate transformation matrix of the desired neck posture.

[0082] In this embodiment, after the robot 10 obtains the neck roll angle r1, neck pitch angle p1 and neck yaw angle y1, it sets the neck yaw angle y1 to 0, and then transforms the neck roll angle r1 and neck pitch angle p1 into the second homogeneous coordinate transformation matrix of the desired neck posture through homogeneous coordinate transformation, thereby enabling coordinate system transformation of the desired neck posture.

[0083] For example, robot 10 can transform the neck roll angle r1 and neck pitch angle p1 into the following second homogeneous coordinate transformation matrix of the desired neck posture:

[0084]

[0085] Among them, T' neckLet be the second homogeneous coordinate transformation matrix for the desired neck posture; sr1 is the sine of the neck roll angle r1, cr1 is the cosine of the neck roll angle r1, sp1 is the sine of the neck pitch angle p1, and cp1 is the cosine of the neck pitch angle p1; (x n y n , z n ) represents the coordinates of a reference point at the head (100) transformed from the neck coordinate system to the base coordinate system.

[0086] S406, based on the second homogeneous coordinate transformation matrix of the desired neck posture, calculate the desired movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the desired movement distance of the right push rod 3112 of the right lifting mechanism 3102.

[0087] In this embodiment, after the robot 10 obtains the second homogeneous coordinate transformation matrix of the desired neck posture, it can transform the desired head posture from the neck coordinate system to the base coordinate system through matrix translation transformation. Then, in the base coordinate system, the desired movement distance of the left push rod 3111 of the left lifting mechanism 3101 is obtained by calculating the desired movement distance of the upper left hinge point 3301 of the left push rod 3111 of the left lifting mechanism 3101, and the desired movement distance of the right push rod 3112 of the right lifting mechanism 3102 is obtained by calculating the desired movement distance of the upper right hinge point 3302 of the right push rod 3112 of the right lifting mechanism 3102.

[0088] It is understandable that since the positions of the lower left hinge point 3401 of the left push rod 3111 and the lower right hinge point 3402 of the right push rod 3112 are both fixed, the expected movement distance of the upper left hinge point 3301 of the left push rod 3111 is the expected movement distance of the left push rod 3111, and the expected movement distance of the upper right hinge point 3302 of the right push rod 3112 is the expected movement distance of the right push rod 3112.

[0089] Figure 5 This is one embodiment provided by this application. Figure 4 The flowchart of the sub-step of step S406 is shown.

[0090] See also Figure 5 The robot 10 calculates the expected movement distance of the left push rod 3111 of the left lifting mechanism 3101 and the expected movement distance of the right push rod 3112 of the right lifting mechanism 3102 based on the second homogeneous coordinate transformation matrix of the desired neck posture. This may include the following steps:

[0091] S501, based on the second homogeneous coordinate transformation matrix of the desired neck posture, calculate the desired positions of the upper left hinge point 3301 and the lower left hinge point 3401 of the left push rod 3111 of the left lifting mechanism 3101, and the desired positions of the upper right hinge point 3302 and the lower right hinge point 3402 of the right push rod 3112 of the right lifting mechanism 3102.

[0092] In this embodiment, since the coordinates of the lower left hinge point 3401 of the left push rod 3111 and the lower right hinge point 3402 of the right push rod 3112 in the basic coordinate system are both fixed, the robot 10 can determine the coordinates of the lower left hinge point 3401 in the basic coordinate system, i.e., the position of the lower left hinge point 3401, before the left push rod 3111 moves; and determine the coordinates of the lower right hinge point 3402 in the basic coordinate system, i.e., the position of the lower right hinge point 3402, before the right push rod 3112 moves. After the left push rod 3111 moves, the robot 10 can directly determine the position of the lower left hinge point 3401 of the left push rod 3111 before the movement as the desired position of the lower left hinge point 3401 of the left push rod 3111 after the movement. After the right push rod 3112 moves, the robot 10 can directly determine the position of the lower right hinge point 3402 of the right push rod 3112 before the movement as the desired position of the lower right hinge point 3402 of the right push rod 3112 after the movement.

[0093] Robot 10 can calculate the desired position of the upper left hinge point 3301 of the left push rod 3111 of the left lifting mechanism 3101 and the desired position of the upper right hinge point 3302 of the right push rod 3112 of the right lifting mechanism 3102 in the basic coordinate system through matrix translation transformation.

[0094] For example, robot 10 can calculate the desired position of the upper left hinge point 3301 of the left push rod 3111 of the left lifting mechanism 3101 by the following matrix translation transformation:

[0095]

[0096] Among them, T hinge,left For the left upper hinge point 3301 matrix of the left push rod 3111 of the left lifting mechanism 3101, T' neck T is the second homogeneous coordinate transformation matrix for the desired neck posture. necktohinge,left Let T be the translation transformation matrix from the origin of the neck coordinate system to the upper left hinge point 3301 of the left push rod 3111. necktohinge,left It is fixed; sr1 is the sine of the neck roll angle r1, cr1 is the cosine of the neck roll angle r1, sp1 is the sine of the neck pitch angle p1, and cp1 is the cosine of the neck pitch angle p1; (x n,left y n,left , z n,left ) represents the coordinates of the upper left hinge point 3301 of the left push rod 3111 in the basic coordinate system, that is, the desired position of the upper left hinge point 3301 of the left push rod 3111.

[0097] Robot 10 can calculate the desired position of the upper right hinge point 3302 of the right push rod 3112 of the right lifting mechanism 3102 by the following matrix translation transformation:

[0098]

[0099] Among them, T hinge,right For the matrix of the upper right hinge point 3302 of the right push rod 3112 of the right lifting mechanism 3102, T' neck T is the second homogeneous coordinate transformation matrix for the desired neck posture. necktohinge,right Let T be the translation transformation matrix from the origin of the neck coordinate system to the upper right hinge point 3302 of the right push rod 3112. necktohinge,right It is fixed; sr1 is the sine of the neck roll angle r1, cr1 is the cosine of the neck roll angle r1, sp1 is the sine of the neck pitch angle p1, and cp1 is the cosine of the neck pitch angle p1; (x n,right y n,right , z n,right ) represents the coordinates of the upper right hinge point 3302 of the right push rod 3112 in the basic coordinate system, that is, the desired position of the upper right hinge point 3302 of the right push rod 3112.

[0100] S502, detect the first distance between the left upper hinge point 3301 and the left lower hinge point 3401 of the left push rod 3111 of the left lifting mechanism 3101, and the first distance between the right upper hinge point 3302 and the right lower hinge point 3402 of the right push rod 3112 of the right lifting mechanism 3102.

[0101] In this embodiment, the robot 10 can detect the positions of the upper left hinge point 3301 and the lower left hinge point 3401 of the left push rod 3111 of the left lifting mechanism 3101 in the basic coordinate system in real time or periodically using sensors, and detect the positions of the upper right hinge point 3302 and the lower right hinge point 3402 of the right push rod 3112 of the right lifting mechanism 3102 in the basic coordinate system. Then, the robot 10 calculates the first distance of the left push rod 3111 between the positions of the upper left hinge point 3301 and the lower left hinge point 3401, and calculates the first distance of the right push rod 3112 between the positions of the upper right hinge point 3302 and the lower right hinge point 3402.

[0102] S503, calculate the second distance between the desired positions of the left upper hinge point 3301 and the left lower hinge point 3401 of the left push rod 3111 of the left lifting mechanism 3101, and the second distance between the desired positions of the right upper hinge point 3302 and the right lower hinge point 3402 of the right push rod 3112 of the right lifting mechanism 3102.

[0103] In this embodiment, after calculating the desired positions of the upper left hinge point 3301 and the lower left hinge point 3401 of the left push rod 3111 of the left lifting mechanism 3101, the robot 10 calculates the second distance between the desired positions of the upper left hinge point 3301 and the lower left hinge point 3401 of the left push rod 3111. After calculating the desired positions of the upper right hinge point 3302 and the lower right hinge point 3402 of the right push rod 3112 of the right lifting mechanism 3102, the robot 10 calculates the second distance between the desired positions of the upper right hinge point 3302 and the lower right hinge point 3402 of the right push rod 3112.

[0104] It can be understood that the first distance of the left push rod 3111 is the distance moved by the left push rod 3111 within the first control cycle, and the second distance of the left push rod 3111 is the expected distance moved by the left push rod 3111 within the second control cycle. In some embodiments, the first distance of the left push rod 3111 can be 0. The first distance of the right push rod 3112 is the distance moved by the right push rod 3112 within the first control cycle, and the second distance of the right push rod 3112 is the expected distance moved by the right push rod 3112 within the second control cycle. In some embodiments, the first distance of the right push rod 3112 can be 0. The second control cycle is the time period following the first control cycle.

[0105] S504, subtract the second distance of the left push rod 3111 from the first distance of the left push rod 3111 to obtain the expected movement distance of the left push rod 3111 of the left lifting mechanism 3101, and subtract the second distance of the right push rod 3112 from the first distance of the right push rod 3112 to obtain the expected movement distance of the right push rod 3112 of the right lifting mechanism 3102.

[0106] In this embodiment, after calculating the first distance and the second distance of the left push rod 3111, the robot 10 subtracts the second distance from the first distance, that is, it subtracts the expected distance of the left push rod 3111 within the second control cycle from the distance it moves within the first control cycle, thereby obtaining the expected movement distance of the left push rod 3111 during the time period from the first control cycle to the second control cycle. Similarly, after calculating the first distance and the second distance of the right push rod 3112, the robot 10 subtracts the second distance from the first distance, that is, it subtracts the expected distance of the right push rod 3112 within the second control cycle from the distance it moves within the first control cycle, thereby obtaining the expected movement distance of the right push rod 3112 during the time period from the first control cycle to the second control cycle.

[0107] For example, robot 10 can calculate the expected movement distance of the left push rod 3111 of the left lifting mechanism 3101 using formula (1):

[0108] L left =D left2 -D left1 (1)

[0109] Among them, L left For the desired movement distance of the left push rod 3111, D left2 For the second distance of the left pusher 3111, D left1 The first distance is for the left push rod 3111.

[0110] Robot 10 can calculate the expected movement distance of the right push rod 3112 of the right lifting mechanism 3102 using formula (2):

[0111] L right =D right2 -D right1 (2)

[0112] Among them, L right D represents the desired distance traveled by the right push rod 3112. right2 For the second distance of the right push rod 3112, D right1 The first distance is for the right push rod 3112.

[0113] Understandable, L left D left2 D left1 and L right D right2 D right1 All distances are Euclidean distances.

[0114] Figure 6 This is one embodiment provided by this application. Figure 3 The flowchart of the sub-step of step S306 is shown.

[0115] See also Figure 6 The robot 10 calculates the current posture of its head 100 based on the detected rotation angle of the motor 320, the movement distance of the left push rod 3111 of the left lifting mechanism 3101, and the movement distance of the right push rod 3112 of the right lifting mechanism 3102. This calculation may include the following steps:

[0116] S601, calculate the deviation of the left push rod 3111 movement distance between the left push rod 3111 movement distance of the left lifting mechanism 3101 and the expected movement distance of the left push rod 3111, and the deviation of the right push rod 3112 movement distance between the right push rod 3112 movement distance of the right lifting mechanism 3102 and the expected movement distance of the right push rod 3112.

[0117] In this embodiment, after detecting the movement distance of the left push rod 3111 of the left lifting mechanism 3101, the robot 10 calculates the deviation between the movement distance of the left push rod 3111 and the expected movement distance of the left push rod 3111, thereby determining the accuracy of the movement of the left push rod 3111 based on the deviation. Similarly, after detecting the movement distance of the right push rod 3112 of the right lifting mechanism 3102, the robot 10 calculates the deviation between the movement distance of the right push rod 3112 and the expected movement distance of the right push rod 3112, thereby determining the accuracy of the movement of the right push rod 3112 based on the deviation.

[0118] S602, determine whether the movement distance deviation of the left push rod 3111 and the movement distance deviation of the right push rod 3112 are both less than the accuracy threshold.

[0119] In this embodiment, after calculating the movement distance deviation of the left push rod 3111, the robot 10 determines whether the movement distance deviation of the left push rod 3111 is less than the accuracy threshold. After calculating the movement distance deviation of the right push rod 3112, the robot 10 determines whether the movement distance deviation of the right push rod 3112 is less than the accuracy threshold.

[0120] It is understandable that the accuracy threshold can be set as needed. Since the head 100 of robot 10 changes continuously as it moves from its current posture to the desired posture, the current posture of the neck 300 also changes continuously. Assuming the rotation angle of motor 320 is fixed, the neck yaw angle y1 is also fixed. Robot 10 can update the current posture of the neck 300 by iteratively updating the neck roll angle r1 and neck pitch angle p1, thereby determining the accuracy of the movement of the left push rod 3111 and the right push rod 3112 based on the current posture of the neck 300.

[0121] For example, robot 10 can iteratively update the neck roll angle r1 and neck pitch angle p1 using formula (3):

[0122] x new =x new -J(x new ) -1 ×(L new -L tar (3)

[0123] Where, x new Given the current pose of the neck at 30°, J(x) new J(x) is the Jacobian matrix that transforms the neck roll angle r1 and neck pitch angle p1 into the push rod travel distance. new ) -1 For J(x)new The inverse matrix of L) new L represents the distance the push rod travels. tar x represents the desired distance the putter will travel. new =[r 1,new p 1,new ], r 1,new p is the iterative variable for the neck roll angle r1. 1,new Let p1 be the iterative variable for the neck pitch angle. The push rod movement distance is the set of the movement distances of the left push rod 3111 and the right push rod 3112, and the expected push rod movement distance is the set of the expected movement distances of the left push rod 3111 and the expected movement distances of the right push rod 3112. L new =[L left0 L right0 ], L left0 The distance L represents the movement of the left push rod 3111. right0 The distance traveled by the right push rod 3112 is L. tar =[L left,tar L right,tar ], L left,tar For the desired movement distance of the left push rod 3111, L right,tar The desired distance to move for the right push rod 3112.

[0124] It is understandable that when the number of iterations for the neck roll angle r1 and neck pitch angle p1 exceeds the upper limit of the number of iterations, robot 10 can issue an iteration update failure message. When the number of iterations for the neck roll angle r1 and neck pitch angle p1 does not exceed the upper limit of the number of iterations, robot 10 determines the accuracy of the movement of left push rod 3111 and right push rod 3112 after each update of the neck roll angle r1 and neck pitch angle p1. The upper limit of the number of iterations can be set as needed.

[0125] Specifically, after each update of the neck roll angle r1 and neck pitch angle p1, if the deviation of the movement distance of the left push rod 3111 and the deviation of the movement distance of the right push rod 3112 are both less than the accuracy threshold, then steps S603 to S605 are executed; if the deviation of the movement distance of the left push rod 3111 and / or the deviation of the movement distance of the right push rod 3112 are greater than or equal to the accuracy threshold, then step S601 is returned to be executed, and the neck roll angle r1 and neck pitch angle p1 are iteratively updated. Then, the deviation of the movement distance of the left push rod 3111 of the left lifting mechanism 3101 from the expected movement distance of the left push rod 3111 is calculated, as well as the deviation of the movement distance of the right push rod 3112 of the right lifting mechanism 3102 from the expected movement distance of the right push rod 3112.

[0126] In some embodiments, after calculating the movement distance and expected movement distance of the left push rod 3111, and the movement distance and expected movement distance of the right push rod 3112, the robot 10 calculates the L2 norm of the difference between the push rod movement distance and the expected movement distance, and determines whether the L2 norm of the difference between the push rod movement distance and the expected movement distance is less than the accuracy threshold.

[0127] For example, robot 10 can use formula (4) to determine whether the L2 norm of the difference between the push rod's movement distance and the push rod's expected movement distance is less than the accuracy threshold:

[0128] ||L new -L tar ||2 <e (4)

[0129] Among them, L new L represents the distance the push rod travels. tar For the desired distance of motion of the push rod, ||L new -L tar ||2 is the L2 norm of the difference between the push rod's travel distance and the push rod's expected travel distance, and e is the accuracy threshold.

[0130] After each update of the neck roll angle r1 and neck pitch angle p1, if the L2 norm of the difference between the push rod movement distance and the expected push rod movement distance is less than the accuracy threshold, then the robot 10 executes steps S603 to S605; if the L2 norm of the difference between the push rod movement distance and the expected push rod movement distance is greater than or equal to the accuracy threshold, then the robot continues to iteratively update the neck roll angle r1 and neck pitch angle p1, then calculates the movement distance of the left push rod 3111 and the expected movement distance of the left push rod 3111, and the movement distance of the right push rod 3112 and the expected movement distance of the right push rod 3112, then calculates the L2 norm of the difference between the push rod movement distance and the expected push rod movement distance, and then determines whether the L2 norm of the difference between the push rod movement distance and the expected push rod movement distance is less than the accuracy threshold.

[0131] S603 transforms the neck roll angle r1, neck pitch angle p1, and neck yaw angle y1 into a homogeneous coordinate transformation matrix for neck attitude.

[0132] In this embodiment, after each update of the neck roll angle r1 and neck pitch angle p1, when the movement distance deviation of the left push rod 3111 and the movement distance deviation of the right push rod 3112 are both less than the accuracy threshold, or when the L2 norm of the difference between the push rod movement distance and the push rod expected movement distance is less than the accuracy threshold, the neck roll angle r1, neck pitch angle p1 and neck yaw angle y1 can be converted into a homogeneous coordinate transformation matrix of the neck posture through homogeneous coordinate transformation, thereby enabling coordinate system transformation of the neck posture.

[0133] For example, robot 10 can convert the neck roll angle r1, neck pitch angle p1, and neck yaw angle y1 into the following homogeneous coordinate transformation matrix of the neck posture:

[0134]

[0135] Among them, T neck1 is the homogeneous coordinate transformation matrix of the neck attitude; sr1 is the sine of the neck roll angle r1, cr1 is the cosine of the neck roll angle r1, sp1 is the sine of the neck pitch angle p1, cp1 is the cosine of the neck pitch angle p1, sy1 is the sine of the neck yaw angle y1, and cy1 is the cosine of the neck yaw angle y1; (x n y n , z n ) represents the coordinates of a reference point at the head (100) transformed from the neck coordinate system to the base coordinate system.

[0136] S604 transforms the homogeneous coordinate transformation matrix of the neck posture into the homogeneous coordinate transformation matrix of the head posture through coordinate transformation.

[0137] In this embodiment, after obtaining the homogeneous coordinate transformation matrix of the neck posture, the robot 10 transforms the neck posture in the neck coordinate system to the head posture in the head coordinate system according to the coordinate transformation relationship between the neck coordinate system and the head coordinate system.

[0138] For example, robot 10 can use matrix transformation to convert the homogeneous coordinate transformation matrix of the neck pose into the homogeneous coordinate transformation matrix of the head pose as follows:

[0139] T head1 =T neck1 ×T necktohead

[0140] Among them, T head1 T is the homogeneous coordinate transformation matrix for head pose. neck1 T is the homogeneous coordinate transformation matrix for neck posture. necktohead This is the coordinate transformation matrix for transforming from the neck coordinate system to the head coordinate system.

[0141] S605, the homogeneous coordinate transformation matrix of the head posture is converted into the head roll angle r2, head pitch angle p2 and head yaw angle y2 to obtain the head posture of robot 10.

[0142] In this embodiment, after the robot 10 obtains the homogeneous coordinate transformation matrix of the head posture, it can convert the homogeneous coordinate transformation matrix of the head posture into the head roll angle r2, head pitch angle p2 and head yaw angle y2 through the inverse transformation of the homogeneous coordinate transformation matrix, thereby obtaining the head posture of the robot 10.

[0143] The control terminal of the embodiments of this application will be described below.

[0144] Figure 7 This is a structural block diagram of a control terminal 20 provided in one embodiment of this application.

[0145] The control terminal 20 can communicate with the robot 10, thereby enabling the control of the robot 10. (See also...) Figure 7 The control terminal 20 includes a processor 21 and a memory 22. The processor 21 can run computer programs or code stored in the memory 22 to implement the robot head posture three-degree-of-freedom control method of the present application embodiment.

[0146] In this embodiment, the control terminal 20 can respond to the head posture control command via the processor 21, calculate the desired rotation angle of at least one motor 320 of the neck 300 of the robot 10 and the desired movement distance of the push rod 311 of each of the at least two lifting mechanisms 310, generate motor drive commands and lifting mechanism drive commands, and send the motor drive commands and lifting mechanism drive commands to the robot 10, thereby driving at least one motor 320 of the neck 300 of the robot 10 through the motor drive commands and driving at least two lifting mechanisms 310 of the neck 300 of the robot 10 through the lifting mechanism drive commands.

[0147] Processor 21 may include one or more processing units. For example, processor 21 may include, but is not limited to, an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, a neural network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.

[0148] The processor 21 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 21 is a cache memory. This memory can store instructions or data that the processor 21 has just used or that are being used repeatedly. If the processor 21 needs to use the instruction or data again, it can retrieve it directly from this memory.

[0149] In some embodiments, the processor 21 may include one or more interfaces. Interfaces may include, but are not limited to, an Inter-Integrated Circuit (I2C) interface, an Inter-Integrated Circuit Sound (I2S) interface, a Pulse Code Modulation (PCM) interface, a Universal Asynchronous Receiver / Transmitter (UART) interface, a Mobile Industry Processor Interface (MIPI) interface, a General-Purpose Input / Output (GPIO) interface, a Subscriber Identity Module (SIM) interface, and a Universal Serial Bus (USB) interface.

[0150] It is understood that the interface connection relationships between the modules illustrated in the embodiments of this application are merely illustrative and do not constitute a structural limitation on the robot 10. In other embodiments, the robot 10 may also employ different interface connection methods or a combination of multiple interface connection methods as described in the above embodiments.

[0151] The memory 22 may include an external memory interface and internal memory. The external memory interface can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the robot 10. The external memory card communicates with the processor 21 through the external memory interface to perform data storage. The internal memory can be used to store computer-executable program code, including instructions. The internal memory may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (e.g., sound playback function, image playback function, etc.). The data storage area may store data created during the use of the robot 10 (e.g., audio data, phone book, etc.). Furthermore, the internal memory may include high-speed random access memory and non-volatile memory, such as at least one disk storage device, flash memory device, or Universal Flash Storage (UFS). The processor 21 executes various functional applications and data processing of the robot 10 by running instructions stored in the internal memory and / or instructions stored in memory located in the processor 21, such as implementing the three-degree-of-freedom control method for the robot head posture according to embodiments of this application.

[0152] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the robot 10 or the control terminal 20. In other embodiments, the robot 10 or the control terminal 20 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0153] For example, see also Figure 8 and Figure 9 , Figure 8 This is a structural block diagram of a multi-legged robot provided in one embodiment of this application. Figure 9 This is a schematic diagram of a scenario where a control terminal 20 controls a multi-legged robot 30, according to one embodiment of this application.

[0154] like Figure 8 As shown, the multi-legged robot 30 includes a mechanical unit 301, a communication unit 302, a sensing unit 303, an interface unit 304, a storage unit 305, a display unit 306, an input unit 307, a control module 308, and a power supply 309. The various components of the multi-legged robot 30 can be connected in any way, including wired or wireless connections.

[0155] Understandable. Figure 8 The specific structure of the multi-legged robot shown does not constitute a limitation on the multi-legged robot. The multi-legged robot may include more or fewer parts than shown. Some parts are not essential components of the multi-legged robot and may be omitted or combined as needed without changing the nature of the application.

[0156] The following is combined Figure 8 and Figure 9 The various components of the multi-legged robot 30 will be described in detail.

[0157] Mechanical unit 301 is the hardware of multi-legged robot 30. For example... Figure 8 As shown, the mechanical unit 301 may include a drive board 3011, a motor 3012, and a mechanical structure 3013.

[0158] like Figure 9 As shown, the mechanical structure 3013 may include a body 3014, a rotatable head structure 3017 and a neck structure (not shown) connecting the body 3014 and the rotatable head structure 3017, extendable legs 3015, foot end 3016, a rocking tail structure 3018, a cargo carrying structure 3019, a saddle structure 3020, and a camera structure 3021. In other embodiments, the mechanical structure 3013 may also include an extendable robotic arm (not shown), etc.

[0159] It should be noted that the mechanical unit 301 can have one or more component modules, depending on the specific situation. For example, there can be four legs 3015, and each leg 3015 can be configured with three motors 3012, resulting in a total of 12 motors 3012.

[0160] The communication unit 302 can be used for receiving and sending signals, and can also communicate with networks and other devices. For example, it can receive instructions from a remote control or other multi-legged robot 30 to move in a specific direction at a specific speed according to a specific gait, and then transmit these instructions to the control module 308 for processing. The communication unit 302 includes modules such as WiFi, 4G, 5G, Bluetooth, and infrared.

[0161] The sensing unit 303 is used to acquire information data about the surrounding environment of the multi-legged robot 30 and monitor parameter data of various components inside the multi-legged robot 30, and sends this data to the control module 308. The sensing unit 303 includes various sensors, such as sensors for acquiring information about the surrounding environment: lidar (for remote object detection, distance determination, and / or velocity determination), millimeter-wave radar (for short-range object detection, distance determination, and / or velocity determination), cameras, infrared cameras, and Global Navigation Satellite System (GNSS). Sensors for monitoring various components inside the multi-legged robot 30 include: an inertial measurement unit (IMU) (for measuring velocity, acceleration, and angular velocity values), foot sensors (for monitoring the position of the foot's contact point, foot posture, magnitude and direction of the contact force), and temperature sensors (for detecting component temperature). Other sensors that can be configured on the multi-legged robot 30, such as load sensors, touch sensors, motor angle sensors, and torque sensors, are not detailed here.

[0162] Interface unit 304 can be used to receive input from external devices (e.g., data, power, etc.) and transmit the received input to one or more components within the multi-legged robot 30, or it can be used to output to external devices (e.g., data, power, etc.). Interface unit 304 may include a power port, a data port (such as a USB port), a memory card port, a port for connecting a device with an identification module, an audio input / output (I / O) port, a video I / O port, etc.

[0163] Storage unit 305 is used to store software programs and various data. Storage unit 305 mainly includes a program storage area and a data storage area. The program storage area can store operating system programs, motion control programs, application programs (such as text editors), etc.; the data storage area can store data generated by the multi-legged robot 30 during use (such as various sensor data acquired by the sensing unit 303, log file data, etc.). Furthermore, storage unit 305 may include high-speed random access memory, and may also include non-volatile memory, such as disk storage, flash memory, or other volatile solid-state memory.

[0164] The display unit 306 is used to display information input by the user or information provided to the user. The display unit 306 may include a display panel 3061, which may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.

[0165] Input unit 307 can be used to receive input numerical or character information. Specifically, input unit 307 may include touch panel 3071 and other input devices 3072. Touch panel 3071, also known as touch screen, can collect user touch operations (such as operations performed by the user using their palm, fingers, or suitable accessories on or near touch panel 3071) and drive corresponding connected devices according to a pre-set program. Touch panel 3071 may include two parts: touch detection device 3073 and touch controller 3074. Touch detection device 3073 detects the user's touch position and the signal generated by the touch operation, and transmits the signal to touch controller 3074; touch controller 3074 receives touch information from touch detection device 3073, converts it into touch point coordinates, and sends it to control module 308, and can also receive and execute commands from control module 308. In addition to touch panel 3071, input unit 307 may also include other input devices 3072. Specifically, other input devices 3072 may include, but are not limited to, one or more of the following: remote control handles, etc., without further limitation here.

[0166] Furthermore, the touch panel 3071 can cover the display panel 3061. When the touch panel 3071 detects a touch operation on or near it, it transmits the information to the control module 308 to determine the type of touch event. Subsequently, the control module 308 provides corresponding visual output on the display panel 3061 according to the type of touch event. Although in Figure 8In this embodiment, the touch panel 3071 and the display panel 3061 are two independent components that implement input and output functions respectively. However, in some embodiments, the touch panel 3071 and the display panel 3061 can be integrated to implement input and output functions. The specific implementation is not limited here.

[0167] The control module 308 is the control center of the multi-legged robot 30. It connects all the components of the multi-legged robot 30 through various interfaces and lines. It controls the multi-legged robot 30 as a whole by running or executing the software program stored in the storage unit 305 and calling the data stored in the storage unit 305.

[0168] Power supply 309 supplies power to various components. Power supply 309 may include a battery and a power control board. The power control board controls battery charging, discharging, and power consumption management. Figure 8 In the illustrated embodiment, power supply 309 is electrically connected to control module 308. In other embodiments, power supply 309 may also be electrically connected to sensing unit 303 (such as camera, radar, speaker, etc.) and motor 3012. It should be noted that each component may be connected to a different power supply 309, or may be powered by the same power supply 309.

[0169] exist Figure 9 In the scenario where the control terminal 20 controls the multi-legged robot 30, specifically, the control terminal 20 establishes a communication connection with the multi-legged robot 30. During this communication, the control terminal 20 can send control commands to the multi-legged robot 30. The multi-legged robot 30 can receive these commands through the communication unit 302 and, upon receiving them, transmits them to the control module 308, enabling the control module 308 to perform corresponding functions based on the commands. The control terminal 20 includes, but is not limited to, mobile phones, tablets, servers, personal computers, wearable smart devices, and other electrical appliances equipped with image capture capabilities.

[0170] Control commands can be determined based on preset conditions. In one embodiment, the multi-legged robot 30 may include a sensing unit 303, which can generate control commands based on the current environment of the multi-legged robot 30. The control module 308 can determine whether the current speed value of the multi-legged robot 30 meets the corresponding preset conditions based on the control commands. If the preset conditions are met, the current speed value and current gait of the multi-legged robot 30 will be maintained. If the preset conditions are not met, a target speed value and a corresponding target gait will be determined based on the corresponding preset conditions, thereby controlling the multi-legged robot 30 to move at the target speed value and the corresponding target gait. The communication method between the sensing unit 303 and the control module 308 can be wired or wireless. Wireless communication methods include, but are not limited to: wireless networks, mobile communication networks (3G, 4G, 5G, etc.), Bluetooth, and infrared.

[0171] It is understood that the multi-legged robot 30 can implement all the method steps of the three-degree-of-freedom control method for robot head posture provided in the embodiments of this application, and the same method steps and beneficial effects will not be described again here.

[0172] The embodiments of this application have been described in detail above with reference to the accompanying drawings. However, this application is not limited to the above embodiments. Within the scope of knowledge possessed by those skilled in the art, various changes can be made without departing from the spirit of this application.

Claims

1. A method for three-degree-of-freedom control of robot head posture, characterized in that, The robot includes a head, a body, and a neck connecting the head and the body. The neck includes at least two lifting mechanisms and at least one motor. The at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to a push rod of the at least two lifting mechanisms via at least one connector. The method includes: In response to a head posture control command, the desired rotation angle of at least one of the motors and the desired movement distance of the push rods of each of the at least two of the lifting mechanisms are calculated. Obtain motor drive commands based on the desired rotation angle of at least one of the motors; The lifting mechanism drive command is obtained based on the expected movement distance of the push rod of each of the at least two lifting mechanisms; In response to the motor drive command, drive at least one of the motors; and In response to the lifting mechanism drive command, at least two of the lifting mechanisms are driven to control the robot's head to move from the current posture to the desired posture; The process of responding to a head posture control command and calculating the desired rotation angle of at least one of the motors and the desired movement distance of the push rods of at least two of the lifting mechanisms includes: The desired head posture of the robot is obtained according to the head posture control command, and the desired head posture includes head roll angle, head pitch angle and head yaw angle. The head roll angle, head pitch angle, and head yaw angle are converted into homogeneous coordinate transformation matrices for the desired head attitude. The homogeneous coordinate transformation matrix of the desired head posture is transformed into the first homogeneous coordinate transformation matrix of the desired neck posture through coordinate transformation. The first homogeneous coordinate transformation matrix of the desired neck posture is converted into the neck roll angle, neck pitch angle and neck yaw angle, wherein the neck yaw angle is at least one desired rotation angle of the motor. The neck roll angle and the neck pitch angle are converted into a second homogeneous coordinate transformation matrix for the desired neck posture; The desired movement distance of the push rods of at least two of the lifting mechanisms is calculated based on the second homogeneous coordinate transformation matrix of the desired neck posture.

2. The three-degree-of-freedom control method for robot head posture as described in claim 1, characterized in that, After driving at least one of the motors in response to the motor drive command and driving at least two of the lifting mechanisms in response to the lifting mechanism drive command to control the robot's head to move from the current posture to the desired posture, the method further includes: The rotation angle of at least one of the motors and the travel distance of the push rods of at least two of the lifting mechanisms are detected. The current posture of the robot head is calculated based on the detected rotation angle of at least one of the motors and the push rod movement distance of each of the at least two lifting mechanisms. Determine that the current posture of the robot's head has reached the desired posture.

3. The three-degree-of-freedom control method for robot head posture as described in claim 1, characterized in that, The step of calculating the expected movement distance of the push rods of at least two of the lifting mechanisms based on the second homogeneous coordinate transformation matrix of the desired neck posture includes: The desired positions of the upper hinge point and the lower hinge point of each lifting mechanism are calculated based on the second homogeneous coordinate transformation matrix of the desired neck posture. Detect the first distance between the upper hinge point and the lower hinge point of the push rod before each of the lifting mechanisms moves; Calculate the second distance between the upper and lower hinge points of the push rod after the movement of each lifting mechanism based on the expected positions of the upper and lower hinge points of the push rod of each lifting mechanism. Subtracting the second distance of the push rod from the corresponding first distance of the push rod yields the expected movement distance of the push rod for each of the at least two lifting mechanisms.

4. The three-degree-of-freedom control method for robot head posture as described in claim 1, characterized in that, After calculating the desired movement distance of the push rods of at least two of the lifting mechanisms based on the second homogeneous coordinate transformation matrix of the desired neck posture, the method further includes: Detect the movement distance of the push rod of each of the aforementioned lifting mechanisms; Calculate the deviation between the push rod movement distance of each of the lifting mechanisms and the expected movement distance of the push rod; Determine whether the deviation is less than the accuracy threshold; If the deviation is less than the accuracy threshold, the neck roll angle, the neck pitch angle, and the neck yaw angle are converted into homogeneous coordinate transformation matrices of the neck posture; the homogeneous coordinate transformation matrix of the neck posture is converted into a homogeneous coordinate transformation matrix of the head posture through coordinate transformation; the homogeneous coordinate transformation matrix of the head posture is converted into head roll angle, head pitch angle, and head yaw angle to obtain the head posture of the robot. If the deviation is greater than or equal to the accuracy threshold, the push rod movement distance of each of the lifting mechanisms is re-detected; the deviation between the push rod movement distance of each of the lifting mechanisms and the expected push rod movement distance is calculated; and it is determined whether the deviation is less than the accuracy threshold.

5. A robot, comprising a processor, a head, a body, and a neck connecting the head and the body, characterized in that, The neck includes at least two lifting mechanisms and at least one motor, the at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to the push rod of the at least two lifting mechanisms via at least one connector; the robot is configured as follows: The processor, in response to head posture control commands, calculates the desired rotation angle of at least one of the motors and the desired movement distance of the push rods of each of the at least two lifting mechanisms. Obtain motor drive commands based on the desired rotation angle of at least one of the motors; The lifting mechanism drive command is obtained based on the expected movement distance of the push rod of each of the at least two lifting mechanisms; In response to the motor drive command, drive at least one of the motors; and In response to the lifting mechanism drive command, at least two of the lifting mechanisms are driven to control the robot's head to move from the current posture to the desired posture; In response to head posture control commands, the processor calculates the desired rotation angle of at least one of the motors and the desired movement distance of the push rods of at least two of the lifting mechanisms, including: The processor obtains the desired head posture of the robot according to the head posture control command. The desired head posture includes head roll angle, head pitch angle and head yaw angle. The head roll angle, head pitch angle, and head yaw angle are converted into homogeneous coordinate transformation matrices for the desired head attitude. The homogeneous coordinate transformation matrix of the desired head posture is transformed into the first homogeneous coordinate transformation matrix of the desired neck posture through coordinate transformation. The first homogeneous coordinate transformation matrix of the desired neck posture is converted into the neck roll angle, neck pitch angle and neck yaw angle, wherein the neck yaw angle is at least one desired rotation angle of the motor. The neck roll angle and the neck pitch angle are converted into a second homogeneous coordinate transformation matrix for the desired neck posture; The desired movement distance of the push rods of at least two of the lifting mechanisms is calculated based on the second homogeneous coordinate transformation matrix of the desired neck posture.

6. The robot as described in claim 5, characterized in that, After the processor drives at least one of the motors in response to the motor drive command and drives at least two of the lifting mechanisms in response to the lifting mechanism drive command to control the robot's head to move from the current posture to the desired posture, the robot is further configured to: The rotation angle of at least one of the motors and the movement distance of the push rods of at least two of the lifting mechanisms are detected by sensors. The processor calculates the current posture of the robot head based on the detected rotation angle of at least one of the motors and the respective push rod movement distance of at least two of the lifting mechanisms; as well as Determine whether the current posture of the robot's head has reached the desired posture.

7. The robot as described in claim 5, characterized in that, The processor calculates the desired movement distance of the push rods of at least two of the lifting mechanisms based on the second homogeneous coordinate transformation matrix of the desired neck posture, including: The processor calculates the desired positions of the upper hinge point and the lower hinge point of the push rod of each lifting mechanism based on the second homogeneous coordinate transformation matrix of the desired neck posture. The sensor detects the first distance between the upper hinge point and the lower hinge point of the push rod before each of the lifting mechanisms moves. The processor calculates the second distance between the upper and lower hinge points of the push rod after the movement of each lifting mechanism, based on the expected positions of the upper and lower hinge points of the push rod of each lifting mechanism. Subtracting the second distance of the push rod from the corresponding first distance of the push rod yields the expected movement distance of the push rod for each of the at least two lifting mechanisms.

8. The robot as described in claim 5, characterized in that, After the processor calculates the desired movement distance of the push rods of at least two of the lifting mechanisms according to the second homogeneous coordinate transformation matrix of the desired neck posture, the robot is further configured to: The movement distance of the push rods of each of the lifting mechanisms is detected by sensors; The processor calculates the deviation between the push rod movement distance of each of the lifting mechanisms and the expected movement distance of the push rod; Determine whether the deviation is less than the accuracy threshold; If the deviation is less than the accuracy threshold, the processor converts the neck roll angle, the neck pitch angle and the neck yaw angle into a homogeneous coordinate transformation matrix of the neck attitude. The homogeneous coordinate transformation matrix of the neck posture is converted into the homogeneous coordinate transformation matrix of the head posture through coordinate transformation; and The homogeneous coordinate transformation matrix of the head posture is converted into head roll angle, head pitch angle and head yaw angle to obtain the head posture of the robot. If the deviation is greater than or equal to the accuracy threshold, the push rod movement distance of each of the lifting mechanisms is re-detected by the sensor; The processor calculates the deviation between the push rod movement distance of each of the lifting mechanisms and the expected movement distance of the push rod; as well as Determine whether the deviation is less than the accuracy threshold.

9. A control terminal for a robot, comprising a processor, wherein the control terminal is communicatively connected to the robot, characterized in that, The robot includes a head, a body, and a neck connecting the head and the body. The neck includes at least two lifting mechanisms and at least one motor. The at least two lifting mechanisms are connected in parallel, and the at least one motor is connected to the push rods of the at least two lifting mechanisms via at least one connector. The control terminal is configured as follows: The processor, in response to head posture control commands, calculates the desired rotation angle of at least one of the motors in the robot's neck and the desired movement distance of the push rods of each of the at least two lifting mechanisms; A motor drive command is obtained based on the desired rotation angle of at least one of the motors, the motor drive command being used to drive at least one of the motors; The lifting mechanism drive command is obtained based on the expected movement distance of the push rod of each of the at least two lifting mechanisms, and the lifting mechanism drive command is used to drive the at least two lifting mechanisms. Send the motor drive command and the lifting mechanism drive command to the robot to control the robot's head to move from the current posture to the desired posture; In response to head posture control commands, the processor calculates the desired rotation angle of at least one of the motors and the desired movement distance of the push rods of at least two of the lifting mechanisms, including: The processor obtains the desired head posture of the robot according to the head posture control command. The desired head posture includes head roll angle, head pitch angle and head yaw angle. The head roll angle, head pitch angle, and head yaw angle are converted into homogeneous coordinate transformation matrices for the desired head attitude. The homogeneous coordinate transformation matrix of the desired head posture is transformed into the first homogeneous coordinate transformation matrix of the desired neck posture through coordinate transformation. The first homogeneous coordinate transformation matrix of the desired neck posture is converted into the neck roll angle, neck pitch angle and neck yaw angle, wherein the neck yaw angle is at least one desired rotation angle of the motor. The neck roll angle and the neck pitch angle are converted into a second homogeneous coordinate transformation matrix for the desired neck posture; The desired movement distance of the push rods of at least two of the lifting mechanisms is calculated based on the second homogeneous coordinate transformation matrix of the desired neck posture.

Citation Information

Patent Citations

  • Robot head structure and robot

    CN114700930A