Robotic arm with adaptive three-dimensional boundary in automatic drive

By introducing joint sensor parameter monitoring and threshold comparison into the robot controller, the robot arm ensures safety and stability in free-drive mode, solving the potential danger caused by payload weight errors in existing technologies and providing a safer operating experience.

CN114599489BActive Publication Date: 2026-04-10UNIVERSAL ROBOT
View PDF 7 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-09
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

In existing technologies, robotic arms are difficult to operate safely in free-drive mode, especially due to errors in determining the effective payload weight, which can lead to potentially dangerous situations, and the problem of sensor drift over time.

Method used

By using joint sensor parameter monitoring and threshold comparison in the free-drive operation mode, the robot controller ensures that the robot arm switches to the free-drive mode only under predetermined conditions, including activation sequence time periods and user confirmation signals, thereby reducing the risk of misoperation.

Benefits of technology

It improves robot safety, ensures the stability of the robot arm in free-drive mode, reduces the risk of accidental movement and collisions, and provides a user-friendly operating experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114599489B_ABST
    Figure CN114599489B_ABST
Patent Text Reader

Abstract

The invention relates to a robot controller controlling a robot arm, the robot controller being configured to hold the robot arm in a static pose when only gravity acts on the robot arm and to allow a change of pose of the robot arm 5 when an external force different from gravity is applied to the robot arm. A free-drive mode of operation can be activated by a user establishing a free-drive activation signal to the robot controller, the robot controller being configured to, in the free-drive mode of operation, allow a part of the robot arm to move within a virtual three-dimensional geometry 10 around the part of the robot arm for a free-drive safety period.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a robotic arm with a robot controller that controls multiple robotic joints of the robotic arm, the multiple robotic joints being connected to a robot base and a robot tool flange, wherein the robotic joints of the robotic arm can be manually manipulated by a user in a so-called free-drive mode. Background Technology

[0002] Robotic arms comprising multiple robot joints and links (where motors or actuators enable movement of portions of the robotic 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 robotic 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 robotic arm to execute multiple work commands. The robot joints can be rotary robot joints configured to rotate portions of the robotic arm relative to each other, prismatic joints configured to translate portions of the robotic arm relative to each other, and / or any other type of robot joint configured to move portions of the robotic arm relative to each other.

[0003] 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 movement. 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, by Denavit-Hartenberg parameters. The dynamic model enables the controller to determine what torques and / or forces the joint motors or actuators will provide in order to move the robot joints at a specified velocity and acceleration, or to hold the robot arm in a static posture.

[0004] Robotic arms require programming by users or robot integrators, who define various instructions specific to the robotic arm. These instructions include predefined movement patterns and operational commands such as gripping, waiting, releasing, and threaded engagement. Instructions can be based on various sensors or input signals that typically provide trigger signals for stopping or starting a given command. Trigger signals can be provided by various indicators, such as safety curtains, vision systems, and position indicators.

[0005] Typically, various end effectors can be attached to the robot tool flange or other parts of a robot arm, such as grippers, vacuum grippers, magnetic grippers, thread-jointing machines, welding equipment, dispensing systems, vision systems, etc. When providing such end effectors, it is necessary to estimate the payload information provided by these end effectors to the robot arm. Typically, the user manually inputs the payload information into the kinematic model, and the controller then takes this payload information into account when controlling the robot. Payload information usually includes information related to the object's weight and orientation, where the object's orientation is related to the object's position and orientation relative to the robot arm (e.g., the robot tool flange). For example, the orientation can be indicated as the position of the object's center of mass relative to the robot tool flange. Many users find it difficult to set the correct payload information or completely ignore / forget to set it.

[0006] Many robotic arms can be configured for so-called free-drive or zero-G operating modes, where a user can manually change the arm's posture by pushing or pulling it, and where the robot controller is configured to hold the arm in one posture when the user is not pushing or pulling it. In free-drive mode, the robot controller is configured to control the motor torque provided by the motors of the robot joints based on joint encoders and a dynamic model of the robot. Typically, the joint encoders provide signals indicating the joint angles of each joint, and the controller can calculate the force / torque required to hold the robotic arm in one posture based on these joint angles and the robot's dynamic model. When the user pushes or pulls the robotic arm, changes in joint angles can be recorded, and the robot controller is configured to allow movement of the robot. In some implementations, the controller may be configured to apply motor torque to the joint motors to assist the movement of the robotic arm, or to apply some resistance that the user needs to overcome to change the posture of the robotic arm, when changes in joint angles have been recorded (e.g., to assist the movement of the robotic arm). Some robotic arms include torque sensors configured to indicate the torque applied to each robotic joint, and the robot controller can be configured to control the motor torque applied to the robotic joints based on the torque applied to the robotic joints.

[0007] Known free-drive modes require manipulating individual robot joints to change the robot arm's posture, which can be difficult in some situations, such as at workstations where part of the robot arm is placed behind a protective shield to prevent the user from rotating some of the robot joints.

[0008] US 6212433B1 discloses a direct teaching device that allows an operator to perform direct teaching under safe conditions. The device includes a force detector and a teaching tool. The tool includes a working tool or handle fixed to a first detector and held by the operator to guide the robot. The tool also includes means for calculating position or velocity commands based on force detector data and a motion model. The tool further includes means for calculating the generating torque for a motor driving the robot based on the position or velocity commands, and a controller for controlling the generated torque. The user needs to configure the teaching device to provide power to the robot system, which complicates the use of the teaching device and also restricts the user to moving the robot arm only from the teaching device.

[0009] US 2012 / 130541 discloses a method and apparatus for directly and safely teaching a robot. The apparatus consists of multiple tactile sensors and electronic circuitry encapsulated in a compact housing, and a handle protruding from the housing. The handle provides the operator with a simple means to apply external force to the sensors, which generate electrical signals to the robot controller. The user needs to configure the handle device for the robot system, and the use of the handle device is complicated because its axis needs to be connected to a designated joint, and it also limits the user to moving the robot arm using only the handle device.

[0010] Safe operation of a robotic arm in free-drive mode requires correcting specifications for the payload weight, such as those of the robot controller, to avoid hazardous situations when free-drive mode is activated. Furthermore, a known problem is that sensors used to determine the payload weight drift over time, leading to incorrect payload weight calculations by the robot controller and potential hazards. Therefore, if, for example, the force required to hold the robotic arm in a given posture is based on an incorrect calculation of the payload weight, a hazardous situation could occur. Summary of the Invention

[0011] The object of this invention is to address the aforementioned limitations or other problems of the prior art. This is achieved by robot controllers, robots, and methods according to the first, second, and / or third aspects of the invention, wherein various embodiments of the first, second, and third aspects of the invention are described in the following paragraphs.

[0012] First aspect of the invention

[0013] This is achieved by a robot controller, robot arm, and method according to a first aspect of the invention, wherein the robot controller for controlling the robot arm is capable of switching from a current operating mode to a free-drive operating mode, wherein the robot controller in the free-drive operating mode is configured to:

[0014] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0015] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is allowed to change;

[0016] The free-drive operation mode can be activated by a free-drive activation signal established by the user to the robot controller, wherein the robot controller is configured to initiate a free-drive mode activation sequence upon receiving the free-drive activation signal, the free-drive mode activation sequence comprising the following steps:

[0017] Monitor the value of at least one joint sensor parameter during a predetermined activation sequence time period, and

[0018] The value of the at least one joint sensor parameter is compared with a threshold value of at least one free-drive activated joint sensor parameter;

[0019] The robot controller is configured to switch to the free-drive operation mode if the value of the at least one joint sensor parameter does not exceed the threshold of the at least one free-drive activated joint sensor parameter within the predetermined activation sequence time period.

[0020] Limiting the activation sequence time period (sometimes called a time window) for comparing defined joint sensor parameter values ​​with a threshold is advantageous because it has the effect of sorting out joint sensor parameters that are not intended to activate free-drive mode. This ensures that collisions or random impacts to the robot arm do not activate the free-drive mode for the tool or payload. Furthermore, it is advantageous because it has the effect that if the measured value exceeds the relevant threshold within the defined time period, free-drive mode is entered. By establishing this activation sequence time period, an intermediate free-drive mode test period is established, which is advantageous because it has the effect of preventing or at least reducing unintended movement of the robot arm due to (e.g.) incorrect input of payload weight to the robot controller by activating the joint sensor parameter threshold for free drive. The activation joint sensor parameter threshold can be any kind of value suitable for defining the threshold, such as a maximum value, minimum value, specific value, value range, value limit, etc. Joint sensor parameters not exceeding the joint sensor parameter threshold means that the value of the joint sensor parameter is within or does not violate the allowable value defined by the threshold. For example, in the case of the maximum threshold, if the value of the joint sensor parameter is less than the joint sensor parameter threshold, then the joint sensor parameter does not exceed the joint sensor parameter threshold. Similarly, in the case of the minimum threshold, if the value of the joint sensor parameter is greater than the joint sensor parameter threshold, then the joint sensor parameter does not exceed the joint sensor parameter threshold. Furthermore, in the case of a threshold range, if the value of the joint sensor parameter is greater than the lower limit joint sensor parameter threshold but less than the upper limit joint sensor parameter threshold, then the joint sensor parameter does not exceed the joint sensor parameter threshold. Therefore, when a user activates the free-drive mode within the robot arm's range, an incorrect payload weight will not cause the robot arm to move in an unpredictable direction, potentially posing a danger to the user. If the monitored joint sensor parameter value exceeds the relevant threshold, the robot arm's movement will stop.

[0021] After the activation sequence, the controller can enter a free-drive operation mode, which allows for fewer safety restrictions, resulting in a more user-friendly free-drive operation mode.

[0022] According to an embodiment of the invention, the robot controller is configured to remain in the current operating mode if the value of the at least one joint sensor parameter does indeed exceed the threshold of the at least one free-drive activation joint sensor parameter during the predetermined activation sequence time period. This prevents the robot from entering a safe stop when the free-drive operating mode is not activated. This saves time for the user, as the robot arm does not need to be restarted and / or reactivated due to a safe stop. In one embodiment, the user is notified via a user interface which joint sensor parameters prevent the robot arm from entering the free-drive operating mode. This allows the user to quickly and efficiently remove obstacles and then try to activate the free-drive operating mode again.

[0023] According to an embodiment of the invention, the predetermined activation sequence time period is at least any one of the following time periods: 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, and 1 / 4 second. This is advantageous because it has the effect that the robotic arm will enter the free-drive mode activation sequence time period within at least one predetermined time period of 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, or 1 / 4 second, without directly risking encountering dangerous situations due to (e.g.) incorrect payload weight. Furthermore, it can be ensured that at least one joint sensor parameter does not exceed at least one free-drive activation joint sensor parameter threshold within at least one predefined time period, thereby providing safer activation of the free-drive operation mode.

[0024] According to an embodiment of the invention, the predetermined activation sequence time period is at most any one of the following time periods: 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, and 1 / 4 second. This is advantageous because it has the effect that the robot arm will enter the free-drive mode activation sequence time period only within at most one of the predetermined time periods of at most 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, or 1 / 4 second, thus avoiding the robot arm remaining in the activation sequence for an unknown time period that may annoy the user. This can be avoided by configuring the robot controller to exit the activation sequence time period when the maximum time period has expired. For example, if it is not yet certain whether at least one joint sensor parameter does not exceed at least one free-drive activation joint sensor parameter threshold during the activation sequence time period, the robot controller can be configured not to enter the free-drive operation mode.

[0025] Therefore, the activation sequence time period can be executed within any of the following time periods after the free-drive activation signal has been received: 0 to 1 / 4 second; 0 to 1 / 2 second; 0 to 1 second; 0 to 2 seconds; 0 to 3 seconds; 0 to 5 seconds; 1 / 4 to 1 / 2 second; 1 / 4 to 1 second; 1 / 4 to 2 seconds; 1 / 4 to 3 seconds; 1 / 4 to 5 seconds; 1 / 2 to 1 second; 1 / 2 to 2 seconds; 1 / 2 to 3 seconds; 1 / 2 to 5 seconds; 1 to 2 seconds; 1 to 3 seconds; 1 to 5 seconds; 2 to 3 seconds; 2 to 5 seconds; 3 to 5 seconds; or within any of the following fixed time periods: 1 / 4 second; 1 / 2 second; 1 second; 2 seconds, 3 seconds, or 5 seconds. This allows for the provision of activation sequence time periods that ensure proper verification of the robot arm's ability to switch to free-drive operation mode, while simultaneously preventing excessive user frustration due to waiting time.

[0026] According to an embodiment of the invention, the robot controller is configured to initiate the free-drive mode activation sequence upon receiving the free-drive activation signal during an activation period. This is advantageous because it has the effect that only intentionally established free-drive signals are used to enter the activation sequence. For example, the robot controller may be configured to enter the activation sequence upon continuously receiving free-drive activation signals during the activation period. An alternative way to identify intentional free-drive activation signals is when the robot controller receives the activation free-drive activation signal in a predetermined sequence or pattern of discrete signals, for example.

[0027] According to an embodiment of the invention, the predetermined activation time period is at least any one of the following time periods: 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, and 1 / 4 second. This is advantageous because it has the effect that the robot arm enters the free-drive mode activation sequence when the robot controller has received a free-drive activation signal within at least one of the predetermined time periods of 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, or 1 / 4 second. This allows for a more robust record of the actual user's intention to activate the free-drive mode activation sequence, as unintentionally generated final free-drive activation signals can be sorted out by ensuring that the free-drive activation signal is received during the predetermined activation time period.

[0028] According to an embodiment of the invention, the predetermined activation time period is at most any one of the following time periods: 5 seconds, 3 seconds, 2 seconds, 1 second, 1 / 2 second, and 1 / 4 second. This allows for a user-friendly record of the user's intent to activate the free-drive mode activation sequence, since the waiting time for the user to generate the free-drive activation signal can be specified as a specific time period, and therefore, the user will know how long it will take to enter the free-drive operation mode.

[0029] Therefore, the activation period can be executed within any of the following time periods after the initial receipt of free drive activation: 0-1 / 4 second; 0 to 1 / 2 second; 0 to 1 second; 0 to 2 seconds; 0 to 3 seconds; 0 to 5 seconds; 1 / 4 to 1 / 2 second; 1 / 4 to 1 second; 1 / 4 to 2 seconds; 1 / 4 to 3 seconds; 1 / 4 to 5 seconds; 1 / 2 to 1 second; 1 / 2 to 2 seconds; 1 / 2 to 3 seconds; 1 / 2 to 5 seconds; 1 to 2 seconds; 1 to 3 seconds; 1 to 5 seconds; 2 to 3 seconds; 2 to 5 seconds; 3 to 5 seconds; or within any of the following fixed time periods: 1 / 4 second; 1 / 2 second; 1 second; 2 seconds, 3 seconds, or 5 seconds.

[0030] According to an embodiment of the invention, the robot controller is configured to maintain the robot arm in the free-drive operation mode for at least one predetermined free-drive time period. The predetermined free-drive time period is the period during which the robot controller maintains the robot arm in the free-drive operation mode after it has switched to the free-drive operation mode. This ensures that the user has sufficient time to initiate movement of the robot arm after activating the free-drive operation mode.

