A method of controlling a composite robot

By developing a control method for composite robots, and utilizing initialization instruction sets and other instructions to achieve independent and cooperative movements of joints and components, the problem of describing cooperative movements between components of composite robots in the prior art has been solved, and the cooperative or independent movements of each component of the composite robot have been realized.

CN116551694BActive Publication Date: 2025-12-12UNIV OF ELECTRONICS SCI & TECH OF CHINA
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310666426.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-06
Publication Date
2025-12-12
Estimated Expiration
2043-06-06

AI Technical Summary

Technical Problem

Existing robot programming languages ​​are insufficient to describe the cooperative motion relationships between components of a composite robot, and cannot achieve complex coupling and cooperation between multiple motion components.

Method used

A composite robot control method was developed, which enables independent and coordinated movement of joints and components by initializing instruction sets, defining pose data, defining movement speed, setting acceleration data, setting speed and acceleration limit data, giving position interval data, basic movement instructions, synchronous start instructions, defining coordinate system and real-time interaction instructions.

Benefits of technology

It enables the coordinated or independent movement of the components of the composite robot, solving the problem that existing technologies cannot describe the coordinated movement between components of the composite robot.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116551694B_ABST
    Figure CN116551694B_ABST
Patent Text Reader

Abstract

The application discloses a composite robot control method, and belongs to the field of motion control of the composite robot. The composite robot has multiple composite relations among components, such as series connection, parallel connection and mixed connection, and the application solves the problem that the existing industrial robot programming language is difficult to describe the cooperative motion relation among the components of the composite robot and cannot realize the combined motion among the components of the composite robot. The application develops independent and cooperative motion instructions for joints and components, and thus the cooperative or independent motion of each component of the composite robot can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of motion control for composite robots. Background Technology

[0002] Existing robot programming languages, such as ABB, FUNAC, and Siemens, are all robotic arm-centric. The motion instructions for these systems are primarily designed around providing the tool control point (TCP) and the work path information for the robotic arm. While these languages ​​can also program the motion of some non-robotic arm objects, this is merely an additional parameter to the robotic arm's motion parameters. Furthermore, these languages ​​can enable interaction between multiple independent robot systems through cooperative work instructions, but the robots themselves remain essentially independent. In composite robot systems, in addition to the robotic arm, there are one or more other motion components, connected in series or parallel. This makes conventional robot control methods unable to manage the complex coupling relationships between two or more motion components. This deep coupling and collaborative relationship in composite robots necessitates the development and design of new, more complex motion control methods for composite robots. Summary of the Invention

[0003] Composite robots have various composite relationships between components, such as series, parallel, and mixed connections. This invention solves the problem that existing industrial robot programming languages ​​are unable to describe the cooperative motion relationships between composite robot components and cannot realize the combined motion between robot parts.

[0004] The technical solution of this invention is: a composite robot control method, wherein the composite robot structure includes: a mobile robot and a robotic arm; the method includes:

[0005] Step 1: Initialize the instruction set; the instruction set includes: pose data definition instruction, movement speed definition instruction, acceleration data setting instruction, speed and acceleration limit data setting instruction, positioning interval data setting instruction, basic movement instruction, synchronization start instruction, coordinate system definition instruction, real-time interaction instruction, program module declaration and calling instruction;

[0006] The pose data definition instructions include: joint position data definition, Cartesian space pose data definition, and incremental representation of pose. The Cartesian space pose data definition uses a combined data representation of the special data type "Pose", which can be predefined or given directly as an immediate value in the operand of the movement instruction. The incremental representation of pose data type is consistent with the absolute pose data type, except that it is preceded by the special character "@".

