Control method for mechanical arm, device, equipment and storage medium
Patent Information
- Authority / Receiving Office
- HK · HK
- Patent Type
- Patents
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2024-02-29
- Publication Date
- 2026-07-10
AI Technical Summary
In the existing technology, the end effector design of the robotic arm does not have a large flat surface, making it difficult to complete the operation task through rigid body connectors and shell, resulting in high control difficulty and a lack of grasping mechanism.
A robotic arm control method is provided, which throws and catches a three-dimensional object at any position other than the end effector and maintains balance at that position. The method utilizes multiple drive sources and a rope drive mechanism to achieve the composite motion of the robotic arm, and the controller generates corresponding control signals to realize the throwing and catching action.
This expands the control methods for the robotic arm to throw and catch three-dimensional objects and maintain balance from positions other than the end effector, improving the operational flexibility and control precision of the robotic arm.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Control methods, devices, equipment and storage media for robotic arms Technical Field
[0001] This application relates to the field of robotics, and in particular to a control method, device, equipment, and storage medium for a robotic arm. Background Technology
[0002] With the development of robotics technology and the expansion of its applications, robots have gradually become irreplaceable tools in production, services, and other fields. The robotic arm, a common actuator in robots, plays a vital role in both production and daily life.
[0003] In related technologies, the end effector of a robotic arm is typically used to complete the operation. Alternatively, an end effector can be installed at the end effector of the robotic arm to perform the corresponding operation, such as installing a robotic finger at the end effector of the robotic arm, and the operation is completed by controlling the movement of the robotic arm and the robotic finger. Summary of the Invention
[0004] This application provides a control method, device, equipment, and storage medium for a robotic arm, the technical solution of which is as follows:
[0005] According to one aspect of this application, a control method for a robotic arm is provided, the method being executed by a controller of the robotic arm, wherein a three-dimensional object is placed at any position on the robotic arm except for its end effector, the method comprising:
[0006] Control the robotic arm to launch the three-dimensional object;
[0007] Control any position on the robotic arm, except for the end cap, to catch the thrown three-dimensional object;
[0008] Control the robotic arm so that the three-dimensional object can regain its balance at any position except for the end.
[0009] According to another aspect of this application, a control device for a robotic arm is provided, wherein a three-dimensional object is placed at any position on the robotic arm except for its end effector, the device comprising:
[0010] The control module is used to control the robotic arm to throw the three-dimensional object.
[0011] The acquisition module is used to acquire the first control signal;
[0012] The control module is also used to control any position on the robotic arm, excluding the end, to catch the thrown three-dimensional object based on the first control signal;
[0013] The acquisition module is also used to acquire a second control signal;
[0014] The control module is also used to control the robotic arm based on the second control signal so that the three-dimensional object can regain a state of force equilibrium at any position other than the end.
[0015] In an optional design of this application, the robotic arm includes a first arm; the control module is further configured to:
[0016] Control the first arm to throw the three-dimensional object up, and the first arm and the three-dimensional object will disengage;
[0017] Based on the first control signal, the first arm can be controlled to catch the thrown three-dimensional object at any position other than the end.
[0018] Based on the second control signal, the first arm is controlled so that the three-dimensional object can regain a state of force equilibrium at any position except the end.
[0019] In an optional design of this application, the robotic arm includes a first arm and a second arm that move independently of each other; the control module is further configured to:
[0020] Control the first arm to throw the three-dimensional object up, and the first arm and the three-dimensional object will disengage;
[0021] Based on the first control signal, the second arm can be controlled to catch the thrown three-dimensional object at any position other than the end.
[0022] Based on the second control signal, the second arm is controlled so that the three-dimensional object can regain a state of force equilibrium at any position except the end.
[0023] In an optional design of this application, the acquisition module is further configured to:
[0024] The motion trajectory information of the three-dimensional object is obtained, and the motion trajectory information is the parabolic trajectory after the three-dimensional object and the robotic arm are separated from contact;
[0025] The first control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
[0026] In an optional design of this application, the acquisition module is further configured to:
[0027] Based on the motion trajectory information of the three-dimensional object, a first desired posture of the robotic arm is determined. The first desired posture is used to indicate the posture information of the robotic arm to catch the thrown three-dimensional object.
[0028] The first control signal is determined based on the difference between the first actual posture and the first desired posture.
[0029] In an optional design of this application, the first actual posture includes the angle and angular velocity of the robotic arm rotating about the first axis, the first desired posture includes the desired angle and desired angular velocity of the robotic arm rotating about the first axis, and the first control signal includes a first control torque; the acquisition module is further configured to:
[0030] The first control torque is determined based on the difference between the angle and the desired angle, and the difference between the angular velocity and the desired angular velocity.
[0031] Wherein, the first control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the first axis, the first axis being a horizontal line perpendicular to the robotic arm; and / or, the first control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the first axis, the first axis being an extension of the robotic arm.
[0032] In an optional design of this application, the acquisition module is further configured to:
[0033] Obtain the second actual posture, which is the contact information between the robotic arm and the three-dimensional object;
[0034] The second control signal is determined based on the second actual posture and the second desired posture. The second desired posture is used to instruct the robotic arm on the posture information of the three-dimensional object to maintain balance on the robotic arm.
[0035] In an optional design of this application, the acquisition module is further configured to:
[0036] The second control signal is determined based on the difference between the second actual posture and the second desired posture.
[0037] In an optional design of this application, the second actual posture includes the position information of the center of mass of the three-dimensional object in the direction of the second rotation axis and the offset velocity of the three-dimensional object in the direction of the second rotation axis; the second desired posture includes the desired position of the center of mass of the three-dimensional object in the direction of the second rotation axis and the desired velocity of the three-dimensional object in the direction of the second rotation axis; the second control signal includes a second control torque; the acquisition module is further configured to:
[0038] The second control torque is determined based on the difference between the position information and the desired position, and the difference between the offset speed and the desired speed;
[0039] Wherein, the second control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the second axis, the second axis being a horizontal line perpendicular to the robotic arm; and / or, the second control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the second axis, the second axis being an extension of the robotic arm.
[0040] In an optional design of this application, the acquisition module is further configured to:
[0041] The second actual pose is obtained based on a visual sensor;
[0042] Alternatively, the second actual posture can be obtained based on the visual and tactile sensors.
[0043] In an optional design of this application, the acquisition module is further configured to:
[0044] Images are acquired through the vision sensor, and the images are used to show the three-dimensional object placed on the robotic arm;
[0045] The second actual pose is determined based on the image processing result obtained from the image processing.
[0046] In an optional design of this application, the acquisition module is further configured to:
[0047] Based on the visual sensor, first information about the three-dimensional object in a first direction is determined;
[0048] Based on the tactile sensor, second information about the three-dimensional object in the second direction is determined;
[0049] The first information and the second information are fused to obtain the second actual posture;
[0050] Wherein, the first direction is the direction of the horizontal line perpendicular to the robotic arm, and the second direction is the direction of the extension line of the robotic arm.
[0051] In an optional design of this application, the acquisition module is further configured to:
[0052] Obtain the third desired posture of the robotic arm, which is used to instruct the robotic arm to disengage the three-dimensional object from the robotic arm and obtain the posture information of the vertical upward velocity;
[0053] The third control signal of the robotic arm is determined based on the third actual posture and the third desired posture of the robotic arm.
[0054] The control of the robotic arm to throw the three-dimensional object is based on the third control signal.
[0055] In an optional design of this application, the acquisition module is further configured to:
[0056] Obtain the fourth desired posture of the robotic arm, which is used to instruct the robotic arm to keep the three-dimensional object and the robotic arm in contact, and the robotic arm obtains posture information of vertical downward velocity;
[0057] Based on the fourth actual posture and the fourth desired posture of the robotic arm, the fourth control signal of the robotic arm is determined;
[0058] The control module is also used for:
[0059] Based on the third and fourth control signals, the robotic arm is controlled to throw the three-dimensional object.
[0060] The third control signal is used to control the three-dimensional object and the robotic arm to disengage, and the three-dimensional object to obtain an upward vertical velocity. The fourth control signal is used to control the three-dimensional object and the robotic arm to remain in contact, and the robotic arm to obtain a downward vertical velocity.
[0061] In an optional design of this application, the acquisition module is further configured to acquire a grasping control signal;
[0062] The control module is also used to control the end effector of the robotic arm to grasp the thrown three-dimensional object based on the grasping control signal, and the three-dimensional object reaches a state of force balance when it is grasped.
[0063] In an optional design of this application, the acquisition module is further configured to:
[0064] The motion trajectory information of the three-dimensional object is obtained, and the motion trajectory information is the parabolic trajectory after the three-dimensional object and the robotic arm are separated from contact;
[0065] The grasping control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
[0066] According to one aspect of this application, a computer-readable storage medium is provided, in which a computer program is stored, the computer program being executed by a processor to implement the robotic arm control method described above.
[0067] According to one aspect of this application, a chip is provided, the chip including programmable logic circuitry and / or program instructions, for implementing the control method of the robotic arm as described above when an electronic device on which the chip is mounted is running.
[0068] According to one aspect of this application, a computer program product is provided, comprising computer instructions stored in a computer-readable storage medium, wherein a processor reads from and executes the computer instructions to implement the robotic arm control method described above.
[0069] The beneficial effects of the technical solution provided in this application include at least the following:
[0070] A novel method for using a robotic arm is provided, which can first throw a three-dimensional object into the air, and then catch the three-dimensional object at any position on the robotic arm except for the end effector, and make the three-dimensional object regain its balance. The controller performs the control of the robotic arm to realize the throwing and catching action of the three-dimensional object, and expands the control method of throwing and catching three-dimensional objects at any position on the robotic arm except for the end effector and maintaining their balance. Attached Figure Description
[0071] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0072] Figure 1 is a schematic diagram of a robotic arm provided in an exemplary embodiment of this application;
[0073] Figure 2 is a schematic diagram of a robotic arm provided in an exemplary embodiment of this application;
[0074] Figure 3 is a schematic diagram of a robotic arm provided in an exemplary embodiment of this application;
[0075] Figure 4 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0076] Figure 5 is a schematic diagram of a robotic arm provided in an exemplary embodiment of this application;
[0077] Figure 6 is a schematic diagram of a robotic arm provided in an exemplary embodiment of this application;
[0078] Figure 7 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0079] Figure 8 is a schematic diagram of a robotic arm and a three-dimensional object provided in an exemplary embodiment of this application;
[0080] Figure 9 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0081] Figure 10 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0082] Figure 11 is a schematic diagram of a robotic arm and a three-dimensional object provided in an exemplary embodiment of this application;
[0083] Figure 12 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0084] Figure 13 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0085] Figure 14 is a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application;
[0086] Figure 15 is a structural block diagram of a control device for a robotic arm provided in an exemplary embodiment of this application;
[0087] Figure 16 is a schematic block diagram of the structure of a robotic arm provided in an exemplary embodiment of this application.
[0088] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application. Detailed Implementation
[0089] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0090] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0091] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “the,” and “the” as used in this disclosure and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any and all possible combinations of one or more of the associated listed items.
[0092] It should be understood that although the terms first, second, etc., may be used in this disclosure to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, a first parameter may also be referred to as a second parameter without departing from the scope of this disclosure, and similarly, a second parameter may also be referred to as a first parameter. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."
[0093] A robotic arm is a common actuator in robots. With the widespread application of artificial intelligence, robotic arms play an important role in production and daily life, becoming an indispensable piece of equipment.
[0094] In the use of robotic arms, the end effector of the robotic arm is usually used to complete the operation task; or, an end effector is installed at the end effector of the robotic arm to complete the corresponding operation, such as installing a mechanical finger at the end effector of the robotic arm, and completing the operation by controlling the movement of the robotic arm and the mechanical finger.
[0095] In related technologies, the use of rigid body connectors and / or shells of robotic arms to complete operational tasks is not considered. The main reasons are: firstly, the appearance of robotic arms is generally curved and does not have a large flat surface; secondly, without the design of gripping mechanisms such as mechanical fingers, the contact between the appearance of the robotic arm and external objects will not form a shape closure and force closure, which will make the control of the robotic arm more difficult.
[0096] Figure 1 shows a schematic diagram of a robotic arm provided in an exemplary embodiment of this application.
[0097] In some embodiments, the robotic arm is a 7-DOF robotic arm. The elbow and wrist control motors are positioned behind the hollow of the third joint of the shoulder. Optionally, the elbow and wrist are driven by a belt driven by a motor in the shoulder, which in turn drives a pulley. The pulley then controls the movement of the elbow and wrist via a belt-driven rope.
[0098] Schematic, the robotic arm includes: a first mechanical joint 10, a second mechanical joint 20, and a drive assembly 30.
[0099] The first mechanical joint 10 includes a first fixed member 101 and a first movable member 102 that are rotatably connected; the second mechanical joint 20 includes a second fixed member 201 and a second movable member 202 that are rotatably connected; the second fixed member 201 and the first movable member 102 are connected.
[0100] The drive assembly 30 includes at least two drive sources 301 and at least two drive ropes 302; each of the at least two drive sources 301 is connected to the first fixed member 101, the first movable member 102 and the second movable member 202 via at least one drive rope 302.
[0101] At least two drive sources 301 include a first operating mode and a second operating mode;
[0102] In the first working mode, at least two drive sources 301 can drive the second movable member 202 to rotate relative to the second fixed member 201, and fix the position of the first movable member 102 relative to the first fixed member 101.
[0103] In the second working mode, at least two drive sources 301 can drive the second movable member 202, the second fixed member 201 and the first movable member 102 to rotate relative to the first fixed member 101, and fix the position of the second movable member 202 relative to the second fixed member 201.
[0104] The disclosed robotic arm includes a first mechanical joint 10, a second mechanical joint 20, and a drive assembly 30. The drive assembly 30 includes at least two drive sources 301 and at least two drive ropes 302. Each of the at least two drive sources 301 is connected to a first movable member 102 of the first mechanical joint 10, a second movable member 202 of the second mechanical joint 20, and a first fixed member 101 of the first mechanical joint 10 via at least one drive rope 302. In a first working mode, the at least two drive sources 301 can drive the second movable member 202 relative to the first movable member 202. The second fixed member 201 rotates, and the position of the first movable member 102 relative to the first fixed member 101 is fixed. In the second working mode, the second movable member 202, the second fixed member 201 and the first movable member 102 can be driven to rotate relative to the first fixed member 101, and the position of the second movable member 202 relative to the second fixed member 201 is fixed. This realizes the coupled driving of at least two driving sources 301 to multiple joints, improves the utilization rate of driving sources 301, reduces the structural complexity of mechanical joints, increases the rotational inertia of mechanical joints, and enhances the motion performance of mechanical joints.
[0105] Furthermore, in this embodiment, when the second mechanical joint 20 moves independently (i.e., the second movable member 202 rotates relative to the second fixed member 201, but the position of the first movable member 102 relative to the first fixed member 101 is fixed), and when the first mechanical joint 10 drives the second mechanical joint 20 to move in a coupled manner (i.e., the second movable member 202, the second fixed member 201, and the first movable member 102 rotate relative to the first fixed member 101, and the position of the second movable member 202 relative to the second fixed member 201 is fixed), it is driven simultaneously by at least two drive sources 301. That is, regardless of which degree of freedom corresponds to the joint movement, it is driven by the power of at least two drive sources 301. Compared with the related technology, where a single degree of freedom is driven by a single drive source 301, it can achieve the coupled drive of at least two drive sources 301 on a single movable member, achieving at least twice the traction drive, which is beneficial to improving the working performance of the movable member, such as the torque and rotation speed.
[0106] In some possible implementations, at least two drive sources 301 include a motor and a drive pulley, which are connected by a transmission mechanism, and the motor drives the drive pulley to rotate through the transmission mechanism.
[0107] The drive rope 302 is wound around the drive pulley. When the drive pulley rotates, it can tighten the drive rope 302 around it, thereby generating a traction force on at least one of the first fixed member 101, the first movable member 102 and the second movable member 202 through the drive rope 302.
[0108] In some possible implementations, the transmission mechanism includes, but is not limited to, belt drive mechanism, gear drive mechanism, worm gear drive mechanism, etc.
[0109] For example, the transmission mechanism is a belt drive, which includes a driving pulley, a transmission belt and a driven pulley, wherein the driving pulley is connected to the output shaft of the motor, the driven pulley is connected to the driving pulley, and the transmission belt is connected between the driving pulley and the driven pulley.
[0110] As another example, the transmission mechanism is a belt drive, and may also include a tensioning mechanism located near the transmission belt, which can be used to adjust the tension of the transmission belt.
[0111] In some possible implementations, the first working mode and the second working mode can be, for example, different working modes formed according to the different or the same rotational directions of at least two drive sources 301; different working modes formed according to the different or the same rotational speeds of at least two drive sources 301; or different working modes formed according to the different or the same rotational directions and rotational speeds of at least two drive sources 301.
[0112] In some embodiments, in a first operating mode, at least two drive sources 301 rotate in the same direction, and in a second operating mode, at least two drive sources 301 rotate in opposite directions.
[0113] Therefore, the robotic arm in this embodiment can control the independent movement of the second mechanical joint 20 and the coupled movement of the first mechanical joint 10 driving the second mechanical joint 20 by controlling the rotation direction of the at least two drive sources 301. The structure is simple and the coupling control efficiency is high.
[0114] In some embodiments, in a first operating mode, at least two drive sources 301 rotate in opposite directions, and in a second operating mode, at least two drive sources 301 rotate in the same direction.
[0115] Furthermore, by way of example, in the first operating mode and the second operating mode, the rotational speed and output torque of at least two drive sources 301 are the same.
[0116] Referring to Figure 1, in some embodiments, at least two drive sources 301 are located on the side of the first fixed member 101 away from the first movable member 102, and at least two drive ropes 302 pass through the first fixed member 101 and are connected to the first movable member 102, and pass through the second fixed member 201 and are connected to the second movable member 202.
[0117] Therefore, in the robotic arm of this embodiment, at least two drive sources 301 are disposed on the side of the first fixed member 101 away from the first movable member 102. The drive rope 302 passes through the first fixed member 101 and connects to the first movable member 102, and passes through the second fixed member 201 and connects to the second movable member 202. The mass of the at least two drive sources 301 is concentrated on the side where the first fixed member 101 is located. The mass of the side where the first movable member 102, the second fixed member 201, and the second movable member 202 are located is relatively small, which is beneficial to increasing the rotational inertia of the structure on that side and improving its operating performance.
[0118] Referring to Figure 2, in some embodiments, the first mechanical joint 10 is a mechanical shoulder joint, and the second mechanical joint 20 is a mechanical elbow joint; the first fixed member 101 and the first movable member 102 are rotatably connected along the first axis 001; the second fixed member 201 and the second movable member 202 are rotatably connected along the second axis 002.
[0119] In the first working mode, at least two drive sources 301 can drive the second movable member 202 to rotate relative to the second fixed member 201 around the second axis 002, thereby fixing the position of the first movable member 102 relative to the first fixed member 101; in the second working mode, at least two drive sources 301 can drive the second mechanical joint 20 and the first movable member 102 to rotate relative to the first fixed member 101 around the first axis 001, thereby fixing the position of the second movable member 202 relative to the second fixed member 201.
[0120] In some other embodiments, the first mechanical joint 10 is a mechanical shoulder joint and the second mechanical joint 20 is a mechanical elbow joint. In the first working mode, at least two drive sources 301 can drive the second movable member 202 of the mechanical elbow joint to rotate about the second axis 002 relative to the second fixed member 201 of the mechanical elbow joint. The position of the first movable member 102 of the mechanical shoulder joint relative to the first fixed member 101 of the mechanical shoulder joint is fixed, thereby realizing the independent movement of the mechanical elbow joint.
[0121] In the second working mode, at least two drive sources 301 can drive the first movable part 102 of the mechanical shoulder joint to drive the entire mechanical elbow joint (including the second fixed part 201 and the second movable part 202) to rotate around the first axis 001 relative to the first fixed part 101 of the mechanical shoulder joint, but the position of the second movable part 202 of the mechanical elbow joint relative to the second fixed part 201 of the mechanical elbow joint is fixed, thereby realizing the coupled movement of the mechanical elbow joint and the mechanical shoulder joint.
[0122] For example, the robotic arm can use a set of drive sources 301. The controller can control the set of drive sources 301 to operate in different working modes, thereby driving the robotic elbow joint and the robotic shoulder joint respectively. The degrees of freedom of the robotic elbow joint and the robotic shoulder joint can be driven by at least two drive sources 301, achieving at least twice the traction force, which is beneficial to improving the working performance of the robotic elbow joint and the robotic shoulder joint, such as torque and rotation speed.
[0123] In some possible implementations, the robotic arm also includes a robotic wrist joint, a robotic shoulder joint connected to a robotic elbow joint, and a robotic wrist joint connected to a robotic elbow joint to form a complete robotic arm.
[0124] In some possible implementations, at least two drive sources 301 are located within and connected to the second movable member 202, and move with the second movable member 202.
[0125] Referring to Figure 2, in some embodiments, the first axis 001 and the second axis 002 intersect perpendicularly. Thus, the first mechanical joint 10 (e.g., a mechanical shoulder joint) can drive the second mechanical joint 20 (e.g., a mechanical elbow joint) to rotate, simulating the forearm's rotational motion in the human arm. The second mechanical joint 20 can rotate within a wide range (e.g., 0-360°) in space, enriching the robotic arm's action scenarios and increasing its applicability.
[0126] Referring to Figure 2, in some embodiments, the first mechanical joint 10 further includes a third fixing member 103; the first fixing member 101 is rotatably connected to the third fixing member 103. Thus, the first mechanical joint 10 includes the third fixing member 103, the first fixing member 101, and the first movable member 102, which are rotatably connected in sequence.
[0127] In some possible implementations, the first fixing member 101 is driven to rotate relative to the second fixing member 201 via a shoulder drive assembly, simulating the lifting motion of the shoulder joint of a human arm. The second fixing member 201 is fixedly connected to the robot's torso or other support structure, serving to fix and support the entire robotic arm.
[0128] Referring to Figure 2, in some embodiments, the second mechanical joint 20 further includes a first connector 203, the second fixing member 201 is rotatably connected to the first connector 203, and the first connector 203 is rotatably connected to the second movable member 202.
[0129] Therefore, in the robotic arm of this embodiment, the second fixed member 201 in the second mechanical joint 20 is rotatably connected to the second movable member 202 through the first connecting member 203, which enables the second axis 002 to be set at a position far away from the second fixed member 201, so that the angle at which the second movable member 202 can rotate relative to the second fixed member 201 is significantly expanded.
[0130] In addition, the robotic arm in this embodiment reduces the wiring difficulty of the drive rope 302 of the robotic elbow joint, which helps to reduce the assembly and maintenance difficulty of the robotic elbow joint.
[0131] In this embodiment, the robotic arm has at least two drive sources 301, including two elbow drive pulleys. The two elbow drive pulleys are installed inside the first movable member 102. The two elbow drive pulleys can drive two elbow drive ropes 302 respectively. The two elbow drive ropes 302 are wound around the two elbow drive pulleys, which also realizes the connection between the drive ropes 302 and the first movable member 102.
[0132] At least two drive ropes 302 include two elbow drive ropes 302, which are respectively connected to the first fixed member 101, the first movable member 102, and the second movable member 202, and are respectively connected to the first position and the second position of the second movable member 202, and finally connected to the second movable member 202 in opposite winding directions.
[0133] Referring to Figure 3, taking the first mechanical joint 10 as a mechanical shoulder joint as an example, in the low inertia differential shoulder joint structure of the 7-DOF robotic arm, a differential rope drive mechanism is used in the shoulder. This can reduce the weight of the mechanism by placing the motor module at the rear, and in some cases, it can also achieve torque superposition.
[0134] The third degree of freedom of the shoulder joint uses a pair of large and small pulleys, driven by a rope, to further improve transmission accuracy and reduce weight. Finally, the drive modules for the wrist and elbow joints are placed behind the upper arm module of the shoulder joint, thereby reducing the overall weight of the robotic arm.
[0135] Based on this, the structure of the robotic arm will be easy to modularize, thereby simplifying the manufacturing process of the robotic arm.
[0136] Referring to the foregoing, the end effector of a robotic arm is typically used to complete operational tasks. This application provides a robotic arm control method that enables the handling of three-dimensional objects using the non-end effector of the robotic arm, thereby maintaining the balance of the three-dimensional object at any position on the robotic arm except for the end effector.
[0137] Taking a bottle as an example, for a robotic arm with multiple degrees of freedom, the control method of the robotic arm provided in this application embodiment uses a non-end link of the robotic arm (such as the forearm of the robotic arm) to throw up a three-dimensional object (such as a bottle) and then catch the three-dimensional object thrown up in the air.
[0138] It should be understood that the control method provided in the embodiments of this application can be implemented by the controller of the aforementioned robotic arm. The controller can be set in the robotic arm or set outside the robotic arm and connected to the robotic arm by wire or wireless means to control the movement of the robotic arm.
[0139] Figure 4 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. The method can be executed by the controller of the robotic arm. The method includes:
[0140] Step 510: Control the robotic arm to throw the three-dimensional object up;
[0141] For example, a three-dimensional object is placed at any position on the robotic arm except for its end effector. The robotic arm throws the three-dimensional object to indicate that the three-dimensional object and the robotic arm are no longer in contact. For example, there is no interaction force between the three-dimensional object and the robotic arm, and there is no contact point between the three-dimensional object and the robotic arm.
[0142] Figure 5 shows a schematic diagram of a robotic arm provided in an exemplary embodiment of this application. A three-dimensional object is placed at any position on the robotic arm except for its end effector. Referring to Figure 5, taking a bottle as an example, the bottle is placed on the forearm of the robotic arm.
[0143] For example, the robotic arm throws a three-dimensional object, giving it a vertically upward velocity. The vertically upward direction is the opposite of the direction of gravity. Furthermore, the vertically upward component of the three-dimensional object's velocity is positive; this embodiment does not limit whether the three-dimensional object has velocity components in other directions. For instance, the three-dimensional object can also have velocity components in any direction perpendicular to the vertical.
[0144] Step 515: Obtain the first control signal;
[0145] For example, the first control signal is a control signal used to control any position on the robotic arm, excluding the end effector, to catch the thrown three-dimensional object; optionally, the first control signal controls the robotic arm to move with reference to the motion trajectory information of the three-dimensional object; the first control signal can be generated by the controller, or it can be generated by other devices and transmitted to the controller, and this application does not limit the method of obtaining the first control signal. For example, the first control signal carries control information, and the transmission method of the first control signal includes, but is not limited to, at least one of electrical signals, optical signals, etc. In one example, the first control signal can also be referred to as the first control information; similarly, the second control signal mentioned below can also be referred to as the second control information, and the third control signal, fourth control signal, and many other control signals mentioned above are similar and will not be listed one by one.
[0146] Step 520: Based on the first control signal, control the robotic arm to catch the thrown three-dimensional object at any position except the end effector;
[0147] For example, there is non-comprehensile manipulation between any position on the robotic arm other than the end effector and the three-dimensional object; the contact between any position on the robotic arm other than the end effector and the three-dimensional object does not constitute at least one of shape closure and force closure of the three-dimensional object.
[0148] It should be noted that in this step, the robotic arm catches the thrown 3D object while it is moving in space. The 3D object is caught by the end effector of the robotic arm during its movement in space. For example, after the robotic arm throws the 3D object, the 3D object and the robotic arm lose contact, and the 3D object moves in space according to parabolic or parabolic-like motion. In this step, the robotic arm catches the 3D object during its motion. Furthermore, before the robotic arm grasps the 3D object, at least one of the 3D object's position, velocity, or acceleration changes, and the 3D object is in motion; furthermore, when the robotic arm catches the 3D object, contact is established between the robotic arm and the 3D object.
[0149] Step 525: Obtain the second control signal;
[0150] For example, the second control signal is used to control the movement of the robotic arm so that the three-dimensional object regains its balance at any position except the end effector. Similar to the first control signal, this application does not limit the method of acquiring the second control signal.
[0151] Step 530: Control the robotic arm based on the second control signal so that the three-dimensional object can regain its balance at any position except the end effector;
[0152] For example, the three-dimensional object regains its balance on the robotic arm. The purpose of controlling the robotic arm in this step is to ensure that the three-dimensional object is in a balanced state on the robotic arm, so that the three-dimensional object can always remain balanced on the robotic arm without falling off.
[0153] For example, maintaining the balance of a three-dimensional object may include at least one of the following two: a static equilibrium state, in which the three-dimensional object is stationary on the robotic arm; and a dynamic equilibrium state, in which the three-dimensional object is displaced or rolls on the robotic arm but does not fall off.
[0154] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, which can first throw a three-dimensional object into the air, then catch the three-dimensional object at any position on the robotic arm other than its end effector, and restore the balance of the three-dimensional object. The controller performs control over the robotic arm to realize the throwing and catching action of the three-dimensional object, expanding the control method for throwing and catching three-dimensional objects at any position on the robotic arm other than its end effector and maintaining their balance.
[0155] The control method for the robotic arm provided in this application, which controls the robotic arm to throw up a three-dimensional object and then catch it, can be implemented using one robotic arm or two robotic arms, as detailed below. It should be noted that the two embodiments described below, which use one or two robotic arms to throw up and catch the three-dimensional object while maintaining balance, and other embodiments of this application can be combined to form new embodiments, and this application does not impose any limitations on this.
[0156] In one example, the control method for the robotic arm can be executed by the controller of the robotic arm. In the embodiment shown in Figure 4, step 510 can be implemented as sub-step 1, step 520 can be implemented as sub-step 2, and step 530 can be implemented as sub-step 3:
[0157] Sub-step 1: Control the first arm to launch the three-dimensional object;
[0158] For example, the robotic arm includes a first arm; it should be noted that this embodiment does not limit the structure of the first arm. In one example, the first arm can be a robotic arm with multiple degrees of freedom as shown in Figure 1. In this embodiment, the control method for controlling the robotic arm to throw a three-dimensional object and then catch the thrown three-dimensional object is implemented through the first arm.
[0159] For example, the first arm throws up a three-dimensional object to indicate that the first arm and the three-dimensional object have lost contact.
[0160] Sub-step 2: Based on the first control signal, control any position on the first arm, except for the end, to catch the thrown three-dimensional object;
[0161] For example, there is a non-gripping operation between any position on the first arm other than the end and the three-dimensional object; the contact between any position on the first arm other than the end and the three-dimensional object does not constitute at least one of the form closure and force closure of the three-dimensional object.
[0162] For example, the end effector of the robotic arm is used to indicate the end of the robotic arm away from the shoulder joint. In some embodiments, the robotic arm is composed of multiple links connected end to end. For instance, link 1 and link 2 constitute the robotic arm, with the first end of link 1 being the shoulder joint and the second end of link 1 connected to the first end of link 2; in this case, the end effector is used to indicate the second end of link 2. In some embodiments, the end effector can also be understood as the robotic hand connected to the end of the robotic arm away from the shoulder joint. For example, in a robotic arm composed of link 1 and link 2, with the first end of link 2 connected to link 1 and the second end of link 2 being the robotic hand, the end effector is used to indicate the robotic hand on link 2.
[0163] In this embodiment, the end of the first arm is used to indicate the end of the first arm that moves independently in the robotic arm, away from the shoulder joint. Similarly, the end of the second arm is used to indicate the end of the second arm that moves independently in the robotic arm, away from the shoulder joint. The description of the end of the robotic arm in this embodiment can be applied to step 520 above, as well as to sub-steps 5 and 6 below and other embodiments. This application does not impose any limitations.
[0164] Sub-step 3: Based on the second control signal, control the first arm so that the three-dimensional object can regain a state of force equilibrium at any position except the end;
[0165] For example, the three-dimensional object regains its balance on the first arm. The purpose of controlling the first arm in this step is to ensure that the three-dimensional object is in a balanced state on the first arm, so that the three-dimensional object can always remain balanced on the first arm without falling off.
[0166] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, which is accomplished by a single arm. It can control the first arm to throw a three-dimensional object, and then control the first arm to catch the three-dimensional object at any position on the first arm except for its end effector, thereby restoring the three-dimensional object to its original balance. The controller executes the control of the robotic arm to realize the throwing and catching action of the three-dimensional object, expanding the control method for the robotic arm to throw and catch a three-dimensional object at any position except for its end effector and maintain its balance.
[0167] In one example, the control method for the robotic arm can be executed by the controller of the robotic arm. In the embodiment shown in Figure 4, step 510 can be implemented as sub-step 4, step 520 can be implemented as sub-step 5, and step 530 can be implemented as sub-step 6.
[0168] Sub-step 4: Control the first arm to launch the three-dimensional object;
[0169] For example, the robotic arm includes a first arm and a second arm that move independently of each other; it should be noted that this embodiment does not limit the structure of the first arm and the second arm. In one example, the first arm and the second arm can be a robotic arm with multiple degrees of freedom as shown in Figure 1.
[0170] Figure 6 shows a schematic diagram of a robotic arm provided in an exemplary embodiment of this application. Sub-figure (a) is a side view of the robotic arm, and sub-figure (b) is a front view of the robotic arm. A three-dimensional object 612 is thrown up by a first arm 602; the thrown three-dimensional object 612 is caught at any position on a second arm 604 except for its end point; and the second arm 604 is controlled to restore the three-dimensional object 612 to its original balance at any position except for its end point. The figure uses a bottle as an example of the three-dimensional object 612 for illustration; this application does not limit the shape characteristics of the three-dimensional object.
[0171] Sub-step 5: Based on the first control signal, control any position on the second arm, except for the end, to catch the thrown three-dimensional object;
[0172] For example, there is a non-gripping operation between any position on the second arm other than the end and the three-dimensional object; the contact between any position on the second arm other than the end and the three-dimensional object does not constitute at least one of the shape closure and force closure of the three-dimensional object.
[0173] Sub-step 6: Control the second arm based on the second control signal so that the three-dimensional object can regain a state of force equilibrium at any position except the end;
[0174] For example, the three-dimensional object regains its balance on the second arm. The purpose of controlling the first arm in this step is to ensure that the three-dimensional object is in a balanced state on the second arm, so that the three-dimensional object can always remain balanced on the second arm without falling off.
[0175] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, which is accomplished by two arms. It can control the first arm to throw a three-dimensional object, and then control the second arm to catch the three-dimensional object at any position on the second arm except for its end effector, thereby restoring the three-dimensional object to its original balance. The controller executes the control of the robotic arm to realize the throwing and catching action of the three-dimensional object, expanding the control method for the robotic arm to throw and catch a three-dimensional object at any position except for its end effector and maintain its balance.
[0176] Next, we will introduce how the robotic arm catches the three-dimensional object that has been thrown into the air.
[0177] Figure 7 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. This method can be executed by the controller of the robotic arm. Specifically, in the embodiment shown in Figure 4, step 512 is further included:
[0178] Step 512: Obtain the motion trajectory information of the 3D object;
[0179] For example, the motion trajectory information of a three-dimensional object is the trajectory of the three-dimensional object in the air after it is thrown into the air. For example, the motion trajectory information may include the motion trajectory of the center of mass of the three-dimensional object, or it may include the motion trajectory of at least one point on or within the three-dimensional object. This embodiment does not limit this.
[0180] For example, motion trajectory information is usually predicted by the information of a three-dimensional object thrown up by a robotic arm, but it is also possible that the motion trajectory information is obtained or predicted by measuring the posture information of a three-dimensional object in the air.
[0181] In one optional implementation, the motion trajectory information is predicted using the positional and force characteristics of the 3D object before it is launched by the robotic arm. Further, the positional characteristics of the 3D object include, but are not limited to, the positional information of the robotic arm before it and the 3D object separate from contact. The force characteristics of the 3D object include, but are not limited to, the force information of the robotic arm before it and the 3D object separate from contact, the joint angular position of the robotic arm, the joint angular velocity of the robotic arm, the current information of the robotic arm, and the torque of the robotic arm. In a specific example, the positional and force characteristics of the 3D object are time-varying sequence values. This information can be represented by vectors or matrices. The time difference between adjacent values in the sequence can be predetermined or carried within the sequence; this embodiment does not impose any limitations.
[0182] For example, the first control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object. The first control signal of the robotic arm is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
[0183] For example, the motion trajectory information is the parabolic trajectory after the 3D object and the robotic arm lose contact; the first actual posture of the robotic arm is used to indicate the posture position information of the robotic arm at the current timestamp, for example, the posture information is described by at least one of the robotic arm's angle and angular velocity. The first control signal is a control signal used to control any position on the robotic arm other than the end effector to catch the thrown 3D object.
[0184] For example, motion trajectory information is used to indicate the movement mode of the robotic arm, indicating the posture information of the robotic arm capable of catching the thrown three-dimensional object. For example, it instructs the robotic arm to move with reference to the motion trajectory information of the three-dimensional object, and can remain relatively stationary with respect to the three-dimensional object at any position on the robotic arm except for its end effector, and catch the three-dimensional object.
[0185] In some embodiments, the control method for the robotic arm provided in this application can be implemented by a proportional-integral-derivative (PID) controller.
[0186] Among them, the PID controller is a feedback loop component used in industrial control applications. According to the control principle of the PID controller, the collected data is compared with the corresponding reference value (or can be understood as the expected value or target value), and the difference between the two is used to calculate a new input value. The purpose of this new input value is to allow the system data to reach or remain at the reference value.
[0187] For example, according to the first control signal, the robotic arm is controlled to catch the thrown three-dimensional object at any position other than the end effector.
[0188] After the first control signal is determined, the robotic arm can be controlled according to the first control signal.
[0189] Furthermore, the first control signal can be a control signal on one or more rotating axes, and the first control signal is usually used to control the movement of the robotic arm by controlling the torque.
[0190] Figure 8 shows a schematic diagram of a robotic arm and a three-dimensional object provided in an exemplary embodiment of this application; exemplarily, the direction of the extension line of the robotic arm is defined as the y-direction, the direction of the horizontal line perpendicular to the robotic arm is defined as the x-direction, and the direction of the vertical line perpendicular to the robotic arm is defined as the z-direction. The first control signal may be a control signal about at least one axis of rotation in the x-direction, y-direction, or z-direction.
[0191] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, enabling the first throwing of a three-dimensional object, followed by catching the object at any position on the robotic arm other than its end effector, and restoring the object's balance. The controller executes control over the robotic arm, determining a first control signal based on the robotic arm's first actual posture and the motion trajectory information of the three-dimensional object. This completes the control of catching the thrown three-dimensional object at any position on the robotic arm other than its end effector, expanding the control method for throwing and catching three-dimensional objects at any position on the robotic arm other than its end effector and maintaining their balance.
[0192] In one example, the control method for the robotic arm can be executed by the robotic arm's controller. In the embodiment shown in Figure 7, step 515 can be implemented as sub-steps 11 and 12:
[0193] Sub-step 11: Determine the first desired posture of the robotic arm based on the motion trajectory information of the 3D object;
[0194] For example, the first desired pose can be the same as the motion trajectory information, or it can be determined based on the motion trajectory information. The first desired pose is determined based on the motion trajectory information of the 3D object. In one example, the first desired pose is determined by modifying the motion trajectory information of the 3D object according to the shape features of the 3D object. Modifying the motion trajectory information based on the shape features of the 3D object is to ensure contact between the robotic arm and the 3D object. Specifically, any position on the robotic arm except for the end effector, such as the forearm of the robotic arm shown in Figure 5, contacts the lower edge of the 3D object in the vertical direction. For example, the vertical direction is on the same straight line as the direction of Earth's gravity, and the horizontal plane is the plane containing the horizontal direction perpendicular to Earth's gravity.
[0195] Sub-step 12: Determine the first control signal based on the difference between the first actual attitude and the first desired attitude;
[0196] For example, the first desired posture is used to indicate the posture information of the robotic arm in catching the thrown three-dimensional object; please refer to the above description for the first actual posture and the first desired posture.
[0197] In one implementation, the first actual posture includes the angle and angular velocity of the robotic arm rotating about the first axis; correspondingly, the first desired posture includes the desired angle and desired angular velocity of the robotic arm rotating about the first axis, and the first control signal includes the first control torque;
[0198] For example, this step can be implemented as the following sub-steps:
[0199] The first control torque is determined based on the difference between the angle and the desired angle, and the difference between the angular velocity and the desired angular velocity.
[0200] Wherein, the first control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about a first axis of rotation, the first axis of rotation being a horizontal line perpendicular to the robotic arm; and / or, the first control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about a first axis of rotation, the first axis of rotation being an extension of the robotic arm. Referring to Figure 8 above, the first axis of rotation is the x-direction in Figure 8, and / or the y-direction. Optionally, the extension of the robotic arm is the direction of extension of the robotic arm when it is fully extended. For example, Figure 8 shows the extension when the robotic arm is fully extended. For example, the extension is a ray pointing from the end of the robotic arm outwards from the end of the robotic arm, and the direction of the extension is parallel to the direction from the center of mass of the forearm of the robotic arm towards the end of the robotic arm. For example, in Figure 8, the extension is parallel to the y-axis. For example, the extension in Figure 8 originates from the forearm of the robotic arm, and the exemplary extension can originate from any position on the robotic arm. In another implementation, the direction of the extension can be indicated by a ray originating from a position outside the robotic arm; this embodiment is not limited.
[0201] Specifically, in some embodiments, the control method for the robotic arm provided in this application is executed by a PID controller, and the control signal is further determined based on at least one of proportional control parameters, derivative control parameters, and integral control parameters. According to the control principle of the PID controller, taking the first control signal as a first control torque as an example, the PID controller can be implemented using the following formula:
[0202]
[0203] Where τ indicates the first control torque, and a indicates the angle of rotation about the first axis in the first actual posture. Used to indicate the angular velocity of rotation about the first axis in the first actual posture. It is the first derivative of a with respect to time, a ref , Used to indicate the first desired posture, specifically the first desired posture including the desired angle and desired angular velocity of the robotic arm rotating about the first axis; k p k d k i These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively. s t f These are used to indicate the start and end times of the first control torque, respectively.
[0204] It should be noted that, in one implementation, the first control torque can control the x and y directions separately in Figure 8. For example, the first control torque includes two sub-torques, controlling the two directions respectively. The formula for the first control torque can be implemented as the following two formulas, representing the sub-torques in the x and y directions respectively. For example:
[0205]
[0206]
[0207] Where τ1 indicates the control torque applied in the roll angle direction of rotation about the y-direction. a1 indicates the angle about the y-direction. Used to indicate the angular velocity about the y-direction; a1 ref , Used to indicate the desired angle and desired angular velocity of the robotic arm rotating about the y-direction.
[0208] τ2 indicates the control torque applied in the roll angle direction when rotating about the x-direction. a2 indicates the angle about the x-direction. Used to indicate the angular velocity about the x-direction; a2 ref , Used to indicate the desired angle and desired angular velocity of the robotic arm rotating about the x-direction.
[0209] k p1 k d1 k i1 These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively; k p2 k d2 k i2 These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively. s t f These are used to indicate the start and end times, respectively.
[0210] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, enabling the first throwing of a three-dimensional object, followed by catching the object at any position on the robotic arm other than its end effector, and restoring the object's balance. The controller executes control over the robotic arm, determining a first control signal based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object, thereby controlling the robotic arm to catch the thrown three-dimensional object at any position other than its end effector. This expands the control method for throwing and catching three-dimensional objects at any position on the robotic arm other than its end effector and maintaining their balance.
[0211] Next, we will introduce how the robotic arm enables a three-dimensional object to regain its balance.
[0212] Figure 9 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. This method can be executed by the controller of the robotic arm. Specifically, in the embodiment shown in Figure 4, step 522 is further included:
[0213] Step 522: Obtain the second actual pose;
[0214] For example, the second actual posture is the contact information between the robotic arm and the three-dimensional object; the contact information is used to indicate the interaction between the robotic arm and the three-dimensional object, such as at least one of mechanical features, positional features, etc. Taking positional features as an example, the second actual posture is at least one of the contact position between the robotic arm and the three-dimensional object, the velocity at the contact position, acceleration, etc. For example, there is at least one of contact point, contact line, and contact surface between the robotic arm and the three-dimensional object. Optionally, this embodiment does not limit the way the contact information is recorded. The contact information can be indicated by constructing a coordinate system with the robotic arm as a reference, or by constructing a natural coordinate system with the ground as a reference; or by constructing a coordinate system in another way.
[0215] For example, the second control signal is determined based on a second actual posture and a second desired posture. The second control signal for the robotic arm is determined based on the second actual posture and the second desired posture.
[0216] For example, the second desired pose is used to indicate the pose information of the robotic arm that enables the three-dimensional object to remain balanced on the robotic arm;
[0217] In some embodiments, a second desired posture of 0 can be understood as a desired state of static equilibrium for the three-dimensional object to remain stationary on the robotic arm. In other embodiments, a second desired posture not of 0 can be understood as a desired state of dynamic equilibrium for the three-dimensional object to move or roll on the robotic arm without falling off.
[0218] In some embodiments, the control method for the robotic arm provided in this application can be implemented by a proportional-integral-derivative (PID) controller.
[0219] For example, according to the second control signal, the robotic arm is controlled to make the three-dimensional object regain its balance at any position except the end effector;
[0220] After the second control signal is determined, the robotic arm can be controlled according to the second control signal.
[0221] Furthermore, the second control signal can be a control signal on one or more axes, and the second control signal typically controls the movement of the robotic arm by controlling the torque. Referring to Figure 8, the second control signal can be a control signal about at least one axis in the x, y, or z directions.
[0222] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, enabling the first throwing of a three-dimensional object, followed by catching the object at any position on the robotic arm other than its end effector, and restoring the object's balance. The controller executes control over the robotic arm, determining a second control signal based on the robotic arm's second actual posture and second desired posture, thereby restoring the three-dimensional object's balance at any position other than its end effector. This expands the control method for throwing and catching three-dimensional objects at any position other than the end effector and maintaining their balance.
[0223] In one example, the control method for the robotic arm can be executed by the robotic arm's controller. In the embodiment shown in Figure 9, step 525 can be implemented as sub-step 21:
[0224] Sub-step 21: Determine the second control signal based on the difference between the second actual attitude and the second desired attitude;
[0225] For example, the second desired posture is used to instruct the robotic arm on the posture information that keeps the 3D object balanced on the robotic arm; please refer to the above description for the second actual posture and the second desired posture. The second control signal is information used to control the robotic arm to make the 3D object regain balance at any position except the end effector.
[0226] In one implementation, the second actual posture includes the position information of the center of mass of the 3D object in the direction of the second rotation axis and the offset velocity of the 3D object in the direction of the second rotation axis; correspondingly, the second desired posture includes the desired position of the center of mass of the 3D object in the direction of the second rotation axis and the desired velocity of the 3D object in the direction of the second rotation axis, and the second control signal includes the second control torque; in another implementation, the second desired posture is preset to enable the 3D object to maintain balance at any position except the end effector.
[0227] For example, this step can be implemented as the following sub-steps:
[0228] The second control torque is determined based on the difference between the position information and the desired position, and the difference between the offset velocity and the desired velocity.
[0229] The second control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about a second axis, which is a horizontal line perpendicular to the robotic arm; and / or, the second control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about a second axis, which is an extension of the robotic arm. Referring to Figure 8 above, the first axis is the x-direction in Figure 8, and / or the y-direction.
[0230] Specifically, in some embodiments, the control method for the robotic arm provided in this application is executed by a PID controller, and the control signal is further determined based on at least one of proportional control parameters, derivative control parameters, and integral control parameters. According to the control principle of the PID controller, taking the second control signal as the second control torque as an example, the PID controller can achieve the following formula:
[0231]
[0232] Wherein, τ is used to indicate the second control torque, and y is used to indicate the position information of the center of mass of the three-dimensional object in the direction of the second rotation axis in the second actual posture. Used to indicate the offset velocity of a 3D object in the direction of the second rotation axis in the second actual posture. It is the first derivative of y with respect to time, y ref , Used to indicate the second desired attitude, specifically the second desired attitude includes the desired position of the center of mass of the 3D object in the direction of the second rotation axis and the desired velocity of the 3D object in the direction of the second rotation axis; k p k d k i These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively. s t f These are used to indicate the start and end times of the second control torque, respectively.
[0233] It should be noted that, in one implementation, the second control torque can control the x and y directions in Figure 8 separately. For example, the second control torque includes two sub-torques, controlling the two directions respectively. The formula for the second control torque can be implemented as the following two formulas, representing the sub-torques in the x and y directions respectively. For example:
[0234]
[0235]
[0236] Where τ1 indicates the control torque applied in the roll angle direction of rotation about the y-direction. y1 indicates the position information of the center of mass of the 3D object in the y-direction. Used to indicate the offset velocity of the centroid of a 3D object in the y-direction; y1 ref , Used to indicate the desired position and desired velocity of the center of mass of a three-dimensional object in the y-direction.
[0237] τ2 indicates the control torque applied in the roll angle direction of rotation about the x-direction. y2 indicates the position of the center of mass of the 3D object in the x-direction. Used to indicate the offset velocity of the centroid of a 3D object in the x-direction; y2 ref , Used to indicate the desired position and desired velocity of the center of mass of a 3D object in the x-direction.
[0238] k p1 k d1 k i1 These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively; k p2 k d2 k i2 These are the proportional control parameters, derivative control parameters, and integral control parameters, respectively. s t f These are used to indicate the start and end times, respectively. It should be noted that in this embodiment, the proportional control parameter, derivative control parameter, integral control parameter, start and end times, and the formula in sub-step 11 above are used for illustrative purposes, and the same parameter symbols are used, but the values of the parameters are independent of each other and usually have different values.
[0239] In some embodiments, based on the state estimation of the robotic arm and the three-dimensional object, it is determined that the three-dimensional object is in a relatively stable state on the robotic arm. For example, the contact position between the robotic arm and the three-dimensional object is close to the center of gravity of the robotic arm, and the center of mass of the three-dimensional object is also close to the center of gravity of the robotic arm. Alternatively, the difference between the coordinates of the contact position between the robotic arm and the three-dimensional object and the coordinates of the center of gravity of the robotic arm is less than a first threshold, and the difference between the coordinates of the center of mass of the three-dimensional object and the coordinates of the center of gravity of the robotic arm is less than a second threshold. The first and second thresholds can be set according to actual needs, and this application does not limit them.
[0240] At this point, if we want the three-dimensional object to remain balanced on the robotic arm, then y1 can be made to... ref =0; If it is desired that the three-dimensional object is in a static equilibrium state on the robotic arm, then it can be made If we want the center of mass of the 3D object to be as close as possible to the center of gravity of the robotic arm along the y-axis, then we can make y2 ref=0; If we want the velocity of the center of mass of a 3D object to be as small as possible in the direction of the y-axis, then we can make The second control torque obtained from this will make the three-dimensional object in a static equilibrium state on the robotic arm, which can also be understood as making the three-dimensional object and the robotic arm relatively stationary.
[0241] In other embodiments, based on the state estimation of the robotic arm and the 3D object, it is determined that the 3D object is in a relatively unstable state on the robotic arm. For example, the contact position between the robotic arm and the 3D object is far from the center of gravity of the robotic arm, and / or the center of mass of the 3D object is also far from the center of gravity of the robotic arm. Furthermore, the difference between the coordinates of the contact position between the robotic arm and the 3D object and the coordinates of the center of gravity of the robotic arm is not less than a first threshold, and / or the difference between the coordinates of the center of mass of the 3D object and the coordinates of the center of gravity of the robotic arm is not less than a second threshold. The first and second thresholds can be set according to actual needs, and this application does not limit them.
[0242] At this point, the desired posture information can be assigned a value based on the state estimation result. This assignment can be 0 or a non-zero value. The second control torque obtained accordingly will keep the 3D object in a dynamic equilibrium state on the robotic arm, which can also be understood as enabling the 3D object to move or roll on the robotic arm without falling off.
[0243] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, enabling the first throwing of a three-dimensional object, followed by catching the object at any position on the robotic arm other than its end effector, and restoring the object's balance. The controller executes control over the robotic arm, determining a second control signal based on the robotic arm's second actual posture and second desired posture, thereby restoring the three-dimensional object's balance at any position other than its end effector. This expands the control method for throwing and catching three-dimensional objects at any position other than the end effector and maintaining their balance.
[0244] The following examples further illustrate how to obtain the second actual posture.
[0245] In one example, the control method for the robotic arm can be executed by the robotic arm's controller. In the embodiment shown in Figure 9, step 522 can be implemented as sub-steps 25 and 26:
[0246] Sub-step 25: Obtain the second actual pose based on the visual sensor;
[0247] Sub-step 26: Obtain the second actual posture based on the visual sensor and the tactile sensor;
[0248] It should be understood that sub-step 25 and sub-step 26 must be executed separately, and cannot be executed simultaneously.
[0249] Schematic illustration: Visual sensors are mounted on or outside the robotic arm; tactile sensors are embedded in the robotic arm's outer shell, serving as its electronic skin. For example, encoders can be installed on the joint motors of the robotic arm to provide feedback on the angle, angular velocity, and current information of each joint's rotation; this information can be used for state estimation of the robotic arm. Similarly, tactile sensors can be embedded in the fingers, palm, or a link of the robotic arm to acquire feedback information about three-dimensional objects.
[0250] In some embodiments, a second actual posture can also be obtained via a proximity sensor. The proximity sensor emits a signal when two objects approach each other, and the second actual posture can be obtained when a three-dimensional object approaches the proximity sensor.
[0251] Indicatively, this application provides the following three optional implementation methods for obtaining the second actual posture:
[0252] Implementation Method 1: Full-degree-of-freedom pose recognition of 3D objects based on visual perception.
[0253] Taking the 7-DOF robotic arm shown in Figures 1 to 3 as an example, the posture recognition of the three-dimensional object can be obtained through a vision sensor to determine the relative positional relationship between the three-dimensional object and the robotic arm, thereby determining the second actual posture.
[0254] In some embodiments, the computation time for pose recognition is approximately 100 milliseconds, or 10 Hz.
[0255] Method 2: Data and image processing based on visual sensors.
[0256] Optionally, lightweight data image processing methods can be applied to determine the position of a 3D object within a dynamic system. For example, a camera can be placed on a robotic arm or in the external environment to acquire image information of the robotic arm and the 3D object, which is used to show the 3D object positioned on the robotic arm. The image information is then processed to obtain the image processing result.
[0257] For example, after acquiring image information, cluster analysis is performed based on the difference in color between the 3D object and objects in the environment to determine the geometric center of the 3D object. Subsequently, the positions of the geometric center and the center of mass in the dynamic system can be determined. Based on this, combined with relevant information from the robotic arm, a second actual posture can be obtained, such as determining the coordinates and movement speed of the contact position based on the geometric center of the 3D object, and determining the offset and offset speed based on the position of the center of mass of the 3D object.
[0258] In some embodiments, the lightweight computing in this implementation is fast, with a computation time of about 10 milliseconds, or 10Hz.
[0259] Based on this, sub-step 25 can optionally be implemented as follows:
[0260] Image information is acquired through a vision sensor, and this image information is used to display three-dimensional objects placed on a robotic arm.
[0261] The second actual pose is determined based on the image processing results obtained from image information processing.
[0262] Alternatively, sub-step 26 can be implemented as follows:
[0263] Based on a visual sensor, determine the first information of a three-dimensional object in a first direction;
[0264] Based on tactile sensors, second information about a three-dimensional object in a second direction is determined;
[0265] The first and second information are fused to obtain the second actual posture.
[0266] The first direction is the direction of the horizontal line perpendicular to the robotic arm, and the second direction is the direction of the extension line of the robotic arm.
[0267] The determination of the first piece of information can be referred to the foregoing content and will not be repeated here; the determination of the second piece of information and the fusion process will be described in detail below.
[0268] Method 3: Based on visual and tactile sensors, perform data fusion processing.
[0269] In some embodiments, the second actual posture can also be obtained based on a visual sensor and a tactile sensor. The processing of the visual sensor is as described above, and the processing of the tactile sensor is as follows.
[0270] As mentioned above, using lightweight data image processing methods may result in significant errors in the depth direction of the camera (i.e., the direction of the y-axis as shown in Figure 8). This can be compensated for by using tactile sensors. For example, tactile sensors can be installed on the outer shell of a robotic arm to collect the tactile signals corresponding to a 3D object placed on the arm. Based on this, the precise position of the 3D object in the y-direction on the robotic arm can be accurately determined.
[0271] This can be understood as follows: the tactile sensor provides the position and pitch angle of the balancing object in the y-direction; at the same time, combined with the lightweight image processing of the vision sensor, and compared with prior image data, the specific position of the three-dimensional object in the y-direction on the robotic arm can be determined.
[0272] In some embodiments, the computation time of the tactile sensor in this implementation is approximately 10 milliseconds, or 10 Hz.
[0273] Based on the foregoing content, a comparison of the three implementation methods is given in the table below:
[0274] The scheme's calculation cycle linear error and angle error implementation methods are as follows: Method 1: 100ms, 1-2cm, 5-10 degrees; Method 2: 10ms, 1cm, 5 degrees; Method 3: 10ms, 1cm, 5 degrees. surface
[0275] It should be understood that using implementation method one, the determination of the position of the 3D object on the robotic arm will have a linear error of 1-2 cm and an angular error of 5-10 degrees, meaning that the obtained second actual posture will have certain linear and angular errors. Similarly, implementation methods two and three also have certain errors. Furthermore, implementation method three is an improvement on implementation method two, which can overcome the shortcoming of inaccurate measurement of the center of mass in the y-axis direction of implementation method two, thus making the error of the obtained second actual posture smaller.
[0276] It should be understood that if the control method of the robotic arm provided in this application is adopted, an appropriate implementation method can be selected according to actual needs to obtain the second actual posture, and this application does not limit it in this regard.
[0277] Referring to the foregoing, sub-step 26 can be implemented as follows: based on the visual sensor, determine the first information of the three-dimensional object in the first direction; based on the tactile sensor, determine the second information of the three-dimensional object in the second direction; and fuse the first information and the second information to obtain the second actual posture.
[0278] Optionally, the determination of the second information can be specifically implemented by: determining the position information of the contact point between the three-dimensional object and the robotic arm relative to the robotic arm through a tactile sensor.
[0279] It should be understood that the positional information determined accordingly includes at least the coordinates of the contact position between the three-dimensional object and the robotic arm. The details regarding the acquisition of positional information by the tactile sensor are as described above and will not be repeated here. In some embodiments, the tactile sensor is mounted on the outer shell of the robotic arm, and the user obtains the contact position between the three-dimensional object and the robotic arm using the tactile sensor.
[0280] Referring to the foregoing, the first information is visual perception data, and the second information is tactile perception data. These two types of data can be fused. Optionally, the fusion process can employ any one or more of the following algorithms: including Kalman Filtering (KF), Extended Kalman Filtering (EKF), and Particle Filtering (PF).
[0281] It should be understood that there are multiple ways to implement data fusion processing, and the above is merely an illustrative example and does not limit this application. Furthermore, as fusion processing methods are updated, any fusion processing that appears after this application should also be applicable to this application; that is, the result of fusion processing does not limit the control method of the robotic arm provided in this application.
[0282] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, capable of first throwing a three-dimensional object, then catching the object at any position on the robotic arm other than its end effector, and restoring the three-dimensional object to its balance; determining a second actual posture based on a visual sensor, or based on a visual sensor and a tactile sensor, providing multiple ways to acquire the second actual posture; and expanding the control methods for throwing and catching three-dimensional objects at any position on the robotic arm other than its end effector and maintaining their balance.
[0283] Figure 10 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. This method can be executed by the controller of the robotic arm. Specifically, in the embodiment shown in Figure 4, steps 502 and 504 are further included:
[0284] Step 502: Obtain the third desired pose of the robotic arm;
[0285] For example, the third desired posture is used to instruct the robotic arm to disengage the 3D object from the robotic arm and obtain posture information of vertical upward velocity; in one implementation, the third desired information is that the robotic arm lifts up in the pitch direction, so that the 3D object obtains vertical upward velocity.
[0286] Step 504: Determine the third control signal of the robotic arm based on the third actual posture and the third desired posture of the robotic arm;
[0287] For example, the third desired posture is used to instruct the robotic arm to disengage from the three-dimensional object and obtain posture information of a vertically upward velocity; the third control signal is used to control the robotic arm to move from the third actual posture to the third desired posture. In some embodiments, the robotic arm control method provided in this application can be implemented by a PID controller. For example, the third desired posture can be implemented as a posture sequence, such as a time sequence that changes over time.
[0288] In one implementation, the third actual posture includes the angle and angular velocity of the robot arm's rotation about the axis; correspondingly, the third desired posture includes the desired angle and desired angular velocity of the robot arm's rotation about the axis. Referring to Figure 8, the axis can be at least one of the x-direction, y-direction, or z-direction.
[0289] The specific method for determining the third control signal of the robotic arm can be referenced from the formula of the PID controller in sub-step 12 above. For example, the third desired posture includes, within a first time period (e.g., 0.1s), reducing the values of joint angles 4 and 5 (forearm elbow joint) from their initial values in the preparatory posture to 0 degrees, moving joint angle 3 from 1.57 radians to 1.37 radians, while keeping the values of other joint angles unchanged. The third control signal is determined based on the third actual posture and the third desired posture, referring to the formula of the PID controller in sub-step 12.
[0290] For example, a robotic arm is controlled to throw a three-dimensional object up according to a third control signal;
[0291] After determining the third control signal, the robotic arm can be controlled according to it. Furthermore, the third control signal can be a control signal on one or more axes of rotation, and it typically controls the robotic arm's movement through control torque. It should be noted that even if the third control signal is used to control the robotic arm to give the three-dimensional object a vertically upward velocity, it does not preclude the possibility that the three-dimensional object may acquire a velocity component in any direction perpendicular to the vertical direction. Referring to Figure 8, the third control signal can be a control signal about at least one axis of rotation in the x, y, or z directions.
[0292] In one alternative implementation, the following steps are included before step 512:
[0293] Obtain the fourth desired pose of the robotic arm;
[0294] The fourth control signal of the robotic arm is determined based on the fourth actual posture and the fourth desired posture of the robotic arm.
[0295] For example, the fourth desired posture is used to instruct the robotic arm to maintain contact between the 3D object and the robotic arm, and to provide posture information for the robotic arm to acquire a vertically downward velocity. For example, before controlling the robotic arm to disengage from the 3D object and acquire a vertically upward velocity, the robotic arm acquiring a vertically downward velocity is beneficial for the robotic arm to gain operating space, and facilitates the 3D object to increase its acquired vertically upward velocity. The fourth desired posture includes the desired angle and desired angular velocity of the robotic arm's rotation about its axis. Similarly, the fourth desired posture can be implemented as a posture sequence, such as a time series that changes over time.
[0296] The specific method for determining the third control signal of the robotic arm can be referred to the formula of the PID controller in sub-step 12 above. For example, the fourth desired posture includes, within the second time period (e.g., 0.2s), increasing the values of joint angles 4 and 5 (forearm elbow joint) from 0 degrees to values greater than the initial values of the prepared posture (e.g., 0.5 radians), rotating joint angle 1 from its initial angle to a preset value (e.g., 0.3 radians), and moving joint angle 3 from 1.37 radians to 1.17 radians, while keeping the values of other joint angles unchanged. The third control signal is determined based on the third actual posture and the third desired posture, referring to the formula of the PID controller in sub-step 12. It should be noted that the joint angles mentioned above refer to the 7-DOF robotic arm in Figure 1, with joint angle 1 defined as the angle between the two moving parts of the upper arm at the shoulder joint, and joint angle 7 defined as the angle between the two moving parts at the end of the robotic arm. The descriptions of joint angles below are all based on the 7-DOF robotic arm in Figure 1 and will not be repeated here.
[0297] Step 510 can be implemented as follows: according to the third control signal and the fourth control signal, control the robotic arm to throw up the three-dimensional object;
[0298] For example, the third control signal is used to control the three-dimensional object and the robotic arm to disengage, and the three-dimensional object to obtain a vertically upward velocity; the fourth control signal is used to control the three-dimensional object and the robotic arm to remain in contact, and the robotic arm to obtain a vertically downward velocity.
[0299] For example, controlling the robotic arm to throw a three-dimensional object is achieved by first controlling the three-dimensional object and the robotic arm to maintain contact and the robotic arm to obtain a vertically downward velocity through a fourth control signal, and then controlling the three-dimensional object and the robotic arm to disengage through a third control signal and the three-dimensional object to obtain a vertically upward velocity.
[0300] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, enabling the first throw of a three-dimensional object, followed by catching the object at any position on the robotic arm other than its end effector, and restoring the object's balance. The controller executes control over the robotic arm, determining a third control signal based on the robotic arm's third actual posture and third desired posture, thereby controlling the robotic arm to throw the three-dimensional object and expanding the control method for throwing and catching a three-dimensional object at any position on the robotic arm other than its end effector while maintaining its balance.
[0301] Figure 11 illustrates a schematic diagram of a robotic arm and a three-dimensional object provided in an exemplary embodiment of this application. Figure 11 includes sub-figures a to f, showing six timestamps during the process of the robotic arm throwing the three-dimensional object 612. Exemplarily, in sub-figure a, the three-dimensional object 612 is placed on the forearm 600a of the robotic arm, which also includes the upper arm 600b. For a description of the forearm and upper arm, please refer to sub-steps 16b and 604 and the relevant descriptions in Figure 3; they will not be shown here again. In sub-figure b, the forearm 600a performs a pitching motion and rotates around the elbow joint, causing the height of the end effector 600c of the robotic arm to decrease. In sub-figure c, the forearm 600a performs a pitching motion and rotates around the elbow joint, causing the height of the end effector 600c of the robotic arm to increase. In sub-figure d, the forearm 600a of the robotic arm rotates around the elbow joint, and the upper arm 600b of the robotic arm rotates around the shoulder joint, causing the height of the end effector 600c of the robotic arm to continue to increase. For example, subgraph d corresponds to the timestamp before the 3D object 612 and the robotic arm lose contact. In subgraph e, the 3D object 612 loses contact with the robotic arm and is thrown into the air; in subgraph f, the 3D object 612 reaches its highest point.
[0302] Figure 12 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. This method can be executed by the controller of the robotic arm. Specifically, in the embodiment shown in Figure 4, steps 535 and 540 are further included:
[0303] Step 535: Obtain the grasping control signal;
[0304] For example, the grasping control signal is used to control the end effector of the robotic arm to grasp a three-dimensional object. Optionally, the grasping control signal controls the robotic arm to move with reference to the motion trajectory information of the three-dimensional object; further, the end effector of the robotic arm can remain relatively stationary with respect to the three-dimensional object while grasping the three-dimensional object. Similar to the first control signal, this application does not limit the method of acquiring the grasping control signal.
[0305] Step 540: Based on the grasping control signal, control the end effector of the robotic arm to grasp the thrown three-dimensional object, and the three-dimensional object reaches a state of force equilibrium while being grasped.
[0306] For example, a grasping operation exists between the end effector of the robotic arm and a three-dimensional object; the end effector is a robotic hand that can open or close; the three-dimensional object reaches a state of force equilibrium, the end effector of the robotic arm grasps the three-dimensional object, and at least one of form closure and force closure exists between the end effector of the robotic arm and the three-dimensional object. Furthermore, the grasping operation restricts the movement of the three-dimensional object; the contact between the end effector of the robotic arm and the three-dimensional object keeps them relatively stationary, or there is relative movement between the three-dimensional object and the robotic arm, but the three-dimensional object does not disengage from the end effector of the robotic arm.
[0307] In one implementation, the following steps are included before step 540:
[0308] Obtain the motion trajectory information of a 3D object;
[0309] For example, the grasping control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object. For example, based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object, the grasping control signal of the end effector of the robotic arm is determined; based on the grasping control signal, the end effector of the robotic arm is controlled to grasp the three-dimensional object.
[0310] For example, the method for obtaining motion trajectory information is described in step 522 above, and will not be repeated here. The motion trajectory information is the parabolic trajectory after the 3D object and the robotic arm separate from contact. The grasping control signal is used to control the end effector of the robotic arm to grasp the 3D object; the first actual posture of the robotic arm is used to indicate the posture position information of the robotic arm at the current timestamp, for example, the posture information is described by at least one of the robotic arm's angle and angular velocity.
[0311] The grasping control signal includes information instructing the robotic arm to move with reference to the motion trajectory information of the three-dimensional object, and information controlling the movement of the robotic arm's end effector to perform a grasping operation between the three-dimensional objects. For example, the information instructing the robotic arm to move with reference to the motion trajectory information of the three-dimensional object can be referred to step 524 above. The control signal controlling the movement of the robotic arm's end effector to perform a grasping operation between the three-dimensional objects is determined based on the shape characteristics of the three-dimensional objects, such as the size and curvature of the three-dimensional objects. In some embodiments, the robotic arm control method provided in this application can be implemented by a proportional-integral-derivative (PID) controller. The specific implementation method can be referred to sub-step 12 above.
[0312] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, which can first throw a three-dimensional object into the air and then grasp the three-dimensional object through the upper end of the robotic arm; the controller executes the control of the robotic arm to realize the throwing and catching action of the three-dimensional object, expanding the control method of throwing and catching three-dimensional objects at any position of the robotic arm except for the end, and maintaining balance.
[0313] Figure 13 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. The method can be executed by a controller of the robotic arm. The method includes:
[0314] Step 602: Receive the first instruction information;
[0315] For example, in the absence of a first instruction message, the robotic arm continues to wait for user instructions in a preset instruction preparation posture. The first instruction message can be sent via input devices such as voice, gestures, keyboard, or remote control. The first instruction message can be obtained through AI-based clustering analysis and pattern recognition of voice and gestures, or through instruction signal transmission and parsing.
[0316] The first instruction is used to instruct the robotic arm to throw up a three-dimensional object (such as a bottle) and then catch the object thrown into the air.
[0317] Step 604: Control the robotic arm to move to the preparatory posture for the throwing motion;
[0318] The robotic arm is controlled to move to a preparatory posture for throwing the bottle. This preparatory posture is a pre-set robotic arm posture. For example, the preparatory posture allows the forearm to start the bottle-throwing action at any time and is a safe and stable posture for the robotic arm.
[0319] Specifically, the initial posture can be set as follows: the first arm of the dual robotic arm platform is extended straight forward to the right, while joint 1 (upper arm shoulder joint) moves downward and joints 4 and 5 (forearm elbow joint) move upward, keeping the rigid body of the forearm basically parallel to the ground, and the distance between the forearm and the ground is less than the distance between the shoulder joint and the ground.
[0320] Step 606: Determine if the bottle's position meets the action requirements;
[0321] For example, if the bottle position does not meet the action requirements, step 608 is executed; if the bottle position meets the action requirements, steps 610 and 612 are executed.
[0322] For example, whether the bottle's position meets the action requirements, which are the requirements for the throwing action, is planned based on the mechanical model of the robotic arm and the bottle, or it can be preset. For example: the bottle is parallel to the ground, the bottle is perpendicular to the forearm of the robotic arm, the contact point between the bottle and the forearm is located at the edge of the forearm near the elbow joint, or the contact point between the bottle and the forearm is located at one-third of the distance from the elbow joint on the forearm.
[0323] Step 608: If the bottle position does not meet the action requirements, control the robotic arm to adjust the bottle's posture;
[0324] For example, after executing step 608, step 606 is executed to determine again whether the bottle position meets the action requirements. For example, if the bottle position does not meet the action requirements, the robotic arm is controlled to move, indirectly adjusting the bottle's posture until the bottle position meets the action requirements.
[0325] Step 610: When the bottle's position meets the action requirements, control the first arm to perform the throwing action;
[0326] For example, this embodiment uses a dual-arm robotic platform for illustration. In another implementation, all the steps in this embodiment can be implemented by a single robotic arm.
[0327] For example, the first arm is controlled to perform a throwing motion. The bottle placed on the forearm of the first arm gains upward velocity, and after separating from the upper surface of the forearm, it continues to perform the throwing motion.
[0328] During the interaction between the forearm and the bottle, before the forearm separates from the bottle, the bottle can slide on the forearm. However, during this sliding process, the bottle will not fall off the upper surface of the forearm, nor will it slide out of the forearm's forward and backward range due to excessive speed or distance. After being thrown into the air, the bottle can have a velocity in the forward direction of the forearm, a velocity from the first arm to the second arm, and a velocity of its own rotation.
[0329] In one specific implementation, the first arm performs the throwing motion as follows: Starting from a ready position, within a first time period (e.g., 0.1s), the values of joint angles 4 and 5 (forearm elbow joint) decrease from the initial values of the ready position to 0 degrees, joint angle 3 moves from 1.57 radians to 1.37 radians, and the values of other joint angles remain unchanged; within a second time period (e.g., 0.2s), the values of joint angles 4 and 5 (forearm elbow joint) increase from 0 degrees to values greater than the initial values of the ready position (e.g., 0.5 radians), joint angle 1 rotates from the initial angle to a preset value (e.g., 0.3 radians), joint angle 3 moves from 1.37 radians to 1.17 radians, and the values of other joint angles remain unchanged.
[0330] Step 612: With the bottle in the correct position, control the second arm to move to the ready position for catching the object.
[0331] For example, the ready position allows the second arm to start picking up the bottle at any time, and is a safe and stable position for the second arm.
[0332] Step 614: Predict the trajectory of the bottle in the air;
[0333] For example, after the bottle separates from the forearm, the timing information of the tactile position and force magnitude before the forearm and bottle separate, the joint angle position, speed and current information of the robotic arm, and visual sensing information are used to predict the trajectory information of the bottle after it is thrown in the world coordinate system or in the coordinate system relative to the center of mass of the first arm.
[0334] Step 616: Control the second arm to move according to the predicted trajectory information;
[0335] For example, based on the bottle's trajectory information in the air, the second arm moves towards the bottle's position and direction of motion, maintaining a similar speed to the bottle near its location. A time series of the second arm's position and orientation is planned based on the bottle's trajectory information in the air. This time series is then applied to control the movement of the second arm.
[0336] Step 618: Control the second arm to close the robotic arm at the end of the bottle;
[0337] In one implementation, the bottle is grasped by a robotic hand at the end of the second arm. Based on the time sequence obtained from the trajectory information of the bottle in the air, the robotic hand controls the position of each joint angle as the bottle approaches the palm, controlling the robotic hand's posture from open to closed, thus completing the grasping of the flying bottle.
[0338] Step 620: Control any position on the second arm other than the end to catch the thrown three-dimensional object, and make the three-dimensional object regain its balance at any position other than the end.
[0339] There is a non-gripping operation between any position on the second arm (excluding the end) and the three-dimensional object; the contact between any position on the second arm (excluding the end) and the three-dimensional object does not constitute at least one of the form closure and force closure of the three-dimensional object. The three-dimensional object regains balance on the second arm. The purpose of controlling the first arm in this step is to ensure that the three-dimensional object is in a balanced state on the second arm, so that the three-dimensional object can always remain balanced on the second arm without falling.
[0340] In summary, the method provided in this embodiment offers a novel way to use a robotic arm, which can first throw a three-dimensional object into the air, then catch the three-dimensional object at any position on the robotic arm other than its end effector, and restore the balance of the three-dimensional object. The controller performs control over the robotic arm to realize the throwing and catching action of the three-dimensional object, expanding the control method for throwing and catching three-dimensional objects at any position on the robotic arm other than its end effector and maintaining their balance.
[0341] Figure 14 shows a flowchart of a control method for a robotic arm provided in an exemplary embodiment of this application. The method can be executed by a controller of the robotic arm. The method includes:
[0342] Step 632: Receive the second instruction information;
[0343] For example, in the absence of a second instruction, the robotic arm continues to wait for user commands in a preset command preparation posture. The second instruction can be sent via input devices such as voice, gestures, a keyboard, or a remote control. It can be obtained through AI-based clustering analysis and pattern recognition of voice and gestures, or through instruction signal transmission and parsing. The second instruction is used to instruct the robotic arm to balance a three-dimensional object (such as a bottle) placed at any position on the robotic arm except for its end effector.
[0344] Step 634: Control the robotic arm to move to the preparatory posture for a balanced movement;
[0345] The robotic arm is controlled to move to a preparatory posture for throwing the bottle. This preparatory posture is a pre-set robotic arm posture. For example, the preparatory posture allows the forearm to balance the bottle at any time and is a safe and stable posture for the robotic arm.
[0346] Specifically, the initial posture can be set to the first arm of the dual-arm robotic platform being extended straight forward to the right.
[0347] Step 636: Determine if the tactile information is normal;
[0348] For example, if the tactile information is determined to be abnormal, this step is repeated until normal tactile information is obtained. Abnormal tactile information includes no tactile signal received, or an abnormal tactile signal received.
[0349] Step 638: If the tactile information is normal, determine whether the visual information is normal;
[0350] For example, if the visual information is determined to be abnormal, this step is repeated until normal visual information is obtained. Abnormal visual information includes no visual signal received or an abnormal visual signal received.
[0351] Step 640: If the visual information is normal, determine whether the bottle position meets the action requirements;
[0352] The bottle position is determined by fusing received visual and tactile information, and is used to indicate the bottle's position and orientation on the robotic arm.
[0353] Step 642: If the bottle position does not meet the action requirements, control the robotic arm to adjust the bottle's posture;
[0354] For example, if the bottle's position does not meet the action requirements, the robotic arm is controlled to move, indirectly adjusting the bottle's posture until the bottle's position meets the action requirements.
[0355] Step 644: When the bottle position meets the action requirements, control the first arm to perform a balancing action;
[0356] For example, controlling the first arm to perform balancing actions includes: desiring the three-dimensional object to be in a static equilibrium state so that the three-dimensional object remains stationary on the robotic arm; and desiring the three-dimensional object to be in a dynamic equilibrium state so that the three-dimensional object displaces or rolls on the robotic arm but does not fall off.
[0357] Furthermore, robotic arms can also be used to perform at least one of the following actions: grasping, throwing, and catching actions using the robotic hand at the end of the robotic arm; inserting, unscrewing, and assembling actions using the end tool of the robotic arm; opening and closing doors, grasping objects on a desktop and in a workspace, etc.
[0358] In summary, this application provides a novel method for using a robotic arm, enabling a three-dimensional object to maintain balance and prevent falling at any position on the robotic arm except for its end effector. Specifically, based on the attitude information and desired attitude information of the dynamic system constructed from the robotic arm and the three-dimensional object, control signals for the robotic arm can be determined, thereby achieving control of the robotic arm.
[0359] Those skilled in the art will understand that the above embodiments can be implemented independently, or the above embodiments can be freely combined to create new embodiments to implement the robotic arm control method of this application.
[0360] Figure 15 shows a block diagram of a control device for a robotic arm provided in an exemplary embodiment of this application. A three-dimensional object is placed at any position on the robotic arm except for its end effector. The device includes:
[0361] Control module 810 is used to control the robotic arm to throw the three-dimensional object.
[0362] Acquisition module 820 is used to acquire the first control signal;
[0363] The control module 810 is also used to control any position on the robotic arm other than the end to catch the thrown three-dimensional object based on the first control signal.
[0364] The acquisition module 820 is also used to acquire a second control signal;
[0365] The control module 810 is also used to control the robotic arm based on the second control signal so that the three-dimensional object can regain a state of force equilibrium at any position other than the end.
[0366] In an optional design of this application, the robotic arm includes a first arm; the control module 810 is further configured to:
[0367] Control the first arm to throw the three-dimensional object up, and the first arm and the three-dimensional object will disengage;
[0368] Based on the first control signal, the first arm can be controlled to catch the thrown three-dimensional object at any position other than the end.
[0369] Based on the second control signal, the first arm is controlled so that the three-dimensional object can regain a state of force equilibrium at any position except the end.
[0370] In an optional design of this application, the robotic arm includes a first arm and a second arm that move independently of each other; the control module 810 is further configured to:
[0371] Control the first arm to throw the three-dimensional object up, and the first arm and the three-dimensional object will disengage;
[0372] Based on the first control signal, the second arm can be controlled to catch the thrown three-dimensional object at any position other than the end.
[0373] Based on the second control signal, the second arm is controlled so that the three-dimensional object can regain a state of force equilibrium at any position except the end.
[0374] In an optional design of this application, the acquisition module 820 is further configured to:
[0375] The motion trajectory information of the three-dimensional object is obtained, which is the parabolic trajectory of the three-dimensional object after it and the robotic arm are no longer in contact; wherein, the first control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
[0376] In an optional design of this application, the acquisition module 820 is further configured to:
[0377] Based on the motion trajectory information of the three-dimensional object, a first desired posture of the robotic arm is determined. The first desired posture is used to indicate the posture information of the robotic arm to catch the thrown three-dimensional object.
[0378] The first control signal is determined based on the difference between the first actual posture and the first desired posture.
[0379] In an optional design of this application, the first actual posture includes the angle and angular velocity of the robotic arm rotating about the first axis, the first desired posture includes the desired angle and desired angular velocity of the robotic arm rotating about the first axis, and the first control signal includes a first control torque; the acquisition module 820 is further configured to:
[0380] The first control torque is determined based on the difference between the angle and the desired angle, and the difference between the angular velocity and the desired angular velocity; wherein the first control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the first axis, the first axis being a horizontal line perpendicular to the robotic arm; and / or, the first control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the first axis, the first axis being an extension of the robotic arm.
[0381] In an optional design of this application, the acquisition module 820 is further configured to:
[0382] Obtain the second actual posture, which is the contact information between the robotic arm and the three-dimensional object;
[0383] The second control signal is determined based on the second actual posture and the second desired posture. The second desired posture is used to instruct the robotic arm on the posture information of the three-dimensional object to maintain balance on the robotic arm.
[0384] In an optional design of this application, the acquisition module 820 is further configured to:
[0385] The second control signal is determined based on the difference between the second actual posture and the second desired posture.
[0386] In an optional design of this application, the second actual posture includes the position information of the center of mass of the three-dimensional object in the direction of the second rotation axis and the offset velocity of the three-dimensional object in the direction of the second rotation axis; the second desired posture includes the desired position of the center of mass of the three-dimensional object in the direction of the second rotation axis and the desired velocity of the three-dimensional object in the direction of the second rotation axis; the second control signal includes a second control torque; the acquisition module 820 is further configured to:
[0387] The second control torque is determined based on the difference between the position information and the desired position, and the difference between the offset speed and the desired speed; wherein the second control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the second axis, the second axis being a horizontal line perpendicular to the robotic arm; and / or, the second control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the second axis, the second axis being an extension of the robotic arm.
[0388] In an optional design of this application, the acquisition module 820 is further configured to:
[0389] The second actual pose is obtained based on a visual sensor;
[0390] Alternatively, the second actual posture can be obtained based on the visual and tactile sensors.
[0391] In an optional design of this application, the acquisition module 820 is further configured to:
[0392] Images are acquired through the vision sensor, and the images are used to show the three-dimensional object placed on the robotic arm;
[0393] The second actual pose is determined based on the image processing result obtained from the image processing.
[0394] In an optional design of this application, the acquisition module 820 is further configured to:
[0395] Based on the visual sensor, first information about the three-dimensional object in a first direction is determined;
[0396] Based on the tactile sensor, second information about the three-dimensional object in the second direction is determined;
[0397] The first information and the second information are fused to obtain the second actual posture;
[0398] Wherein, the first direction is the direction of the horizontal line perpendicular to the robotic arm, and the second direction is the direction of the extension line of the robotic arm.
[0399] In an optional design of this application, the acquisition module 820 is further configured to:
[0400] Obtain the third desired posture of the robotic arm, which is used to instruct the robotic arm to disengage the three-dimensional object from the robotic arm and obtain the posture information of the vertical upward velocity;
[0401] Based on the third actual posture and the third desired posture of the robotic arm, a third control signal for the robotic arm is determined; wherein, controlling the robotic arm to throw the three-dimensional object is based on the third control signal.
[0402] In an optional design of this application, the acquisition module 820 is further configured to:
[0403] Obtain the fourth desired posture of the robotic arm, which is used to instruct the robotic arm to keep the three-dimensional object and the robotic arm in contact, and the robotic arm obtains posture information of vertical downward velocity;
[0404] Based on the fourth actual posture and the fourth desired posture of the robotic arm, the fourth control signal of the robotic arm is determined;
[0405] The control module 810 is also used for:
[0406] Based on the third and fourth control signals, the robotic arm is controlled to throw the three-dimensional object.
[0407] The third control signal is used to control the three-dimensional object and the robotic arm to disengage, and the three-dimensional object to obtain an upward vertical velocity. The fourth control signal is used to control the three-dimensional object and the robotic arm to remain in contact, and the robotic arm to obtain a downward vertical velocity.
[0408] In an optional design of this application, the acquisition module 820 is further configured to acquire a grasping control signal;
[0409] The control module 810 is also used to control the end of the robotic arm to grasp the thrown three-dimensional object based on the grasping control signal, and the three-dimensional object reaches a force balance state when it is grasped.
[0410] In an optional design of this application, the acquisition module 820 is further configured to:
[0411] The motion trajectory information of the three-dimensional object is obtained, which is the parabolic trajectory of the three-dimensional object after it and the robotic arm are no longer in contact; wherein, the grasping control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
[0412] It should be noted that the device provided in the above embodiments is only illustrated by the division of the above functional modules when implementing its functions. In actual applications, the above functions can be assigned to different functional modules according to actual needs, that is, the content structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0413] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments of the relevant method; the technical effects achieved by each module performing its operation are the same as the technical effects in the embodiments of the relevant method, and will not be elaborated here.
[0414] Figure 16 shows a schematic block diagram of a robotic arm according to an embodiment of this application. The robotic arm in this embodiment may include: one or more controllers 1501; one or more sensors 1502; one or more motors 1503; and a memory 1504. The controllers 1501, sensors 1502, motors 1503, and memory 1504 are connected via a bus 1505. The memory 1504 is used to store a computer program, which includes program instructions. The controllers 1501 are used to execute the program instructions stored in the memory 1504.
[0415] The memory 1504 may include volatile memory, such as random-access memory (RAM); the memory 1504 may also include non-volatile memory, such as flash memory, solid-state drive (SSD), etc.; the memory 1504 may also include a combination of the above types of memory.
[0416] Controller 1501 may be a central processing unit (CPU). Controller 1501 may further include hardware chips. These hardware chips may be application-specific integrated circuits (ASICs), programmable logic devices (PLDs), etc. The PLD may be a field-programmable gate array (FPGA), generic array logic (GAL), etc. Controller 1501 may also be a combination of the above structures.
[0417] In this embodiment, the memory 1504 is used to store a computer program, which includes program instructions. The controller 1501 is used to execute the program instructions stored in the memory 1504 to implement the steps of the aforementioned robotic arm control method.
[0418] In one embodiment, controller 1501 is configured to invoke program instructions for execution:
[0419] Control the robotic arm to launch the three-dimensional object;
[0420] Control any position on the robotic arm, except for the end cap, to catch the thrown three-dimensional object;
[0421] Control the robotic arm so that the three-dimensional object can regain its balance at any position except for the end.
[0422] Indicatively, an embodiment of this application also provides a robot, which includes the robotic arm described above. The robotic arm can be used to implement the control methods for the robotic arm provided in the above method embodiments. The structure of the robotic arm can be referred to the description above, and the control methods for the robotic arm can be referred to the foregoing method embodiments, and will not be repeated here.
[0423] The embodiments of this application also provide a robotic arm, which includes a controller and a memory. The memory stores at least one piece of program code, which is loaded and executed by the controller to implement the control method of the robotic arm provided in the above-described method embodiments.
[0424] Embodiments of this application also provide a computer device, which includes a processor and a memory. The memory stores at least one program, which is loaded and executed by the processor to implement the robotic arm control method provided in the above-described method embodiments.
[0425] Embodiments of this application also provide a computer-readable storage medium storing a computer program. The computer program is executed by a processor to implement the robotic arm control methods provided in the above-described method embodiments. Optionally, the computer-readable storage medium may include: read-only memory (ROM), random access memory (RAM), solid-state drive (SSD), or optical disk, etc. The random access memory may include resistive random access memory (ReRAM) and dynamic random access memory (DRAM). The sequence numbers of the embodiments in this application are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0426] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware, or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk. The above descriptions are merely optional embodiments of this application and are not intended to limit the application. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of this application should be included within the scope of protection of this application.
[0427] Embodiments of this application also provide a chip, which includes a programmable logic circuit or a program, and is used to implement the control method of the robotic arm provided in the above-described method embodiments.
[0428] Embodiments of this application also provide a computer program product including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform any of the robotic arm control methods described in the above embodiments.
[0429] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0430] Those skilled in the art will recognize that the functions described in the embodiments of this application in one or more of the above examples can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transmission of a computer program from one place to another. Storage media can be any available medium accessible to a general-purpose or special-purpose computer. The above descriptions are merely optional embodiments of this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A control method for a robotic arm, wherein a three-dimensional object is placed at any position on the robotic arm except for its end effector, the method being executed by a controller of the robotic arm, characterized in that, The method includes: controlling the robotic arm to throw the three-dimensional object; acquiring a first control signal; controlling the robotic arm to catch the thrown three-dimensional object at any position other than the end point based on the first control signal; acquiring a second control signal; and controlling the robotic arm to make the three-dimensional object reach a state of force equilibrium again at any position other than the end point based on the second control signal.
2. The method according to claim 1, characterized in that, The robotic arm includes a first arm; controlling the robotic arm to throw the three-dimensional object includes: controlling the first arm to throw the three-dimensional object, wherein the first arm and the three-dimensional object are no longer in contact; controlling any position on the robotic arm other than the end cap to catch the thrown three-dimensional object based on the first control signal includes: controlling any position on the first arm other than the end cap to catch the thrown three-dimensional object based on the first control signal; controlling the robotic arm based on the second control signal to make the three-dimensional object reach a state of force equilibrium again at any position other than the end cap includes: controlling the first arm based on the second control signal to make the three-dimensional object reach a state of force equilibrium again at any position other than the end cap.
3. The method according to claim 1, characterized in that, The robotic arm includes a first arm and a second arm that move independently of each other; controlling the robotic arm to throw the three-dimensional object includes: controlling the first arm to throw the three-dimensional object, and disengaging the first arm from the three-dimensional object; controlling any position on the robotic arm other than the end cap to catch the thrown three-dimensional object based on the first control signal includes: controlling any position on the second arm other than the end cap to catch the thrown three-dimensional object based on the first control signal; controlling the robotic arm based on the second control signal to make the three-dimensional object reach a state of force equilibrium again at any position other than the end cap includes: controlling the second arm based on the second control signal to make the three-dimensional object reach a state of force equilibrium again at any position other than the end cap.
4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: acquiring the motion trajectory information of the three-dimensional object, wherein the motion trajectory information is a parabolic trajectory after the three-dimensional object and the robotic arm are no longer in contact; wherein the first control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
5. The method according to claim 4, characterized in that, The step of acquiring the first control signal includes: determining a first desired posture of the robotic arm based on the motion trajectory information of the three-dimensional object, wherein the first desired posture is used to indicate the posture information of the robotic arm to catch the thrown three-dimensional object; and determining the first control signal based on the difference between the first actual posture and the first desired posture.
6. The method according to claim 5, characterized in that, The first actual posture includes the angle and angular velocity of the robotic arm rotating about the first axis; the first desired posture includes the desired angle and desired angular velocity of the robotic arm rotating about the first axis; the first control signal includes a first control torque; determining the first control signal based on the difference between the first actual posture and the first desired posture includes: determining the first control torque based on the difference between the angle and the desired angle, and the difference between the angular velocity and the desired angular velocity; wherein the first control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the first axis, and the first axis is a horizontal line perpendicular to the robotic arm; and / or, the first control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the first axis, and the first axis is an extension of the robotic arm.
7. The method according to any one of claims 1 to 3, characterized in that, The method further includes: acquiring a second actual posture, the second actual posture being contact information between the robotic arm and the three-dimensional object; wherein the second control signal is determined based on the second actual posture and a second desired posture, the second desired posture being used to instruct the robotic arm to maintain the three-dimensional object in a balanced posture on the robotic arm.
8. The method according to claim 7, characterized in that, The step of obtaining the second control signal includes: determining the second control signal based on the difference between the second actual posture and the second desired posture.
9. The method according to claim 8, characterized in that, The second actual posture includes the position information of the center of mass of the three-dimensional object in the direction of the second rotation axis and the offset velocity of the three-dimensional object in the direction of the second rotation axis. The second desired posture includes the desired position of the center of mass of the three-dimensional object in the direction of the second rotation axis and the desired velocity of the three-dimensional object in the direction of the second rotation axis. The second control signal includes a second control torque. Determining the second control signal based on the difference between the second actual posture and the second desired posture includes: determining the second control torque based on the difference between the position information and the desired position, and the difference between the offset velocity and the desired velocity. The second control torque is used to indicate the torque applied in the roll angle direction of the robotic arm rotating about the second rotation axis, where the second rotation axis is a horizontal line perpendicular to the robotic arm. And / or, the second control torque is used to indicate the torque applied in the pitch angle direction of the robotic arm rotating about the second rotation axis, where the second rotation axis is an extension of the robotic arm.
10. The method according to claim 7, characterized in that, The acquisition of the second actual posture includes: acquiring the second actual posture based on a visual sensor; or, acquiring the second actual posture based on the visual sensor and the tactile sensor.
11. The method according to claim 10, characterized in that, The step of obtaining the second actual posture based on the vision sensor includes: acquiring an image through the vision sensor, the image being used to show the three-dimensional object placed on the robotic arm; and determining the second actual posture based on the image processing result obtained from the image processing.
12. The method according to claim 10, characterized in that, The step of obtaining the second actual posture based on the visual sensor and the tactile sensor includes: determining first information of the three-dimensional object in a first direction based on the visual sensor; determining second information of the three-dimensional object in a second direction based on the tactile sensor; and fusing the first information and the second information to obtain the second actual posture; wherein the first direction is the direction of the horizontal line perpendicular to the robotic arm, and the second direction is the direction of the extension line of the robotic arm.
13. The method according to any one of claims 1 to 3, characterized in that, The method further includes: obtaining a third desired posture of the robotic arm, the third desired posture being used to instruct the robotic arm to disengage the three-dimensional object from the robotic arm and obtain posture information of a vertically upward velocity; determining a third control signal for the robotic arm based on the third actual posture of the robotic arm and the third desired posture; wherein controlling the robotic arm to throw the three-dimensional object is based on the third control signal.
14. The method according to claim 1, characterized in that, The method further includes: acquiring a grasping control signal; controlling the end effector of the robotic arm to grasp the thrown three-dimensional object based on the grasping control signal, and the three-dimensional object reaching a force balance state while being grasped.
15. The method according to claim 14, characterized in that, The method further includes: acquiring the motion trajectory information of the three-dimensional object, wherein the motion trajectory information is a parabolic trajectory after the three-dimensional object and the robotic arm have lost contact; wherein the grasping control signal is determined based on the first actual posture of the robotic arm and the motion trajectory information of the three-dimensional object.
16. A control device for a robotic arm, wherein a three-dimensional object is placed at any position on the robotic arm except for its end effector, characterized in that, The device includes: a control module for controlling the robotic arm to throw the three-dimensional object; an acquisition module for acquiring a first control signal; the control module is further configured to control any position on the robotic arm, excluding the end cap, to catch the thrown three-dimensional object based on the first control signal; the acquisition module is further configured to acquire a second control signal; the control module is further configured to control the robotic arm based on the second control signal so that the three-dimensional object reaches a state of force equilibrium again at any position, excluding the end cap.
17. A robotic arm, characterized in that, The robotic arm includes a memory and a controller; the memory stores at least one piece of program code, which is loaded and executed by the controller to implement the control method of the robotic arm as described in any one of claims 1 to 15.
18. A computer-readable storage medium, characterized in that, The storage medium stores a computer program that is executed by a processor to implement the control method for the robotic arm as described in any one of claims 1 to 15.
19. A chip, characterized in that, The chip includes programmable logic circuits and / or program instructions, and when the electronic device equipped with the chip is running, it is used to implement the control method of the robotic arm as described in any one of claims 1 to 15.
20. A computer program product, characterized in that, The computer program product includes computer instructions stored in a computer-readable storage medium, and a processor reads from and executes the computer instructions to implement the control method of the robotic arm as described in any one of claims 1 to 15.