[0031] According to an embodiment of the invention, the robot controller is further configured to initiate a predetermined restart free-drive period when the robot arm is in a static posture. The predetermined restart free-drive period is a time interval initiated when the robot arm is already positioned in a static posture (e.g., when the user has stopped moving the robot arm and therefore is not applying force or torque to it). This ensures that after the user moves the robot arm in free-drive operation mode, there is sufficient time to restart the robot arm's movement (e.g., to allow the user to change the robot arm's grip or to store waypoints). Alternatively or additionally, the static posture can be initiated when an external force or torque impact on the robot arm terminates.

[0032] According to an embodiment of the invention, the robot controller is configured to leave the free-drive operation mode when the robot arm has maintained a static posture for either a predetermined free-drive period or a predetermined restart free-drive period. The predetermined free-drive period and the predetermined restart free-drive period may be the same, and the robot controller leaves the free-drive operation mode when they expire.

[0033] Therefore, in practice, when a user initiates movement of the robot arm's joints by applying force / torque, the time period during which the robot arm is held in free-drive mode is reset. After the time period initiated when the user stops applying force / torque (restarting the free-drive period), the operating mode switches to another operating mode, such as teach mode, run mode, stop mode, etc. This is advantageous because it has the following effect: the user can hold the robot arm in free-drive operating mode for as long as needed by applying force to the robot arm before the restart period expires. This allows the user to change his / her grip on the robot arm, which in some cases may be what the user desires to change the robot arm's posture in free-drive operating mode. Furthermore, the user can easily exit the free-drive operating mode by not applying force / torque for the time period defined by the restart period. Moreover, this is advantageous, at least in terms of safety (personnel and mechanics), because without the robot being held in free-drive operating mode, sensor drift over time can otherwise cause changes in the robot's posture. Such drift could ultimately lead to a collision between the payload or robot tool and the floor or other objects within the range of the robot arm. Additionally, if another user approaches the robot arm without knowing that it is in free-drive operation mode, keeping the robot arm in free-drive operation mode after the user has left the robot arm can also lead to dangerous situations, because the user expects the stationary robot arm to be in a stop / brake operation mode where the robot arm cannot move.

[0034] According to an embodiment of the invention, the predetermined free-drive period and / or predetermined restart free-drive period is at least 2 seconds, thereby allowing the user to change their grip on the robot arm and initiate / re-initiate movement of the robot arm before the free-drive period and / or predetermined restart free-drive period expires. However, it should be understood that, alternatively, the predetermined free-drive period and / or predetermined restart free-drive period may be at least any one of the following time periods: 10 seconds, 5 seconds, or 3 seconds. A period of 5 to 10 seconds will allow the user to perform additional tasks, such as recording waypoints, moving external objects, or adjusting tools mounted on the robot arm, before the robot arm exits the free-drive operation mode.

[0035] According to an embodiment of the invention, the predetermined free-drive period and / or predetermined restart free-drive period is at most 5 seconds, thereby preventing the user from unintentionally moving the robot arm after the 5-second period of isolation. This reduces the risk of the dangerous situation described above. However, it should be understood that, alternatively, the predetermined free-drive period and / or predetermined restart free-drive period can be any of the following time periods: 10 seconds, 15 seconds, 20 seconds, or 30 seconds. A period of 5 to 30 seconds will allow the user to perform additional tasks (such as recording waypoints, moving external objects, or adjusting tools mounted on the robot arm) before the robot arm exits the free-drive operation mode, while still keeping the risk of accidental movement of the robot arm at an acceptable level, since users rarely forget that the robot arm is in free-drive operation mode during these periods. Furthermore, the risk of another user unintentionally moving the robot arm during this period is also acceptable, because the probability of the robot arm being completely isolated in free-drive operation mode during a period of 5 to 30 seconds is very low.

[0036] According to an embodiment of the invention, the robot controller is configured to leave the free-drive operation mode when at least one joint sensor has not indicated an external force during a predetermined free-drive period or during a predetermined restart free-drive period.

[0037] According to an embodiment of the invention, the robot controller is configured to leave the free-drive operating mode upon receiving a free-drive deactivation signal. The free-drive deactivation signal can be established, for example, by the user via a user interface. This is advantageous because it allows the user to return to an operating mode different from the free-drive operating mode at any time during the operation of the robot arm. Typically, operating modes are referred to as normal operating mode, running mode, remote mode, and teaching mode (also known as free-drive operating mode). For example, the robot is in normal operating mode when it is stationary (e.g., for programming) or in a waiting position. The robot is in running mode, for example, when the robot controller is executing program code (i.e., when the robot is in operation). The robot is in teaching mode, also known as free-drive mode, when the user can change the robot's posture by applying force to a part of the robot. Typically, the robot controller enters free-drive mode from normal operating mode and returns to normal operating mode from free-drive operating mode.

[0038] Alternatively, a free-drive deactivation signal can be established based on at least one joint sensor parameter, for example, by comparing the value of at least one joint sensor parameter with at least one free-drive operation joint sensor parameter threshold. The at least one free-drive operation joint sensor parameter threshold can be any value that defines a boundary for the corresponding joint sensor parameter when the robot controller is in free-drive operation mode. This allows for monitoring of some joint sensor parameters during free-drive operation mode and exiting the free-drive operation mode if these joint sensor parameters exceed certain thresholds. For example, this allows for monitoring the same joint sensor parameter monitored in a free-drive activation sequence but with different thresholds. In other words, the free-drive activation joint sensor parameter threshold and the free-drive operation joint sensor parameter threshold can be associated with the same joint sensor parameter but with different values. Therefore, different safety settings can be provided when the free-drive operation mode is activated and when it is in free-drive operation mode.

[0039] According to an embodiment of the invention, the robot controller is configured to present the remainder of at least one item in a list on an interface device, the list including: an activation time period, an activation sequence time period, a free-drive time period, and a restart free-drive time period. This is advantageous because it allows the user to visually see how much time remains in the activation time period, activation sequence time period, free-drive time period, and / or restart free-drive time period. This illustration can be provided to the user as any type of 2D or 3D graph, such as curves, bars, circles, etc. Moreover, such a graph displayed on the user interface can indicate the time that has elapsed in a given time period. Another effect is that the user can then see when forces are applied to the robot to maintain it in free-drive mode. Furthermore, the robot controller can present the user via the interface device with the root cause of the event that led to the involuntary departure from free-drive mode and guidance on how (e.g., how which joints move) to return the robot arm to its starting position, posture, or desired position / orientation in space.

[0040] According to embodiments of the invention, the at least one joint sensor parameter is selected from a list including: velocity, acceleration, torque, motor torque, force, and position. Velocity may, for example, indicate the velocity of a portion of the robot arm, such as the velocity of a tool flange relative to the robot base, or the angular velocity of a robot joint. Acceleration may, for example, indicate the acceleration of a portion of the robot arm, such as the acceleration of a tool flange relative to the robot base, or the angular acceleration of a robot joint. Position may, for example, indicate the position of a portion of the robot arm, such as the position of a tool flange relative to the robot base, or the angular position of a robot joint. Torque and / or force may indicate the torque and / or force applied to a portion of the robot arm and / or the torque / force exerted by a portion of the robot arm (e.g., on an external object). Motor torque may, for example, indicate the torque provided by a joint motor, and may, for example, indicate the joint motor current.

[0041] According to an embodiment of the invention, the threshold value for the free-drive activated joint sensor parameter associated with the first monitored joint sensor parameter is different from the threshold value for the free-drive activated joint sensor parameter associated with the second monitored joint sensor parameter. This is advantageous because it has the following effect: (e.g.) the threshold value (e.g., m / s) associated with the mobile robot arm can have one value for acceleration and another value for velocity. Therefore, the robot is allowed to increase its velocity within a given time period defined by the first threshold, while the robot arm is allowed to move at a constant velocity within a time period defined by the second threshold, which is different from the first threshold. The stricter threshold for acceleration compared to velocity is advantageous because it has the following effect: rapid acceleration may lead to a collision between the robot arm and the user (i.e., user safety issues), while slow movement of the payload, for example, toward the floor, constitutes a mechanical safety issue and can be stopped by the user from assisting the robot arm in lifting the payload.

[0042] According to an embodiment of the invention, the free-drive activated joint sensor parameter threshold is defined as a virtual three-dimensional geometry surrounding a portion of the robotic arm. The virtual three-dimensional geometry can be any shape defining a boundary around a portion of the robotic arm, allowing that portion of the robotic arm to move within a predefined time period (such as an activation time period and / or an activation sequence time period). This is advantageous because it has the effect that the free-drive activated joint sensor parameter threshold moves with the movement of the portion of the robotic arm and originates from the current position of that portion of the robotic arm. For example, the virtual three-dimensional geometry can surround a tool flange and define a boundary, allowing the tool flange to move during a predefined time period. It should be understood that the virtual three-dimensional geometry can have any shape, such as a sphere, ellipsoid, cube, cuboid, cylinder, cone, polyhedron, or any arbitrary three-dimensional shape. In one embodiment, the portion of the robotic arm surrounded by the three-dimensional shape can be arranged at the center of the three-dimensional geometry, as this allows the portion of the robotic arm to move symmetrically within the three-dimensional geometry; however, it should be noted that the portion of the robotic arm can be arranged at any position within the three-dimensional shape. Note that the position of the free-drive activated joint sensor parameter threshold relative to other axes or as the robot arm moves can be dynamic.

[0043] According to an embodiment of the invention, the robot controller is configured to determine whether the free-drive activation signal was established by the user by providing robot feedback to the user upon determining the occurrence of the free-drive activation signal, and wherein the robot controller is configured to enter the free-drive operation mode upon determining the occurrence of a user confirmation signal in response to the robot feedback. The robot feedback can be provided as any signal perceptible to the user, such as audio signals, visual signals, tactile feedback, a predetermined posture of one or more joints, a predetermined movement of one or more joints, or a combination thereof. Visual feedback can be, for example, flashing lights or text or images on a graphical user interface display. Audio signals can be, for example, spoken words in tone or voice, such as what the user should do to activate the free-drive operation mode. The user confirmation signal can be established by the user interacting with the user interface. This is advantageous because it has the effect that the robot controller will only enter the free-drive mode if the user has already confirmed her / his intention to do so. Therefore, the user will know that the robot arm is about to enter the free-drive operation mode. It should be noted that the user confirmation signal can be provided in the form of physical signals, logical signals, or combinations thereof located within the processor of the robot controller.

[0044] According to the implementation scheme, the robot controller can be configured to enter a free-drive operation mode only when a user acknowledgment in response to robot feedback is provided during at least one of the following time periods: 10 seconds, 5 seconds, 3 seconds, 2 seconds, and 1 second after the robot feedback stops. This is advantageous because it has the following effect: the robot controller will not enter the free-drive operation mode if it does not receive a user acknowledgment signal within the predefined time period. This avoids the robot controller continuously waiting for user acknowledgment signals that will not be generated. Therefore, the robot controller does not confuse randomly generated free-drive signals when the time period expires, thereby preventing accidental entry into the free-drive mode.

[0045] According to the implementation scheme, the robot controller can be configured to provide robot feedback to the user, and in response to the robot feedback, determine the occurrence of user confirmation as part of an activation sequence, and determine whether user confirmation is received within a predetermined activation sequence time period during which the robot controller will enter a free-drive operation mode.

[0046] According to the implementation scheme, the user confirmation signal is established by the user activating at least one joint sensor of at least one of the robot joints. For example, this can be achieved by the user performing at least one of the following: applying force / torque to the robot arm or a series of forces / torques to a portion of the robot arm; moving at least one of the robot joints; twisting a portion of the robot arm; or arranging the robot arm in a pose or a series of poses. For example, the robot controller can be configured to establish the confirmation signal upon determining the presence of a predetermined force provided by the user in response to robot feedback. The predetermined force (also referred to as a gesture) detected by the robot controller can be detected by changes in the values ​​of one or more motor joint parameters. If a force is applied in a predetermined direction, pattern, sequence, etc., the robot controller can determine that the predetermined force originates from the user. Thus, if this predetermined force follows robot feedback, the robot controller knows that the initially received free-drive signal was not unintentionally established and can therefore safely enter the free-drive mode. This is advantageous because it has the effect that even if the robot controller does not correctly record the payload weight, the robot controller does not initiate any unintended movement of the robot during the activation period of the free-drive mode. This allows users to establish a confirmation signal directly at the robot arm, and thus, users can enter a free-drive operation mode without using a robot teach pendant. This is useful when users want to guide the robot using both hands in free-drive operation mode, and when the robot arm is positioned away from the robot teach pendant.

[0047] According to the implementation scheme, the free-drive activation signal is established by the user activating at least one joint sensor of at least one of the robot joints. For example, this can be achieved by the user performing at least one of the following: applying force / torque to the robot arm or a series of forces / torques to a portion of the robot arm; moving at least one of the robot joints; twisting a portion of the robot arm; or arranging the robot arm in a pose or a series of poses. For example, the robot controller can be configured to establish the free-drive activation signal upon determining the presence of a predetermined force applied by the user to the robot arm. The predetermined force (also referred to as a gesture) detected by the robot controller can be detected by changes in the values ​​of one or more motor joint parameters. If a force is applied in a predetermined direction, pattern, sequence, etc., the robot controller can determine that the predetermined force originates from the user. This allows the user to establish the free-drive activation signal by directly interacting with the robot arm, and thus enter a free-drive operating mode without the need for a robot teach pendant. This is useful when the user wants to guide the robot in free-drive operating mode using both hands, and when the robot arm is positioned away from the robot teach pendant. It should be noted that the user's free-drive activation signal can be provided in the form of physical signals, logical signals, or combinations thereof located within the processor of the robot controller.

[0048] According to an embodiment of the invention, the free-drive activation signal is established by activating a force sensor of the robotic arm, wherein the force value measured when the force sensor is activated is higher than a predetermined force threshold. Activating the free-drive mode by applying force to the robotic arm is advantageous because it has the following effect: the user can activate the free-drive mode from any position relative to the robotic arm. This also includes moving away from the teach pendant. Therefore, the free-drive mode can be activated as long as the user is in a position where she / he can apply force to the robotic arm, thereby increasing the flexibility of training the robotic arm. An additional advantage of being able to activate the free-drive mode, besides the teach pendant, is that the user can then freely move the robotic arm with both hands. Two arms are advantageous when positioning precision tools or moving joints along a specific path in space.

[0049] In one implementation, the force sensor is part of or mounted to the robot tool flange. Using a force sensor to establish a free-drive activation signal is advantageous because it eliminates the need for additional hardware beyond what is already used when the robot arm is in operation.

[0050] According to an embodiment of the invention, the predetermined force threshold is a force threshold in a predetermined orientation in space. This is advantageous because it has the effect that a force exceeding a predetermined value applied only in a predetermined orientation in space (e.g., in a predetermined direction) is likely to establish a free-drive activation signal. Therefore, the risk of unintentionally activating a free-drive operating mode is reduced.

[0051] According to an embodiment of the invention, the free drive activation signal is established by activating the force and torque sensors of the robotic arm, wherein the measured force value is higher than a predetermined force value, and wherein the measured torque value is lower than a predetermined torque threshold. This is advantageous because it has the effect of measuring force and torque, thereby leading to improved sorting of force signals not intended to activate the free drive mode. Almost all forces applied to the force and torque sensors of the robotic arm are accompanied by torque. However, this is not the case if a person intentionally applies a force along one of the sensing axes of the force-torque sensor. In this case, the applied force will be accompanied by a very limited torque (if present). Therefore, forces applied by a person can also be filtered from those applied, for example, due to collisions, random touches by the robotic arm or tool, vibrations of the robotic arm, etc., by evaluating the torque.