[0007] The movement speed definition instructions include: a given data type for the composite Cartesian space movement speed, a given Cartesian space movement speed defined by position change, a given joint speed, and a time representation of the speed; the complete speed of the composite Cartesian space movement speed data type is represented by the object's six-dimensional motion spinor v. in Let ω be the velocity vectors along the x, y, and z axes of the coordinate system, respectively; ω is the velocity vector about the unit axis. With angular velocity The spatial angular velocity of rotation; the joint velocity is given directly as an immediate value in the operand of the movement command; for rotary joints, the unit of joint velocity is ° / s, and for translating joints, the unit is mm / s;

[0008] Acceleration data setting instructions include: setting joint acceleration and setting acceleration of motion components in Cartesian space; the acceleration data settings for joints and Cartesian space are represented by the instructions "SetAccJ" and "SetAccD" respectively, and their operands include acceleration, deceleration, and jerk, which are represented by the keywords "Acc", "Dec" and "Jerk" respectively;

[0009] The commands for setting speed and acceleration limits include: joint space speed and acceleration limit commands and Cartesian space speed and acceleration limit commands; the joint space speed limit command is "SetSpeedLimJ" and the Cartesian space speed limit command is "SetSpeedLimD", with operands still identified by the character "v"; the joint space acceleration limit command is "SetAccLimJ" and the Cartesian space acceleration limit command is "SetAccLimD", with operands still using "Acc", "Dec", and "Jerk" to identify acceleration, deceleration, and jerk, respectively. Explicit limits on speed and acceleration are removed by setting the parameter values ​​to zero.

[0010] The given instructions for positioning intervals include: joint positioning intervals and motion component positioning intervals. The joint positioning interval is given directly as an immediate value in the operand of the joint movement instruction. The keyword for the joint positioning interval is z[…], where “…” represents the specific positioning interval value. The positioning interval of the motion component is described using composite data. The keyword for the motion component positioning interval is z[…], where “…” represents the composite data of the specific positioning interval.

[0011] Basic movement commands include: joint positioning command, joint interpolation command, linear interpolation command, circular interpolation command, rotational interpolation command, and pose hold command. The joint positioning command is "MoveJJ", where the first "J" indicates movement in joint space, and the second "J" indicates that the pose parameter in the operand is the joint position. The joint interpolation command is "MoveJD", where the character "J" indicates movement in joint space, and the character "D" indicates that the pose parameter in the operand is the pose of the motion component in Cartesian space. The linear interpolation command is "MoveL", where the character "L" indicates linear trajectory interpolation. The circular interpolation command is "MoveC", where the character "C" indicates circular trajectory interpolation. The rotational interpolation command is "MoveR", where the character "R" indicates rotational trajectory interpolation. The rotational interpolation command only processes the pose data in its operand; the pose operand of this command is given completely, just like other commands. The pose hold command is "MoveH", where the character "H" indicates hold.

[0012] Synchronous start instructions include: joint synchronous start, motion component synchronous start, and mixed synchronous start of joints and motion components; synchronous start instructions are represented by the "SynMove" keyword combined with boolean variables; statements between "SynMove on" and "SynMove off" are executed synchronously.

[0013] The coordinate system definition command includes: The coordinate system definition command is "Frame", and the command format is as follows: Frame F1:=[[x,y,z],[q1,q2,q3,q4],Fref]; In this statement, F1 represents the coordinate system name, [x,y,z] is the position data, [q1,q2,q3,q4] is the quaternion representation of the attitude data, and Fref is the reference coordinate system;

[0014] Real-time interactive commands use "II" as the keyword and are represented by boolean variables;

[0015] Program module declaration and invocation instructions include: main module declaration, submodule declaration, and module invocation;

[0016] Step 2: When performing linear motion of the mobile robot with posture rotation, execute the MoveL instruction to specify the target pose, the coordinate system in which the motion is located, and at the same time specify the moving object as the mobile robot, as well as the motion speed and the positioning range; among them, the target pose, moving object, and coordinate system can be defined in advance using the Pose instruction, or temporarily defined in the MoveL instruction;

