Robot programming with active assist functionality
By recording the process and providing auxiliary functions through the robot system, users can intuitively demonstrate and activate the auxiliary functions to generate robot tasks. This solves the problems of complex and unintuitive programming in existing technologies, and achieves a simplified programming process and improved programming efficiency.
Patent Information
- Application Number
- CN202480027642.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-05-02
- Filing Date
- 2024-05-01
- Publication Date
- 2025-11-21
AI Technical Summary
Existing demonstration programming techniques have not been widely adopted in robotic systems, mainly due to the reliance on near-perfect demonstrations to users and insufficient automation in estimating user intent from data, resulting in complex and unintuitive programming.
Through the recording process and auxiliary functions in the robot system, users can directly demonstrate robot tasks and activate auxiliary functions. The robot controller records operating parameters and generates robot tasks, simplifying the programming process.
It achieves a user-friendly programming method for robot systems, improves the intuitiveness and accuracy of programming, reduces reliance on user demonstrations, and enhances the reliability and efficiency of programming.
Smart Images

Figure CN121001853A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot controller and a method for programming a robot system including a robot arm by utilizing demonstration programming (PbD). Background Technology
[0002] Robotic systems, including robotic arms, are widely used to perform automated tasks in which the robotic arms handle, manipulate, and / or inspect objects. Examples of known types of tasks that such robotic systems can perform include: palletizing / depalletizing, assembly, distribution, trimming, machine maintenance, material handling, material removal, quality inspection, welding, etc.
[0003] Robotic arms comprising multiple robot joints and links (where motors or actuators enable movement of portions of the robot arm relative to each other) are known in the field of robotics. Typically, a robotic arm includes: a robot base serving as a mounting base for the robot arm; and a robot tool flange to which various tools can be attached. A robot controller is configured to control the robot joints to move the robot tool flange relative to the base. For example, to instruct the robot arm to execute multiple work commands. The robot joints can be rotary robot joints configured to rotate portions of the robot arm relative to each other, prismatic joints configured to translate portions of the robot arm relative to each other, and / or any other type of robot joint configured to move portions of the robot arm relative to each other.
[0004] Typically, robot controllers are configured to control robot joints based on a dynamic model of the robot arm, where the dynamic model defines the relationship between the forces acting on the robot arm and the resulting acceleration of the robot arm. The dynamic model typically includes a kinematic model of the robot arm, knowledge about the robot arm's inertia, and other parameters affecting the robot arm's motion. The kinematic model defines the relationships between different parts of the robot arm and can include information about the robot arm (such as the length and dimensions of joints and links), and can be described, for example, through Denavit-Hartenberg parameters. The dynamic model enables the controller to determine which torques and / or forces the joint motors or actuators will provide to move the robot joints, for example, at a specified speed and / or a specified acceleration, or to hold the robot arm in a static posture.
[0005] End effectors (such as grippers, vacuum grippers, magnetic grippers, screwdrivers, welding devices, dispensing systems, vision systems, etc.) can also be attached to tool flanges or other locations on the robot arm, thus becoming part of the robot system.
[0006] In addition to the robotic arm and end effector, a robotic system typically includes multiple devices such as handling units, such as conveyors, pallets, CNC machines, sorting machines, fixtures for arranging objects (such as workpieces), various safety devices, vision systems, etc.
[0007] Robotic systems need to be programmed by users (such as robot integrators who define various instructions for the robot system, robot arm, end effector, and other devices within the robot system). This is a complex task because it requires a great deal of knowledge about the components of the robot system and the processes it needs to perform.
[0008] Demonstration programming (PbD), example programming (PbE), demonstration learning (LfD), imitation learning, kinesthetic teaching / learning, or demonstration instruction are terms related to programming paradigms in which users create programs without learning the details of a programming language, but rather by demonstrating the actions that a system should perform. All of these terms may be used throughout this application to refer to such program paradigms.
[0009] For example, various aspects of demonstration programming have been disclosed in the following publications:
[0010] {i.} Halbert, Daniel Conrad, Doctoral Dissertation, *Programming by Example*, Department of Electrical Engineering and Computer Science, University of California, Berkeley, November 1984, https: / / danhalbert.org / pbe.pdf
[0011] {ii.} Billard, Aude, et al., “Robot programming by demonstration,” in Springer handbook of robotics, Springer, Berlin, Heidelberg, 2008, pp. 1371–1394.
[0012] {iii.} Argall, Brenna D. et al., “A survey of robot learning from demonstration,” in Robotics and Autonomous Systems, Vol. 57, No. 5 (2009): 469–483.
[0013] {iv.} Ravichandar, Harish et al., Recent advances in robot learning from demonstration, in the Annual review of control, robotics, and autonomous systems, Vol. 3 (2020): 297–330. [5] Argall, Brenna D., Brett Browning and Manuela
[0014] {v.} Dey, Anind K. et al., “A CAPpella: Programming by Demonstration of Context-Aware Applications,” in Proceedings of the SIGCHI conference on Human Factors in Computing Systems, 2004.
[0015] WO 2017 / 17178469 discloses a method and computer program product for programming a robot by manually manipulating it in a gravity-compensated kinematic guidance mode. More specifically, the present invention provides a method and computer program product that uses kinematic teaching as a demonstration input mode and does not require the installation or use of any external sensing or data capture modules. It requires a single user demonstration to extract a representation of the program and presents the user with a series of easily controllable parameters, allowing them to modify or constrain the parameters of the extracted program representation of the task.
[0016] EP 2 905 111 A2 discloses a method for programming an industrial robot, the method comprising manually moving (hand-guided) a manipulator arm of the industrial robot into at least one pose, in which at least one control variable to be input into the robot program is recorded by a control device of the industrial robot and stored in the robot program as a parameter of an associated program instruction. Alternatively, the industrial robot includes a robot control unit designed and / or configured to perform this method.
[0017] US 2019 / 0168390 A1 discloses a method that includes receiving position data indicating the position of a demonstration tool. Based on the received position data, the method further includes determining a motion path of the demonstration tool, wherein the motion path includes a sequence of positions of the demonstration tool. The method further includes determining a replication control path for a robotic device, wherein the replication control path includes one or more robot movements that cause the robotic device to move a robotic tool through a motion path corresponding to the motion path of the demonstration tool. The method also includes providing a display of a visual simulation of the one or more robot movements within the replication control path.
[0018] Although robot systems programmed using demonstrations have been anticipated for a long time, the developed technology has not yet been widely adopted in the robot systems industry. Summary of the Invention
[0019] The object of this invention is to address the aforementioned limitations or other problems of the prior art. This is achieved through the robot system described in the independent claims and the method for programming the robot system.
[0020] The robot system includes at least one robot arm controlled by a robot controller according to a robot program, wherein the robot program specifies multiple robot tasks and the execution order of these robot tasks, and wherein the robot system includes a user interface device enabling a user to communicate with the robot system, and the robot controller is configured to perform:
[0021] A recording process, which can be activated by a user via a user interface device, and the robot controller is configured to record at least one operating parameter of the robot system during the recording process;
[0022] An auxiliary process, configured to perform at least one auxiliary function during the recording process when activated by the user, wherein the at least one auxiliary function activates at least one robot system action;
[0023] The robot controller includes a robot task generator configured to generate at least one robot task (T3) based on at least one of the at least one executed auxiliary function and at least one of the recorded operating parameters.
[0024] The method for programming this robot system includes the following steps:
[0025] Activate the recording process of the robot system, wherein the robot controller records at least one operating parameter of the robot system during the recording process;
[0026] During the recording process, at least one auxiliary function of the robot system is activated, wherein the at least one auxiliary function activates at least one predefined robot system action;
[0027] At least one robot task is generated for the robot program based on at least one selected auxiliary function and at least one of the recorded operating parameters.
[0028] The robot system and method according to the invention enable a user programming the robot system to demonstrate the robot tasks that the robot system should perform during operation in a simple and intuitive way. This is achieved by the user activating a recording process, thereby notifying the robot controller that the robot task to be inserted into the robot program is about to be demonstrated, and thus initiating a recording process for recording the operating parameters of the robot system.
[0029] Known PbD concepts heavily rely on near-perfect demonstrations from the user and / or attempts to automatically estimate the user's intent based on data acquired during recording. In contrast, the robotic system and method according to the invention provide a novel approach to segmented demonstrations based on user intent. This is achieved by having the user provide their intent to the robotic system during the recording process by activating assistive functions. For example, assistive functions can help the user achieve the sub-mm (millimeter) accuracy required for a successful demonstration, thereby enabling the robotic program. These assistive functions can provide basic behaviors or advanced skills in the form of robotic system actions.
[0030] The dependent claims describe possible embodiments of the method according to the invention. Other advantages and beneficial effects of the invention are described in the detailed description. Attached Figure Description
[0031] Figure 1 Examples of existing robotic systems include robotic arms;
[0032] Figure 2 An example of a robot system according to the present invention is shown;
[0033] Figure 3 An example is illustrated of a method for programming a robot system according to the present invention;
[0034] Figure 4 An embodiment of the method for programming a robot system according to the present invention is illustrated;
[0035] Figure 5 An embodiment of the robot controller according to the present invention is illustrated;
[0036] Figure 6 A sequence diagram illustrating a method for programming a robot system according to the present invention is shown;
[0037] Figure 7 An example of how to demonstrate a grid pattern is given. Detailed Implementation
[0038] The invention has been described with reference to exemplary embodiments, which are intended only to illustrate the principles of the invention. Those skilled in the art will be able to perceive several embodiments within the scope of the claims. Throughout the specification, reference numerals for similar elements providing similar effects are assigned the same last two digits. Furthermore, it should be understood that where embodiments include multiple identical features, only some features may be designated by reference numerals.
[0039] Figure 1 A robot system 100 known in the prior art is illustrated. The robot system includes at least one robot arm 101 and at least one robot controller 106 configured to control the robot arm. The robot arm 101 includes a plurality of robot joints 102a, 102b, 102c, 102d, 102e, 102f connecting a robot base 103 and a robot tool flange 104. Base joint 102a is configured to rotate the robot arm about base axis 105a (illustrated by a dashed line); shoulder joint 102b is configured to rotate the robot arm about shoulder axis 105b (illustrated by a dashed line); elbow joint 102c is configured to rotate the robot arm about elbow axis 105c (illustrated by a dashed line); first wrist joint 102d is configured to rotate the robot arm about first wrist axis 105d (illustrated by a dashed line), and second wrist joint 102e is configured to rotate the robot arm about second wrist axis 105e (illustrated by a dashed line). Robot joint 102f is a robot tool joint including robot tool flange 104, which is rotatable about tool axis 105f (shown by a dashed line). Therefore, the illustrated robotic arm is a six-axis robotic arm with six degrees of freedom and six rotational robotic joints. However, it should be noted that the invention can be used for robotic arms that include fewer or more robotic joints, and some of these robotic joints can be configured as prism robotic joints that allow two or more robotic parts to translate relative to each other.
[0040] The robot joint includes a robot joint housing and an output flange that is rotatable or translatable relative to the robot joint housing, and the output flange is connected to an adjacent robot joint directly or via an arm segment known in the art. The robot joint includes a joint motor configured to rotate or translate the output flange relative to the robot joint housing, for example, via a drive mechanism or directly connected to a motor shaft. The robot joint housing may be formed, for example, as a joint housing, and the joint motor may be disposed within the joint housing, and the output flange may extend from the joint housing. Additionally, the robot joint may include at least one joint sensor that provides a sensor signal indicating at least one of the following parameters: the angular position and / or linear position of the output flange, the angular position and / or linear position of the motor shaft of the joint motor, the motor current of the joint motor, or an external force and / or torque attempting to rotate the output flange or the motor shaft. For example, the angular position of the output flange may be indicated by an output encoder (e.g., an optical encoder, a magnetic encoder) that indicates the angular position of the output flange relative to the robot joint. Similarly, the angular position of the joint motor shaft can be provided by an input encoder (such as an optical encoder or magnetic encoder) that indicates the angular position of the motor shaft relative to the robot joint. It should be noted that both an output encoder indicating the angular position of the output flange and an input encoder indicating the angular position of the motor shaft can be provided, which in embodiments where a drive mechanism is provided allows the relationship between the input and output sides of the drive mechanism to be determined.
[0041] The robot system may also include an end effector (not shown) attached to the robot tool flange, and it should be understood that the end effector can be any kind of end effector, such as a gripper, vacuum gripper, magnetic gripper, screw machine, welding device, glue applicator, dispensing system, spraying device, vision system, camera, etc.
[0042] The robot system includes at least one robot controller 106 configured to control a robot arm 101. The robot controller is configured to control the movement of parts of the robot arm and robot joints, for example, by controlling the motor torque supplied to the joint motors based on a dynamic model of the robot arm, the direction of gravity work, and joint sensor signals. The controller can be configured as follows: Figure 1 The illustrated external devices are either integrated into the robotic arm or a combination thereof.
[0043] The robot system can be controlled by a robot controller according to a robot program, which specifies multiple robot tasks and the execution order of these robot tasks, wherein these robot tasks define multiple actions that the robot system should perform. The robot controller may include an interface device 107 that enables a user to control and program the robot system. The interface device may be configured, for example, as a teach pendant known in the field of industrial robotics, which can communicate with the controller via wired or wireless communication protocols. The interface device may include, for example, a display 108 and multiple input devices 109, such as buttons, sliders, touchpads, joysticks, trackballs, gesture recognition devices, keyboards, microphones, etc. The display may be configured as a touchscreen that functions as both a display and an input device. The interface device may also be configured as an external device (e.g., in the form of a smartphone, tablet, PC, laptop, etc.) configured to communicate with the robot controller.
[0044] Figure 2 A robot system 200 according to the present invention is illustrated. The robot system 200 includes at least one robot arm 201 controlled by a robot controller 206 and a user interface device (not shown) that enables a user 210 to communicate with the robot system.
[0045] Robotic system 200 is illustrated as a palletizing system, which includes: a robotic arm 201 having a gripper 211; and a conveyor belt 212 that feeds multiple boxes 213 to a pick-up position, whereby the robotic arm picks up the boxes and stacks them onto a pallet 215. However, it should be understood that the illustrated palletizing system is merely intended to illustrate one robotic system including a robotic arm and multiple devices (in this example, conveyors, boxes, and pallets), and those skilled in the art will be able to provide various robotic systems for performing various automated applications using robotic arms.
[0046] Robotic arm 201 can be any type of robotic arm known in the field of robotic arms, comprising robotic joints, a base, and at least one tool flange, wherein the robotic joints connect the base and the tool flange. The illustrated robotic arm is in the form of a six-axis robotic arm, wherein the base and the tool flange are connected by six consecutive robotic joints, wherein robotic links are arranged between some of these robotic joints. However, it should be understood that a robotic arm may include any number of robotic joints and / or robotic links, such as two or more robotic joints, three robotic joints, four robotic joints, five robotic joints, seven robotic joints, eight robotic joints, etc. Furthermore, the robotic arm may be configured as a Scala robot, a Delta robot, or a parallel robot.
[0047] The gripper 211 can be any known gripping device suitable for picking up objects. The robotic arm can, for example, be similar to a combination of... Figure 1 The robot arm 101 is illustrated and described.
[0048] The robot controller 206 includes a robot program 220, a recording process 222, an auxiliary process 224, and a robot task generator 226. The robot controller 206 is configured to control the robot system according to the robot program 220 (as illustrated by dotted arrow 240) by instructing the robot system to perform multiple robot tasks (T1-T5) known in the field of robotics. Typically, when the robot system is in an operating / running mode, the robot controller controls the robot system according to the robot program, and the robot controller may include an operating process (not shown) that runs in the operating mode of the robot system and controls the robot system according to the robot program. It should be understood that the robot controller can control the robot arm 201 and potential other devices of the robot system, such as combined... Figure 1 The described end effectors and other devices.
[0049] The robot program specifies multiple robot tasks (T1-T5) and the execution order of these robot tasks. A robot task can be any action performed by the robot system or a part of the robot system, and a robot task can define one or more actions that the robot system should perform. Therefore, a robot task can define multiple actions to be performed by the robot arm, end effector, or other device of the robot system. The robot program also defines the order in which the robot tasks should be performed in order to enable the robot system to perform automated tasks. In one embodiment, the execution order can be, for example, executing the robot tasks sequentially in a predefined order; however, the execution order can also be defined using well-known program logic, where the execution order of the robot tasks depends on various parameters and conditions of the robot system; additionally, some robot tasks may be executed simultaneously.
[0050] As a non-restrictive example, Figure 2 The robot program 220 of the palletizing system includes robot tasks T1-T5, wherein:
[0051] T1: The conveyor 212 is activated, thereby conveying the box 213 toward the pickup position 214 near the robotic arm. Those skilled in the art will recognize that it is necessary, for example, to position the box on the conveyor belt by some other mechanical or automated device; however, for simplicity, this part is omitted in this example.
[0052] T2: When box 213 reaches pickup position 214, stop conveyor belt 212. The robot system may include, for example, a sensor that can detect when the box reaches the pickup position, and then the sensor can send a signal to a robot controller, which then initiates robot task T2 to stop the conveyor.
[0053] T3: Grasp the box using the gripper on the robotic arm. The gripping task may include, for example, the following steps:
[0054] Open clamp 211;
[0055] Move the gripper to a gripping position where it can grab the box;
[0056] Closed gripper;
[0057] Change the load setting to reflect the effective load of the object carried by the robotic arm to reflect the effective load of the box.
[0058] T4: Move the box and place it on pallet 215, which may include the following steps:
[0059] Identify the desired placement location on pallet 215, which is typically based on knowledge of the box size, the pallet, the desired stacking pattern, and the number of boxes previously stacked on the pallet. For simplicity, this process will not be described further.
[0060] Move the box to the desired location;
[0061] Open the clamp;
[0062] Move the robotic arm to a waiting position near the pickup location;
[0063] T5: Wait for the next box to arrive at the pickup position so that the robotic arm can use the gripper to pick it up.
[0064] In the example above, a robot task includes multiple different steps that the robot system should perform. However, it should be understood that a robot task can define one or more steps that need to be performed by the robot system. Additionally, a robot task can include multiple robot subtasks that the robot system should perform.
[0065] Recording process 222 can be activated by user 210 via user interface device (as illustrated by dashed arrow 250), and the robot controller is configured to record (as illustrated by arrow 252) at least one operational parameter related to the robot system when the recording process is activated. The recorded operational parameters can be stored in recording memory storage device 216 for further use by the robot controller. Operational parameters can be any parameter, value, and / or state related to the robot system, such as sensor parameters obtained via various sensors of the robot system, such as the position, rate, and acceleration of robot joints; values of force / torque sensors of the robot system; images / depth maps obtained by vision sensors; environmental sensor parameters (such as temperature, humidity, etc.); distance measured by distance sensors; and the position of devices outside the robot arm, such as the position, rate, and acceleration of conveyors. Operational parameters can also be state parameters of devices within the robot system, such as the state of end effectors, the state of devices outside the robot arm, the state of safety devices, etc., and such parameters can be obtained via any type of communication port of the robot system (e.g., digital input / output port, Ethernet, or analog port). Additionally, operating parameters can be parameters generated by the robot program during the recording process, such as target torque, position, rate, acceleration of robot joints, target force / torque to be generated by parts of the robot arm or other parts of the robot system, values of logical operators (such as counters), and logical values. Operating parameters can also be external information provided by external systems, central services, or other systems, such as information sent to and from a central server via a network.
[0066] When the recording process is activated via the user interface, user 210 can activate auxiliary process 224, as illustrated by dashed arrow 260. This auxiliary process is configured to perform at least one auxiliary function during the recording process, as illustrated by arrow 262.
[0067] Assistive functions are those functions that, when activated by the user during the recording process, activate at least one robot system action, wherein the robot system action causes at least a portion of the robot system to perform a predefined action. For example, a robot system action could cause the robot system to:
[0068] Move the robotic arm to a predefined position;
[0069] Observe the state of one or more predefined operation parameters and / or change the state of one or more predefined operation parameters;
[0070] Waiting for a change in signal status, such as a sensor indicating that the box is ready at pick-up position 214; the CNC machine is ready to deliver a new workpiece or has finished picking up the workpiece, etc.
[0071] This enables the end effector to perform operations such as: opening / closing the clamp, initiating / simulating welding via a welding torch, initiating / simulating gluing via a glue applicator, activating a screw machine, etc.
[0072] The robotic arm is moved according to one or more preferred movement patterns;
[0073] Aiming at a part of the robot system or an object surrounding the robot system;
[0074] Measurements are performed using sensors in a robotic system;
[0075] This enables external devices to perform actions, such as activating / deactivating conveyor belts, opening / closing doors of external machinery (such as CNC machines), etc.
[0076] It should be understood that the robot system actions mentioned are only used to illustrate some robot system actions that can be activated by the user when activating accessibility functions.
[0077] In one embodiment, the assistive process can be configured to store assistive parameters related to the assistive function in assistive parameter storage device 218. In the illustrated embodiment, the assistive parameter storage device and the recording storage device are illustrated as two separate storage devices; however, it should be understood that they can be implemented on the same storage device and integrated into a common data storage system. The assistive parameters can be any parameters generated in conjunction with the robot system's actions and can be used, for example, to indicate specific events related to the execution of the assistive function.
[0078] In one implementation, the assistive process is configured to execute an assistive robot program that causes the robot system to perform predefined robot actions when the assistive function is activated. The assistive robot program executed by the assistive function may have the same structure as a robot program with multiple robot tasks and defined execution sequences, and may be configured as robot code defining multiple instructions for the robot system. In one implementation, the assistive robot program executed by the assistive function may be provided using the same programming language as the robot program, as this makes it easier for the user to provide the assistive function.
[0079] In one implementation, the accessibility process is configured to instruct the logging process to record at least one operational parameter specified by the accessibility function when the accessibility function is activated.
[0080] Robot task generator 226 is configured to generate at least one robot task T3 based on at least one of the auxiliary functions executed by auxiliary process 224 and the operating parameters recorded by recording process. In other words, the robot task generator is configured to generate robot program code that can be added / inserted into the robot program used to control the robot system, as illustrated by arrow 275. This is in Figure 2 The example shown is robot task T3 (underline), which is inserted between robot tasks T2 and T4 in the robot program.
[0081] The robot system according to the invention enables a user programming the robot system to demonstrate the robot tasks that the robot system should perform during operation in a simple and intuitive way. This is achieved by the user activating a recording process, whereby the robot controller is notified that a robot task to be inserted into the robot program is to be demonstrated, and thus initiates a recording process for the operating parameters of the robot system. The user can then activate an assistive function during the recording process, which subsequently assists the user in demonstrating the expected robot task by having the robot system perform robot actions. A robot task generator then generates a robot task based on the recorded operating parameters and the activated assistive function and inserts the robot task into the robot program. The robot task generator can identify the selected assistive function and the recorded operating parameters. Based on the identified assistive function and the recorded operating parameters, the robot task generator can determine how / which type of robot task should be generated and insert the robot task into the robot system.
[0082] It should be understood that not all robot tasks in a robot program need to be generated using the robot system and method according to the invention, as some of the robot tasks T1, T2, T4, and T5 can be generated using conventional robot programming. Furthermore, robot task T3 generated using the robot system and method according to the invention does not need to be defined and demonstrated in a single linear flow and can be generated in multiple iterations. Additionally, it should be understood that a portion of robot task T3 generated using the robot system and method according to the invention can be generated using other types of programming methods (such as conventional robot programming). It should also be understood that robot task T3 generated using the robot system and method according to the invention can be either a program task (which can be called / executed by another robot program) or a robot task formed as part of the robot program.
[0083] In one implementation, the accessibility feature is configured to provide the user with instructions related to the robot tasks that need to be generated during the programming process. This allows the user to be guided through specific demonstrations that may be required in order to generate the desired robot tasks.
[0084] In one implementation, the assistive function is associated with at least one assistive setting parameter, which indicates at least one parameter affecting the execution of the robot system's actions. The assistive setting parameter can be any parameter that the assistive function can use when performing robot system actions. For example, the assistive setting parameter may define rate, timing, duration, direction, force, acceleration, and position associated with the assistive function. It should be understood that a user can define or redefine the assistive setting parameter of the assistive function before or during its execution to demonstrate the desired robot task.
[0085] In one implementation, the assistive function is configured to activate at least one additional assistive function, wherein the at least one additional assistive function activates at least one additional predefined robot system action. This allows for the provision of more complex assistive functions that can be based on other assistive functions, as the assistive function can invoke other assistive functions, thereby enabling the execution of assistive functions that perform different robot system actions. This is also beneficial when developing new assistive functions, as the new assistive functions can be based on previously provided assistive functions.
[0086] In one implementation, the assistive function is configured to mimic at least a portion of the actions of a robotic system without actually performing those actions. This is useful in demonstration scenarios where the actual execution of the robotic system actions to be demonstrated might pose a risk to the user during the demonstration. For example, if a user is demonstrating a welding process by guiding a welding tool by hand, it might not be desirable to actually activate the welding tool; instead, the assistive function would be configured to mimic welding, for example, by turning on a welding indicator light. Or, if a user is demonstrating a drilling process, the user might want to demonstrate the drilling location and also demonstrate actual drilling, but without actually performing the drilling.
[0087] The robot task generator can also be configured to generate robot tasks based on auxiliary setting parameters of the auxiliary functions being performed.
[0088] In one implementation, an assistive function is associated with one or more attributes that define one or more characteristics of the assistive function, such as function type, function requirements, relationship to other assistive functions, dependency on other assistive functions or parts of the robot system, inputs required by the assistive function, and outputs provided by the assistive function. The function type attribute may provide an indication of the function of the assistive function, for example, in the form of keywords, tags, and / or a brief description of the following: the function the assistive function will perform; and / or the type of program code that can be generated by executing the assistive function. The function requirements attribute provides information on the requirements that need to be met before the user can activate the assistive function. Some assistive functions may require parts of the robot system to be in a specific state to execute. For example, an assistive function activating an end effector may require the end effector to be mounted on the robot arm, and an assistive function activating a peripheral device (such as a conveyor) may require a connection to the robot controller and the conveyor to be established. Some assistive functions may also require the robot system's safety settings to meet specific requirements. Relationship and dependency parameters define how an assistive function relates to other assistive functions and / or parts of the robot system. For example, relationship and dependency parameters define whether another assistive function needs to be executed before an assistive function can be executed, or whether another assistive function needs to be executed after an assistive function has been executed. Input attributes indicate the inputs required for an assistive function, such as input parameters that need to be set to execute the assistive function. For example, an assistive function for a part of a mobile robot arm might need to define the direction of movement. Output attributes provide a definition of the output generated by the assistive function, which may take the form, for example, an indication of one or more parameters to be set based on the execution of the assistive function and / or exemplary program code generated based on the execution of the assistive function. Attributes can be associated with assistive functions, for example, via a database linking assistive functions to attributes, as attributes set as part of the assistive function file (e.g., as part of the file header), etc.
[0089] Attributes defining one or more characteristics of an assistive function can, for example, be used to provide a search function for the robot controller, allowing users to search for assistive functions based on their attributes. Furthermore, the robot controller can be configured to display attributes to the user before the user activates the assistive function, allowing the user to decide whether the assistive function should be activated. For example, an assignment function that can be used to teach pick-and-place functions can be marked as a pick-and-place function that the user can search for via the user interface. Developers of assistive functions can also use attributes associated with the assistive functions to create relationships between different assistive functions and utilize multiple assistive functions to create a specific assistive function. The robot controller can also be configured to display available assistive functions on the user interface based on the attributes of the assistive functions and / or based on the state of the robot system. The user interface can then be set up as a dynamic user interface that automatically displays relevant assistive functions to the user. For example, if the gripper is open, the user interface can be configured to display an assistive function that automatically aligns the gripper jaws with the workpiece and automatically picks it up. The robot controller can also be configured to display frequently used assistive functions, for example, based on usage statistics.
[0090] Figure 3 An example is illustrated by a method 330 for programming a robot system 300 according to the present invention, wherein the robot system includes at least one robot arm controlled by a robot controller according to a robot program, wherein the robot program specifies a plurality of robot tasks and the execution order of these robot tasks. For simplicity... Figure 3 The robot system 300 is exemplified by a single robotic arm; however, it should be understood that... Figure 3 The illustrated robotic arm is represented by... Figure 2 and Figure 5 The illustrated robot system 200 is similar to other robot systems.
[0091] The method includes step 350 of activating the record, step 360 of activating the assistive function, and step 370 of generating the robot task.
[0092] Step 360 of activating recording includes activating the recording process 322 of the robot system (illustrated by a dash), wherein the robot controller, as described in paragraph
[0039] , records (352) at least one operating parameter associated with the robot system 300 during the recording process and stores (353) the operating parameter in the recording memory storage device 318.
[0093] During recording process 322, step 360 is performed to activate at least one auxiliary function. The activated auxiliary function activates (362) at least one predefined robot system action as described in paragraphs
[0040] to
[0045] , and at least one auxiliary parameter associated with the activated auxiliary function is stored (363) in auxiliary parameter memory storage device 318. Figure 3 In this process, step 360 of activating accessibility is incorporated into and executed as part of the recording process. However, it should be understood that step 360 of activating accessibility can also be executed as a separate activation process that is separate from and concurrent with the recording process.
[0094] Step 370 of generating a robot task generates at least one robot task T3 based on the activated auxiliary function and at least one of the recorded operating parameters. In the illustrated embodiment, this is achieved by obtaining (371) at least one operating parameter from the recording memory storage device 316, which is recorded during the recording process, and (372) at least one auxiliary parameter from the auxiliary memory storage device 318. The robot task T3 is then generated based on the obtained operating parameters and auxiliary parameters, which means that the robot task is generated based on knowledge associated with the obtained operating parameters and auxiliary parameters. For example, the auxiliary parameters may indicate the type of robot task to be generated, and the operating parameters may be used to set the parameters of the generated robot task. As a non-limiting example, the auxiliary function may be an alignment function configured to automatically align the gripper teeth of the gripper symmetrically around the object to be picked up by the gripper. After alignment, the auxiliary parameters may indicate the pose of the robot arm that should be moved when the gripper is symmetrically aligned around the object. Then a movement task is generated that moves the robot arm to the alignment pose, wherein the alignment pose is obtained from the operating parameters of the robot joints when the robot arm is symmetrically aligned around the object, and the alignment pose is then provided as a parameter to the movement task.
[0095] Figure 4 A method 430 for programming a robot system 300 according to the present invention is illustrated. Method 430 includes... Figure 3 The same steps as the method, and similar steps and features are given to the same Figure 4 The same reference numerals are used in the accompanying drawings and will no longer be combined. Figure 4 Further description. In this embodiment, step 370 of generating at least one robot task includes step 473 of evaluating the obtained parameters and step 474 of setting the parameters of the robot task.
[0096] Step 473, which evaluates the acquired parameters, is based on operational parameters and / or auxiliary parameters acquired during the recording process and includes identifying predefined patterns of the acquired parameters, wherein robot task T3 is generated based on the identified predefined patterns of the acquired parameters. The identified patterns may be based, for example, on values, changes in values, states, changes in states, the order of acquisition, the order of changes, the relationship between two or more operational or auxiliary parameters, the timing of operational or auxiliary parameters, the sequence of operational or auxiliary parameters, etc. The predefined patterns of the acquired parameters may be mapped to / associated with predefined robot tasks, and the predefined robot task may then be generated based on the identified patterns of the acquired parameters. This allows for the generation of relevant robot tasks for robot programs based on user interaction with the robot system, wherein the user uses the activation of assistive functions to indicate the expected robot task. Implementing the method according to the invention in a robot system enables the provision of a robot system in which a user can demonstrate robot tasks that the robot system needs to perform by interacting with and demonstrating robot tasks.
[0097] Step 474, setting parameters, allows the definition of parameters associated with the robot task, which can then be used to generate the robot task. Some identified robot tasks may require further input from the user, as not all parameters associated with the acquired task can be demonstrated through interaction with the robot arm. Therefore, step 472, setting parameters, can be used to define / set such parameters. For example, if the user has demonstrated a robot task in the form of robot arm movement, the user may want to specify a particular rate of movement rather than simply replicating the recorded rate of movement of the robot arm obtained during the recording process. Moreover, if step 473, which evaluates the acquired parameters, results in two possible robot tasks matching the acquired parameters, the user can specify the desired robot task by setting the parameters of the robot task. It should be noted that step 474, setting parameters, is an optional step of the method and is therefore illustrated with a dotted line.
[0098] Therefore, robot task T3 can be generated based on step 473 of evaluating the obtained parameters and optionally also based on step 474 of setting the parameters of the robot task, as illustrated by arrow 470.
[0099] In this embodiment, the method includes step 475, as illustrated by arrow 475', of adding / inserting the generated robot task T3 into robot program 420. The user may, for example, indicate where the generated robot task should be inserted into the robot program.
[0100] It should be noted that the method may also include additional steps for setting parameters of the robot task. For example, after a robot task has been added / inserted into the robot program, the user may be able to select the robot task and set or update its parameters.
[0101] Figure 5 An embodiment of a robot controller 506 according to the present invention is illustrated. This robot controller is similar to... Figure 2 The robot controller 206, and similar features and components are given to it. Figure 2 The same reference numerals are used in the accompanying drawings and will not be described further. Furthermore, it should be understood that robot control 506 is configured to control the robot system and interact with the user, such as... Figure 2 As described in the figures, however, for the sake of simplicity, the user and the robot system have been omitted.
[0102] Robot Task Generator 526 is similar to Figure 2 The robot task generator 226 shown and described herein is configured to generate at least one robot task T3 based on at least one of the auxiliary functions performed by the auxiliary process 224 and the operating parameters recorded by the recording process. In other words, the robot task generator is configured to generate robot program code that can be added / inserted into the robot program, as illustrated by arrow 275. The robot task generator 526 includes a parameter evaluation module 527 and a robot task parameter setting module 528.
[0103] The parameter evaluation module 527 evaluates the operating parameters and auxiliary parameters obtained by the recording process 222 and the auxiliary process 224, respectively, to identify the robot task based on these operating parameters and / or auxiliary parameters. In the illustrated embodiment, the parameter evaluation module 527 obtains the operating parameters and auxiliary parameters from the recording memory storage device 216 and the auxiliary parameter memory storage device 218, respectively; however, the parameter evaluation module may also receive parameters directly from the recording process and / or the auxiliary process or any other storage device or process. The parameter evaluation module is configured to identify the robot task by recognizing predefined patterns of the operating parameters and auxiliary parameters, wherein the predefined patterns are associated with the robot task. The robot controller includes a pattern and robot task storage device 529, in which multiple predefined patterns of the operating parameters and / or auxiliary parameters are stored, and wherein each predefined pattern of the operating parameters and / or auxiliary parameters is associated with at least one robot task. The parameter evaluation module 527 is configured to compare patterns of acquired operating parameters and / or auxiliary parameters with predefined patterns of operating parameters and / or auxiliary parameters stored in the pattern and robot task storage device 529, and to generate robot tasks based on robot tasks associated with the identified patterns of operating parameters and / or auxiliary parameters. Predefined patterns may be based, for example, on values, changes in values, states, changes in states, the order of acquisition, the order of changes, the relationship between two or more operating parameters or auxiliary parameters, the timing of operating parameters or auxiliary parameters, sequences of operating parameters or auxiliary parameters, etc. Identification may be based on any method suitable for comparing data and parameters, and a positive identification can be provided if the method provides sufficient confidence. This allows for the generation of relevant robot tasks for robot programs based on user interaction with the robot system, where the user uses the activation of assistive functions to indicate the expected robot task. Furthermore, the activated assistive functions can assist the user in providing a correct demonstration of the expected robot task.
[0104] The robot task generator includes a robot task parameter setting module 528, which is configured to set at least one parameter of the generated robot task. The robot task parameter setting module 528 allows parameters associated with the robot task to be defined, which can then be used to generate the robot task. Some of the identified robot tasks may require further input from the user, as not all parameters associated with some of the identified robot tasks can be demonstrated through interaction with the robot arm. Therefore, the robot task parameter setting module 528 can be used to define / set such parameters. For example, if the user has demonstrated a robot task in the form of robot arm movement, the user can use the robot task parameter setting module 528 to specify a particular rate of movement, rather than simply copying the recorded rate of movement of the robot arm obtained during the recording process. Furthermore, if the parameter evaluation module results in two possible robot tasks matching the obtained parameters, the user can use the robot task parameter setting module 528 to specify the desired robot task by setting the parameters of the robot task. Therefore, the robot task parameter setting module can be used in conjunction with the parameter evaluation module for setting the parameters of the robot task, as illustrated by arrow 574a. For example, this is useful if a user wants to specify specific parameters (which determine the type of robot task to be generated) after the demonstration. Note that arrow 574a is a double-headed arrow because the parameter evaluation model 527 can also be configured to request the setting of robot task parameters. This is useful if the parameter evaluation module requires further input from the user to generate the robot task. The robot task parameter setting module can also be configured to set these robot task parameters after they have been generated by the parameter evaluation module. This allows the user to change and / or set the parameters of the robot task after it has been generated, thereby enabling the user to modify the final parameters of the robot task. The robot task parameters are an optional step in this method and are therefore illustrated with a dotted line.
[0105] In one implementation, the robot task parameter setting module 528 can be configured to define and / or set execution parameters associated with the robot task generated by the parameter evaluation model, wherein the execution parameters define the execution mode of the associated robot task. This allows the fault tolerance and adaptability of the robot task and robot program to be set. The fault tolerance and adaptability of the robot task are indicators of how well the robot system adapts to changes in the robot system. The higher the fault tolerance and adaptability of the robot program, the lower the probability of the robot program failing during execution. However, a typical result of higher fault tolerance and adaptability of the robot program is a reduction in cycle time. Execution parameters may, for example, indicate: whether a robot task should be executed every time a particular robot task is performed; whether a robot task should only be executed the first time a particular robot task is performed; and the interval (time / number of times) at which the robot task should be performed. Moreover, where the assistive function causes the robot arm to perform predefined actions, resulting in the identification of specific operating parameters of the robot system, the execution parameters may indicate whether the robot task should include part of the performed actions or only based on the identified operating parameters.
[0106] As an example, the assistive function could be a search function where the robotic arm automatically identifies the center of a hole in a workpiece (e.g., a hole for inserting an object). The user, utilizing the assistive function, can then choose whether the search function should be part of the generated robotic task, or whether only the coordinates of the hole's center identified during the demonstration should be included in the robotic task. If the user selects that the robotic task should include the search function, the search function will be executed every time the robotic program executes the task; if only the coordinates of the hole's center are added to the robotic task, the search function will not be executed during the robotic program. Therefore, in the first case, a more fault-tolerant and adaptive robotic program can be provided because the robotic system will be less sensitive to changes in the workpiece's position since the hole's center is automatically identified. However, the execution time of the robotic program in the first instance is longer than in the second instance because the search function needs to be executed every time the hole's center needs to be identified. Therefore, the second instance provides a faster robotic program because the robotic task only utilizes the hole's center identified during the demonstration, which would be preferred in some cases, especially when the workpiece is positioned in the same location every time a robotic task is generated.
[0107] As another example, an auxiliary function could be an alignment function that aligns the gripper with the workpiece to be gripped, such that the workpiece is centered between the two gripping jaws of the gripper. The auxiliary alignment function may include the following steps:
[0108] 1) The gripper is manually positioned above the workpiece by setting the robotic arm to free drive, allowing the user to manually position the gripper above the workpiece and point the gripper jaws toward the workpiece. It should be understood that the user can also move the gripper using the control bottom on the user interface. This position can be recorded as the starting position, Start_Position.
[0109] 2) The grippers of the clamp automatically close.
[0110] 3) Automatically move the gripper toward the upper surface of the workpiece until the tips of the grippers contact the upper surface of the workpiece. This can be accomplished, for example, by using the method described in WO 2020 / 239081 entitled "Detection of change in contact between a robotarm and an object". The position at contact can be recorded as the upper contact position, Upper_Position.
[0111] 4) Automatically retract the gripper upwards from the top surface of the workpiece by a predetermined distance, Retract_Distance, because this allows the gripper to open without interfering with the workpiece.
[0112] 5) The clamp opens automatically.
[0113] 6) Automatically move the gripper downwards by a predetermined distance Approach_Distance, so that the gripper is placed on the side of the workpiece.
[0114] 7) Automatically move the gripper laterally in the first direction until the first jaw contacts the workpiece. The position at contact can be recorded as the first jaw contact position Jaw1_ContactPosition.
[0115] 8) Automatically move the gripper laterally in a second direction opposite to the first direction until the second jaw contacts the workpiece. The position at contact can be recorded as the second jaw contact position Jaw2_ContactPosition.
[0116] 9) The gripper is automatically aligned with the workpiece centered between the two grippers based on the contact positions of the first and second grippers. The aligned position can be recorded as the center gripping position Griper_CenterPosition.
[0117] 10) Automatically move the gripper to the center gripping position.
[0118] 11) Automatically close the gripper.
[0119] 12) Semi-automatically retract the gripper with the workpiece upwards a certain distance by setting the robot arm to be freely driven along a locked axis, where the user can manually move the gripper along a fixed vertical axis to position the gripper and workpiece above the pick-up position. The final retraction position can be recorded as the exit position Exit_Position.
[0120] The parameter evaluation module 527 generates robot code based on the assigned functions and recorded parameters. As an example, the program code can be represented by the following pseudo-program code.
[0121] 01: Move to Start_Position
[0122] 02: Closing clamp
[0123] 03: Move the clamp downwards until it contacts the ground.
[0124] 04: Upon contact, store the actual position as Upper_Position
[0125] 05: Move the gripper upwards a certain distance: Retract_Distance
[0126] 06: Open the clamp
[0127] 07: Move the gripper downwards a certain distance: Approach_Distance
[0128] 08: Move the clamp laterally in the first direction until it contacts the gripper.
[0129] 09: Upon contact, store the actual location as Jaw1_ContactPosition
[0130] 10: Move the clamp laterally in the second direction until it makes contact.
[0131] 11: Upon contact, store the actual location as Jaw2_ContactPosition
[0132] 12: Setting: Gripper_CenterPosition = (Jaw1_ContactPosition+Jaw2_ContactPosition) / 2
[0133] 13: Move the gripper to Gripper_CenterPosition
[0134] 14: Closing clamp
[0135] 15: Move to Exit_Position
[0136] The pseudo-program code comprises 15 program commands that can be executed by the robot controller during the operation of the robotic arm. The user sets the fault tolerance and adaptability of the robot program by specifying which of the 15 program commands should be executed by the robot controller during operation. This can be accomplished, for example, via a task parameter setting module 528, which can be configured to allow the user to specify all program code to be executed in each program cycle, thereby enabling fault-tolerant and adaptive execution of the robot task, as the gripper identifies the upper surface of the workpiece to be gripped in each program cycle and automatically centers the gripper jaws around the workpiece before gripping it. This implementation is useful, for example, if the height of the workpiece and the gripping position of the workpiece vary between each operation cycle.
[0137] By specifying that program codes 02, 03, 04, and 05 should not be executed during the operation of the robot arm, and by modifying the start position parameter Start_Position to be equal to the upper surface position Upper_Position after the gripper has moved the retraction distance Retract_Distance, a robot program with lower fault tolerance and adaptability can be provided. This corresponds to the robot command:
[0138] Setting: Start_Position = Upper_Position + Retract_Distance
[0139] However, the robot command only needs to be executed as part of the teaching process because the starting position Start_Position is predefined before executing the robot code. In this implementation, the robot task will be executed by executing robot codes: 01, 06, 07, 08, 09, 10, 11, 12, 13, 14, and 15, resulting in a faster program cycle because the robot arm does not recognize the upper surface of the workpiece before gripping it. This process is useful when the workpiece height is the same between each operation cycle but the workpiece gripping position changes between each operation cycle.
[0140] By specifying that program codes 08, 09, 10, 11, 12, and 13 should not be executed during the operation of the robotic arm, and by modifying the start position parameter Start_Position so that this start position is aligned with the center gripping position Griper_CenterPosition obtained during the teaching process, another robot program with lower fault tolerance and adaptability can be provided. For example, in an implementation where the X and Y axes form a plane on which the workpiece is arranged, the (X, Y) coordinates of the start position can be set, for example, by robot commands to be equal to the (X, Y) coordinates of the center gripping position:
[0141] Setting: Start_Position(X) = Gripper_CenterPosition(X)
[0142] Settings: Start_Position(Y) = Gripper_CenterPosition(Y)
[0143] These robot commands only need to be executed as part of the teaching process because the starting position Start_Position is predefined at the workpiece-centered location before executing the robot code. In this implementation, the robot task will be executed by executing robot codes: 01, 02, 03, 04, 05, 06, 07, 14, and 15, resulting in a faster program cycle because the robot arm does not identify the center of the workpiece before gripping it. This process is useful when the workpiece is positioned in the same gripping location and the workpiece height varies between each operating cycle.
[0144] Even faster operating cycles can be achieved by combining the program cycles described in paragraphs
[0076] and
[0077] (where only program codes 01, 06, 13, 17, and 15 will be executed for each operating cycle). This process is useful if the height and clamping position are the same for each operating cycle, and shorter cycle times can be obtained.
[0145] It should be understood that technicians will be able to provide many different variations of the program code that can be adapted to the user's needs. For example, the entire program of paragraph
[0074] can be executed in the first operating cycle to automatically identify the starting position and the center gripper position, after which the program cycle can be executed according to the process of paragraph
[0078] . Moreover, the robot program can be configured to perform height and / or position recognition in the event of a change in the workpiece.
[0146] Therefore, users can set the level of fault tolerance and optimal execution; for example, it can be defined as having at least three levels of fault tolerance and optimal execution.
[0147] 1. Demonstration-based task generation is accomplished in a less time-consuming manner. For example, fixed waypoints are used instead of searching for contact motion.
[0148] 2. Tasks are generated in such a way that the first and highest-risk execution time is handled in a fault-tolerant manner, and after the task is validated, the validated information is used to generate a default, efficient variant of the program. For example, altitude might be detected first by searching for contact motion. In subsequent runs, the same location is accessed by directly moving towards the detected altitude.
[0149] 3. Always use fault-tolerant versions to obtain the most robust programs that can potentially adapt to changes in the environment during execution.
[0150] All types can have their robustness improved by adding a try-catch strategy. The task defines how to verify the quality of the executed actions and what to do in case of invalid execution. This strategy can be used in conjunction with a task structure that returns the execution status to a higher-level structure, which can, for example, allow the task to retry multiple times and / or skip grid points and move to the next grid point.
[0151] In one implementation, the robot system may include an enabling device, such as a 3-position enabling device button, which can be used to control the execution of the robot program and also serves as a safety device. An example of this could be an operator initiating an action. The robot is able to run as long as the user keeps the 3-position enabling device button active. The action will be executed. However, if the operator deactivates the button, the robot will pause its movement. However, if the operator reactivates the button (if possible), the action continues, or if the user regrets doing so, a defined reset or cancellation of the action is performed. It is possible to regret and start another action. This can be easily done by selecting another action.
[0152] Figure 6 A sequence diagram illustrating a method for programming a robot system is shown, wherein the method utilizes the present invention and... Figure 2 The robot system is used as an example robot system for execution. Sequence 688 illustrates the interaction and steps involving user 210, sequence 690 illustrates the interaction and steps involving robot program 22, sequence 692 illustrates the interaction and steps involving recording process 222, sequence 694 illustrates the interaction and steps involving auxiliary process 224, and sequence 696 illustrates the interaction and steps involving task generator.
[0153] The sequence begins with user 210 selecting (632) a position in robot program 220, where the position indicates where the robot task to be demonstrated should be inserted into the robot program. Thereafter, user activates (650) a recording process, which, as previously described, begins recording (652) the operating parameters of the robot system and storing (653) these parameters in memory. As indicated by the dotted arrow, the recording (652) and storing (653) processes are repeated in successive recording and storing loops (654).
[0154] During the recording process, the user begins to interact with the robot system (637) to demonstrate the expected robot task, and this interaction involves the user activating (660) an assistive function of the assistive process 224. The assistive process 224 then activates and executes (662) robot system actions associated with the activated assistive function, and also stores (663) assistive parameters associated with the activated assistive function. That is, the user can activate multiple assistive functions during the demonstration of the robot task, and therefore repeat steps 660, 662, and 663 for each activated assistive function.
[0155] Once the user completes the expected robot task during the demonstration, the user activates the recording process 656, and the task generator 226 is automatically notified (668) that the user's demonstration is complete. In the illustrated embodiment, the task generator 226 is notified by the recording process 222. However, it should be understood that the user or other parts of the robot system may notify the task generator 226 that the demonstration is complete. The task generator may then generate (670) a robot task, and as part of the generation, the task generator may request (677) and / or receive (678) input from the user, which can be used to set parameters of the robot task as previously described.
[0156] Once the robot task generator 226 has generated a robot task, the robot task generator can add / insert (675) the robot task into the robot program at the location indicated in step 632.
[0157] It should be understood that the illustrated sequence diagrams show examples of possible sequence flows, and those skilled in the art can make variations of the sequence flows.
[0158] The following paragraphs describe examples of different assistive functions that, when activated, enable at least one robot system action that can be used to demonstrate a robot task.
[0159] Alignment assist is an auxiliary function that, when activated, automatically aligns a portion of a robotic arm (such as the tool center point (TCP) of a tool flange or end effector) with a feature or object within the robotic system. Therefore, actions of the robotic system cause the robotic arm to move in order to align a portion of the robotic arm with the feature or object. The assist parameters associated with the alignment assist function can be an indication of the final pose of the robotic arm when it is aligned with the feature or object. However, the assist parameters can also indicate the initial pose of the robotic arm before alignment. Alignment assist functions can assist users during demonstrations in ensuring accurate and / or precise alignment of the robotic arm with the feature or object. This is advantageous because experience shows that users are not adept at demonstrating accurate poses of robotic arms during demonstrations, and using alignment assist functions leverages the accurate positioning of sensors and the robotic arm to provide an accurate demonstration of the robotic arm's pose.
[0160] A move-to-contact assist function is an assistive function that, when activated, moves a robotic arm in a predetermined direction or in a predetermined movement pattern until the robotic arm detects contact with a feature and / or object of the robot system. Contact can be detected using various sensor devices known in the art for robot systems. Assistive parameters associated with the move-to-contact assist function can indicate the direction or movement pattern utilized by the function; for example, a user can select the direction or movement pattern when activating the move-to-contact assist function. Furthermore, the assistive parameters can indicate the pose of the robotic arm when a contact point has been detected. Move-to-contact assist functions are useful because they can be used by the user to demonstrate precise contact points that can be used to map features of the robot system or as reference points in the robot program. The assistive parameters can also indicate whether the move-to-contact function should be incorporated into the generated robot task, such that the robot system executes the move-to-contact function whenever the generated robot task is performed during the operation of the robot system. As described above, this allows the user to utilize the assistive function to modify and design the tolerance and / or optimization level of the robot program.
[0161] The undo assist function, when activated, allows the robot system to return to a previous state based on recorded operational parameters. Users demonstrating a robot task who want to re-demonstrate a portion of the task during a demonstration session can use the undo assist function to return to a previous state of the robot system. This is accomplished by recording all operational parameters indicating the robot system's state at different time steps in a database, and then sequentially setting the robot system's operational parameters to the recorded values that are backward in time, thus returning the robot system to the past. Once the undo assist function is activated, the redo assist function can also be activated, which returns the robot system to a previous state that occurred after the state the robot system entered using the undo assist function. In other words, the undo and redo assist functions can be used to rewind and forward the robot system's state. This is extremely useful when demonstrating and testing robot tasks.
[0162] The method and robot system according to the invention can also utilize a passive assist function that can be used to change the state of a part of the robot system, and the passive assist function is not configured to perform robot actions when activated.
[0163] The following paragraphs partially describe different scenarios in which users utilize the robot system and method according to the present invention to demonstrate robot programs to be executed by the robot system.
[0164] Scenario 1: Pick up and place in the grid
[0165] This scenario illustrates how a user can instruct a robotic system to pick up objects from a fixed location and place them into a grid (e.g., from a conveyor to a pallet). Once the user has activated the recording process, the user can apply the following subset of available assistive functions in the following sequence:
[0166] 1. Free drive
[0167] 2. Align with Z
[0168] 3. Move to contact
[0169] 4. Center of the object
[0170] 5. Closing clamp 1
[0171] 6. Retraction
[0172] 7. Free drive
[0173] 8. Grid
[0174] 9. Align with Z
[0175] 10. Move to contact
[0176] 11. Open clamp 1
[0177] 12. Retraction
[0178] The accessibility features used in this scenario are defined as described in the following paragraphs.
[0179] Free drive
[0180] This assistive function is an example of a passive assistive function because it merely places the robot arm in a known free-drive operating mode without performing any robot actions. In free-drive operating mode, the robot arm's pose can be changed by applying external forces, whereas when only gravity is applied, the robot arm remains in a static pose. When the free-drive assistive function is activated, it allows the user to change the position of the robot arm, for example, by moving the tool flange from one position to another. The free-drive assistive function can be associated with various setting parameters that can be used to further assist the user during free-drive mode. For example, a lock axis setting parameter can indicate that any degree of freedom (DOF) of the robot tool flange should be locked during free-drive operating mode. Locking DOF can, for example, help the user perform a demonstration to maintain the desired orientation of the tool flange during free-drive. Additionally, assist parameters associated with the free-drive assistive function can indicate whether the position operation parameters acquired during free-drive operating mode are applied to generate robot tasks that define the robot arm's movements. In this case, the robot task generator translates the recorded position operation parameters into one or more robot tasks that define the robot arm's movements.
[0181] Align with Z
[0182] This assistive function allows users to align the robot tool (end effector or tool flange) to any frame selected via frame ID or by providing a 6 DoF vector representing the frame. During teach time, if no frame is provided, the robot will automatically correct the plane on the direct extension of the robot's tool in the Z direction to assist the user in defining the plane. The robot task generator uses this assistive function and inserts its script code directly into the resulting robot system program, thereby transferring any potential parameters to the user interface for user adjustment. The user can choose whether the robot should correct the plane in every iteration of the robot system program or only during teach time.
[0183] Move to contact
[0184] This assistive function utilizes the robot arm's contact detection capability, or another signal indicating contact between the robot arm and a feature and / or object of the robot system, as well as relative movement in a given direction. By default, this direction can be the Z-direction of the tool's center point, but the user can change this direction. The movement will continue until the robot system detects contact. The assistive function can be associated with various settings that specify how the robot system performs the assistive function. For example, settings such as contact parameters, direction of movement, distance of movement, speed of movement, acceleration of movement, transition radius, frame reference, fixed setting, or relative setting can be configured.
[0185] The robot task generator can generate robot tasks (robot code) by using the same actions and parameters as those used in the demonstration, and the robot arm will perform the movement to contact task as demonstrated during execution, so that the robot arm searches for contact under given parameters (such as in a given direction), making the execution fault-tolerant to changes in the task (e.g., search).
[0186] Alternatively, the robot task generator can use recorded data to generate a frame function or relative movement function that moves to a fixed parameter-defined frame, enabling movement in the same direction and distance as recorded during demonstration. During execution, in the case of a fixed position, the robot task generator uses the recorded stop position as the resulting movement target. In the case of relative movement, the movement target position is calculated by adding the difference between the current position at execution and the recorder's stop position and starting position. This auxiliary function facilitates efficient movement towards fixed objects because the contact function has already identified the distance to be moved.
[0187] object center
[0188] The object centering assist function uses force-torque sensors attached to the gripper and the robot arm, along with the tool flange, to determine the position of the object's center point. Before activating this assist function, the robot arm is positioned such that the object whose center point should be determined is positioned between the gripper's fingers. The assist function then causes the robot arm to move linearly (in Cartesian space) in the XY plane spanned by the tool center point of the robot arm until the force-torque sensors detect a user-defined force. Subsequently, the robot arm moves in the opposite direction to find the contact point of another gripper finger. For a three-finger gripper, the assist function rotates the robot's tool between contact detections to ensure that all finger contact points are detected. Assist parameters can indicate the robot arm's positional operating parameters at each of the detected contacts, or the assist function can be configured to calculate the center point based on the operating parameters. The center point assist function can also be associated with assist setting parameters to be used during the execution of the assist function, and these can be specified, for example: a force threshold for detecting contact and / or changing the direction of movement; speed; maximum radius; and the number of gripper fingers.
[0189] The robot task generator can, for example, utilize the same evaluation as the alignment-to-z assist function, and enable the user to select whether the robot arm should perform the object centering function in each robot cycle of the robot program or only during the teach time, and then use the learned position as a position parameter during the execution of the robot task.
[0190] Clamp switching
[0191] The gripper switching assist function switches the attached gripper's state from, for example, closed to open or from open to closed. If the gripper state is unknown at the time of demonstration, this assist function performs a release gripper movement. Therefore, depending on the grip type, an inside-out grip will cause the gripper fingers to move closer to each other. And for an outside-in grip, the fingers will move away from each other. The gripper switching assist function can be adjusted through several assist settings, such as the gripper to use, maximum open position, maximum closed position, gripper supplier parameters (e.g., force, speed, acceleration), load parameters for the closed position, load parameters for the open gripper, and grip type. The associated recorded operating parameters can be such as: recorded parameters: gripper state, gripper finger position, gripper force.
[0192] The robot task generator uses the obtained gripper position and state to generate a robot task that moves the gripper to a position or attribute defined by parameters such as gripping force.
[0193] The robot task generator can be configured to provide gripping quality functionality to robot tasks during the execution of the robot program, and to verify, for example, that the gripping position and force do indeed match the gripping position and force recorded during the demonstration within certain tolerances. If the quality is too low, the system can, for example, set the program to pause and request a user action or return the state to another functional process, such as retrying, trying the next grid position, or another error handling strategy or a combination of multiple functional processes. The robot task generator can also be configured to name robot tasks based on the gripper state, so that the program reflects the ongoing action in the text. For example, "Close gripper 1" or "Open gripper 2". Moreover, the robot task generator can be configured to generate robot tasks that change the payload settings of the robot arm, because typically when the gripper is closed, the gripper is gripping, and therefore the mass, center of mass, and / or moment of inertia in the payload settings may change. If cycle time is important, the robot task generator uses records from demonstrations and / or knowledge from executed program sequences to optimize gripper parameters, such as open position, to minimize, for example, the time spent closing and opening the gripper, thereby optimizing the robot system cycle time.
[0194] Retraction
[0195] The retraction assist function is configured to allow the robot arm to move a certain distance until it stops or reaches its maximum distance. By default, this retraction assist function is set to move the robot arm in the Z direction of TCP to facilitate retraction after, for example, placing an object with a gripper. This assist function can be associated with assist settings such as: direction of movement, distance of movement, speed of movement, acceleration of movement, and transition radius.
[0196] The robot task generator uses recorded operational parameters (such as the start and end positions of the TCP) to perform relative movement when the retraction assist function is activated. This relative movement allows movement in the same direction and distance as recorded during the demonstration. During execution, the relative movement can be calculated based on the current position at the time of execution, and the relative movement can be calculated from the starting point towards the ending point, resulting in movements such as: if there is a 10cm difference between the recorded starting and ending positions in the negative Z direction, then the robot will move 10cm in the negative Z direction.
[0197] Grid
[0198] The mesh-assisted function is configured to execute robot system actions by issuing commands to the user. Commands can be provided, for example, as instructions displayed on the user interface; and / or audible commands provided by a speaker. An example of a mesh demonstration is provided in... Figure 7The diagram illustrates grid 779, showing the positions (black dots) that the robotic arm should access during the robot program. Initially, the grid assist function sets the robotic arm to a free-drive operating mode as previously described, then provides instructions to the user to first demonstrate the grid positions of the first row by sequentially moving the robotic arm's TCP from the starting grid position 780 of the first row to the last grid position 781 (illustrated by dotted arrow 783). Furthermore, the grid assist function instructs the user to demonstrate the grid positions of the last column by sequentially moving the robotic arm's TCP from the last grid position 781 of the first row to the last grid position 782 of the last column (illustrated by arrow 784). The assist parameters of the grid assist function indicate that the movement operation parameters of the robotic arm should be recorded.
[0199] The robot task generator generates robot tasks that ensure the robotic arm reaches the grid's location by: finding local minima in the recorded movement parameters to establish the outer grid point positions; then, establishing the remaining grid points by estimating the intersections between the row and column outer points; and finally, using recorded robot system parameters to extract proximity positions to avoid collisions during movement to the grid points. These proximity positions can be adjusted by the user later. The resulting code consists of a point lookup table, an iterator, and two path points.
[0200] Alternatively, the grid assist function can instruct the user to demonstrate the grid by first moving the robotic arm's TCP to the starting corner. Once the user has moved the TCP to the starting corner, the user confirms the position via the user interface, and the grid assist function provides instructions to move the TCP to the next grid position. The user then moves the TCP to the next grid position and confirms the position via the interface. This process is repeated until the last grid position of the first row is reached, at which point the user can provide instructions indicating that the position has been demonstrated. The grid assist function provides instructions to move the TCP to the last grid position of the second row, and once the TCP has been moved to that position, the user confirms the position. This process is repeated until the user confirms the last grid position. The user then moves the TCP to the next grid position and confirms the position via the interface. This process is repeated until the last grid position of the first row is reached, at which point the user can provide instructions indicating that the position has been demonstrated. The grid assist function provides instructions to move the TCP to the last grid position of the second row, and once the TCP has been moved to that position, the user confirms the position. This process is repeated until the user confirms the last grid position. In other words, the user first demonstrates the grid positions in the first row, and then the grid positions in the last column, as illustrated by arrow 783. The grid assistance function's auxiliary parameters indicate the positions of the demonstrated grids. The robot task generator can then generate robot tasks based on the grid positions confirmed by the user.
[0201] The robot program for the robot task generated through the user demonstration and activation of assistive functions based on Scenario 1 can be set up, for example, as exemplary robot code provided in the PolyScope program node, as known from the programming interface of the robot arm provided by a general-purpose robot:
[0202]
[0203] Scenario 2: Using peripheral devices to activate accessibility features
[0204] This scenario describes how a user can instruct the robot system to dispense fluids, such as sealant, by using a peripheral input device (connected to the robot system control box via standard I / O) through an end effector. The peripheral input device is configured to activate the robot system's auxiliary functions and can be, for example, an on / off foot pedal switch; however, it should be noted that it can be any kind of I / O device connected to the robot system.
[0205] Users can apply the following subset of available accessibility features in the following sequence:
[0206] 1. Free drive
[0207] 2. Injection Dispenser
[0208] 3. Free drive
[0209] 4. Assignment triggered by I / O from the foot pedal
[0210] The activated free-drive assist function is similar to the previously described free-drive assist function, and two other assist functions are further described in the following paragraphs.
[0211] Infusion dispenser
[0212] The infusion dispenser assist function begins infusing the dispensing end effector attached to the robot arm, meaning that the dispensing end effector is preparing to dispense fluid. For example, it may be necessary to heat the sealant before the dispensing end effector can dispense sealant. When the user has activated the infusion dispenser assist, the robot task generator adds a robot task to the robot program, which will cause the dispenser to infuse.
[0213] distribute
[0214] The distribution assistance function is a superset of two underlying assistance functions: free-drive assistance and I / O activation assistance. When activated, this distribution assistance function sets the robot to free-drive, allowing the user to move the distribution tool placed at the robot's end effector along the trajectory where sealant should be applied. When the distribution tool is activated, the user controls it via foot pedals, demonstrating the motion the robot should follow in execution mode. Assist parameters then instruct the user when to activate and deactivate the input device.
[0215] The robot task generator uses recorded motion parameters of the robot arm to create rate-based motion, causing the robot to move at the same rate as demonstrated, and uses auxiliary parameters to instruct the dispensing device where to dispense fluid during the motion. This ensures that the same amount of sealant is applied during execution as during the demonstration. The dispensing tool is activated and deactivated at the same time points as during the demonstration, thus applying sealant to the same locations during execution. Therefore, the generated robot task is a dispensing robot task that moves the robot arm along the demonstrated trajectory and activates the dispensing end effector at the location indicated during the demonstration.
[0216] This demonstration generates exemplary robot program code available in PolyScope program nodes, as known from the programming interface of a robot arm provided by a general-purpose robot:
[0217]
[0218] Scenario 3: User flow (undo / restore) when an error occurs during a presentation
[0219] Human operators are prone to error during demonstrations. To eliminate the need to resume the entire demonstration session, undo / redo capabilities are provided. Users can then undo assistive functions one by one until the desired state in the demonstration is achieved. When the robot system is asked to undo its latest action, it will by default reverse the trajectory it just executed. In addition, each assistive function provides a method for undoing its action. Consider this scenario: a user has moved the robot to the appropriate position to grasp an object, and the user activates an assistive function for closing the gripper, but the grasping causes the object to bend in the gripper. The user dislikes this action and wants to undo it. The assistive function for the gripper provides a rule-based undo / redo method that carries the gripper's previous and current states. When the user activates the undo method through the user interface, the gripper will release the object because it knows the difference between its previous and current states. If the user regrets undoing the assistive function, the user can redo it, causing the assistive function to be executed again. In this way, undo and redo functions can also be used to test and validate tasks in single or multiple demonstrations.
[0220] Scenario 4: Based on the previously recorded custom wizard process
[0221] This scenario describes how User A can program a sequence of robot system parameters using the proposed method, allowing User B to re-record the robot system parameters later without fully understanding the application of the robot system. The concept allows User A to define which assistive functions to re-record by excluding a subset of those applied in the previous demonstration. Furthermore, User A has the option to comment on each assistive function. This comment is displayed to User B during the re-recording process. User B selects a sequence previously programmed by User A and chooses an option to re-record that sequence. Upon selection, User B is prompted to click "Next" to execute the first assistive function in the selected sequence. Upon confirmation, User B is presented with a message previously provided by User A, instructing the user to take multiple actions using the robot system while executing the corresponding assistive function using the original set of assistive function parameters. User A and User B can be the same person.
[0222] This scenario could be the sequence mentioned in Scenario 1, which is first executed by user A during the programming of the robot system, and in which user B needs to reprogram the robot system at a later point in time, for example, when the object to be moved and / or the grid scale changes.
[0223] A sequence of accessibility features in user applications:
[0224] 1. Free-drive, re-record: True, Note: "Move the robot to the part position"
[0225] 2. Align to Z, record again: True, Note: "Ensure the robot is aligned".
[0226] 3. Move to contact and record again: True. Note: "Control gripper height".
[0227] 4. Object center, re-record = true. Note: "Control the gripper to be in the center".
[0228] 5. Close gripper 1, record again = true, note: "Control gripping"
[0229] 6. Revert, re-record = true, note: clear.
[0230] 7. Free drive, re-record = true, note: "Move robot to grid".
[0231] 8. Grid, re-record = false
[0232] 9. Align to Z, re-record = false
[0233] 10. Move to contact, re-record = false
[0234] 11. Open clamp 1 and re-record = false
[0235] 12. Rewind, re-record = False
[0236] User A has already demonstrated the procedure as shown in Scenario 1. To facilitate frequent changes in part pick-up positions, User A prepared a demonstration for re-recording by enabling the functionality related to program tasks 1-7 and adding instructions for User B.
[0237] User B's task is to modify User A's robot program to compensate for the new part position. User B executes the re-recording set by User A. The robot system will then begin executing a subset of the selected auxiliary functions. Each time an auxiliary function is confirmed, the robot system will automatically execute the next auxiliary function. Depending on the nature of the auxiliary functions, some may require user input, such as manual guidance or parameters, while other auxiliary functions can be executed directly without further input. User B executes the following steps step by step:
[0238] 1. In step 1, user B manually guides the robot to the new part location and confirms completion by pressing a software button on the teach pendant or using the hardware input assigned for confirmation.
[0239] 2. The robot aligns the TCP Z-axis with the base Z-axis. User B provides no further input except to confirm completion.
[0240] 3. The robot moves directly to the surface where it contacts the part. User B visually confirms and continues.
[0241] 4. The robot aligns the center of the gripper with the center of the part. User B visually confirms and continues.
[0242] 5. The clamp is activated to the closed position. User B confirms that the part is securely positioned and continues.
[0243] 6. The robot retracts in the Z direction of TCP. User B confirms. No verification required.
[0244] 7. User B manually guides the robot from the new part location to the grid.
[0245] When the re-recorded subset is completed, its corresponding program portion is automatically updated with new robot system parameters, resulting in a new evaluation of it, thus changing the program execution to handle the new part position.
[0246] The illustrated embodiments are merely illustrative of the concepts of the invention, and it should be understood that those skilled in the art can provide many different embodiments within the scope of the invention. Furthermore, it should be understood that the illustrated embodiments can be combined, and that auxiliary functions can be combined in many different programming scenarios.
[0247] Brief explanation of the reference numerals in the attached figures
[0248] 100、200、300 Robotic systems 101、201 robotic arm 102a-102f Robot joints 103 Robot Base 104 Robot tool flange 105a-105f Robot joint axis 106、206 robot controller 107 Interface devices 108 monitor 109 Input devices 210 user 211 clamp 212 Conveyor belt 213 box 214 Pick up location 215 pallets 216、316 Recording memory storage device 218、318 Auxiliary parameter memory storage device 220、420 robot program 222 Record process 224 auxiliary process 226 Robot Task Generator 527 Parameter evaluation module 528 Robot Task Parameter Module 529 Pattern and robot task storage 330、430 Methods for programming robot systems 632 Select the location of the robot program 637 User interaction with the robot system 240 Control robot system 250、350、650 Activate recording process 252、352、652 Record operation parameters 353、653 Storage operation parameters 654 Recording and storing cycles 656 Deactivate the recording process 260、660 Activate accessibility features 262、362、662 Activate robot system actions 363、633 Storage and accessibility-related operating parameters 668 Notification of the end of the presentation 270 Generate robot tasks 371 Obtain at least one of the recorded operation parameters. 372 Obtain at least one auxiliary parameter 473 Evaluation of the obtained parameters 474, 574a, 574b Setting parameters for robot tasks 275、475;475' Add / insert robot tasks into the robot program 677 Requesting input from the user 678 Requesting input from the user 779 Grid 780 Starting corner position of the grid 781 End of the first line 782 The end corner of the grid 783 Demonstrating the grid position of the first row 784 Demonstrating the grid position of the last column 688 Sequence involving users 690 Sequences involving robot programs 692 Sequences involving recording processes 694 Sequences involving assistive functions 696 Sequences involving task generators T1-T5 Robot Mission
Claims
1. A robot system (200) comprising at least one robot arm (201) controlled by a robot controller (206) according to a robot program (220), wherein the robot program specifies a plurality of robot tasks (T1-T5) and the execution order of the robot tasks, the robot system comprising a user interface device enabling a user (210) to communicate with the robot system, wherein the robot controller is configured to perform: A recording process (222) is available, which can be activated by a user via the user interface device, and the robot controller is configured to record at least one operating parameter of the robot system during the recording process. An auxiliary process (224) is configured to perform at least one auxiliary function during the recording process when activated by the user, wherein the at least one auxiliary function activates at least one robot system action. The robot controller includes: A robot task generator (226) is configured to generate at least one robot task (T3) based on at least one of the at least one executed auxiliary function and at least one of the recorded operation parameters.
2. The robot system of claim 1, wherein the user interface allows the user to define at least a portion of the robot program by specifying at least one of the robot tasks and the execution order of the robot tasks.
3. The robot system according to any one of claims 1 to 2, wherein the auxiliary process is configured to execute robot program code that causes the robot system to perform the robot system actions.
4. The robot system according to claims 1 to 3, wherein the auxiliary function is configured to change at least one operating parameter of the robot system.
5. The robot system according to any one of claims 1 to 4, wherein the auxiliary process is configured to instruct the recording process to record at least one operating parameter specified by the auxiliary function.
6. The robot system according to any one of claims 1 to 5, wherein the robot task generator includes a parameter evaluation module (527) configured to identify at least one robot task based on at least one of the at least one executed auxiliary function and at least one of the recorded operating parameters.
7. The robot system according to any one of claims 1 to 6, wherein the assist process is configured to generate at least one assist parameter related to the assist function.
8. The robot system according to claims 6 and 7, wherein the parameter evaluation module (527) is configured to identify at least one robot task based on the at least one auxiliary parameter and the at least one recorded operating parameter.
9. The robot system according to any one of claims 1 to 8, wherein the auxiliary function is associated with at least one auxiliary setting parameter, wherein the auxiliary setting parameter indicates at least one parameter affecting the execution of the robot system's actions.
10. The robot system according to claims 6 and 9, wherein the parameter evaluation module (527) is configured to identify at least one robot task based on the at least one auxiliary setting parameter and the at least one recorded operating parameter.
11. The robot system according to any one of claims 1 to 10, wherein the robot task generator includes a robot task parameter setting module, the robot task parameter setting module being configured to set at least one parameter of the generated robot task.
12. The robot system according to any one of claims 1 to 11, wherein the robot system actions include at least one of the following actions: To move at least a portion of the robotic arm; Activate at least one end actuator attached to the tool flange; Configure at least one output port for the robot system; Activate at least one peripheral device that forms part of the robot system.
13. The robot system according to any one of claims 1 to 12, wherein the auxiliary function is configured to activate at least one additional auxiliary function, wherein the at least one additional auxiliary function activates at least one additional predefined robot system action.
14. The robot system according to any one of claims 1 to 13, wherein the auxiliary function is configured to mimic at least a portion of the robot system's actions without performing the robot system's actions.
15. The robot system according to any one of claims 1 to 14, wherein the robot system actions include: A portion of the robotic arm is moved until at least a portion of the robotic arm contacts the object in the robotic system.
16. The robot system of claim 15, wherein the operating parameters indicate the pose of the robot arm when a portion of the robot arm comes into contact with the object, and wherein the robot task generator is configured to generate the at least one robot task based on the pose of the robot arm.
17. A method for programming a robot system, the robot system comprising at least one robot arm controlled by a robot controller according to a robot program, wherein the robot program specifies the number of robot tasks and the execution order of the robot tasks, the method comprising the following steps: Activate the recording process of the robot system, wherein the robot controller records at least one operating parameter of the robot system during the recording process; During the recording process, at least one auxiliary function of the robot system is activated, wherein the at least one auxiliary function activates at least one predefined robot system action; At least one robot task is generated for the robot program based on at least one selected auxiliary function and at least one recorded operating parameter from the recorded operating parameters.
18. The method of claim 17, wherein the method includes the step of adding the robot task to the robot program.
19. The method according to any one of claims 17 to 18, wherein the method includes one or more steps during the recording process in which a user interacts with the robot system to change at least one operating parameter of the robot system.
20. The method according to any one of claims 17 to 19, wherein the activation of the at least one predefined robot system action comprises the step of: executing robot program code that causes the robot system to perform the robot system action.
21. The method according to any one of claims 17 to 20, wherein the method includes the step of selecting a position of the robot program, and wherein the step of adding at least one robot task is based on the selected position of the robot program.
22. The method according to any one of claims 17 to 21, wherein the at least one auxiliary function causes at least one of the operating parameters of the robot system to change.
23. The method according to any one of claims 17 to 22, wherein the at least one auxiliary function provides instructions to the user of the robot system.
24. The method according to any one of claims 17 to 23, wherein the execution of the auxiliary function causes at least a portion of the robotic arm to move.
25. The method according to any one of claims 17 to 24, wherein the operating parameters indicate at least one sensor parameter of the robot system.
26. The method according to any one of claims 17 to 25, wherein the operating parameters indicate user interaction performed by the user and the robot system.
27. The method according to any one of claims 17 to 26, wherein the step of adding at least one robot task to the robot program comprises the following steps: The operational parameters of the record are evaluated based on at least one of the selected auxiliary functions.
28. The method according to any one of claims 17 to 27, wherein the step of adding at least one task to the robot program comprises the following steps: Generate robot program code and add the generated robot program code to the robot program code that defines the robot program.
29. The method according to any one of claims 17 to 28, wherein the auxiliary function is configured to activate at least one additional auxiliary function, wherein the at least one additional auxiliary function activates at least one additional predefined robot system action.
30. The method according to any one of claims 17 to 29, wherein the robot system operation comprises the following steps: A portion of the robotic arm is moved until at least a portion of the robotic arm contacts the object in the robotic system.
31. The robotic system of claim 30, wherein the operating parameters indicate the pose of the robotic arm when a portion of the robotic arm comes into contact with the object, and wherein the step of generating at least one robotic task is based on the pose of the robotic arm.
32. A method for providing auxiliary functions to a robot system according to any one of claims 1 to 17, wherein the method comprises the following steps: Defines at least one robot action to be performed by the robot system when the assistive function is activated; Define at least one robot task to be added to the robot program based on the activation of the aforementioned assistive function; An evaluation scheme is defined based on the auxiliary function and at least one of the operating parameters, wherein the evaluation scheme defines at least one attribute of the robot task.
Citation Information
Patent Citations
Method for programming an industrial robot and associated industrial robot
EP2905111A2
Programming of a Robotic Arm Using a Motion Capture System
US20190168390A1
In-situ column experiment simulation system for groundwater well, and simulation method
WO2020239081A1