[0052] In one implementation, the force sensor and torque sensor are provided as a combined force-torque sensor, which is formed as part of or mounted to the robot tool flange. Using a force-torque sensor to establish a free-drive activation signal is advantageous because it eliminates the need for additional hardware beyond what is already used when the robot arm is in operation.

[0053] According to one embodiment, the joint sensor parameters are selected from a list including: velocity, acceleration, torque, motor torque, motor current, force, and position. This is advantageous because it has the effect that if the value of one or more of these joint sensor parameters exceeds a predetermined range defined by at least one upper or lower threshold, the movement of the robotic arm can be monitored and stopped. It should be mentioned that the joint sensor parameters may also include values ​​derived from actual measurements, i.e., values ​​that cannot be directly measured by the sensors but can be established from the measurements.

[0054] Furthermore, the present invention relates to a robotic arm comprising a plurality of robotic joints connecting a robot base and a robotic tool flange; wherein each of the robotic joints comprises:

[0055] • Output flange, which is rotatable relative to the robot joint body.

[0056] • A joint motor, configured to rotate the output flange.

[0057] • At least one joint sensor, the at least one joint sensor providing a sensor signal indicating at least one of the angular position of the output flange, the angular position of the shaft of the joint motor, and the motor current of the joint motor.

[0058] The robotic arm includes at least one robot controller configured to control the robot joints by controlling the motor torque provided by the joint motors based on sensor signals, and the robot controller is further configured as described in any of paragraphs

[0010] to

[0045] and / or as illustrated in the accompanying drawings and the corresponding description of the drawings.

[0059] Furthermore, the present invention relates to a method for activating a free-drive operation mode of a robotic arm, wherein the free-drive operation mode includes the following steps:

[0060] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0061] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is changed;

[0062] The method includes the following steps:

[0063] -Activation signals are freely driven by the user;

[0064] -The free drive activation signal is received by the robot controller;

[0065] - The robot controller initiates the free drive activation sequence upon receiving the free drive activation signal;

[0066] The free-drive activation sequence includes the following steps:

[0067] - Monitor the value of at least one joint sensor parameter during a predetermined activation sequence time period.

[0068] - Compare the value of the at least one joint sensor parameter with a threshold value of at least one freely driven activated joint sensor parameter, and

[0069] If the value of the at least one joint sensor parameter does not exceed the threshold of the free-drive activated joint sensor parameter within the predetermined activation sequence time period, the robot controller will change the operating mode of the robot arm to the free-drive operating mode.

[0070] This provides the same effects and advantages as previously described (e.g., in paragraphs

[0012] to

[0013] ) and allows the user of the robotic arm to safely activate the free-drive operation mode independently of her / his position relative to the robotic arm or the interface device, since the robotic arm is switched to the free-drive operation mode only during the completed activation sequence period.

[0071] According to the implementation scheme, the step of activating the free drive activation sequence is initiated when the free drive activation signal is received within a predetermined activation time period. This provides the same effects and advantages as previously described (e.g., in paragraphs

[0018] to

[0021] ), and makes it possible to ensure that the user intentionally establishes the received free drive activation signal.

[0072] According to the implementation plan:

[0073] - Maintain free drive operation mode during the predetermined free drive period;

[0074] The method includes the step of initiating a predetermined restart free-drive period by the robot controller when the robot arm is in a static posture; and / or

[0075] The method includes the step of the robot controller leaving the free-drive operation mode if the robot arm has maintained a static posture during the predetermined free-drive period or during the predetermined restart free-drive period.

[0076] This provides the same effects and benefits as previously described (e.g., in paragraphs

[0022] through

[0028] ) and allows the user to change the grip when using both hands to change the posture of the robotic arm.

[0077] According to the implementation plan:

[0078] -The method includes the following steps:

[0079] • Establish a free-drive deactivation signal;

[0080] The robot controller receives the free drive activation signal.

[0081] • The robot controller exits the free drive operation mode upon receiving the free drive deactivation signal;

[0082] and / or

[0083] - The steps to establish a free-drive deactivation signal include the following:

[0084] The robot controller monitors the values ​​of at least one joint sensor parameter.

[0085] The robot controller compares the value of the at least one joint sensor parameter with a threshold value for at least one freely driven joint sensor parameter.

[0086] • If the value of the at least one joint sensor parameter does indeed exceed the threshold of the free drive operation joint sensor parameter, then the robot controller establishes the free drive deactivation signal.

[0087] This provides the same effects and advantages as previously described (e.g. in paragraphs

[0029] to

[0030] ) and ensures that the user can manually exit the free-drive operation mode and / or the robot controller can automatically exit the free-drive operation mode.

[0088] According to the implementation scheme, the step of establishing a free drive activation signal includes the step of the user applying force to a portion of the robot arm. Furthermore, in the implementation scheme, the step of applying force to the portion of the robot arm includes applying the force at a predetermined orientation in space and at a predetermined location on the robot arm. Moreover, in the implementation scheme, the step of applying force to the portion of the robot arm includes applying the force to a force-torque sensor disposed on the robot arm; and wherein the free drive activation signal is established if the force obtained by the force-torque sensor is higher than a predetermined force value and the torque obtained by the force-torque sensor is lower than a predetermined torque value. This provides the same effects and advantages as previously described (e.g., in paragraphs

[0039] to

[0045] ) and allows the user to enter a free drive operation mode by interacting with a portion of the robot arm (e.g., touching, pushing, pulling, etc.), and minimizes unintended free drive activation signals. The predetermined time period for receiving the free drive activation signal is either a continuous time period or the sum of two or more discrete time periods in which the signal has been received. Unintended forces are sorted out, thus failing to establish a free drive activation signal. This is because the user can apply force substantially in one direction without applying torque. Therefore, if the measured torque is low and the measured force is high, the robot controller can be configured to interpret the force as a force intentionally applied by the user to activate the free-drive operation mode, since the low torque indicates that the user is pressing directly toward the force sensor.

[0089] Second aspect of the invention

[0090] The aforementioned limitations or other problems of the prior art are also solved by the robot controller, robot arm, and method according to the second aspect of the present invention.

[0091] According to a second aspect, the present invention relates to a robot controller for controlling a robotic arm, the robot controller being capable of switching from a current operating mode to a free-drive operating mode, wherein the robot controller in the free-drive operating mode is configured to:

[0092] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0093] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is allowed to change;

[0094] The free-drive operation mode can be activated by a free-drive mode signal established by the user to the robot controller, and the robot controller is configured to operate in the free-drive mode as follows:

[0095] • Monitor the value of at least one joint sensor parameter;

[0096] • Compare the value of the at least one joint sensor parameter with a threshold value of at least one free-drive joint sensor parameter;

[0097] • The robotic arm is kept in the free-drive operation mode during the free-drive period; and

[0098] • If the value of the at least one joint sensor parameter does not exceed the threshold of the at least one free-drive joint sensor parameter during the free-drive period, then the free-drive operation mode is exited.

[0099] Maintaining the robot arm in free-drive mode for a specified period ensures that the user has sufficient time to initiate movement after activating free-drive mode. The free-drive period is the time during which the robot controller keeps the robot arm in free-drive mode after switching to it. While maintaining safety in free-drive mode, the robot controller is configured to monitor at least one joint sensor parameter and compare it to a free-drive threshold. If the monitored joint sensor parameter does not exceed the threshold during the free-drive period, the robot exits free-drive mode. A joint sensor parameter not exceeding the threshold means that the parameter value is within or does not violate the threshold's allowed value. For example, in the case of a maximum threshold, if the joint sensor parameter value is less than the threshold, the parameter does not exceed the threshold. Similarly, in the case of a minimum threshold, if the joint sensor parameter value is greater than the threshold, the parameter does not exceed the threshold. Furthermore, within the threshold range, if the value of the joint sensor parameter is greater than the lower limit joint sensor parameter threshold but less than the upper limit joint sensor parameter threshold, then the joint sensor parameter does not exceed the joint sensor parameter threshold. This allows monitoring of whether the robot arm's posture changes due to the user applying external force to the robot arm, and keeping the robot arm in free-drive operation mode as long as the user manipulates the robot arm's posture; however, if the user stops changing the robot arm's posture and leaves the robot arm during the free-drive period configured to leave the free-drive operation mode, this ensures that the robot arm cannot be placed in free-drive operation mode alone, thus avoiding the dangerous situation of another user approaching the robot arm without knowing that it is in free-drive operation mode, as the user expects the stationary robot arm to be in a stop / brake operation mode where the robot arm cannot move. Therefore, in practice, when the user activates the joints of the robot arm by applying force / torque, the time period for keeping the robot arm in free-drive mode is reset. After the time period activated when the user stops applying force / torque (restarting the free-drive period), the operation mode will switch to another operation mode, such as teaching mode, running mode, stop mode, etc. This is advantageous because it allows the user to maintain the robotic arm in free-drive operation mode for as long as needed by applying force to it before the restart period expires. This allows the user to change their grip on the robotic arm, which in some cases may be desirable for the user to change the posture of the robotic arm in free-drive operation mode.

[0100] According to an embodiment of a second aspect of the present invention, the robot controller is configured to:

[0101] If the value of the at least one joint sensor parameter exceeds the threshold value of the at least one joint sensor parameter for maintaining free drive, then the free drive restart period is initiated; and

[0102] • During the restart free-drive period, the robotic arm remains in the free-drive operation mode; and

[0103] • If the value of the at least one joint sensor parameter does not exceed the threshold of the at least one free-drive joint sensor parameter during the restart free-drive period, then the free-drive operation mode is exited.

[0104] The predetermined restart free-drive period is a time period that begins when the value of at least one joint sensor parameter exceeds at least one threshold value for a free-drive joint sensor parameter. The restart free-drive period can be initiated when a joint sensor parameter exceeds a free-drive parameter, thus starting when the user begins manipulating the robot arm. In another embodiment, the restart free-drive period can begin when the value of at least one joint sensor parameter has not exceeded at least one threshold value for a free-drive joint sensor parameter, even after the value of at least one joint sensor parameter has exceeded that threshold. Therefore, the restart free-drive period can begin when the user has stopped manipulating the robot arm (e.g., when the robot arm is positioned in a static posture, or when the user has stopped moving the robot arm and therefore is not applying force or torque). This ensures that after the user moves the robot arm in free-drive operation mode, there is sufficient time to restart the robot arm's movement (e.g., to allow the user to change the robot arm's grip).

[0105] According to a second aspect of the invention, the robot controller is configured to leave the free-drive operation mode when at least one joint sensor does not indicate an external force during a predetermined free-drive period or during a predetermined restart free-drive period.

[0106] According to an embodiment of the second aspect of the invention, the free-drive period and / or the restart free-drive period are at least 2 seconds, thereby allowing the user to change their grip on the robot arm and initiate / re-initiate movement of the robot arm before the free-drive period and / or restart free-drive period expire. However, it should be understood that, alternatively, the free-drive period and / or restart free-drive period may be at least any one of the following time periods: 10 seconds, 5 seconds, or 3 seconds. A period of 5 to 10 seconds will allow the user to perform additional tasks, such as recording waypoints, moving external objects, or adjusting tools mounted on the robot arm, before the robot arm exits the free-drive operation mode.

[0107] According to an embodiment of the second aspect of the invention, the period of time for maintaining free drive and / or restarting free drive is at most 5 seconds, thereby preventing the user from unintentionally moving the robot arm after the 5-second period of time when the robot arm is placed alone. This reduces the risk of dangerous situations as described above. However, it should be understood that, alternatively, the period of time for maintaining free drive and / or restarting free drive can be any of the following periods: 10 seconds, 15 seconds, 20 seconds, or 30 seconds. A period of 5 to 30 seconds will allow the user to perform additional tasks (such as recording waypoints, moving external objects, or adjusting tools mounted on the robot arm) before the robot arm exits free drive operation mode, while still keeping the risk of accidental movement of the robot arm at an acceptable level, since users rarely forget that the robot arm is in free drive operation mode during these periods. Furthermore, the risk of another user unintentionally moving the robot arm during this period is also acceptable, since the probability of the robot arm being placed entirely in free drive operation mode alone during a period of 5 to 30 seconds is very low.

[0108] The duration of the free-drive period and / or the duration of the restart free-drive period can be predetermined and provided as values ​​stored in the robot controller's memory. However, in other embodiments, the user may (e.g.) modify the length of the free-drive period and / or the restart free-drive period via a user interface. This allows the user to adjust the length of the free-drive period and / or the restart free-drive period according to individual needs. In one embodiment, the maximum duration of the free-drive period and / or the restart free-drive period can be predefined, and the robot controller can be configured only to allow the user to adjust the length of the free-drive period and / or the restart free-drive period to have a maximum defined length.

[0109] Therefore, in practice, when a user initiates movement of the robot arm's joints by applying force / torque, the time period during which the robot arm is held in free-drive mode is reset. After the time period initiated when the user stops applying force / torque (restarting the free-drive period), the operating mode switches to another operating mode, such as teach mode, run mode, stop mode, etc. This is advantageous because it has the following effect: the user can hold the robot arm in free-drive operating mode for as long as needed by applying force to the robot arm before the restart period expires. This allows the user to change his / her grip on the robot arm, which in some cases may be what the user desires to change the robot arm's posture in free-drive operating mode. Furthermore, the user can easily bring the robot controller out of free-drive operating mode by not applying force / torque for the time period defined by the restart free-drive period. Moreover, this is advantageous, at least in terms of safety (personnel and mechanics), because without holding the robot in free-drive operating mode, sensor drift over time can otherwise cause changes in the robot's posture. Such drift could ultimately lead to a collision between the payload or robot tool and the floor or other objects within the range of the robot arm. Additionally, if another user approaches the robot arm without knowing that it is in free-drive operation mode, keeping the robot arm in free-drive operation mode after the user has left the robot arm can also lead to dangerous situations, because the user expects the stationary robot arm to be in a stop / brake operation mode where the robot arm cannot move.

[0110] According to an embodiment of the second aspect of the invention, the robot controller is configured to initiate at least one of a hold-free-drive period and a restart-free-drive period when the free-drive mode signal expires. This results in the robot arm remaining in the free-drive operation mode during the hold-free-drive period and / or the restart-free-drive period after the user has stopped establishing the free-drive mode signal. For example, this is useful in cases where the free-drive mode signal is established by the user pushing the free-drive bottom surface, and thus allows the user to release the button when the robot arm is kept in the free-drive operation mode for a period after the button has been released.

[0111] According to an embodiment of the second aspect of the invention, the robot controller is configured to restart the free-drive period or restart the free-drive time period based on a restart free-drive mode signal established by the user. The free-drive restart signal can be established by the user, for example, via a user interface. This is advantageous because it allows the user to manually restart the free-drive period or restart the free-drive time period at any time during the free-drive operation mode. For example, this is useful when the user wants the robot arm to remain in a static posture in the free-drive operation mode for a longer / additional period (e.g., to allow the user to perform other tasks).