[0017] When performing linear motion of the robotic arm with posture rotation, execute the MoveL instruction to specify the target pose and the coordinate system in which the motion occurs, and at the same time specify the moving object as the robotic arm, the motion speed and the positioning range; among them, the target pose, moving object and coordinate system are defined in advance using the Pose instruction, or are temporarily defined in the MoveL instruction;

[0018] When performing joint movements of the robotic arm, the joint rotation angle, speed, positioning range, and target joint must be specified. Before performing joint rotation movements, the SetSpeedLimJ instruction is executed to define the movement speed, and the MoveJJ instruction is executed.

[0019] When performing circular interpolation, the pose of two points, the moving object and the coordinate system are defined in advance using the Pose command, and the instantaneous velocity and the positioning range are defined in the MoveC command. The MoveC command is then executed.

[0020] When performing rotational motion, determine the current pose, the object to be rotated, and the coordinate system, and execute the MoveR command;

[0021] When maintaining the pose, execute the MoveH instruction, specifying the object whose pose remains unchanged and the coordinate system.

[0022] When performing coordinated movements between a robotic arm and a mobile robot, SynMove On and SynMove Off are used in combination. The statements between SynMove On and SynMove Off are the basic movement command statements, which are executed synchronously. Usually, SynMove On and SynMove Off are used in pairs to specify the range of actions to be started synchronously. If the SynMove On statement is used, the actions that need to be started synchronously will continue until the end of the program. The synchronization objects of the synchronous start command are joints, motion components, or a combination of joints and motion components.

[0023] When performing joint interpolation motion, the instantaneous pose, target component, coordinate system, motion time, and positioning interval must be specified. Before performing joint rotational motion, SetSpeedLimD can be executed to define the motion velocity in Cartesian space, and the MoveJD instruction can be executed.

[0024] When interacting with external entities online in real time, use "II" as the keyword and combine it with a boolean variable: on or off.

[0025] The main module declaration uses the keyword PROC, followed by the main module name "main". The module ends with the keyword ENDPROC.

[0026] Submodules are declared using the keyword `PROC`, followed by the submodule name. The submodule name can be customized, but its length cannot exceed 15 characters. The `ENDPROC` keyword is used to indicate the end of a module.

[0027] Modules are invoked using the CALL keyword, followed by the name of the module being invoked;

[0028] The coordinate system is defined using the Frame command. You need to define the name of the coordinate system, followed by the reference coordinate system and the position and orientation relative to the reference coordinate system.

[0029] To define the target pose using the Pose command, you need to specify the specific position and attitude values. The attitude is represented by a quaternion, and you also need to specify the target motion components and coordinate system.

[0030] The joint acceleration is set using the SetAccJ command, followed by the Acc, Dec, and Jerk keywords to specify the acceleration, deceleration, and jerk values ​​respectively, and finally the joint object is specified.

[0031] The acceleration limit instruction in joint space uses the SetAccLimJ instruction, followed by the Acc, Dec, and Jerk keywords to specify the acceleration, deceleration, and jerk values ​​respectively, and finally the joint object is specified.

[0032] The acceleration of a motion component in Cartesian space is set using the SetAccD command, followed by the Acc, Dec, and Jerk keywords to specify the acceleration, deceleration, and jerk values ​​respectively, and finally the motion component object is specified.

[0033] The acceleration limit instruction for the motion component in Cartesian space is set using the SetAccLimD instruction, followed by the Acc, Dec, and Jerk keywords to specify the acceleration, deceleration, and jerk values ​​respectively, and finally the motion component object is specified.

[0034] The joint space speed limit command uses the SetSpeedLimJ command, followed by the v keyword to specify the speed, and finally the joint speed limit object;

[0035] The speed limit instruction in Cartesian space uses the SetSpeedLimD instruction, followed by the v keyword to specify the speed, and finally the speed limit object of the motion component.

[0036] This invention develops independent and coordinated motion commands for joints and components, thereby enabling coordinated or independent motion of various components of a composite robot. Attached Figure Description