[0112] According to an embodiment of the second aspect of the invention, at least one joint sensor parameter is selected from a list including: acceleration of at least a portion of the robot arm, velocity of at least a portion of the robot arm, and position of at least a portion of the robot arm, wherein a threshold for maintaining free drive is selected from a list including: threshold acceleration of at least a portion of the robot arm, threshold velocity of at least a portion of the robot arm, and threshold position of at least a portion of the robot arm. The acceleration, velocity, and position joint sensor parameters relate to the movement of the robot arm and are therefore used to record whether a portion of the robot arm has moved and should therefore remain in a free drive operation mode. For example, the joint sensor parameter may indicate the acceleration of the robot arm, and a corresponding joint sensor parameter threshold may indicate the maximum acceleration, and if the acceleration of the robot arm has not exceeded the maximum acceleration during the free drive maintenance period and / or the free drive restart period, the robot controller may be configured to leave the free drive operation mode. Furthermore, the joint sensor parameter may indicate the velocity of the robot arm, and a corresponding joint sensor parameter threshold may indicate the maximum velocity, and if the velocity of the robot arm has not exceeded the maximum velocity during the free drive maintenance period and / or the free drive restart period, the robot controller may be configured to leave the free drive operation mode. Furthermore, for example, joint sensor parameters can indicate the position of the robot arm, and corresponding joint sensor parameter thresholds can indicate the position range. If the position of the robot arm is already within the position range during the free drive period and / or the restart free drive period, the robot controller can be configured to leave the free drive operation mode.

[0113] According to an embodiment of a second aspect of the invention, at least one joint sensor parameter is selected from a list including: a force applied to at least a portion of the robot arm and a torque applied to at least a portion of the robot arm, and wherein a threshold for maintaining free drive joint sensor parameters is selected from a list including: a threshold force applied to at least a portion of the robot arm and a threshold torque applied to at least a portion of the robot arm. The force and / or torque applied to the robot arm can be used to record whether a user attempts to change the posture of the robot arm in a free drive operation mode. Therefore, if the force and / or torque applied to the robot arm exceeds the corresponding threshold force and / or corresponding threshold torque during the free drive maintenance period and / or free drive restart period, the robot controller can be configured to maintain the robot arm in a free drive operation mode, as this indicates that the user is changing the posture of the robot arm. For example, the threshold force and / or threshold torque can be obtained based on the effect of gravity on the robot arm.

[0114] According to an embodiment of the second aspect of the invention, the robot controller is configured to exit the free-drive operation mode upon receiving a free-drive deactivation signal. The free-drive deactivation signal can be established, for example, by the user via a user interface. This is advantageous because it allows the user to return to an operation mode different from the free-drive operation mode at any time during the operation of the robot arm.

[0115] According to an embodiment of the second aspect of the invention, the robot controller is configured to provide robot feedback to the user based on at least one of the remaining portion of the hold-free-drive period and the remaining portion of the restart-free-drive period. This is advantageous because it has the effect that the robot controller can inform the user how much time remains between the hold-free-drive period and / or the restart-free-drive period. Therefore, the user will be able to reset the hold-free-drive period and / or the restart-free-drive period, thereby ensuring that the robot arm remains in the free-drive operating mode. Robot feedback can be provided as any signal perceptible to the user, such as audio signals, visual signals, tactile feedback, predetermined postures of one or more joints, predetermined movements of one or more joints, or combinations thereof. Audio signals can be, for example, tone of voice, a countdown indicating the expiration of the hold-free-drive period and / or the restart-free-drive period, or spoken text, such as what the user should do to reset the hold-free-drive period and / or the restart-free-drive period. Visual feedback can be, for example, a flash or icon on a graphical user interface display indicating the remaining portion of the hold-free-drive period and / or the restart-free-drive period. This diagram can be provided to the user as any type of 2D or 3D graph, such as curves, cylinders, circles, etc. Furthermore, this graph displayed on the user interface can indicate the elapsed time within a given period. Another effect is that the user can then see when forces are applied to the robot to maintain it in free-drive mode. Additionally, the robot controller can present the user, via the interface device, the root cause of events leading to involuntary departure from free-drive mode, and instructions on how (e.g., which joints and how they move) to return the robot arm to its initial position, posture, or desired position / orientation in space.

[0116] Furthermore, according to a second aspect, the present invention relates to a robotic arm comprising a plurality of robotic joints connecting a robotic base and a robotic tool flange; each of the robotic joints comprising:

[0117] • Output flange, which is rotatable relative to the robot joint body.

[0118] • A joint motor, configured to rotate the output flange.

[0119] • At least one joint sensor, the at least one joint sensor providing a sensor signal indicating at least one of the angular position of the output flange, the angular position of the shaft of the joint motor, and the motor current of the joint motor.

[0120] The robotic arm includes at least one robot controller configured to control the robot joints by controlling the motor torque provided by the joint motors based on sensor signals, and the robot controller is further configured as described in any of paragraphs

[0053] ,

[0055] to

[0067] and / or as illustrated in the accompanying drawings and the corresponding description of the drawings.

[0121] Furthermore, according to a second aspect, the present invention relates to a method for operating a robot arm in a free-drive operation mode, wherein the robot arm of the robot controller has switched to the free-drive operation mode when the robot controller receives a free-drive activation signal established by the user, wherein the free-drive operation mode includes the following steps:

[0122] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0123] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is changed;

[0124] The robot controller monitors the values ​​of at least one joint sensor parameter;

[0125] The robot controller compares the value of the at least one joint sensor parameter with a threshold value for at least one freely driven joint sensor parameter.

[0126] The robot controller keeps the robot arm in the free-drive operation mode for a predetermined period of time; and

[0127] • If the value of the at least one joint sensor parameter does not exceed the threshold value of the at least one joint sensor parameter during the free-drive period, the robot controller exits the free-drive operation mode.

[0128] This provides the same effects and advantages as previously described (e.g., in paragraph

[0053] ) and allows the user to manipulate the robot arm in free-drive operation mode using both hands and without needing to continuously establish free drive signals by pushing buttons (e.g.)

[0129] In an embodiment of the method according to a second aspect of the present invention, the method includes the following steps:

[0130] • When the value of the at least one joint sensor parameter exceeds the threshold of the at least one joint sensor parameter for maintaining free drive, the robot controller initiates a predetermined period for restarting free drive.

[0131] The robot controller keeps the robot arm in the free-drive operation mode during the restart free-drive period; and

[0132] • If the value of the at least one joint sensor parameter does not exceed the threshold of the at least one free-drive joint sensor parameter during the restart free-drive period, the robot controller exits the free-drive operation mode.

[0133] This provides the same effects and advantages as previously described (e.g. in paragraphs

[0055] to

[0061] ) and ensures that after the user has moved the robot arm in free-drive operation mode, there is a certain amount of time to restart the movement of the robot arm (e.g., to allow the user to change the grip of the robot arm).

[0134] In an embodiment of the method according to a second aspect of the present invention, the method includes the following steps:

[0135] • The robot controller activates at least one of the following when the free drive mode signal expires: maintain the free drive period or restart the free drive period.

[0136] This provides the same effects and advantages as previously described (e.g., in paragraph

[0062] ) and ensures that the robotic arm can remain in free-drive operation mode during the free-drive period and / or restart free-drive period after the user has stopped establishing the free-drive mode signal.

[0137] In an embodiment of the method according to a second aspect of the present invention, the method includes the following steps:

[0138] • The user establishes a restart signal for the free-drive mode;

[0139] • The robot controller restarts at least one of the maintained free drive period or the restarted free drive period based on the restart free drive mode signal.

[0140] This provides the same effects and benefits as previously described (e.g., in paragraphs

[0063] ,

[0056] ) and ensures that the user can manually restart the free drive period or restart the free drive period at any time during the free drive operation mode.

[0141] In an embodiment of the method according to a second aspect of the present invention, the method includes the following steps:

[0142] The robot controller exits the free drive operation mode upon receiving a free drive deactivation signal.

[0143] This provides the same effects and benefits as previously described (e.g., in paragraph

[0066] ) and ensures that the user can return to an operating mode different from the free-drive operating mode at any time during the operation of the robotic arm.

[0144] In an embodiment of the method according to a second aspect of the present invention, the method includes the following steps:

[0145] • The robot controller provides robot feedback to the user, wherein the robot feedback is provided based on at least one of the remaining portion of the predetermined free-drive period and the remaining portion of the restart free-drive period.

[0146] This provides the same effects and advantages as previously described (e.g., in paragraph

[0067] ) and ensures that the user can be notified that the free drive period and / or restart free drive period is about to expire and / or that the user is notified how much time is left in the free drive period and / or restart free drive period.

[0147] Third aspect of the invention

[0148] The aforementioned limitations or other problems of the prior art are also solved by the robot controller, robot arm, and method according to the third aspect of the present invention.

[0149] According to a third aspect, the present invention relates to a robot controller for controlling a robotic arm, the robot controller being capable of switching from a current operating mode to a free-drive operating mode, wherein the robot controller in the free-drive operating mode is configured to:

[0150] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0151] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is allowed to change;

[0152] The free-drive operation mode can be activated by a free-drive mode signal established by the user to the robot controller, wherein...

[0153] The robot controller is configured to switch to the free-drive operation mode upon receiving the free-drive mode signal, and the robot controller is configured to be in the free-drive operation mode as follows:

[0154] • Monitor the value of at least one joint sensor parameter, and

[0155] • Compare the value of the at least one joint sensor parameter with a threshold value of at least one free-drive joint sensor parameter;

[0156] The robot controller is configured to maintain the robot arm in the free-drive operation mode if the value of the at least one joint sensor parameter does not exceed a threshold value of the at least one free-drive operation joint sensor parameter, wherein the free-drive operation joint sensor parameter threshold value is defined as a virtual three-dimensional geometry surrounding a portion of the robot arm, and the robot controller is configured to maintain the robot arm in the free-drive operation mode if the value of the at least one joint sensor parameter does not exceed the virtual three-dimensional geometry surrounding a portion of the robot arm during a free-drive safe period.

[0157] The virtual 3D geometry can be any shape defining the boundaries of a portion of the robotic arm, allowing that portion of the robotic arm to move within a safe, free-drive period. This is advantageous because it has the following effect: during the safe, free-drive operation mode, a portion of the robotic arm can only move within the virtual 3D geometry. Because the portion of the robotic arm can only move within a limited space, unsafe movement of that portion of the robotic arm is avoided. Therefore, dangerous movement caused by incorrectly input payloads to the robot controller is avoided, as the robot controller can be configured to leave the free-drive operation mode if that portion of the robot exceeds the virtual 3D geometry within the safe, free-drive period. However, the user will be able to manually move the portion of the robotic arm within the virtual 3D space in a controlled manner. The safe, free-drive period can be any time period during which that portion of the robotic arm can move within the virtual 3D space without creating a dangerous situation. The safe, free-drive period, the size of the 3D geometry, and / or the maximum average velocity can be predefined and / or dynamically configured, for example, based on the posture of the robotic arm. The maximum average speed can, for example, indicate the maximum average speed that a portion of the robot arm is allowed to have from the start of the free-drive mode until the portion of the robot arm reaches the boundary of the virtual 3D space. The maximum average speed can, for example, be defined as the speed at which a portion of the robot arm can move without causing injury to a person near the robot arm. As is known in the field of robot safety, the permissible movement speed of the robot arm depends on the mass, shape, size of the impact point, and the human body part that can be impacted by the robot arm. A non-limiting example is that if, at the start of the free-drive mode, the distance from the portion of the robot arm to the boundary of the virtual 3D space is 10 cm and the portion of the robot arm is allowed to move at a speed of 50 cm / s, then the free-drive safe period will be 0.2 seconds. The virtual 3D geometry can surround a tool flange and define a boundary, allowing the tool flange to move during the free-drive safe period. It should be understood that the virtual 3D geometry can have any shape, such as a sphere, ellipsoid, cube, cuboid, cylinder, cone, polyhedron, or any arbitrary 3D shape. The virtual 3D geometry can, for example, be predefined and / or dynamically configured based on the robot arm's posture. In one implementation, the portion of the robotic arm surrounded by a virtual three-dimensional shape may be positioned at the center of the virtual three-dimensional geometry, as this allows that portion of the robotic arm to move symmetrically within the virtual three-dimensional geometry; however, it should be noted that the portion of the robotic arm may be positioned anywhere within the virtual three-dimensional shape. The user can thus safely manipulate the robotic arm in a free-drive operation mode using both hands and without needing to (e.g.) continuously establish a free drive signal by pushing buttons.

[0158] According to an embodiment of the third aspect of the invention, the position of the virtual three-dimensional geometry is fixed relative to a reference point when the robot controller switches to the free-drive operation mode. When the robot controller switches to the free-drive operation mode, the virtual three-dimensional geometry can thus be fixed relative to the reference point, allowing that portion of the robot arm to move within a three-dimensional space defined relative to the reference point, wherein the three-dimensional space is defined by the virtual three-dimensional space. The reference point can be any point relative to the robot arm and can be defined, for example, relative to moving parts of the robot arm (such as tool flanges, wrist joints, elbow joints, shoulder joints, robot links); fixed parts of the robot arm (such as base joints) that are fixed relative to the robot arm's surrounding environment or fixed points in the robot arm's surrounding environment (such as tables, workstations, pickup points, conveyors, etc.).

[0159] According to an embodiment of a third aspect of the invention, the robot controller is configured to define the position of a virtual three-dimensional geometry relative to a reference point based on the position of a portion of the robot arm relative to a fixed point. This allows the position of the virtual three-dimensional geometry relative to a fixed point to be defined based on the position of a portion of the robot arm surrounded by the virtual three-dimensional geometry. For example, the virtual three-dimensional space may surround a tool flange of the robot arm, and the position of the three-dimensional geometry may be defined based on the position of the tool flange relative to a robot base, wherein the robot base constitutes a fixed point.

[0160] According to an embodiment of a third aspect of the invention, the position of a virtual three-dimensional geometry relative to a reference point of the robot arm is redefined during the free-drive operation mode. Therefore, the position of the virtual three-dimensional geometry relative to the reference point can be redefined during the free-drive operation mode. Consequently, the position of the three-dimensional space relative to the reference point can be redefined during the free-drive operation mode, allowing that portion of the robot arm to be moved gradually or incrementally in its surrounding environment. The reference point can be any point relative to the robot arm and can be defined, for example, at any time during the free-drive operation mode as the position of a portion of the robot arm relative to a fixed point. For example, the virtual three-dimensional space can surround the tool flange of the robot arm and can be fixed at any time during the free-drive operation mode relative to the position of the tool flange relative to the robot base. The time for redefining the position of the virtual three-dimensional geometry relative to the reference point can be defined, for example, by a redefined position time period. The redefined position time period can be defined, for example, as a time period that is activated when the robot controller switches to the free-drive operation mode or when the position of the virtual three-dimensional geometry relative to the reference point has already been redefined. The repositioning time period can, for example, have the same length as the free-drive safety time period, and the robot controller can therefore be configured to reposition the virtual three-dimensional geometry relative to a reference point of the robot arm when the free-drive safety time period expires and if the value of at least one joint sensor parameter has not exceeded the virtual three-dimensional geometry surrounding a portion of the robot arm during the free-drive safety time period. This allows that portion of the robot arm to be moved stepwise or gradually to a position beyond the initial boundary defined by the virtual three-dimensional geometry, because the position in the virtual three-dimensional space can be redefined if that portion of the robot arm has not exceeded the boundary of the virtual three-dimensional space during the free-drive safety time period. In other words, the position in the three-dimensional space that allows the portion of the robot arm to move can be moved stepwise or gradually relative to a reference point.

[0161] According to an embodiment of a third aspect of the invention, the robot controller is configured to define the position of a virtual three-dimensional geometry relative to a reference point based on multiple positions of a portion of the robot arm relative to a fixed point, wherein multiple positions of the portion of the robot arm have been obtained at different points in time. This allows it to be ensured that the position of the visual three-dimensional geometry can be moved gradually or progressively during free-drive operation mode. Therefore, the user can gradually or progressively move a portion of the robot arm to a position outside the boundary defined by the virtual three-dimensional space when switching to free-drive operation mode. For example, the position of the virtual three-dimensional geometry can be defined as the average position of a portion of the robot arm over an average position time period, wherein the average position of the portion of the robot arm has been obtained based on multiple positions of the portion of the robot arm obtained over the average position time period.

[0162] According to an embodiment of a third aspect of the invention, the robot controller is configured to provide robot feedback to a user when it determines whether the value of at least one joint sensor parameter is within a feedback value associated with a virtual three-dimensional geometry. This allows robot feedback to be provided to the user when the user has moved a portion of the robot arm to a position near a boundary defined by the virtual three-dimensional space, such that the value of the joint sensor parameter is about to exceed the virtual three-dimensional geometry. The robot feedback can be provided as any signal perceptible to the user, such as audio signals, visual signals, tactile feedback, a predetermined posture of one or more joints, a predetermined movement of one or more joints, or a combination thereof. Thus, the user is alerted that the robot arm has approached the boundary and is nearing a position where the robot controller will leave the free-drive operation mode, and the user can then respond to this situation by stopping moving the robot arm in the direction toward the boundary. This can be achieved by comparing the value of at least one joint sensor parameter with a feedback value associated with the virtual three-dimensional geometry, wherein the feedback value can be provided as a threshold having a value lower than the threshold of the free-drive operation joint sensor parameter.

[0163] According to an embodiment of a third aspect of the invention, robot feedback is provided as a robot force supplied by a portion of the robot arm, wherein the robot force is supplied in a direction away from the virtual three-dimensional geometry. Therefore, the user can sense that a portion of the robot arm is approaching a boundary defined by the virtual three-dimensional shape, as an increase in the resistance to movement of the robot arm. This can be achieved by configuring the robot to control the motor torque supplied to the joint motors. The robot controller can also contribute to increasing the magnitude of the robot force as the values ​​of the joint sensor parameters approach the virtual three-dimensional geometry. Therefore, the closer the robot arm is to the boundary defined by the virtual three-dimensional shape, the greater the resistance the user will sense.

[0164] Furthermore, according to a third aspect, the present invention relates to a robotic arm comprising a plurality of robotic joints connecting a robot base and a robotic tool flange; each of the robotic joints comprising:

[0165] • Output flange, which is rotatable relative to the robot joint body.

[0166] • A joint motor, configured to rotate the output flange.

[0167] • At least one joint sensor, the at least one joint sensor providing a sensor signal indicating at least one of the angular position of the output flange, the angular position of the shaft of the joint motor, and the motor current of the joint motor.

[0168] The robotic arm includes at least one robot controller configured to control the robot joints by controlling the motor torque provided by the joint motors based on sensor signals, and the robot controller is further configured as described in any of paragraphs

[0075] to

[0083] and / or as illustrated in the accompanying drawings and the corresponding description of the drawings.

[0169] Furthermore, according to a third aspect, the present invention relates to a method for operating a robot arm in a free-drive operation mode, wherein the robot arm of the robot controller has switched to the free-drive operation mode when the robot controller receives a free-drive activation signal established by the user, wherein the free-drive operation mode includes the following steps:

[0170] • When only gravity acts on the robotic arm, keep the robotic arm in a static posture;

[0171] • When an external force different from gravity is applied to the robotic arm, the posture of the robotic arm is changed;

[0172] The robot controller monitors the values ​​of at least one joint sensor parameter;

[0173] The robot controller compares the value of the at least one joint sensor parameter with a threshold value of at least one freely driven joint sensor parameter; wherein the threshold value of the freely driven joint sensor parameter is defined as a virtual three-dimensional geometry surrounding a portion of the robot arm.

[0174] • If the value of the at least one joint sensor parameter does not exceed the virtual three-dimensional geometry surrounding a portion of the robot arm during the free-drive safe period, the robot controller will keep the robot arm in the free-drive operation mode.

[0175] This provides the same effects and advantages as previously described (e.g., in paragraphs

[0076] to

[0077] ), and makes it possible to avoid situations where a portion of the robot arm moves in an unsafe manner. Therefore, since the robot controller can be configured to leave the free-drive operation mode if that portion of the robot exceeds the virtual dimensional geometry during a safe period of free drive, dangerous movement caused by erroneously input payloads to the robot controller can be avoided. The user can thus safely manipulate the robot arm in free-drive operation mode using both hands and without needing (e.g.) to continuously establish free-drive signals by pushing buttons.

[0176] According to an embodiment of a third aspect of the invention, the method includes the step of fixing the position of a virtual three-dimensional geometry relative to a reference point upon receiving a free-drive mode signal. Furthermore, the method may include the step of re-defining the position of the virtual three-dimensional geometry relative to the reference point during a free-drive operation mode. This provides the same effects and advantages as previously described (e.g., in paragraphs

[0078] to

[0081] ) and allows the user to move the robot arm stepwise or gradually beyond the initial boundary defined by the virtual three-dimensional geometry.

[0177] According to an embodiment of a third aspect of the invention, the method includes the step of a robot controller providing robot feedback to a user when determining whether the value of at least one joint sensor parameter is within a feedback value associated with a virtual three-dimensional geometry. The step of providing robot feedback to the user may include the step of providing robot force by at least a portion of the robot arm, wherein the robot force is provided in a direction away from the virtual dimensional geometry. Furthermore, the step of providing robot force may include the step of increasing the robot force as the value of the joint sensor parameter approaches the virtual dimensional geometry. This provides the same effects and advantages as previously described (e.g., in paragraphs

[0082] to

[0083] ) and makes it possible to provide the user with feedback that the robot arm is about to leave a free-drive operating mode.

[0178] It should be noted that embodiments of the various aspects of the invention described above can be combined in any order or combination. Therefore, other advantages and effects can be provided. For example, a combination of embodiments of the first and second aspects of the invention produces the effect that a user can directly activate the free-drive operation mode at the robot arm to manipulate the robot arm using both hands in free-drive operation mode. A combination of embodiments of the first and third aspects of the invention produces the effect that a user can directly activate the free-drive operation mode at the robot arm to manipulate the robot arm, and in free-drive operation mode, the robot can be moved safely without the risk of dangerous movement due to, for example, changing the payload during free-drive operation mode. A combination of embodiments of the second and third aspects of the invention produces the effect that a user can move the robot arm using both hands in free-drive operation mode without the risk of dangerous movement due to, for example, changing the payload during free-drive operation mode. A combination of embodiments of the first, second, and third aspects of the invention produces the fact that the robot arm can be configured with a safe and user-friendly free-drive operation mode, wherein the user can safely activate the free-drive operation mode and subsequently move the robot arm safely and reliably using both hands.

[0179] Other and additional advantages and benefits of the invention may be described in specific embodiments thereof. Attached Figure Description

[0180] To gain a more complete understanding of this disclosure, reference is now made to the following brief description taken in conjunction with the accompanying drawings and specific embodiments:

[0181] Figure 1 A robotic arm according to the present invention is shown;

[0182] Figure 2 A simplified structural diagram of the robotic arm is shown;

[0183] Figure 3 A flowchart illustrating the method for changing the posture of the robotic arm is shown; and

[0184] Figure 4 A flowchart illustrating a method for changing the posture of a robot arm in free-drive operation mode is shown. Detailed Implementation

[0185] The invention has been described with respect to exemplary embodiments 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 have the same last two digits. Furthermore, it should be understood that where embodiments include multiple identical features, only some features may be labeled by reference numerals.

[0186] Figure 1A robotic arm 101 is shown, which includes a plurality of robotic joints 102a, 102b, 102c, 102d, 102e, and 102f, which connect a robotic base 103 and a robotic tool flange 104. The base joint 102a is configured to rotate the robot arm about the base axis 105a (shown as a short dashed line), as indicated by the rotation arrow 106a; the shoulder joint 102b is configured to rotate the robot arm about the shoulder axis 105b (shown as a cross indicating the axis), as indicated by the rotation arrow 106b; the elbow joint 102c is configured to rotate the robot arm about the elbow axis 105c (shown as a cross indicating the axis), as indicated by the rotation arrow 106c; the first wrist joint 102d is configured to rotate the robot arm about the first wrist axis 105d (shown as a cross indicating the axis), as indicated by the rotation arrow 106d; and the second wrist joint 102e is configured to rotate the robot arm about the second wrist axis 105e (shown as a short dashed line), as indicated by the rotation arrow 106e. Robot joint 102f is a tool joint including a robot tool flange 104, which is capable of rotating about a tool axis 105f (shown by a dashed line), as indicated by rotation arrow 106f. Therefore, the illustrated robot arm is a six-axis robot arm with six degrees of freedom and six rotational robot joints. However, it should be noted that the invention can be provided in robot arms including fewer or more robot joints and other types of robot joints, such as prism robot joints that provide translation of portions of the robot arm, for example, linear translation.

[0187] The robot tool flange reference point (also known as TCP) 107 is indicated at the robot tool flange and defines the origin of the tool flange coordinate system, which defines the three coordinate axes x and y. 凸缘 y 凸缘 z 凸缘 In the illustrated embodiment, the origin of the robot tool flange coordinate system has been placed on the tool flange axis 105f, where one axis (z) 凸缘 ) Parallel to the axis of the tool flange, and the other axis x 凸缘 y 凸缘 It is parallel to the outer surface of the robot tool flange 104. Furthermore, the base reference point 108 defines three coordinate axes x... 基座 y 基座 z 基座 The origins of the robot base coordinate system coincide. In the illustrated embodiment, the origin of the robot base coordinate system has been arranged on the base axis 105a, where one axis (z) 基座 ) is parallel to the base axis 105a, and another axis x 基座 y 基座Parallel to the bottom surface of the robot base. The direction of gravity 109 associated with the robot arm is also indicated by the arrow, and it should be understood that the robot arm can be positioned and oriented in any gravity-related location, limited only by the operational degrees of freedom of the robot joints.

[0188] The robotic arm includes at least one robot controller 110, which is configured to control the robotic arm 101 and may be provided as a computer including an interface device 111, enabling a user to control and program the robotic arm. The controller may be provided as follows: Figure 1 The interface device may be an external device or a device integrated into the robot arm, or a combination thereof. The interface device may be provided, 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 112 and multiple input devices 113, such as buttons, sliders, touchpads, joysticks, trackballs, gesture recognition devices, keyboards, etc. The display may be provided as a touchscreen that functions as both a display and an input device. The interface device may also be provided as an external device (configured to communicate with the robot controller), such as a smartphone, tablet, PC, laptop, etc. The interface device may be a teach pendant or handle or a smartphone that communicates with the robot controller via wired or wireless communication.

[0189] The robot tool flange 104 includes a force-torque sensor 114 (sometimes simply referred to as a force sensor) integrated into the robot tool flange 104. The force-torque sensor 114 provides a tool flange force signal indicating the force-torque provided at the robot tool flange. In the illustrated embodiment, the force-torque sensor is integrated into the robot tool flange and configured to indicate the force and torque applied to the robot tool flange relative to a robot tool flange reference point 107. The force-torque sensor 114 provides force and torque signals indicating the force and torque provided at the tool flange. In the illustrated embodiment, the force-torque sensor is integrated into the robot tool flange and configured to indicate the force-torque applied to the robot tool flange relative to the reference point 107 and the tool flange coordinate system. However, the force-torque sensor can indicate the force-torque applied to the robot tool flange relative to any point that can be connected to the robot tool flange coordinate system. In one embodiment, the force-torque sensor is provided as a six-axis force-torque sensor configured to indicate force along three vertical axes and torque about the three vertical axes. For example, the force-torque sensor can be provided as any force-torque sensor capable of indicating force and torque relative to a reference point, such as any force-torque sensor disclosed in WO2014 / 110682A1, US4763531, and US2015204742. However, it should be understood that the force sensor associated with this invention does not necessarily need to be able to sense torque applied to the tool flange. It should be noted that the force-torque sensor can be provided as an external device disposed on the robot tool flange or omitted.

[0190] An accelerometer 115 is disposed at the robot tool joint 102f and configured to sense the acceleration of the robot tool joint 102f and / or the acceleration of the robot tool flange 104. The accelerometer 115 provides an acceleration signal indicating the acceleration of the robot tool joint 102f and / or the robot tool flange 104. In the illustrated embodiment, the accelerometer is integrated into the robot tool joint and configured to indicate the acceleration of the robot tool joint in the robot tool coordinate system. However, the accelerometer can indicate the acceleration of the robot tool joint relative to any point that can be connected to the robot tool flange coordinate system. The accelerometer can be provided as any accelerometer capable of indicating the acceleration of an object. The accelerometer can be, for example, provided as an IMU (Inertial Measurement Unit) capable of indicating both linear and rotational acceleration of an object. Note that the accelerometer can be provided as an external device disposed on the robot tool flange or omitted.

[0191] Each robot joint includes a robot joint body and an output flange capable of rotation or translation relative to the robot joint body, the output flange being directly or via an arm portion known in the art to an adjacent robot joint. The robot joint includes a joint motor configured, for example, via a drive mechanism or directly connected to a motor shaft, to rotate or translate the output flange relative to the robot joint body. The robot joint body may, for example, be formed as a joint housing, and the joint motor may be disposed within the joint housing, with the output flange extending beyond the joint housing. Additionally, the robot joint includes at least one joint sensor providing sensor signals indicating at least one of the following parameters: the angular and / or linear position of the output flange, the angular 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 motor shaft. For example, the angular position of the output flange may be indicated by an output encoder, such as an optical encoder or a magnetic encoder, which 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 input encoders such as optical encoders or magnetic encoders, which indicate 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 is provided allows the relationship between the input and output sides of the drive to be determined. The joint sensor can also be provided as a current sensor indicating the current through the joint motor, and thus the joint sensor is used to obtain the torque provided by the motor. For example, in conjunction with a multiphase motor, multiple current sensors can be provided to obtain the current through each phase of the multiphase motor. It should also be noted that some robot joints may include multiple output flanges capable of rotation and / or translation by joint actuators. For example, one robot joint may include a first output flange that rotates / translates a first portion of the robot arm relative to the robot joint; and a second output flange that rotates / translates a second portion of the robot arm relative to the robot joint. As indicated above, the joint sensor can also be provided as a force and / or torque sensor or an acceleration sensor. Such force and / or torque and acceleration sensors can be used as... Figure 1 The outermost joint is indicated, however, other parts of the robotic arm may also include force / torque sensors.

[0192] The robot controller is configured to control the movement of the robot arm by controlling the motor torque supplied to the joint motors based on the dynamic model of the robot arm, the direction of gravity work 109, and sensor signals.