[0037] Figure 1This refers to the motion path of the composite robot during its operation. Detailed Implementation

[0038] The following provides a detailed description of the specific implementation methods of the composite robot programming language of the present invention.

[0039] For a composite robot consisting of a mobile robot and a robotic arm connected in series, its operation path in a certain operation is as follows: Figure 1 As shown, the process is described as follows: ① The composite robot initially resides at pO1, with the ARM in a retracted state; ② The mobile robot then moves from pO1, passing through intermediate points pO2 and pO3 to reach the work point pO4. During the movement from pO2 to pO3, the robotic arm simultaneously extends to the work position; ③ When the mobile robot stops at pO4, the robotic arm's TCP reaches the posture at pA1, then moves from pA1, passing through intermediate points pA2 and pA3, and back to pA1, drawing a closed triangle; ④ The mobile robot and robotic arm then move in tandem, with the mobile robot moving from pO4 along a straight line to... The robot stops at pO5, and simultaneously the robotic arm's TCP moves in an arc from pA1 through pAC1 to pA4, stopping at pA4; ⑤ Then, the robot stops at pO5, and the robotic arm's TCP moves from pA4 through the midpoints pA5 and pA6 and back to pA4 in a closed triangle path; ⑥ Then the robot translates from pO5 to pO6 and stops; ⑦ Then the robot rotates in place at pO6, and the robotic arm performs joint interpolation motion in its own base coordinate system to the specified posture; ⑧ Then the robot moves along a semicircle from pO6 to pO7, while the robotic arm's TCP maintains its position in the global coordinate system F. GLB The pose remains unchanged; ⑨ Then, the mobile robot starts from pO7, passes through the midpoint pO2 and returns to pO1. During the process of moving from pO7 to pO2, the robotic arm returns to the storage state.

[0040] The above motion process is programmed using the composite robot programming language designed in this paper as follows:

[0041] PROC definepoints / / Pose point definition submodule

[0042] Pose pO1:=[[0,0,0],[1,0,0,0],OMV,GLB];

[0043] Pose pO2:=[[0,1000,0],[1,0,0,1],OMV,GLB];

[0044] Pose pO3:=[[1000,1000,0],[√2 / 2,0,0,√2 / 2],OMV,GLB];

[0045] Pose pO4:=[[1000,2000,0],[√2 / 2,0,0,√2 / 2],OMV,GLB];

[0046] Pose pO5:=[[6000,2000,0],[√2 / 2,0,0,√2 / 2],OMV,GLB];

[0047] Pose pO6:=[[6000,1000,0],[√2 / 2,0,0,√2 / 2],OMV,GLB];

[0048] Pose pO7:=[[4000,1000,0],[1,0,0,0],OMV,GLB];

[0049] Pose pOC1:=[[5000,0,0],[1,0,0,0],OMV,GLB];

[0050] Pose pA1:=[[1000,2500,1500],[√2 / 2,0,0,√2 / 2],ARM,GLB];

[0051] Pose pAC1:=[[3500,2500,2000],[√2 / 2,0,0,√2 / 2],ARM,GLB];

[0052] Pose pA4:=[[6000,2500,2000],[√2 / 2,0,0,√2 / 2],ARM,GLB];

[0053] ENDPROC

[0054] PROC setmotionparams / / Motion acceleration parameter settings

[0055] / / Set ARM joint motion parameters

[0056] SetAccJ Acc

[30] ,Dec

[30] ,Jerk

[100] ,ARM_J1;

[0057] SetAccJ Acc

[30] ,Dec

[30] ,Jerk

[100] ,ARM_J2;

[0058] SetAccJ Acc

[30] ,Dec

[30] ,Jerk

[100] ,ARM_J3;

[0059] SetAccJ Acc

[30] ,Dec

[30] ,Jerk

[100] ,ARM_J4;

[0060] SetAccJ Acc

[30] ,Dec

[30] ,Jerk

[100] ,ARM_J5;