[0193] Figure 2 It shows Figure 1The diagram shows a simplified structural representation of the robot arm. Robot joints 102a, 102b, and 102f are shown in structural form, and for simplicity, robot joints 102c, 102d, and 102e, as well as the robot links connecting the joints, have been omitted. Furthermore, the robot joints are shown as individual components; however, it should be understood that these robot joints are directly interconnected or... Figure 1 The robot joints are interconnected via robot links. Each robot joint includes output flanges 216a, 216b, 216f and joint motors 217a, 217b, 217f or another actuator, wherein the output flanges 216a, 216b, 216f are rotatable relative to the robot joint body. The joint motors 217a, 217b, 217f are respectively configured to rotate the output flanges 216a, 216b, 216f via output shafts 218a, 218b, 218f. It should be understood that the joint motors or joint actuators may be configured to rotate the output flanges via a transmission system such as gears (not shown). In this embodiment, the output flange 216f of tool joint 123f constitutes tool flange 104. At least one joint sensor 219a, 219b, 219f provides sensor signals 220a, 220b, 220f, which indicate at least one joint sensor parameter J of the corresponding joint. 传感器,a J 传感器,b J 传感器,f Joint sensor parameters may indicate, for example, attitude parameters indicating the position and orientation of the output flange relative to the robot joint body, the angular position of the output flange, the angular position of the joint motor shaft, and the motor current of the joint motor. Joint sensor parameters are selected from a list including: velocity, acceleration, torque, motor torque, force, and position. Joint sensor parameters may be measurements obtained from sensors or values ​​derived from these sensor values. For example, the angular position of the output flange may be indicated by an output encoder such as an optical encoder or a magnetic encoder, which indicates the angular position of the output flange relative to the robot joint. Similarly, the angular position of the joint motor shaft may be provided by an input encoder such as an optical encoder or a magnetic encoder, which indicates the angular position of the motor shaft relative to the robot joint. Motor current may be obtained and indicated by a current sensor.

[0194] The robot controller 110 includes a processor 221 and a memory 222, and is configured to control the joint motors of the robot joints by providing motor control signals 223a, 223b, and 223f to the joint motors. The motor control signals 223a, 223b, and 223f indicate the motor torque T that each joint motor should provide to the output flange. 马达,a T 马达,b and T 马达,fThe robot controller is configured to determine motor torques based on a dynamic model of a robot arm known in the prior art. This dynamic model allows the controller to calculate the torque that the joint motors should provide to each of the joint motors to enable the robot arm to perform the desired movement. The dynamic model of the robot arm can be stored in memory 222 and can be based on joint sensor parameters J. 传感器,a J 传感器,b J 传感器,f Adjustments can be made. For example, the joint motor can be provided as a multiphase electric motor, and the robot controller can be configured to adjust the motor torque provided by the joint motor by adjusting the current through the phase of the multiphase motor, as is known in the field of motor regulation.

[0195] Robot tool joint 102f includes a force-torque sensor 114 that provides a tool flange force-torque signal 224, which indicates the force-torque FT provided to the tool flange. flange For example, force signal-torque FT 凸缘 It can be indicated as a force vector in the robot tool flange coordinate system. and torque vector

[0196]

[0197] in It is along x 凸缘 The indicating force of the shaft, It is along y 凸缘 The axis indicates the force, and It is along z 凸缘 The indicating force of the shaft.

[0198] Torque can be indicated as a torque vector in the robot tool flange coordinate system:

[0199]

[0200] in It revolves around x 凸缘 The shaft's indicated torque, It revolves around y 凸缘 The shaft's indicated torque, and It revolves around z 凸缘 The indicated torque of the shaft. Note that the force vector and torque vector can be provided as separate signals, and separate force sensors and / or torque sensors can be provided.

[0201] The robot tool joint 102f may include an accelerometer 115 that provides an acceleration signal 225 indicating the acceleration of the robot tool flange, wherein the acceleration can be indicated relative to the tool flange coordinate system.

[0202]

[0203] in It is along x 凸缘 The sensing acceleration of the shaft, It is along y 凸缘 The shaft's sensing acceleration, and It is along z 凸缘 Sensing acceleration of the shaft.

[0204] In embodiments where the accelerometer sensor is provided as a combined accelerometer / gyroscope (e.g., IMU), the accelerometer sensor may additionally provide an angular acceleration signal indicating the angular acceleration of the output flange relative to the robot tool flange coordinate system, for example, as a separate signal (not shown) or as part of an acceleration signal. The angular acceleration signal can indicate the acceleration vector in the robot tool flange coordinate system.

[0205]

[0206] in It revolves around x 凸缘 Angular acceleration of the axis, It revolves around y 凸缘 The angular acceleration of the axis, and It revolves around z 凸缘 Angular acceleration of the axis.

[0207] The force-torque sensor and acceleration sensor in the illustrated embodiment are arranged at the robot tool joint 102f; however, it should be understood that the force-torque sensor and acceleration sensor can be arranged at any part of the robot arm and are omitted in some embodiments.

[0208] The robot controller can switch to a free-drive operation mode, wherein the robot controller in this free-drive operation mode is configured to:

[0209] • Keep the robot arm in a static posture when only gravity 109 is acting on it;

[0210] • Allow the robot arm to change its posture when an external force different from gravity is applied to it.

[0211] When only gravity acts on the robot arm, the robot controller can be configured to maintain the robot arm in a static posture by driving the joint motors to provide sufficient motor torque to overcome gravity without moving any parts of the robot arm. The robot controller can be configured to determine sufficient motor torque based on a dynamic model of the robot arm in a static posture. The static posture can be indicated, for example, by joint sensors provided as output encoders indicating the angular position of the output flange and / or input encoders indicating the angular position of the motor shaft. The static posture can also be stored as a posture in the control software, for example, by defining the joint angles of the robot joints in a static posture. In the case of storing the static posture of the robot arm, the stored posture can be referred to as the waypoint posture that the robot arm returns to or moves to / passes through when operating in the robot program.

[0212] When an external force different from gravity is applied to the robotic arm, the robot controller can allow a change in posture by driving the joint motors with a motor torque sufficient to allow the user to rotate the output flange of the robot joint. For example, the robot controller can be configured to drive the motors with a motor torque sufficient to hold the robotic arm in a static posture, and thus any additional force and / or torque applied to the robotic arm will overcome this sufficient motor torque, causing the joint's output flange to rotate due to this additional force and / or torque. During a change in the robotic arm's posture, the robot controller can be configured to adjust this sufficient motor torque based on the change in posture, resulting in the robotic arm maintaining a new static posture when the additional external force decreases.

[0213] In the free-drive operation mode, the robot controller can be configured in one embodiment to control the motor torque of the joint motors based on the force signal 224 from the force-torque sensor 114. This allows the user to move the tool flange (e.g., by pushing, pulling, or rotating the robot tool flange) without manipulating each robot joint. Additionally, in the free-drive operation mode according to the invention, the user can also choose to manipulate individual robot joints to change the posture of the robot arm. Therefore, when changing the posture of the robot arm in the free-drive operation mode, greater flexibility and more options are provided to the user.

[0214] The robot controller 110 for controlling the robot arm 101 can be configured to perform... Figures 3 to 4 The method shown.

[0215] Figure 3 A flowchart of a method for controlling a robotic arm according to the present invention is shown. The method includes an initialization step 330, which includes obtaining a dynamic model D of the robotic arm. 机器人The dynamic model can be based on prior knowledge of the robot arm, such as the dimensions and weight of the robot joints and links; joint motor characteristics; and information related to the final payload attached to the robot arm and the robot arm's orientation relative to gravity. The dynamic model of the robot arm can be defined and pre-stored in the controller's memory, and in some implementations, the user can (e.g.) modify the dynamic model of the robot arm by providing payload information for the payload attached to the robot arm or defining the robot arm's orientation relative to gravity.

[0216] Step 340 is a step of evaluating user input to determine whether the robot controller should change the current operating mode to a free-drive operating mode. Step 341 is an optional step of changing the robot controller's current operating mode to a teach mode. If it is not already in teach mode, then, as in some embodiments, the robot controller may be configured to enter free-drive operating mode only when it is in teach mode. However, it should be noted that free-drive operating mode can be entered from other current operating modes (such as run / operate mode), but typically from teach mode. In step 342, the robot arm user establishes a so-called free-drive activation signal, for example, based on user input UI, and in step 345, it is determined whether the process of activating the robot arm's free-drive operating mode should be initiated (see step 350). Typically, free-drive operating mode is activated during robot arm programming, for example, to allow the user to manually change the robot arm's posture, such as to define the robot arm's waypoints / postures during robot programming.

[0217] The free-drive operation mode can be activated based on user input instructing the robot controller to activate it. Therefore, step 340 may receive user input UI indicating activation of the free-drive operation mode, and if such user input is received and verified, the robot controller enters the free-drive operation mode, as indicated by the thumbs-up icon. If no user instruction to enter the free-drive operation mode is received, the robot controller will not enter the free-drive operation mode, as indicated by the thumbs-down icon. User input can be received through any input device capable of receiving user input (e.g., buttons, joysticks, touchscreens, gesture recognition devices, sliders, sensors on the robot arm, etc.). In one embodiment, the free-drive operation mode is activated based on a force-torque signal, resulting in the fact that the user can simply activate the free-drive operation mode directly at the robot arm by applying force and / or torque to the robot arm. For example, the force-torque signal may be provided by an attachment to... Figures 1 to 2The force-torque signal 224 is provided by the force-torque sensor 114 on the robot tool flange of the illustrated robot arm. Once the robot controller has entered the free-drive operation mode (see step 360), user input can instruct the robot controller to disengage the robot arm from the free-drive operation mode. Disengaging the robot arm from the free-drive mode can occur when a defined time period expires or automatically based on user input via the UI.

[0218] As mentioned, in step 342, the user of the robotic arm establishes a so-called free-drive activation signal. This signal is provided from the user to the robot controller by applying force to the robotic arm or user interface. Force can be applied to buttons or a touchscreen on the user interface, or to joints or sensors on the robotic arm. Regardless of the type and location of the force applied to the robotic arm or user interface, an input to the robot controller is established; this input is called the free-drive activation signal.

[0219] In the implementation, to activate the free-drive operation mode, the robot controller must continuously receive a free-drive activation signal during a so-called activation time period. The activation time period is typically greater than zero seconds and typically less than 10 to 15 seconds; the appropriate duration depends on, for example, the user, but in many cases will be between 0.25 seconds and 5 seconds, such as 0.25 seconds, 0.5 seconds, 1 second, or 2 seconds. In this case, the time period can be set to zero (or between zero seconds and 0.25 seconds) if, for example, a simple comparison is made between two stored values ​​of the parameter. Alternatively, the free-drive activation signal can be received as a discrete signal by the robot controller in a predetermined mode. This is primarily to ensure that the free-drive activation signal is not incorrectly established. Therefore, the time period should be long enough to identify non-user activation and only user activation should be recorded.

[0220] In one implementation, the free-drive activation signal is a logic "1" or "0" provided by pushing a button on the user interface. In an alternative implementation, the free-drive activation signal is a measured value or derivative of a joint sensor parameter, such as force, torque, temperature, or potential. Therefore, the type of joint sensor parameter required to establish the free-drive activation signal can be predetermined for the robot controller to enable its identification of the free-drive activation signal. Alternatively, a specific input address of the I / O module connected to the robot controller can be used to identify the free-drive activation signal.

[0221] In this implementation, in step 342, the user applies a force to the robot joint or force sensor to establish a free drive activation signal. In this implementation, the force can be applied by pushing the force sensor in a predetermined orientation in space. The predetermined orientation can be, for example, perpendicular or parallel to the joint axis 105f. If the predetermined orientation is perpendicular to the joint axis, an angle can also be established for the applied vertical force. Establishing an angle for the applied force enables the robot controller to recognize the force applied in the predetermined direction as a potential free drive activation signal. As indicated, any movement in space can be used in principle; however, vertical or parallel movements relative to the joint axis 105f are considered advantageous because these movements are easier for the user to remember and apply.

[0222] Therefore, the free-drive activation signal can be restricted not only to specific types of joint sensor parameters (such as forces measured by force sensors), but also to a specific direction of such a force maintained for a predetermined activation period. Establishing the free-drive activation signal based on the force applied in a specified direction (i.e., at an angle defined relative to another part of the robot base or robot arm) within the predetermined activation period reduces the risk of the robot controller confusing forces not intended to establish the free-drive activation signal with forces intended to establish it.

[0223] An alternative to establishing a free-drive activation signal is to apply force in an unnatural direction for a particular robotic arm. Examples of this include measuring force changes (increases or decreases) when any changes in motor current are not applied by the robot controller and / or when no changes related to the payload are recorded.

[0224] Another alternative method for establishing a free-drive activation signal is to apply torque to a torque sensor. Typically, for example, when the robotic arm is in a static posture and a static motor current is applied to the motor, the torque will also be an unnatural force. This torque can be applied by the user using one or both hands to twist the torque sensor.

[0225] In step 345, the measured value (magnitude / size) of the force or torque applied to the robot arm is compared with a predefined threshold. If the measured value is higher than the threshold within a predetermined activation time period, the robot controller is instructed to conclude that the user will activate the free-drive operation mode. Additional tests that can be performed in step 345 are the case where the direction of the measured force is as expected and / or the value of another joint sensor parameter is lower than another predetermined threshold.

[0226] This second threshold can be lower than the first threshold because it is expected that the user applying the force will also apply a small torque in many cases. Therefore, if a relatively high force is applied while a relatively small torque is applied (or vice versa), this is an indication of an impact from the user. This can be evaluated by comparing measurements of force (a joint sensor parameter) and torque (another joint sensor parameter) with the corresponding thresholds. This establishes another filter to ensure that only the user's intended force is interpreted by the robot controller as a free-drive activation signal.

[0227] Alternatively, if the first joint sensor parameter is a force in the first direction, then the other joint sensor parameter may be a force applied in a second direction different from the first direction.

[0228] The first threshold and other thresholds are typically defined by upper or lower limits, such as the magnitude / amount of force / torque, but can also be defined as a range between the endpoints. The appropriate force to be applied by the user to establish a free-drive activation signal may be less than 50 N, such as 5 N, 10 N, 15 N, or 20 N. This force must be large enough to avoid being confused by collisions caused by the user (e.g.), and small enough for the user to apply force to the robotic arm.

[0229] In step 350, the free-drive operation mode is activated. In step 351, the so-called activation sequence time period is initiated. In step 352, one or more joint sensor parameters are measured. In step 355, the changes in the values ​​of the one or more joint sensor parameters are compared with permissible changes. Therefore, if these changes are within the permissible range throughout the activation sequence time period, the payload weight is assumed to be correct and the free-drive operation mode is activated, as indicated by thumb up. If these changes are not within the permissible range throughout the activation sequence time period, the robot controller switches to, for example, a non-free-drive operation mode (such as a protective stop mode) or remains in the current operation mode, as indicated by thumb down.

[0230] As mentioned, in step 351, the activation sequence time period is turned on. In the implementation, this time period is between 0.25 seconds and 5 seconds, such as 0.25 seconds, 0.5 seconds, 1 second, or 2 seconds. In this case, if a simple comparison is made, for example, between two stored values ​​of the parameter (half a second and 10 to 15 seconds (or even more seconds)), the time period can be set to zero (or between zero seconds and 0.25 seconds). If the change of one or more joint sensor parameters within this time period does not exceed the allowed change, the free-drive operation mode is entered.