[0061] SetAccJ Acc

[60] ,Dec

[60] ,Jerk

[200] ,ARM_J6;

[0062] / / Set the Cartesian space motion acceleration for the robotic arm and omnidirectional vehicle: SetAccD Acc[100,30], Dec[100,30], Jerk[500,100], ARM; SetAccD Acc[200,30], Dec[200,30], Jerk[800,100], OMV; / / Set the limit motion speed of the joints of the robotic arm and omnidirectional vehicle.

[0063] SetSpeedLimJ v

[45] ,ARM_J1;

[0064] SetSpeedLimJ v

[45] ,ARM_J2;

[0065] SetSpeedLimJ v

[45] ,ARM_J3;

[0066] SetSpeedLimJ v

[45] ,ARM_J4;

[0067] SetSpeedLimJ v

[45] ,ARM_J5;

[0068] SetSpeedLimJ v

[90] ,ARM_J6;

[0069] SetSpeedLimJ v

[360] , OMV_J1;

[0070] SetSpeedLimJ v

[360] ,OMV_J2;

[0071] SetSpeedLimJ v

[360] ,OMV_J3;

[0072] SetSpeedLimJ v

[360] ,OMV_J4;

[0073] / / Set the limit speed of motion in Cartesian space

[0074] SetSpeedLimD v[500,90],ARM;

[0075] SetSpeedLimD v[1000,180],OMV;

[0076] / / Set the joint acceleration limit value

[0077] SetAccLimJ Acc

[180] ,Dec

[180] ,Jerk

[720] ,ARM_J1SetAccLimJ Acc

[180] ,Dec

[180] ,Jerk

[720] ,ARM_J2SetAccLimJ Acc

[180] ,Dec

[180] ,Jerk

[720] ,ARM_J3SetAccLimJAcc

[180] ,Dec

[180] ,Jerk

[720] ,ARM_J4SetAccLimJ Acc

[180] ,Dec

[180] ,Jerk

[720] ,ARM_J5SetAccLimJ Acc

[360] ,Dec

[360] ,Jerk

[1800] ,ARM_J6SetAccLimJ Acc

[720] ,Dec

[720] ,Jerk

[1800] ,OMV_J1SetAccLimJ Acc

[720] ,Dec

[720] ,Jerk

[1800] ,OMV_J2SetAccLimJ Acc

[720] ,Dec

[720] ,Jerk

[1800] ,OMV_J3SetAccLimJ Acc

[720] ,Dec

[720] ,Jerk

[1800] ,OMV_J4

[0078] / / Set the acceleration limits for the omnidirectional vehicle and robotic arm in Cartesian space.

[0079] SetAccLimD Acc[500,360],Dec[500,360],Jerk[2000,1800],ARM;

[0080] SetAccLimD Acc[1000,360], Dec[1000,360], Jerk[5000,1800], OMV; ENDPROCPROC trianglemove / / ​​Triangle offset path movement

[0081] MoveL@p[[300,0,-200],[1,0,0,0],ARM,GLB],v

[50] ,z[10,5];

[0082] MoveL@p[[-600,0,0],[1,0,0,0],ARM,GLB],v

[50] ,z[10,5];

[0083] MoveL@p[[300,0,200],[1,0,0,0],ARM,GLB],v

[50] ,z[0,0];

[0084] ENDPROC PROC main / / Main module

[0085] / / The omnidirectional vehicle is currently located at pO1, and the robotic arm is in a retracted state.

[0086] CALL definepoints;

[0087] CALL setmotionparams;

[0088] / / The omnidirectional vehicle moves from pO1 to pO4

[0089] MoveL pO2,v

[100] ,z[10,0];

[0090] SynMove On; / / The robotic arm deploys simultaneously during the omnidirectional vehicle's movement from pO2 to pO3. MoveL pO3,v

[100] ,z[10,0];

[0091] MoveJJ j[0],v