[0231] The permissible variations can be defined by threshold values ​​for freely driven activated joint sensor parameters, which limit maximum speed, acceleration, displacement, position, force, torque, current, etc. These thresholds can be predetermined fixed values. However, these thresholds can also be dynamic in this sense: if, for example, the robot arm experiences high acceleration during the activation sequence time period, then the threshold for, for example, the robot arm's displacement or the time allowed for such acceleration is lower, and if the acceleration is low, then the threshold for displacement or time is higher.

[0232] The threshold values ​​of the free-drive activated joint sensor parameters can define a so-called virtual wall or virtual window, which defines a range around the center of the tool flange within which the tool flange can move; for example, a plane oriented in space, a cube, a sphere, or other 3D shape. In the event of, for example, a payload weight error, the robot tool flange (or payload) can move downwards until it "collides" with the virtual wall, at which point it stops and, for example, enters normal mode operation. The virtual wall can be reset by the user, for example, by moving (lifting, lowering, shifting) the tool flange a predetermined distance. The user can, for example, move the robot tool flange away from the virtual window a predetermined distance. Thus, the virtual wall is re-established relative to the new position of the tool flange's center. By applying an external force, for example, by moving (lifting, lowering, shifting) the tool flange, the robot controller knows that the force is applied by the user, thus allowing the virtual wall to be re-established. In this way, the tool flange can be moved downwards to the floor of the robot cell in a subsequent step. If a virtual wall is reached (e.g., because the payload has detached from the gripper tool), the gripper will strike the upper portion of the virtual wall and remain there as the robotic arm, in free-drive mode, attempts to compensate for the effects of gravity on the "missing payload," and the virtual wall will not be re-established. In the latter example, if no virtual wall exists, the gripper risks stopping first when it strikes the upper portion of the virtual wall, for example, when it is standing upright. The user can then move the tool flange down to the robot cell floor by lowering it, thereby allowing the controller to establish a new virtual wall. Conversely, if the payload weight exceeds the known payload weight of the robot controller, the robot tool flange will move downward in the direction of gravity until it strikes the lower portion of the virtual wall or the robot cell floor. This can be prevented by a virtual window, as the gripper will strike the lower portion of the virtual wall and remain there, and the virtual wall will not be re-established. The user can then move the tool flange to the desired position by lifting it away from the lower portion of the virtual window, thereby allowing the controller to establish a new virtual wall.

[0233] The joint sensor parameter thresholds can be dynamic, depending on different aspects of the robot arm's movement. Therefore, the maximum speed can depend on the time since the movement began. That is, if the robot arm moves in essentially the same direction for more than x seconds, the maximum speed threshold is reduced to avoid robot arm drift.

[0234] In addition, the payload can limit thresholds for speed and acceleration. That is, if the user has recorded a large payload (size or weight), the maximum speed and / or acceleration thresholds are reduced to prevent the user from encountering dangerous situations or assisting in manipulating heavy robots.

[0235] Speed ​​and acceleration can be limited by the force (or payload) applied to the robot by the user. That is, if the user pulls on the robot or payload with varying weight, the robot can be restricted to slow movement to protect the user and / or the payload. The same applies to torque; therefore, if the robot is subjected to high torque, the maximum angular velocity can be reduced to prevent off-axis payloads that promote unexpected rapid rotation / acceleration of the tool flange.

[0236] Therefore, in step 352, values ​​for one or more predetermined joint sensor parameters are obtained or established. As mentioned, joint sensor parameters may include velocity, acceleration, torque, motor torque, force, etc., but also their derivatives, such as the position and displacement of the robot arm in space. In an embodiment, force and torque are measured at the tool flange. Another output from accelerometers received over time from multiple joints is used to calculate or derive the angular velocity, angular acceleration, velocity, and / or acceleration of the tool flange. Another current and / or voltage is measured at multiple joints (e.g., to the power supply to the joint motors).