[10] ,z[0],ARM_J1;

[0092] MoveJJ j[0],v

[10] ,z[0],ARM_J2;

[0093] MoveJJ j[0],v

[10] ,z[0],ARM_J3;

[0094] MoveJJ j[0],v

[10] ,z[0],ARM_J4;

[0095] MoveJJ j

[90] ,v

[10] ,z[0],ARM_J5;

[0096] MoveJJ j[0],v

[10] ,z[0],ARM_J6;

[0097] SynMove Off;

[0098] MoveL pO4,v

[100] ,z[0,0];

[0099] / / The robotic arm moves along the triangular path at point pA1.

[0100] MoveL pA1,v

[50] ,z[0,0]; / / Move the robotic arm at the pA1 position.

[0101] CALL trianglemove;

[0102] / / The omnidirectional vehicle and the robotic arm move in tandem along an arc path

[0103] SynMove On;

[0104] MoveL pO5,t

[50] ,z[0,0];

[0105] MoveC pAC1,pA4,t

[50] ,z[0,0];

[0106] SynMove Off;

[0107] / / The robotic arm moves along a triangular path at pA4

[0108] CALL trianglemove;

[0109] / / The omnidirectional vehicle moves from point O5 to point O6 by point movement.

[0110] MoveL pO6,v

[100] ,[0,0];

[0111] / / While the omnidirectional vehicle rotates in place at pO6, the robotic arm performs articulation movements.

[0112] SynMove On;

[0113] MoveR p[[0,0,0],[1,0,0,0],OMV,GLB],t

[10] ,z[0,0];

[0114] MoveJD p[[1000,0,1000],[1,0,0,0],ARM,SELF],t

[10] ,z[0,0];

[0115] SynMove Off;

[0116] / / During the semi-circular motion of the omnidirectional vehicle from pO6 to pO7, the TCP of the robotic arm maintains its pose unchanged (SynMoveOn).

[0117] MoveR pOC1,pO7,v

[100] ,z[0,0];

[0118] MoveH ARM GLB;

[0119] SynMove Off;

[0120] / / As the omnidirectional vehicle moves from pO7 to pO2, the robotic arm returns to its original position.

[0121] SynMove On;

[0122] MoveL pO2,v

[100] ,z[25,0]; / / Omnidirectional translation of the vehicle, no rotation required.

[0123] MoveJJ j[0],v

[10] ,z[0],ARM_J1;

[0124] MoveJJ j[0],v

[10] ,z[0],ARM_J2;

[0125] MoveJJ j[0],v

[10] ,z[0],ARM_J3;

[0126] MoveJJ j[0],v

[10] ,z[0],ARM_J4;

[0127] MoveJJ j[0],v

[10] ,z[0],ARM_J5;

[0128] MoveJJ j[0],v

[10] ,z[0],ARM_J6;

[0129] SynMove Off;

[0130] MoveL pO1,v

[100] ,z[0,0];

[0131] ENDPROC.

Claims

1. A method of controlling a composite robot, the structure of the composite robot comprising: Mobile robot and robotic arm The method comprises: Step 1: initializing an instruction set; the instruction set comprises: pose data definition instruction, movement speed definition instruction, acceleration data setting instruction, speed and acceleration limit data setting instruction, to-position interval data giving instruction, basic movement instruction, synchronous starting instruction, coordinate system definition instruction, instant interaction instruction, program module declaration and calling instruction; The pose data definition instruction comprises: joint position data definition, Cartesian space pose data definition, and incremental representation of pose; the Cartesian space pose data definition adopts a combined data representation of a special data type "Pose", is predefined, or is directly given in the form of an immediate number in the operand of the movement instruction; the incremental representation of pose has the same data type as the absolute pose data type, except that a special character "@" is used to represent it in front; The movement speed definition instruction comprises: a given of a complex Cartesian space movement speed data type, a given of a Cartesian space movement speed defined in terms of position change, a given of joint speed, a time representation of speed; the complete speed of the complex Cartesian space movement speed data type employs a six-dimensional movement screw of the object denotes: wherein is the movement speed vector along the coordinate system x, y and z axes respectively; is the spatial angular speed of rotation around the unit axis with angular speed ; the given of joint speed is directly given in the form of an immediate number in the operand of the movement instruction; in the joint speed, the unit is ° / s for a rotating joint and mm / s for a movement joint; The acceleration data setting instruction comprises: setting of joint acceleration, and setting of motion component acceleration in Cartesian space; the setting of joint and Cartesian space acceleration data is represented by instructions "SetAccJ" and "SetAccD" respectively, and the operand contains acceleration, deceleration, and jerk, which are represented by keywords "Acc", "Dec", and "Jerk" respectively; The speed and acceleration limit data setting instruction comprises: joint space speed and acceleration limit data setting instruction, and Cartesian space speed and acceleration limit data setting instruction; the joint space speed limit instruction is "SetSpeedLimJ", the Cartesian space speed limit instruction is "SetSpeedLimD", and the operand is still identified by the character "v"; the joint space acceleration limit instruction is "SetAccLimJ", the Cartesian space acceleration limit instruction is "SetAccLimD", and the operand still uses "Acc", "Dec", and "Jerk" as the identifiers of acceleration, deceleration, and jerk respectively; the explicit limits of speed and acceleration are cancelled by setting the parameter value to zero; The to-position interval data giving instruction comprises: joint to-position interval, and motion component to-position interval; the joint to-position interval is directly given in the form of an immediate number in the operand of the joint movement instruction, and the joint to-position interval keyword is z[…]; "…" represents the specific to-position interval value; the motion component to-position interval is described by using a composite data, and the motion component to-position interval keyword is z[…]; "…" represents the composite data of the specific to-position interval; Basic movement instructions include: joint positioning instruction, joint interpolation instruction, straight line interpolation instruction, circular interpolation instruction, rotation interpolation instruction, pose holding instruction; the joint positioning instruction is "MoveJJ", wherein the first "J" represents joint space movement, and the second "J" represents that the pose parameter in the operand is a joint position; the joint interpolation instruction is "MoveJD", wherein the character "J" represents movement in joint space, and the character "D" represents that the pose parameter in the operand is the pose of the motion component in the Cartesian space; the straight line interpolation instruction is "MoveL", wherein the character "L" represents straight line trajectory interpolation; the circular interpolation instruction is "MoveC", wherein the character "C" represents circular trajectory interpolation; the rotation interpolation instruction is "MoveR", wherein the character "R" represents rotation trajectory interpolation; the rotation interpolation instruction only processes the attitude data of the pose data in the operand; the pose operand of the instruction is still completely given as with other instructions; the pose holding instruction is "MoveH", wherein the character "H" represents holding; Synchronous start instructions include: joint synchronous start, motion component synchronous start, and mixed synchronous start of joint and motion component; the synchronous start instruction uses the "SynMove" keyword and is combined with a bool type variable; the statements between "SynMove on" and "SynMove off" are synchronously started to execute; Coordinate system definition instructions include: the coordinate system definition instruction is "Frame", and the instruction format is: Frame F1 := [[x, y, z], [q1, q2, q3, q4], Fref]; in the statement, F1 represents the coordinate system name, [x, y, z] is position data, [q1, q2, q3, q4] is the quaternion representation of attitude data; Fref is the reference coordinate system; Instantaneous interaction instructions use "II" as a keyword and are combined with a bool type variable to represent; Program module declaration and calling instructions include: main module declaration, sub-module declaration, and module calling; Step 2: when executing the straight line motion of the mobile robot with attitude rotation, the MoveL instruction is executed, the target pose, the coordinate system where the motion is located, and the motion object and the motion speed and the to-position interval of the mobile robot are specified; wherein the target pose, the motion object, and the coordinate system can be defined in advance using the Pose instruction or temporarily defined in the MoveL instruction; When executing the straight line motion of the robot arm with attitude rotation, the MoveL instruction is executed, the target pose and the coordinate system where the motion is located are specified, and the motion object and the motion speed and the to-position interval of the robot arm are specified; wherein the target pose, the motion object, and the coordinate system are defined in advance using the Pose instruction or temporarily defined in the MoveL instruction; When executing the joint motion of the robot arm, the joint rotation angle, the speed, the to-position interval, and the target joint need to be specified; before executing the joint rotation motion, the SetSpeedLimJ instruction is executed to define the motion speed, and the MoveJJ instruction is executed; When the circular interpolation motion is performed, the pose of two points is defined by the Pose instruction, the moving object and the coordinate system are defined, and the instantaneous speed and the interval to the position are defined in the MoveC instruction, and then the MoveC instruction is executed; When the rotation motion is performed, the current pose, the rotating object and the coordinate system are determined, and the MoveR instruction is executed; When the pose is kept unchanged, the MoveH instruction is executed, and the object and the coordinate system whose pose is kept unchanged are specified; When the cooperative motion of the robot arm and the mobile robot is performed, the SynMove On and the SynMove Off are combined, and the basic motion instruction statements between the "SynMove On” and the "SynMove Off” are executed synchronously; the "SynMove On” and the "SynMove Off” are used in pairs to clearly define the range of the motion to be started synchronously; if the "SynMove On” statement is used, the motion to be started synchronously will continue until the program ends; the synchronization object of the synchronization starting instruction is the joint, the motion component or the combination of the joint and the motion component; When the joint interpolation motion is performed, the instantaneous pose, the target component, the coordinate system, the motion time and the interval to the position are specified, the Cartesian space motion speed is defined by the SetSpeedLimD before the joint rotation motion is performed, and the MoveJD instruction is executed; When the online real-time interaction with the external is performed, the "II” is used as the keyword and combined with the bool type variable: on or off; The main module is declared by using the keyword PROC, and the main module name "main” is added after the keyword PROC; the ENDPROC keyword is used at the end of the module to indicate the end of the module; The sub-module is declared by using the keyword PROC, and the sub-module name is added after the keyword PROC; the sub-module name can be self-defined, and the length is not more than 15 characters; the ENDPROC keyword is used at the end of the module to indicate the end of the module; The module calling uses the CALL keyword, and the name of the called module is added after the CALL keyword; The coordinate system is defined by using the Frame instruction, the name of the coordinate system is self-defined, and the reference coordinate system and the position and pose relative to the reference coordinate system are added after the Frame instruction; The target pose is defined by using the Pose instruction, the specific position and pose values are specified, the pose is represented by the quaternion, the target motion component and the coordinate system are specified; The joint acceleration is set by using the SetAccJ instruction, the Acc, Dec and Jerk keywords are used to specify the acceleration, deceleration and jerk values respectively, and the joint object is specified at the end; The joint space acceleration limit instruction uses the SetAccLimJ instruction, the Acc, Dec and Jerk keywords are used to specify the acceleration, deceleration and jerk values respectively, and the joint object is specified at the end; The motion component acceleration in the Cartesian space is set by using the SetAccD instruction, the Acc, Dec and Jerk keywords are used to specify the acceleration, deceleration and jerk values respectively, and the motion component object is specified at the end; Acceleration limit command in Cartesian space of motion component uses SetAccLimD command, then uses Acc, Dec, Jerk keywords to specify acceleration, deceleration, jerk values respectively, and finally specifies motion component object; Velocity limit command in joint space uses SetSpeedLimJ command, then uses v keyword to specify velocity, and finally specifies joint velocity limit object; Velocity limit command in Cartesian space uses SetSpeedLimD command, then uses v keyword to specify velocity, and finally specifies motion component velocity limit object.

Citation Information

Patent Citations

  • detachable handle for bottles

    DE500360A