[0237] Regardless of the intended free-drive operating mode, the values ​​of these joint sensor parameters and their derivatives can be obtained without additional force (additional motor torque T). 附加 The load weight can change when applied to the robot arm by the user; for example, if the load weight is incorrect, the sensor may not be properly calibrated or may drift over time. Therefore, one problem this invention addresses is that measurements from sensors (such as force / torque sensors) drift over time or due to temperature changes and can therefore be unreliable. Conversely, unexpected measurements from torque / force sensors (from the robot controller's field of view) are more reliable.

[0238] As an example, it can be mentioned that if the weight of the payload is less than the weight provided to the robot controller (e.g., by the user), the static motor torque (T) calculated by the robot controller to maintain the static posture is... 静态If the height is too high, the robot arm may move upwards. To prevent damage to materials or injury to personnel caused by this movement, the robot controller stops the robot arm's movement in this situation. This can be initiated, for example, by changing the operating mode to a protection or hard stop mode. In step 350, the stop occurs during the active sequence time period, and therefore does not enter a free-drive operating mode.

[0239] Alternatively, this can be accomplished by reducing the motor current to compensate for movement by reducing the current to one or more joint motors until, for example, the static posture of the robot arm is recorded via joint sensor parameters.

[0240] It should be mentioned that in some implementations, the joint / force sensor may only indicate the force applied by the user to enter the free-drive mode, and may not directly record that force. For example, the difference in encoder position between the input encoder and the output encoder can be used to indicate an external force applied to the robot arm.

[0241] In step 355, the measured joint sensor parameters are evaluated. As mentioned, the evaluation may be implemented as a comparison of the measured values ​​of the joint sensor parameters with free-drive activated joint sensor parameter thresholds that define the permissible variation of the measured values. As mentioned, these free-drive activated joint sensor parameter thresholds may be predetermined fixed values; however, they may also be implemented as dynamic values ​​and change in response to, for example, the rate of change of the measured joint sensor parameter values. This evaluation ensures that the robot arm only enters the free-drive operating mode if it does not cause the robot arm to move at joint sensor parameter values ​​or derivatives of those values ​​outside the free-drive activated joint sensor parameter thresholds, which could lead to dangerous situations for the user, the robot arm, and its surroundings. A positive evaluation that results in a change of operating mode to free-drive operating mode is indicated by a thumbs-up, while a negative evaluation that results in, for example, remaining in the current operating mode (typically the teach mode) or a protective stop is indicated by a thumbs-down.

[0242] In step 360, the robotic arm operates in a free-drive mode, and therefore the user can manipulate the posture of the robotic arm by applying force to one or more parts of the robotic arm.

[0243] In step 361, following the aforementioned positive evaluation that leads to a change in operating mode to free-drive operating mode, the free-drive period is initiated by the robot controller. In step 362, it is tested whether the user has manipulated the robot arm. If the user has not manipulated the robot arm, the robot controller changes the operating mode to non-free-drive operating mode after the free-drive mode period expires. In an embodiment, the operating mode is changed back to teach mode.

[0244] However, if the user performs some manipulation on the robotic arm, in step 363, the robot controller resets the free-drive mode time period, or restarts the free-drive mode time period if a different time period is desired. Manipulation here includes recording locations such as waypoints. Note that... Figure 3 An implementation scheme for initiating a restart free-drive mode period is shown, but a simple reset of the free-drive mode period is not excluded. Again, in step 364, it is tested whether the user manipulated the robot arm. If the user did not manipulate the robot arm, the robot controller changes its operating mode after the restart free-drive mode period expires.

[0245] The free-drive period and the restart free-drive period can be equal in length, i.e., both can be, for example, 3 seconds. Typically, these periods range from 0.5 to 15 seconds, usually from 1 to 5 seconds, and are often 2, 3, or 4 seconds. In this case, as mentioned, these periods do not need to be equal in length.

[0246] After changing the operating mode to, for example, stop or teach mode, if the user wishes to re-enter free-drive operating mode, the user will return to step 342 and a free-drive activation signal will be established. It should be noted that if the robotic arm is already in stop operating mode, a reset or restart of the robotic arm may be necessary.

[0247] Figure 4 An embodiment of step 460 of operating the robotic arm in a free-drive mode is shown, and includes obtaining a static motor torque T to maintain the robotic arm in a static posture. 静态 Step 466: Obtain (for example) the additional motor torque T applied by the user. 附加 Step 467: Combine the static motor torque and the additional motor torque into a combined motor torque T. 组合 Step 468 and step 469, which controls the joint motor based on the combined motor torque.

[0248] The static motor torque T obtained in step 466 静态 Based on the actual posture P of the robot arm 机器人 Dynamic model D of the robotic arm 机器人 This is obtained by using a dynamic model of the robot arm, which defines the relationship between the robot arm's posture and the motor torque required to maintain it in a static posture under gravity. The static motor torque indicates the motor torque required from the joint motors to maintain the robot arm in a static posture under gravity. The actual posture P of the robot arm can be obtained based on the joint output encoder. 机器人 The joint output encoder indicates the angular position of each output flange of the robot joint, and the static motor torque T静态 It can be provided as a vector or an array, wherein a static motor torque T is provided for each joint motor. 静态,n Where n represents the number of robot joints, and the robot motor will provide the obtained nth static motor torque. Driving the motor joints with the current that generates the static motor torque produces the following effect: the robot arm remains in a static posture when only affected by gravity. The user can move the robot arm's parts by manipulating the robot joints (e.g., by pushing, pulling, and / or rotating parts of the robot arm, thereby applying an external force / torque to the robot arm). If this external force / torque exceeds the static motor torque of the robot joint, the joint motor will not prevent modification of the robot arm's posture, thus allowing the user to change the robot arm's posture.

[0249] The additional motor torque T obtained in step 467 附加 Based on the force-torque FT provided to the tool flange and indicated by the force-torque sensor 114 凸缘 Dynamic model D of the robot arm 机器人 And the actual posture P of the robot arm 机器人 To obtain. Force-Torque FT 凸缘 Provided by a force-torque sensor at the robot tool flange. The additional motor torque indication is the motor torque required by the joint motor to move and / or rotate the robot tool flange in response to the force / torque provided to the robot tool flange and obtained by the force-torque sensor. For example, a force provided to the robot tool flange in a given direction can cause the robot tool flange to move in that direction, and the magnitude of the force can indicate the desired acceleration of the movement. Similarly, a torque provided to the robot tool flange in a given direction can cause the robot tool flange to rotate in the direction of that torque, and the magnitude of the torque can indicate the desired angular acceleration of the rotation. Additional motor torque T 附加 Available as a vector, wherein an additional motor torque T is provided for each joint motor. 附加,n , where n represents the number of robot motor joints that will provide the obtained static motor torque. Driving the motor joints with current that generates additional motor torque produces the following effect: the robot tool flange can move and / or rotate in the direction of the force and / or torque provided to the robot tool flange. In the illustrated embodiment, additional motor torque indicates the motor torque that needs to be provided in addition to the static torque in order to move the robot arm.

[0250] The combined motor torque T obtained in step 468 组合 By controlling the static motor torque T 静态 and additional motor torque T 附加 Combined into a combined motor torque T 组合 This is achieved by adding static motor torque and additional motor torque in this implementation.

[0251] Equation 4 T 组合 = T 静态 + T 附加

[0252] Therefore, the combined motor torque T 组合 The instructions state that in order to move / rotate the robot tool flange while simultaneously overcoming gravity based on the force-torque supplied to it, the total motor torque required is provided by the joint motor.

[0253] The steps of controlling articulated motors based on combined motor torque include: providing each articulated motor in the articulated motors with a motor torque T that instructs each articulated motor. 马达,n Multiple control signals are used, where n indicates the number of robot joints that will provide motor torque. The motor torque of the joint motor can be adjusted by changing the current flowing through the joint motor, as is known in the field of motor tuning.

[0254] As described above, in step 361, a free-drive period is initiated when the user stops manipulating the robot arm, and in step 362, it is evaluated whether the user has manipulated the robot arm. If the user has not manipulated the robot arm before the end of the period, the robot controller changes the operation mode indicated by thumb down. On the other hand, if the user manipulates the robot arm, the robot controller jumps to step 466 to change the robot's posture in response to the force applied by the user.

[0255] Furthermore, as long as the robotic arm operates in free-drive mode, the robot controller evaluates the joint sensor parameters or the derivatives of those parameters. This evaluation is not performed in... Figure 3 or Figure 4 This assessment is similar to the assessment described relative to step 350, i.e., if the robotic arm performs an unexpected movement, such as a movement not initiated by a force applied by the user. User-uninitiated movements will typically occur in the vertical plane because gravity will pull on the payload if, for example, the force sensor drifts over time or the payload weight changes over time (if, for example, the payload is sensitive to temperature changes, or a portion of the payload is used or removed). If, for example, the payload disengages from the gripper, the robot controller will move the tool flange upwards. This is advantageous because the payload decreases; this assessment will ensure that the robot controller changes the operating mode, for example, to a stop mode.

[0256] The robot arm's movement speed in the free-drive operation mode is limited in the vertical orientation to ensure that the robot arm speed does not accelerate when the payload is lowered. However, in the horizontal orientation, the lowering payload will not affect the robot arm speed, so it is less restricted compared to the speed in the vertical orientation.

[0257] The free drive operation mode can be easily deactivated by letting the free drive period expire, by pushing a button, or by exceeding the joint parameter threshold (such as speed or acceleration).

[0258] Joint sensor parameters serve as indicators of the robot arm's movement. Therefore, any one or more sensor values ​​derived from inputs to the robot controller can be considered joint sensor parameters. Thus, joint sensor parameters include at least information on velocity, acceleration, torque, motor torque, force, and position. In embodiments of the invention, the movement of the tool flange and thus the robot arm is checked based on joint encoders. The joint encoder includes an input encoder indicating the angular position of the joint motor shaft and an output encoder indicating the angular position of the output flange (and thus after the gear). As indicated, the movement of the tool flange and thus the robot arm can also be indicated or derived from inputs from one or more joints (such as from accelerometer 115, current sensors, etc.).

[0259] The robotic arm can be controlled in different operating modes. While being programmed, the robotic arm can operate in teach mode; once programming is complete, it can operate in run mode; and it can enter stop mode if a safety function is violated. The user can activate free-drive mode from any of these operating modes; however, in this case, the robotic arm's current operating mode before entering free-drive mode is typically the teach mode.

[0260] In the implementation scheme, predefined areas may be defined for operation in free-drive mode. These areas can be used to protect the robot arm from collisions with physical objects, define workspaces, etc. When operating in free-drive mode, the robot controller can communicate to the user that the robot arm is approaching the boundary of this area. This information can be visually transmitted to the user via the user interface. Alternatively, this information can be transmitted to the user by increasing the motor current and thereby increasing the motor torque provided by the joint motors, so that the user will experience resistance from the robot arm when continuing to apply manipulating force to move the robot arm toward the boundary.

[0261] An alternative way to communicate from the robot controller to the user is through so-called haptic feedback. Haptic feedback can be used by the robot controller to notify the user, for example, that a free-drive operating mode has been entered, a boundary is approaching, etc. Haptic feedback can be presented as different sequences or patterns that allow the user to distinguish the meaning of the haptic feedback signals from one another. If haptic feedback is used, it is preferable that the joints do not “vibrate” (change position) between the same two positions for an extended period of time. The duration of this period should not cause the lubricant between the balls of the ball bearing to become unlubricated. Therefore, if haptic feedback is required for a period of time longer than that which could prevent this, it would be preferable to first move the robot arm slightly in one direction, and then later move the robot arm backward in another direction, so that the robot arm eventually returns to its starting position to ensure ball lubrication.

[0262] In this implementation, the graphical user interface is implemented as the screen of a teach pendant. Through this interface, the user can communicate with the robot controller, and the robot controller can communicate with the user. One piece of information the robot controller can convey to the user is the remaining time for the various time periods. Therefore, the robot controller can count down or start a timer for active time periods, active sequence time periods, free-drive time periods, restart free-drive time periods, etc., from areas of the screen. Thus, the user always knows the remaining time for a time period by viewing the screen. The screen or display can be divided into segments designed to convey, for example, different aspects of the robot arm's movement. Visualization of joint poses, the position of the robot tool (e.g.,) relative to a virtual wall, and how to move the robot tool back to the correct side of such a wall are just some examples of the functions of the graphical user interface.

[0263] In addition, the robot controller can present the user with the root cause of the event that caused the robot arm to involuntarily leave the free drive mode via an interface device, as well as instructions on how (e.g., which joints and how to move) to return the robot arm to its starting position, posture, or desired position / orientation in space.

[0264] Furthermore, unexpected events may occur that would satisfy the requirements for activating the free-drive operation mode and causing the robot controller to enter free-drive mode. To prevent such events from repeatedly causing the robot controller to enter free-drive mode, a time period that needs to expire before the robot controller can re-enter free-drive mode can be introduced.

[0265] As is clear from the above, changing the operating mode from the current mode to a free-drive mode in a safe manner ensures that, for example, errors in the payload weight information included in the robot controller do not lead to dangerous situations. This problem is solved by the user establishing a free-drive activation signal (such as a force exceeding a corresponding threshold). In the implementation scheme, this activation is sustained for a specific period. This test ensures that the user's intention is to enter free-drive mode.

[0266] Subsequently, the robot controller switches the operating mode, typically from normal operating mode to free-drive mode. Initially, upon entering free-drive mode, one or more joint sensor parameter values ​​are monitored during the activation period, and these values ​​are compared to corresponding thresholds. This test ensures the payload weight is correct. If incorrect, one or more of the monitored joint sensor parameter values ​​will exceed the corresponding threshold. In this case, the robot controller changes the operating mode (e.g.,) to a stopped mode or a non-free-drive mode. If correct, the user can move / manipulate the robot arm in free-drive mode as needed.

[0267] If the user does not apply force to the robot arm during a given free drive period / restart free drive period, the robot controller interprets this as the user wanting to switch back to teach mode (or another mode).

[0268] Another problem addressed by this invention is the ability to use both hands when changing the posture of a robotic arm (sometimes referred to as manipulating, moving, or applying force). This is advantageous, for example, when robotic tools must be positioned with great precision (e.g., a threaded engagement tool over a screw) or when the robotic arm is physically large and heavy and can only be manipulated with one hand.

[0269] Another problem addressed by this invention is that if the force and torque sensors have drifted and are therefore providing erroneous information to the robot controller related to the weight of the payload, no unintended dangerous movement of the robot arm will occur outside the defined threshold.

[0270] In an embodiment of the invention, a time period is activated when a force above a force threshold is recorded by a torque / force sensor (joint sensor), wherein if the recorded force remains above the force threshold during a determined force time period and the torque recorded by the torque / force sensor remains below the torque threshold during a determined torque time period, the force is classified as an intentional impact force.

[0271] This is advantageous because it allows for the sorting out of unintended impact forces. This is because intentional impact forces provided by (e.g.,) humans are delivered without accompanying or limited torque. This contrasts with unintended impact forces, such as those from collisions or holding operations, where force / torque sensors are registered to the twist, thus recording the torque. Therefore, regardless of the operating mode the robotic arm is in, intentional impact forces can be recorded, and this can be used to (e.g.) change the operating mode, the state of the software program, and prepare to receive specific inputs.

[0272] In this implementation, the robot controller and the user communicate via applied forces and robot feedback, based on which the robot controller enters free-drive mode. First, the user applies an external force to the robot arm. This applied force can be any type of force applied in any orientation in space. Thus, when the robot controller operates the robot arm (e.g., in normal operating mode), the user (e.g.) applies a force in space in a predetermined orientation, such as perpendicular to the joint axis 105f. The direction or intensity of the force provided by the user does not need to be known to the robot controller. After recording the external force, the robot controller provides robot feedback in response. This robot feedback can be tactile feedback, and when the user observes this tactile feedback, the user applies a predetermined force to the robot arm at a predetermined pattern or intensity. This predetermined force is known to the robot controller, and if there is a match between the applied predetermined force detected by the robot controller and the expected predetermined force, the robot controller determines that the user intentionally wishes to enter free-drive mode and is therefore changing the operating mode to free-drive mode.

[0273] The predetermined force applied by the user can be a simple force in a specific direction over a specific time period. This only needs to be known to the robot controller, and thus predetermined. In this implementation, the predetermined force should be understood as a pattern, a sequence of robot joint movements, etc.

[0274] Robot feedback can be provided immediately after recording an external force, or it can be provided within 0.5 to 5 seconds (e.g., 1 second, 1.5 seconds, 2 seconds, or 2.5 seconds) of the time interval between recording the external force and providing feedback. Similarly, a predetermined force can be provided immediately after providing feedback, or it can be provided within 0.5 to 5 seconds (e.g., 1 second, 1.5 seconds, 2 seconds, or 2.5 seconds) of the time interval between providing feedback and providing feedback. These time intervals are determined based on what is convenient for the user and will ensure that unexpected external forces, such as a predetermined force applied 1 minute after the robot feedback stops, will not initiate a change in the free-drive operation mode. In this embodiment of the invention, in the case of robot and user “communication,” the activation sequence time interval is preferably set to zero seconds or close to zero seconds, i.e., less than 1 second. This has the effect that uncontrolled movement of the robot arm during the activation sequence time interval, for example, due to erroneous recording of the payload weight in the robot controller, is reduced or completely eliminated.

[0275] Finally, it should be noted that the applied force can be applied to one or more different input devices on the interface device. These input devices can be buttons, microphones, touchscreens, accelerometers / gyroscopes, etc.

[0276] Brief description of the attached figures

[0277] 101: Robotic Arm

[0278] 102a to 102f: Robot joints

[0279] 103: Robot Base

[0280] 104: Robot tool flange

[0281] 105a to 105f: Robot joint axes

[0282] 106a to 106f: Rotation arrows of robot joints

[0283] 107: Robot tool flange reference point

[0284] 108: Base Reference Point

[0285] 109: Direction of Gravity

[0286] 110: Robot Controller

[0287] 111: Interface Device

[0288] 112: Monitor

[0289] 113: Input device

[0290] 114: Force-Torque Sensor

[0291] 115: Accelerometer Sensor

[0292] 216a, 216b, 216f: Output flanges

[0293] 217a, 217b, 217f: Joint motors

[0294] 218a, 218b, 218f: Output shafts

[0295] 219a, 219b, 219f: Joint sensors

[0296] 220a, 220b, 220f: Joint sensor signals

[0297] 221: Processor

[0298] 222: Memory

[0299] 223a, 223b, 223f: Motor control signals

[0300] 224: Force-Torque Signal

[0301] 225: Acceleration signal

[0302] 330: Initialization

[0303] 340: Evaluate user input

[0304] 341: Normal Mode

[0305] 342: Free-drive mode signal

[0306] 345: Activate free drive?

[0307] 350: Activate Free Drive

[0308] 351: Activate the activation sequence time period

[0309] 352: Establishing Joint Sensor Parameters

[0310] 355: Compare joint sensor parameters with permissible variations.

[0311] 360, 460: Free-drive operation mode

[0312] 361: Enable Free Drive Time Period

[0313] 362: User controls the robotic arm

[0314] 363: Time period for enabling / restarting free drive mode

[0315] 364: User manipulation within a timeframe?

[0316] 466: Obtaining static motor torque

[0317] 467: Obtain additional motor torque

[0318] 468: Combination of static motor torque and auxiliary motor torque

[0319] 469: Controlling joint motors based on combined torque

Claims

1. A robot controller for controlling a robot arm, the robot controller being switchable from a current operational mode to a free-drive operational mode, wherein the robot controller in the free-drive operational mode is configured to: • maintain the robot arm in a static pose when only gravity is acting on the robot arm; • allow a change in pose of the robot arm when an external force different from gravity is applied to the robot arm; wherein the free-drive operational mode is activatable by a free-drive mode signal to the robot controller established by a user; wherein the robot controller is configured to switch to the free-drive operational mode upon receiving the free-drive mode signal and in the free-drive operational mode, the robot controller is configured to: • monitor a value of at least one joint sensor parameter, and • compare the value of the at least one joint sensor parameter to at least one free-drive operational joint sensor parameter threshold value; wherein the robot controller (110) is configured to maintain the robot arm (101) in the free-drive operational mode only if the value of the at least one joint sensor parameter does not exceed the at least one free-drive operational joint sensor parameter threshold value, characterized in that the free-drive operational joint sensor parameter threshold value is defined as a virtual three-dimensional geometric shape around a part of the robot arm, and the robot controller is configured to maintain the robot arm (101) in the free-drive operational mode only if the value of the at least one joint sensor parameter does not exceed the virtual three-dimensional geometric shape around the part of the robot arm for a free-drive safe time period, wherein the part of the robot arm surrounded by the virtual three-dimensional geometric shape is a tool flange, wherein the virtual three-dimensional geometric shape surrounds the tool flange, and at any time during the free-drive operational mode, the virtual three-dimensional geometric shape is fixed relative to a reference point, the robot controller is further configured to redefine a position of the virtual three-dimensional geometric shape relative to the reference point by redefining a position time period if the value of the at least one joint sensor parameter does not exceed the virtual three-dimensional geometric shape around the tool flange, and wherein the redefined position time period defines a time period from when the robot controller is switched to free-drive operational mode or from when the position of the virtual three-dimensional geometric shape has been redefined.

2. The robot controller according to claim 1, wherein the robot controller is configured to deactivate the free-drive operational mode if the value of the at least one joint sensor parameter exceeds the free-drive operational joint sensor parameter threshold value defining the virtual three-dimensional geometric shape.

3. The robot controller according to any one of claims 1-2, wherein the robot controller is configured to define the position of the virtual three-dimensional geometric shape relative to a fixed reference point based on a position of the part of the robot arm relative to the fixed reference point.

4. The robot controller according to any one of claims 1-2, wherein the robot controller is configured to redefine the position of the virtual three-dimensional geometric shape relative to a reference point during the free-drive mode of operation.

5. The robot controller according to any one of claims 1-2, wherein the robot controller is configured to dynamically define the virtual three-dimensional geometric shape based on a pose of the robot arm.

6. The robot controller according to any one of claims 1-2, wherein the robot controller is configured to define the position of the virtual three-dimensional geometric shape relative to a reference point based on a plurality of positions of the part of the robot arm relative to a fixed point, wherein the plurality of positions of the part of the robot arm have been obtained at different points in time.

7. The robot controller according to any one of claims 1-2, wherein the robot controller is configured to provide robot feedback to the user when determining that the value of the at least one joint sensor parameter is not within a feedback value related to the virtual three-dimensional geometric shape.

8. The robot controller according to claim 7, wherein the robot feedback is provided as a robot force provided by a part of the robot arm, wherein the robot force is provided in a direction away from the virtual three-dimensional geometric shape.

9. The robot controller according to claim 8, wherein a magnitude of the robot force increases as the value of the joint sensor parameter approaches the virtual three-dimensional geometric shape.

10. A robot arm (101) comprising a plurality of robot joints (102a-f) connecting a robot base (103) and a robot tool flange (104); each of the robot joints comprising: • an output flange (216a, 216b, 216f) rotatable relative to a robot joint body; • a joint motor (217a, 217b, 217f) configured to rotate the output flange, • at least one joint sensor (219a, 219b, 219f) providing a sensor signal (220a, 220b, 220f) indicative of at least one of an angular position of the output flange, an angular position of a shaft of the joint motor, a motor current of the joint motor; the robot arm comprising at least one robot controller (110) configured to control the robot joints by controlling a motor torque provided by the joint motor based on the sensor signal, and wherein the robot controller is configured according to any one of claims 1-9.

11. A method of operating a robot arm in a free-drive mode of operation, wherein said robot arm controlled by a robot controller has been switched to said free-drive mode of operation upon the robot controller receiving a free-drive activation signal established by a user, wherein said free-drive mode of operation comprises the steps of: • maintaining said robot arm in a static pose when only gravity is acting on said robot arm; • changing the pose of said robot arm when an external force different from gravity is applied to said robot arm; • monitoring by said robot controller a value of at least one joint sensor parameter; wherein said method is characterized by the steps of: • comparing by said robot controller said value of said at least one joint sensor parameter to at least one free-drive operation joint sensor parameter threshold; wherein said free-drive operation joint sensor parameter threshold is defined as a virtual three-dimensional geometric shape around a portion of said robot arm; • maintaining said robot arm in said free-drive mode of operation by said robot controller only if said value of said at least one joint sensor parameter does not exceed said virtual three-dimensional geometric shape around said portion of said robot arm within a free-drive safety time period, wherein said portion of said robot arm surrounded by said virtual three-dimensional geometric shape is a tool flange, wherein said virtual three-dimensional geometric shape surrounds said tool flange and is fixed relative to a reference point at any time during said free-drive mode of operation, • redefining by said robot controller a position of said virtual three-dimensional geometric shape relative to said reference point by redefining a repositioning time period if said value of said at least one joint sensor parameter does not exceed said virtual three-dimensional geometric shape around said tool flange, wherein said repositioning time period defines a time period starting from when said robot controller is switched to free-drive mode of operation or when the position of said virtual three-dimensional geometric shape has been redefined.

12. The method according to claim 11, wherein said method comprises the step of fixing the position of said virtual three-dimensional geometric shape relative to a reference point upon receiving said free-drive activation signal.

13. The method according to any one of claims 11 to 12, wherein said method comprises the step of: • redefining said position of said virtual three-dimensional geometric shape relative to a reference point during said free-drive mode of operation.

14. The method according to any one of claims 11 to 12, wherein said method comprises the step of providing robot feedback by said robot controller to said user upon determining whether said value of said at least one joint sensor parameter is within a feedback value related to said virtual three-dimensional geometric shape.

15. The method according to claim 14, wherein said step of providing robot feedback to said user comprises the step of providing a robot force by at least a portion of said robot arm, wherein said robot force is provided in a direction away from said virtual three-dimensional geometric shape.

16. The method of claim 15, wherein the step of providing the robotic force includes the step of increasing the robotic force as the value of the joint sensor parameter approaches the virtual three-dimensional geometric shape.

Citation Information

Patent Citations

  • Method and apparatus for robot teaching

    US20120130541A1

  • Force moment sensor

    US20150204742A1

  • Force-torque sensor

    US4763531A

  • Method for treating tumors near the surface of an organ

    US6212433B1

  • Force / torque sensor, apparatus and method for robot teaching and operation

    WO2014110682A1