CN121398942A - Continuous acceleration detection and compensation for robotic arms - Google Patents

Continuous acceleration detection and compensation for robotic arms

Info

Publication number
CN121398942A
CN121398942A CN202480042776.1A CN202480042776A CN121398942A CN 121398942 A CN121398942 A CN 121398942A CN 202480042776 A CN202480042776 A CN 202480042776A CN 121398942 A CN121398942 A CN 121398942A
Authority
CN
China
Prior art keywords
robotic
robot
robotic arm
inertial measurement
measurement unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202480042776.1A
Other languages
Chinese (zh)
Inventor
卡斯滕·诺曼森·廷斯可夫
鲁内·索-克努森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universal Robots AS
Original Assignee
Universal Robots AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universal Robots AS filed Critical Universal Robots AS
Publication of CN121398942A publication Critical patent/CN121398942A/en
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1628Program controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37388Acceleration or deceleration, inertial measurement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37621Inertia, mass of rotating, moving tool, workpiece, element

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

公开了一种机器人系统,该机器人系统包括:机器人基座和多个机器人关节,每个机器人关节包括关节马达;机器人控制器,该机器人控制器被配置为基于机器人控制程序来控制机械臂的操作;以及惯性测量单元;其中机器人控制器被配置为通过基于动态模型向每个关节马达提供马达控制信号来控制关节马达,该动态模型被配置为基于从惯性测量单元接收的输入来生成马达控制信号,从惯性测量单元接收的输入在动态模型中定义机械臂的操作条件;其中从惯性测量单元接收的输入表示以下各项中的至少一项:由惯性测量单元提供的笛卡尔加速度,或者由惯性测量单元提供的角加速度。

A robot system is disclosed, comprising: a robot base and a plurality of robot joints, each robot joint including a joint motor; a robot controller configured to control the operation of a robotic arm based on a robot control program; and an inertial measurement unit (IMU); wherein the robot controller is configured to control the joint motors by providing motor control signals to each joint motor based on a dynamic model configured to generate the motor control signals based on inputs received from the IMU, the inputs received from the IMU defining the operating conditions of the robotic arm in the dynamic model; wherein the inputs received from the IMU represent at least one of the following: Cartesian acceleration provided by the IMU, or angular acceleration provided by the IMU.

Description

Continuous acceleration detection and compensation for robotic arms
Technical Field
The present invention relates to a robot system, a method of controlling a robotic arm of a robot system, and a computer program product.
Background
Mechanical arms comprising a plurality of robot joints and links, wherein a motor may rotate the joints relative to each other, are known in the robot art. Typically, the robotic arm includes a robotic base that serves as a mounting base for the robotic arm and a robotic tool flange that is attachable to various tools. The robot controller is configured to control the robotic joints to move the robotic tool flange relative to the base. For example, to instruct the robotic arm to execute a plurality of work orders.
Generally, the robot controller is configured to control the robot joint based on a dynamic model of the robotic arm, wherein the dynamic model defines a relationship between a force acting on the robotic arm and an acceleration of the robotic arm resulting therefrom. Typically, the dynamic model includes a kinematic model of the robotic arm, knowledge about the inertia of the robotic arm, and other parameters that affect the motion of the robotic arm. The kinematic model defines the geometric relationships between the different parts of the robotic arm and may include information about the robotic arm (such as the length, size of the joints and links) and may be described, for example, by Denavit-Hartenberg parameters, etc. The dynamic model allows the controller to determine which torques the joint motors will provide in order to move the robot joint, e.g., at a specified speed, acceleration, or in order to maintain the robotic arm in a static pose.
On many robotic arms, various end effectors may be attached to robotic tool flanges such as grippers, vacuum grippers, magnetic grippers, threading lathes, welding equipment, dispensing systems, vision systems, and the like.
In some robots, the robot joints include joint motors having motor shafts configured to rotate an output shaft via robot joint gears. Typically, the output shaft is connected to parts of the robotic arm and is configured to rotate the parts of the robotic arm relative to each other. The complexity of such robot control typically increases when the robot is to operate under challenging operating conditions, such as not being mounted on a stationary and stationary platform.
US 2013/0245125 A1 discloses a safety device for safety use of an industrial robot. An inertial sensor component is attached to a portion of the robotic arm and operates independently of the moving component to make additional measurements of the kinematic state values of the robotic arm and is functionally associated with the at least one safety module.
US 2021/0008710 A1 discloses a mobile robot comprising a movable platform comprising wheels, a manipulator having a base supported by the movable platform, and an arm attached to the base. The movable platform includes internal sensors including inertial sensors. The sensor data provided by the sensor is used by a first control circuit controlling a movement actuator of the movable platform.
WO 2020/228978 A1 discloses a robot with an actuated robotic manipulator comprising a plurality of rigid links connected via joints. The robot includes an inertial measurement unit configured to determine angular velocity information for a given link.
None of the above documents describe a way to control individual robotic joints to take into account challenging operating conditions, and therefore there is a need in the art for more advanced robotic arm control schemes.
Disclosure of Invention
The object of the present invention is to solve the above-mentioned limitations with respect to the prior art or other problems of the prior art. This is achieved by a robotic system comprising a robotic arm comprising a robotic base and a plurality of robotic joints, each of the plurality of joints comprising a joint motor, a robotic controller configured to control operation of the robotic arm based on a robotic control program, and an inertial measurement unit, wherein the robotic controller is configured to control each joint motor of the plurality of robotic joints by providing motor control signals to the joint motor based on a dynamic model, wherein the dynamic model is configured to generate motor control signals based on inputs received from the inertial measurement unit, the inputs received from the inertial measurement unit defining an operating condition of the robotic arm in the dynamic model, wherein the inputs received from the inertial measurement unit represent at least one of a Cartesian acceleration provided by the inertial measurement unit or an angular acceleration provided by the inertial measurement unit.
Thereby providing an advantageous robotic system capable of operating under challenging operating conditions. Robotic systems are advantageous for a variety of reasons.
An Inertial Measurement Unit (IMU) allows both cartesian acceleration and angular acceleration to be sensed, which allows the robotic system to determine the operating conditions of the robotic arm. For example, the input provided by the IMU may enable the robotic system to determine an orientation of the robotic arm relative to a direction of gravity, or at least an orientation of a portion of the robotic arm relative to a direction of gravity. In addition, the inputs provided by the IMU may be used to determine other conditions related to the operation of the robotic arm, such as other accelerations of the base of the robotic arm that may occur if the robotic arm is mounted to a moving object.
By providing input from the IMU to the dynamic model of the robotic system and generating motor control signals based on the input, the following may be achieved:
First, the integrator (the person setting up the robotic system for a particular application) does not have to provide information in the robotic controller about the installation of the robotic arm. Thus, the error source may be removed during setup of the robotic system, and thus a more fail-safe setup of the robotic system may be achieved.
Second, the mounting location of the robot may be allowed to move without negatively affecting the mobility and safety of the robotic arm. Thus, when the robotic arm is mounted on an external axis, the robotic system may still function as intended even without any communication setup.
Third, the robotic system may be able to detect when the mounting of the robotic arm becomes loose before the robotic arm is completely detached. Thus, the robot system can stop execution of the robot control program before the robot arm drops off, thereby providing a safer robot system.
Fourth, the robotic system no longer has to treat gravity as a static parameter that is only changed when the user defines, for example, "the robotic arm is now mounted at a 45 degree angle or upside down", but rather senses gravity and causes the robotic system to react accordingly. Thus, the robotic system can always know what is expected in terms of joint control, and the robotic system can become safe without being exposed to false positives introduced by movement of the entire robotic arm.
Fifth, the utilization rate of the robot system is improved. The present system allows the use of robotic arms in environments heretofore not possible. Such conditions include, but are not limited to, offshore conditions, on-board aircraft, on-road and agricultural conditions, and the like, without being limited by the stability of the mounting platform.
In the context of the present disclosure, an Inertial Measurement Unit (IMU) is understood to be any kind of electronic device capable of measuring and reporting acceleration, orientation and angular rate. The IMU may include three accelerometers and three gyroscopes, one for each of the three axes roll, pitch and yaw. Thus, the IMU may provide for the input of data (or sensor data) for each of the six sensors comprising the IMU. IMU may be implemented using any technique known to those skilled in the art, including FOG (fiber optic gyroscope), RLG (ring laser gyroscope) and MEMS (microelectromechanical system).
In the context of the present disclosure, a "dynamic model" is understood as a computer-implemented model capable of modeling the dynamic behavior of a robotic arm. Specifically, the dynamic model defines a relationship between a force acting on the robotic arm and a resulting acceleration of the robotic arm. Thus, the term "dynamic" refers to the ability of a model to model the motion behavior of a robotic arm. The dynamic model may also include a kinematic model of the robotic arm defining geometric relationships between different portions of the robotic arm, such as the length and size of the robotic joints and links, and may be described, for example, by Denavit-Hartenberg parameters, or the like. The dynamic model allows the robot controller to calculate which torque the joint motors should provide to each of the joints to cause the robotic arm to perform the desired movement (target motion) and/or to be arranged in a static pose.
In the context of the present disclosure, an "operating condition" may be understood as a constraint on a dynamic model that is based on what is happening to a real robotic arm modeled by the dynamic model. The conditions are referred to as operational, which means that the conditions describe the conditions of the manipulator in relation to the actual use of the manipulator, i.e. in relation to the operation of the manipulator, such as the orientation of the manipulator, the cartesian acceleration of the manipulator and the angular acceleration of the manipulator. For example, the operating conditions may refer to an orientation of the robot base relative to a direction of gravity, or a movement of the robot base (e.g., if the robotic arm is mounted on a moving platform), such as a linear movement, or (in a frame of reference of the robotic arm) a centrifugal force affecting a circular movement of the robotic arm.
In the context of the present disclosure, a "motor control signal" may be understood as a signal specifying a certain amount of torque to be generated by the joint motor, however, the motor control signal may alternatively be a signal specifying a specific current to be delivered to the joint motor in order to cause the joint motor to generate the required torque.
In the context of the present disclosure, a "robot control program" may be understood as any computer-implemented control program that can be executed by a robot controller to control the operation of a robotic arm. The robot control program may comprise instructions which, when executed by the robot controller, ensure that the robotic arm moves according to a target motion defined by the instructions.
According to one embodiment of the invention, the dynamic model is configured to determine the torque to be generated by the joint motors of the robotic joints of the plurality of robotic joints based on one or more torque contribution factors.
The dynamic model may be capable of determining the torque to be generated by each joint motor of the robotic arm, and depending on the desired motion of the robotic arm, the dynamic model may also determine a plurality of torques to be generated by the plurality of joint motors, respectively. The dynamic model may perform such determination using a formula, such as a formula presented below as an example. The formula may consider one or more torque contribution factors.
In this context, a "torque contribution factor" is understood to be any type of torque around the joints of the robotic arm. Examples of such torque contribution factors include the inertia of the robotic arm, coriolis effects due to rotation of the robotic arm, centripetal torque, gravity, friction, and external forces acting on the robotic arm. The dynamic model may implement any number of such torque contribution factors depending on the particular needs of the robotic arm control. For example, a function may be used to model the torque contribution factors, with each torque contribution factor implemented as a term of the function. Examples of such functions implemented using matrix symbols are disclosed below (however, it should be noted that the skilled person will also be able to implement the functions without using matrix symbols):
Equation 1
In this function, the function is used to determine,Is a vector representing the torque to be generated by the joint motor of the mechanical arm,Is a vector comprising the angular position of the output shaft of the robot joint gear; is a vector comprising a first time derivative of the angular position of the output shaft of the robot joint gear and is thus related to the angular speed of the output shaft; and thus the angular acceleration of the output shaft. Is the inertial matrix of the robotic arm and indicates the mass moment of inertia of the robotic arm as a function of the angular position of the output shaft of the robotic joint gear.Is the coriolis and centripetal torque of the robotic arm as a function of the angular position and angular velocity of the output shaft of the robotic joint gear.Is the gravitational moment acting on the arm as a function of the angular position of the output shaft of the robot joint gear.Is a vector comprising a friction torque acting on the output shaft of the robot joint gear. The friction torque acting on the output shaft depends on the angular velocity of the output shaftHowever, it should be appreciated that the friction torque acting on the output shaft may also depend on other parameters, such as temperature, type of lubricant, load of the robotic arm, position/orientation of the robotic arm, etc.May be provided, for example, as a linear or nonlinear function with interpolation or as a look-up table (LUT), andMay be defined based on, for example, a priori knowledge of the robot, experiments, and/or adaptively updated during operation of the robot. For example, the number of the cells to be processed,Can be obtained during calibration of the robot joint, for example by measuring the total friction torque of the robot joint gears, and assuming that the friction torque only acts on the motor shaft, therefore=0。Is a vector indicating the external torque acting on the output shaft of the robot joint gear. The external torque may be provided, for example, by external forces and/or torques acting on parts of the robotic arm.
From the above examples of dynamic models, it can be seen that some terms of the function use the particular inputs representedAnd. These inputs may be based on inputs provided by the IMU.Representing the cartesian acceleration of the base of the robotic arm,Representing the angular acceleration of the base of the mechanical arm, anIndicating the angular velocity of the base of the robot arm.
The dynamic model may be configured to determine a torque to be generated by joint motors of a robotic joint of the plurality of robotic joints based on a plurality of torque contribution factors.
According to one embodiment, the dynamic model may be configured to determine the torque to be generated by a plurality of joint motors of the plurality of robotic joints based on one or more torque contribution factors.
Determining the torque to be generated by the joint motors or the torque to be generated by the plurality of joint motors based on one or more torque contribution factors, such as the torque contribution factors explained above, is advantageous because the control of the robotic arm may take into account factors related to the motion of the robotic arm (or the base of the robotic arm) and adapt the control signals based thereon to ensure stable control of the robotic arm under various operating conditions.
According to one embodiment, the operating condition is modifiable and arranged to be modified based on an input received from the inertial measurement unit.
The operating conditions of the robotic arm reflected in the dynamic model may be modifiable, which means that the representation of the robotic arm modeled in the dynamic model is modifiable. Changes in dynamics of the robotic arm in real life may be recorded by the inertial measurement unit, and inputs received from the inertial measurement unit may be used to modify (or update) the representation of the robotic arm in the dynamic model. In this way, the robotic system modeled by the dynamic model may be updated over time such that the model reflects the actual condition of the robotic arm at any time. Modifying the operating conditions may be understood as adjusting parameters of the dynamic model, such as adjusting the arguments of functions in the dynamic model, e.g. adjusting the arguments of functions describing the torque contribution factor.
According to one embodiment of the invention, the dynamic model is configured to generate the motor control signal based on the torque determined by the dynamic model.
The robot controller is configured to control each joint motor of the plurality of robot joints based on the dynamic model. The dynamic model may generate a torque to be generated by the joint motors (or a torque to be generated by the plurality of joint motors), and thus, the robot controller may generate one or more motor control signals based on the torque (or torques) generated by the dynamic model.
According to one embodiment of the invention, the input received from the inertial measurement unit is used as a parameter of at least one of the one or more torque contribution factors of the dynamic model.
The dynamic model may be configured in a manner suitable for the particular application of the robotic arm, which means that the relevant torque contribution factors are predefined in the dynamic model, but these factors may depend on one or more particular parameters that are unknown to the model from the beginning. These parameters may be provided based on inputs from the inertial measurement unit during operation of the robotic arm. For example, the torque contribution factor may depend on a cartesian acceleration of the base of the robotic arm, and the torque contribution factor may depend on an angular acceleration of the base of the robotic arm. In other words, the input provided by the IMU may be used as an argument of the torque contribution factor.
According to one embodiment of the invention, the one or more torque contribution factors comprise factors related to the moment of inertia of the robotic arm.
One of the one or more torque contribution factors may be a factor related to the moment of inertia of the robotic arm. The fact that the robotic system has mass introduces inertia into the system, making control of how the system moves at any given point in time more difficult. The mass may be considered as the object is not willing to respond to the applied force. The heavier the object, the more resistant it is to acceleration and the force required to move the system along the desired trajectory depends on the mass of the object and its current acceleration. In order to control the system effectively, it may be necessary to calculate the moment of inertia so that it can be included in the control signal and counteracted. In this context, the "undesired" mass moment of inertia can be handled by introducing a torque contribution factor related to the mass moment of inertia in the dynamic model. In the example of a dynamic model, the torque contribution factor may be expressed as(See equation 1 above).
According to one embodiment of the invention, the one or more torque contribution factors include factors related to coriolis effect and centripetal torque.
The coriolis effect or coriolis force is the inertia acting on the robot joint due to the rotation of the other robot joint. It is advantageous to consider the coriolis effect because the mechanical arm can be controlled more precisely. In the example of a dynamic model, the torque contribution factor may be expressed as(See equation 1 above). It should be noted that the parameters multiplied on function CMay be implemented in the function C itself. The same torque contribution factor may also be used to take into account the centripetal force generated by the robotic joints accelerating other robotic joints along a curved trajectory. Furthermore, the coriolis factor may take as arguments the cartesian and angular velocities of the base of the robotic arm that may be provided by the inertial measurement unit.
According to one embodiment of the invention, the one or more torque contribution factors include factors related to gravity.
The one or more torque contribution factors may include factors related to gravity. The influence of gravity may exert a torque on the robot joint depending on, for example, the angular position of the output shaft of the robot joint gear. In the example of a dynamic model, the torque contribution factor may be expressed as. As seen in this example of a torque contribution factor related to gravity, the factor may take as arguments the cartesian acceleration and the angular acceleration of the base of the robotic arm, which may be provided by the inertial measurement unit.
According to one embodiment, the factor related to gravity is arranged to take as input argument a cartesian acceleration of the robot base and/or an angular acceleration of the robot base.
According to one embodiment of the invention, the one or more torque contribution factors include factors related to friction.
The one or more torque contribution factors may include factors related to friction, particularly friction of joints of the robotic arm. In the example of a dynamic model, the torque contribution factor may be expressed as. As seen in this example of a friction-related torque contribution factor, the factor takes as an argument a first time derivative of the angular position of the output shaft of the robot joint gear (i.e. the angular speed of the output shaft of the robot joint gear).
According to one embodiment of the invention, the one or more torque contribution factors include factors related to external torque applied to the robotic arm.
The one or more torque contribution factors may include factors related to external torque applied to the robotic arm. Such external torque may be generated if, for example, the robotic arm is performing an operation on the object (such as pushing against the object), or if the robotic arm is lifting a payload.
According to one embodiment, the robot controller comprises a memory on which the dynamic model is stored.
The robot controller may comprise a memory, i.e. a digital memory, on which the dynamic model is stored. In this sense, a dynamic model may be considered a computer-implemented model.
According to one embodiment of the invention, the dynamic model is configured to take as input a target motion provided by the robot control program.
In this context, target motion is understood to be a desired motion or path of the robotic arm. The target motion may for example specify a value for the angular position of the output shaft of the robot joint gear, e.g. a vector as described above with respect to the dynamic modelAnd (3) representing. The target motion may also define the time derivatives (first and second time derivatives) of these angular positions, e.g. by vectors relative to a dynamic modelAndAnd (3) representing. Further, the target motion may define a path or trajectory that the robotic arm and its joints should follow, and the value specified by the target motion may vary over time. It should also be appreciated that the target motion may be provided as a desired motion of a portion of the robotic arm in cartesian space, such as the position of the tool flange relative to the robot base or another reference point. It is advantageous to configure the dynamic model to take as input the target motion provided by the robot control program, as the robotic arm may be operated according to the specific needs of the user of the system.
According to one embodiment of the invention, the dynamic model is a matrix-implemented model.
A model of a matrix implementation is understood to be a model whose underlying physical principles are formulated using matrix symbols. The use of such matrix symbols allows calculations to be performed using matrix calculations, which is advantageous because such calculations are computationally efficient, so that dynamic models can be performed more efficiently by the robot controller, so that faster calculations and more precise control of the robotic arms of the robot system can be achieved.
It should be noted that up to now, acceleration has been interpreted as acceleration of the base of the robotic arm, however, this does not in itself mean that the IMU has to be arranged on (or in) the base of the robotic arm. For example, the IMU may be external to the robotic arm, such as mounted on a platform on which the robotic arm is also mounted, such that the measurements provided by the IMU are still indicative of the condition of the robot base. It may also be the case that the IMU is arranged in other locations of the robot arm than the robot base, for example on a link of the robot arm.
According to one embodiment of the invention, the cartesian acceleration is a cartesian acceleration of the robot base, and wherein the angular acceleration is an angular acceleration of the robot base.
The use of cartesian and angular accelerations as the robot base's cartesian and angular accelerations, respectively, is advantageous because the computational requirements of the robot controller may be reduced. Using such acceleration of the base as input in the dynamic model may be more convenient than using acceleration of other parts of the robotic arm, as such acceleration may be a result of applying torque on the robotic joints of the robotic arm, rather than acceleration due purely to gravity or movement of the entire robotic arm, for example. In other words, if the acceleration is not the acceleration of the base of the robotic arm, the computation by the dynamic model will be much more complex. In addition, using acceleration that represents acceleration of the robot base, more accurate control of the robotic arm may be achieved, e.g., the trajectory of the robotic arm may deviate less from the target motion provided by the robot control program. One way to achieve this is by mounting the inertial measurement unit in (or on) the base of the robotic arm, or on a structure coupled to the base of the robotic arm.
According to one embodiment of the invention, the cartesian acceleration of the robot base is an acceleration of a base reference point with respect to a reference coordinate system, and wherein the angular acceleration is an angular acceleration of the base reference point with respect to the reference coordinate system.
In the context of the present disclosure, a "reference coordinate system" is a coordinate system that has the earth centroid as the origin, such as the earth reference coordinate system. In other words, cartesian acceleration may be defined as the acceleration of the base reference point relative to the earth's centroid, and likewise, angular acceleration may be defined as the angular acceleration of the base reference point relative to the earth's centroid.
According to one embodiment of the invention, the robot system comprises a safety system associated with a plurality of safety parameter ranges, the plurality of safety parameter ranges defining permissible operation of the robotic arm when controlled by the robot controller, wherein the safety system is arranged to monitor one or more safety parameters related to control of the robotic arm and to evaluate the one or more safety parameters with respect to one or more of the plurality of safety parameter ranges to determine whether the monitored one or more safety parameters are within the one or more safety parameter ranges, and wherein one or more of the plurality of safety parameter ranges is calculated based at least in part on input received from the inertial measurement unit.
The robotic system may include a safety system. In the context of the present invention, a "safety system" may be understood as a dedicated safety system implemented using dedicated hardware and/or a software implemented safety function implemented in a robot controller. The safety system may be arranged to monitor specific parameters related to the control of the robotic arm, such as continuously during use operation of the robotic arm, which may be critical to the operational safety of the robotic arm.
An example of a monitored parameter may be the rate of the tool flange. If the rate of the tool flange becomes too high, it may pose a hazard to its surroundings and persons in the vicinity may be severely injured upon collision with the robotic arm. It is therefore advantageous to monitor the rate of the tool flange (i.e. the end of the robotic arm) and to ensure that the rate is within safely defined limits (i.e. within corresponding safety parameters). The velocity of the tool flange can be calculated from knowledge of the kinematics of the robotic arm and the velocity of the joints of the robotic arm. Problems may arise here if the safety parameter ranges are defined based on the assumption of a static robot base. If the robotic arm is mounted to a moving structure, such as on a mobile gantry, there may be movements of the robotic arm that will involve a relative velocity of the tool flange with respect to the robot base that will be outside of a safe parameter range even though the actual velocity of the tool flange with respect to a stationary point in space is within the safe parameter range. This may occur, for example, when the gantry moves the robot base in one direction and the robotic arm moves the tool flange in the opposite direction, and the resulting rate of the tool flange relative to the surrounding environment is lower than allowed. This would be an example of a false positive. However, by calculating a range of safety parameters related to tool flange rates based at least on input received from the IMU, the risk of such false positives may be mitigated. Thus, in this example, the upper limit of the safety parameter range will be higher and the robotic arm will be allowed to perform its desired movement. The opposite case, where the movement of the robotic arm involves a relative velocity of the tool flange with respect to the robot base within a defined safety parameter range, even if the actual velocity of the tool flange with respect to the static point in space is outside the safety parameter range, can be alleviated by the present invention. This may occur, for example, when the gantry moves the robot base in one direction and the robotic arm moves the tool flange in the same direction and the resulting rate of the tool flange relative to the surrounding environment is higher than allowed, even though the rate of the tool flange relative to the robot base is within safe parameters. This would be an example of a missing report. However, by calculating a range of safety parameters related to tool flange rates based at least on input received from the IMU, the risk of such false negatives occurring can be mitigated. Thus, in this example, the upper limit of the safety parameter range will be lower and the robotic arm may be controlled such that the movement of the robotic arm is within the specified safety limits.
Another example of a monitored parameter may be joint angle. If one or more joints of the robotic arm reach certain values, there may be a risk of the robotic arm tipping over. However, there may also be a risk of false positives when evaluating such security parameters with respect to corresponding security parameter ranges. For example, if the base of the robotic arm is moving and is tilted, for example, in one direction, there may be situations where the robotic joint may take other forbidden angles (forbidden if calculated based on the assumption of a static robotic base) without imposing a risk of the robotic arm tipping over. Also, by calculating a range of security parameters related to joint angles based on input received from the IMU, the risk of such false positives may be mitigated.
Yet another example of a monitored parameter may be a tool flange position. It is possible that there are certain limitations on the location in space where the robotic arm can operate. For example, an integrator of a robotic system may define a volume in space in which a robotic arm is allowed to move. Based on the kinematics of the robotic arm, the robotic system can always deduce the position of the tool flange of the robotic arm in space. However, also if the base of the robotic arm is assumed to be static, there may be situations where the system may misinterpret the tool flange as being outside of the positional limits, even if this is not actually the case (e.g., where the base of the robotic arm is tilted). Also, by calculating a range of safety parameters related to the position of the tool flange based on input received from the IMU, the risk of such false positives may be mitigated.
Still other examples of monitored parameters may include gear constant (output rate is a fixed multiple of input rate in the gears of the robot joints), gear rate (e.g., if an erroneous payload is submitted to the robot system, the robotic arm may generate excessive torque, resulting in excessive gear rate).
The use of inputs from the inertial measurement unit in calculating the plurality of safety parameter ranges is advantageous because the safety parameter ranges may better reflect actual limits of the robotic arm with respect to a particular safety parameter. Thus, it may be avoided that the safety system detects that the safety parameter is outside the corresponding safety parameter range, whereas in practice the operation of the robot arm is safe. Thus, unnecessary protective or emergency stops of the robotic system due to false alarms may be avoided, thereby reducing downtime of the robotic system.
The calculation of the security parameters may include the use of a dynamic model.
According to one embodiment of the invention, the safety system comprises a protective stopping system implemented in the robot controller, the protective stopping system being associated with a first set of safety parameter ranges of the plurality of safety parameter ranges, wherein the protective stopping system is arranged to monitor one or more safety parameters related to the control of the robot arm and to pause the execution of the robot control program when at least one of the one or more safety parameters is outside a corresponding safety parameter range of the first set of safety parameter ranges.
The safety system may comprise a protective stopping system implemented in the robot controller. A "protective stopping system" is understood to be a system capable of at least terminating the execution of a robot control program when a monitored safety parameter is outside its corresponding safety parameter range. The protective stopping system may terminate execution of the robot control program without shutting off power to the robotic arm. It is advantageous by implementing a protective stopping system in the robot system, as the operation of the robot arm can be stopped without shutting down the robot system, which may require resetting the robot controller. Thus, a user of the system can resume operation of the robotic system after a protective stop rather quickly than if the robotic system was completely shut down.
The protective stopping system may be associated with a first set of safety parameter ranges of the plurality of safety parameter ranges. For example, there may be certain safety parameters related to a protective stopping system.
According to one embodiment of the invention, the safety system comprises an auxiliary system controller associated with a second set of safety parameter ranges of the plurality of safety parameter ranges, wherein the auxiliary system controller is configured to monitor one or more safety parameters related to the control of the robotic arm and to perform an emergency stop of the robotic system when at least one of the one or more safety parameters is outside a corresponding safety parameter range of the second set of safety parameter ranges.
The security system may include an auxiliary system controller. An auxiliary system controller is understood to be a safe controller dedicated to the robotic system and may be physically different from the robotic controller. The auxiliary system controller may also monitor the operation of the robotic arm independently of the robotic controller by monitoring safety parameters and evaluating these safety parameters against corresponding safety parameter ranges. In contrast to the protective stopping system, the auxiliary system controller may perform an emergency stop of the robotic system, which involves completely shutting off power to the robotic arm and the robotic controller.
By providing an auxiliary system controller, a redundant safety system is achieved which is able to monitor safety parameters, evaluate the monitored parameters in relation to the corresponding safety parameter ranges, and shut down the entire robot system when safety parameters are detected outside the corresponding safety parameter ranges, and the auxiliary system controller may be able to perform these actions independently of the robot controller. The auxiliary system controller may be associated with a second set of safety parameter ranges of the plurality of safety parameter ranges. For example, there may be certain security parameters associated with the auxiliary system controller. The second set of security parameter ranges may be different from the first set of security parameters.
An advantageous safety system is thereby provided, which is redundant in that it can be operated independently of the robot controller and independently of a possible protective stopping system implemented in the robot controller. In this regard, the auxiliary system controller may overrule control of the robot controller.
According to one embodiment of the invention, the robotic system is configured to receive an input by a user of the robotic system, the input defining a target motion of the robotic arm.
The robotic system may advantageously be configured to receive input by a user. For example, a user of the robotic system may provide input to the robotic system using a robotic controller (e.g., using an interface device associated with the controller, such as a teach pendant). The input provided by the user may define a target motion of the robotic arm. The target motion may define an expected movement of one or more robotic joints of the robotic arm. The target movement may advantageously be considered by the robot controller and using a dynamic model, the robot controller may be able to calculate the necessary torque to be provided by the respective joint motor in order to complete the target movement under the constraints of the operating conditions given by the input provided by the inertial measurement unit. By using a dynamic model to take into account the target movement, the target movement may be performed even under conditions such as when the robot base is moving, tilting or even accelerating.
According to one embodiment, the robotic arm is retrofitted to a support structure.
The robotic arm may be retrofitted to the support structure. In the context of the present disclosure, a "support structure" may be understood as any type of structure capable of supporting a robotic arm. The support structure is a non-stationary structure, which means that the support structure is different from the floor of the building or from the ground, for example if the robotic arm is operating outside. Examples of support structures may include structures such as tables and work tables, but also structures with transport components (e.g., wheels), such as carts, and mobile robots. The robotic arm (e.g., the base of the robotic arm) may be retrofitted to a support structure, which means that the robotic arm is attached or mounted to a support structure that was not attached to the robotic arm at a previous point in time.
According to one embodiment, the support structure is a movable support structure.
Examples of movable support structures include AMR (autonomous mobile robot) or AGV (autonomous guided vehicle), or any other support structure including transport components. Other examples of movable support structures include mounts used in offshore situations, on airplanes or in road and agricultural situations.
According to one embodiment, the mechanical arm comprises the inertial measurement unit.
The robotic arm may include an inertial measurement unit by attaching the inertial measurement unit to the robotic arm, or by housing the inertial measurement unit within a portion of the robotic arm. By means of a robot arm comprising an inertial measurement unit, an advantageous robot arm system can be realized, which can be easily implemented in any application, since the robot arm is self-contained, i.e. does not depend on an externally arranged inertial measurement unit. From the robot integrator's perspective, this may facilitate easier installation of the robotic arm.
According to one embodiment of the invention, the inertial measurement unit is arranged in the base of the robotic arm.
Arranging the IMU in the base of the robotic arm is advantageous because the IMU can directly sense the acceleration of the base. Thus, the data provided by the IMU may better reflect the actual condition of the base of the robotic arm. Arranging the IMU in the base may be understood as the IMU being located within or on the base. For example, the inertial measurement unit may be disposed inside the base or attached to the base.
According to one embodiment of the invention, the inertial measurement unit is a first inertial measurement unit, and wherein the robotic system comprises a second inertial measurement unit.
The system may advantageously comprise two inertial measurement units, including a first inertial measurement unit and a second inertial measurement unit. Having two inertial measurement units is advantageous because the system is still operational even if one of the inertial measurement units is not operational or has been out of calibration. Furthermore, with two inertial measurement units, the measured values provided by the two inertial measurement units can be correlated and the deviations in the measurements observed. Such a deviation may, for example, indicate a calibration error or failure of one of the IMUs. Thus, two inertial measurement units provide redundancy for the present system.
According to one embodiment of the invention, the first inertial measurement unit and the second inertial measurement unit are arranged in the base of the robotic arm.
The two inertial measurement units may advantageously be arranged in the base of the robotic arm. Thus, it should be appreciated that the inertial measurement unit may be disposed in (or on) the base of the robotic arm. For example, the inertial measurement unit may be disposed inside the base or attached to the base.
Furthermore, the present invention relates to a method of controlling a robotic arm of a robotic system, the robotic system comprising a robotic arm comprising a robotic base and a plurality of robotic joints, each of the plurality of robotic joints comprising a joint motor, wherein the method comprises the steps of:
receiving, in a robot controller, input from an inertial measurement unit of the robot system, the input representing at least one of:
The Cartesian acceleration obtained by the inertial measurement unit, or
Angular acceleration obtained by the inertial measurement unit;
Utilizing the received input in a dynamic model of the robot controller, the dynamic model configured to generate a motor control signal based on the received input, the input defining an operating condition of the dynamic model;
Generating one or more motor control signals from the dynamic model;
The one or more generated motor control signals are provided to one or more motors of the plurality of robotic joints to control the robotic arm.
An advantageous method of controlling a robotic arm of a robotic system is thereby provided. Since the method involves generating the motor control signal based on the input received from the inertial measurement unit, the method is advantageous at least for the same reasons as described with respect to the robotic system.
According to one embodiment of the invention, the robotic system is a robotic system according to any one of claims 1 to 19.
Furthermore, the invention relates to a computer program product comprising instructions which, when executed by a robot controller of a robot system, cause the robot controller to perform the steps of the method according to any of claims 20 to 21.
Thereby providing an advantageous computer program product. Since the computer program product performs the steps of the above method when executed by the robot controller of the robot system, the computer program product is advantageous for the same reasons as why the above method is advantageous.
According to an embodiment of the invention, wherein the robotic system is a robotic system according to any one of claims 1 to 19.
The dependent claims describe possible embodiments of the method according to the invention. The advantages and benefits of the present invention are described in the detailed description of the invention.
Drawings
FIG. 1 illustrates a robotic system including a robotic arm;
FIG. 2 illustrates a schematic cross-sectional view of a robotic joint that may be implemented in a robotic system in accordance with various embodiments of the invention;
FIG. 3 illustrates a block diagram of a robotic arm that may be implemented in a robotic system in accordance with various embodiments of the invention;
fig. 4 to 5 illustrate a robot system according to an embodiment of the present invention, and
Fig. 6 to 7 illustrate applications of the robotic system according to various embodiments of the invention.
Detailed Description
The present invention has been described in terms of exemplary embodiments which are merely intended to illustrate the principles of the invention. The skilled person will be able to provide several embodiments within the scope of the claims. Furthermore, it should be understood that where an embodiment includes multiple identical features, only some of the features may be labeled with a reference numeral.
The invention may be implemented as a robotic arm and described in terms of the robotic arm illustrated in fig. 1. The robot arm 101 includes a plurality of robot joints 103a, 103b, 103c, 103d, 103e, 103f and robot links 104b, 104c, 104d connecting the robot base 105 and the robot tool flange 107. The base joint 103a is directly connected with the shoulder joint and is configured to rotate the robotic arm about a base axis 111a (illustrated in dashed lines), as indicated by a rotational arrow 113 a. The shoulder joint 103b is connected to the elbow joint 103c via a robot link 104b, and is configured to rotate the mechanical arm about a shoulder axis 111b (illustrated as a cross indicating an axis), as indicated by a rotation arrow 113 b. The elbow joint 103c is connected to the first wrist joint 103d via a robot link 104c, and is configured to rotate the mechanical arm about an elbow axis 111c (illustrated as a cross indicating an axis), as indicated by a rotation arrow 113 c. The first wrist joint 103d is connected to the second wrist joint 103e via a robot link 104d, and is configured to rotate the mechanical arm about a first wrist axis 111d (illustrated as a cross indicating an axis), as indicated by a rotation arrow 113 d. The second wrist joint 103e is connected to the robot tool joint 103f, and is configured to rotate the robot arm about a second wrist axis 111e (illustrated with a dash-dot line) as indicated by a rotation arrow 113 e. The robotic tool joint 103f includes a robotic tool flange 107 that is rotatable about a tool axis 111f (illustrated in phantom) as indicated by a rotational arrow 113 f. Thus, the illustrated robotic arm is a six-axis robotic arm having six degrees of freedom, however, it should be noted that the present invention may be provided in robotic arms that include fewer or more robotic joints, and that robotic joints may be connected to adjacent robotic joints directly or via robotic links. It should be appreciated that the robotic joints may be identical and/or different, and that the robotic joint gears may be omitted in some of the robotic joints.
Fig. 1 illustrates the direction of gravity 123, which in the case depicted in the figure is in a downward direction with respect to the robotic arm. However, it should be noted that the direction of gravity with respect to the robotic arm may vary depending on the orientation of the robotic arm, and obviously, the direction of gravity with respect to the individual robotic links and robotic joints may vary depending on the orientation and pose of the robotic arm.
Fig. 1 also illustrates that the robot base 105 is associated with a base reference point 114 (indicated by coordinates x Base seat 、y Base seat 、z Base seat ). The coordinates of the base reference point 114 are given relative to a reference coordinate system 116, which in this embodiment is a Cartesian coordinate system having three axes, an x-axis (denoted as x ref in FIG. 1), a y-axis (denoted as y ref in FIG. 1) and a z-axis (denoted as z ref in FIG. 1). In the present embodiment, the reference coordinate system 116 is a coordinate system having the centroid of the earth as the origin. The use of base reference points and their relationship to the reference coordinate system will become more apparent when describing the present invention with respect to fig. 3.
The robotic arm includes at least one robot controller 115 configured to control the robot joints by controlling motor torque provided to the joint motors based on a dynamic model of the robot. The robot controller 115 may be provided as a computer including an interface device 117 that enables a user to control and program the robotic arm. The controller may be provided as an external device as illustrated in fig. 1, or as a device integrated into the robotic arm. The interface device may for example be provided as a teach pendant as known in the field of industrial robots, which can communicate with the controller via a wired or wireless communication protocol. The interface device may include, for example, a display 119 and a plurality of input devices 121, such as buttons, sliders, touch pads, joysticks, trackballs, gesture recognition devices, keyboards, and the like. The display may be provided as a touch screen that serves as both a display and an input device.
Fig. 2 illustrates a schematic cross-sectional view of a robotic joint 203. The illustrative robotic joint 203 may reflect any of the robotic joints 103a-103f of the robotic arm 101 of fig. 1. The robotic joint 203 includes a joint motor 209 having a motor shaft 225. The motor shaft 225 is configured to rotate the output shaft 227 via a robot articulation gear 229. The output shaft 227 rotates about the rotation axis 211 (illustrated in phantom) and may be connected to an adjacent part of the robot (not shown). Thus, adjacent parts of the robot may rotate about the rotation axis 211 relative to the robot joint 203, as indicated by the rotation arrow 213. In the illustrated embodiment, the robotic joints include an output flange 231 connected to the output shaft, and the output flange may be connected to an adjacent robotic joint or arm portion of the robotic arm. However, the output shaft may be directly connected to an adjacent part of the robot, or by any other means, such that the adjacent part of the robot can be rotated by the output shaft.
The articulation motor is configured to rotate the motor shaft by applying a motor torque to the motor shaft, as is known in the art of motor control, e.g., based on an indication of the torque applied by the motor shaftIs provided for the motor control signal 233.
The robot joint gear 229 forms a transmission system configured to transfer torque provided by the motor shaft to the output shaft, for example, to provide a gear ratio between the motor shaft and the output shaft. The robot joint gear may be provided, for example, as a spur gear, a planetary gear, a bevel gear, a worm gear, a strain wave gear, or other type of transmission system.
The robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position q of the output shaft and the angular position Θ of the motor shaft. For example, the angular position of the output shaft may be indicated by an output encoder 235 that provides an output encoder signal 236 indicative of the angular position of the output shaft relative to the robotic joint. Similarly, the angular position of the motor shaft may be provided by an input encoder 237 that provides an input encoder signal 238 indicative of the angular position of the motor shaft relative to the robot joint. The output encoder 235 and the input encoder 237 may be any encoder capable of indicating the angular position, speed, and/or acceleration of the output shaft and motor shaft, respectively. The output/input encoder may be configured to obtain the position of the respective shaft based on the position of the encoder wheel 239 disposed on the respective shaft, for example. The encoder wheel may be, for example, an optical encoder wheel or a magnetic encoder wheel as known in the art of rotary encoders. An output encoder indicating the angular position of the output shaft and an input encoder indicating the angular position of the motor shaft make it possible to determine the relationship between the input side (motor shaft) and the output side (output shaft) of the robot joint gear.
The robotic joint may optionally include one or more motor torque sensors 241 that provide a motor torque signal 242 indicative of the torque provided by the motor shaft. For example, the motor torque sensor may be provided as a current sensor that obtains a current through a coil of the articulation motor, whereby the motor torque may be determined as known in the art of motor control. For example, in connection with a multi-phase motor, a plurality of current sensors may be provided to obtain a current through each of the phases of the multi-phase motor, and then the motor torque may be obtained based on orthogonal currents obtained from the phase currents through the park transformation (Park Transformation). Alternatively, other types of sensors may be used to obtain motor torque, such as force-torque sensors, strain gauges, and the like.
Fig. 3 illustrates a simplified block diagram of a robotic arm comprising a plurality of (n) robotic joints 303i, 303i+1. The robot arm may be implemented, for example, similar to the robot arm illustrated in fig. 1, with a plurality of interconnected robot joints, wherein the robot joints may be implemented similar to the robot joints illustrated in fig. 2. It should be understood that some of the robotic joints and robotic links between the robotic joints are omitted for simplicity. The controller is connected to an interface device comprising a display 119 and a plurality of input devices 121 as described in connection with fig. 1. The controller 315 includes a processor 343, a memory 345, and at least one input and/or output port that enables communication with at least one peripheral device.
The controller is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors. Motor control signal 333i 333i+1..333 n. Indicating each joint horse up to the motor torque that should be provided by the motor shaftAnd. The motor control signal may be indicative of a desired motor torque, a desired torque provided by the output shaft, a current provided by the motor coil, or any other signal from which motor torque may be derived. The motor torque signal may be transmitted to a motor control driver (not shown) configured to drive the motor joint with a motor current that produces the desired motor torque. The robot controller is configured to determine the motor torque based on a dynamic model of the robotic arm as known in the art. The dynamic model allows the controller to calculate which torque the joint motors should provide to each of the joint motors to cause the robotic arm to perform the desired movement and/or to be arranged in a static pose. The dynamic model of the robotic arm may be stored in memory 345.
As described in connection with fig. 2, the robotic joint includes an output encoder that provides output encoder signals 336i, 336 i+1..336 n indicative of an angular position q ,i、q,i+1……q,n of the output shaft relative to the respective robotic joint, an input encoder that provides input encoder signals 338i, 338 i+1..338 n indicative of an angular position Θ ,i、Θ,i+1……Θ,n of the motor shaft relative to the respective robotic joint, and a motor torque sensor that provides a torque indicative of that provided by the motor shaft of the respective robotic joint......The motor torque signals 342i, 342i+1. The controller is configured to receive the output encoder signals 336i, 336 i+1..336 n, the input encoder signals 338i, 338 i+1..338 n, and the motor torque signals 342i, 342 i+1..342 n.
The dynamic model of the robotic arm may be obtained by treating the robotic arm as an open kinematic chain having a plurality of (n+1) rigid robotic links and a plurality of (n) revolute robotic joints, the open kinematic chain including an articulation motor configured to rotate at least one of the robotic links.
The configuration of the robotic arm may be characterized by generalized coordinatesWhere q is a vector including the angular position of the output shaft of the robot joint gear, andIs a vector comprising the angular position of the motor shaft as seen in the "space" of the output side of the robot joint gear. Thus:
Wherein the method comprises the steps of Is the true angular position of the motor shaft (e.g., measured by the encoder), and r is the gear ratio of the robot joint gear. This is the symbol used throughout the present application.
Similarly, theIs a vector comprising the torque of the motor shaft 4 as seen in the "space" of the output side of the robot joint gear. Thus:
Wherein the method comprises the steps of Is the true torque of the motor shaft (e.g., measured by a sensor), and r is the gear ratio of the robot joint gear. This is the symbol used throughout the present application.
According to the prior art, a dynamic model seen from the output side of a robot joint gear of a robot arm can be defined as [1]:
Equation 2
Wherein the method comprises the steps ofIs the transmission torque of each of the robot joint gears including the robot joint gear......Is a vector of (2); is a vector comprising the angular position of the output shaft of the robot joint gear; is a vector comprising a first time derivative of the angular position of the output shaft of the robot joint gear and is thus related to the angular speed of the output shaft; is a vector comprising the second time derivative of the angular position of the output shaft of the robot joint gear and is thus related to the angular acceleration of the output shaft. Is the inertial matrix of the robotic arm and indicates the mass moment of inertia of the robotic arm as a function of the angular position of the output shaft of the robotic joint gear.Is the coriolis and centripetal torque of the robotic arm as a function of the angular position and angular velocity of the output shaft of the robotic joint gear.Is the gravitational moment acting on the arm as a function of the angular position of the output shaft of the robot joint gear.
Is a vector comprising a friction torque acting on the output shaft of the robot joint gear. The friction torque acting on the output shaft depends on the angular velocity of the output shaftHowever, it should be appreciated that the friction torque acting on the output shaft may also depend on other parameters, such as temperature, type of lubricant, load of the robotic arm, position/orientation of the robotic arm, etc.May be provided, for example, as a linear or nonlinear function with interpolation or as a look-up table (LUT), andMay be defined based on, for example, a priori knowledge of the robot, experiments, and/or adaptively updated during operation of the robot. For example, the number of the cells to be processed,Can be obtained during calibration of the robot joint, for example by measuring the total friction torque of the robot joint gears, and assuming that the friction torque only acts on the motor shaft, therefore=0。Is a vector indicating the external torque acting on the output shaft of the robot joint gear. The external torque may be provided, for example, by external forces and/or torques acting on parts of the robotic arm. For example, if the tool flange of the robot is subjected to a force exerted byExternal force and/or torque is described, the torque generated at the output shaft of the robot joint becomes:
equation 3
Wherein the method comprises the steps ofIs a transposed manipulator jacobian of a robotic arm, and whereinIs a vector describing the direction and magnitude of external forces and torques relative to the tool flange of the robotic arm.
Next, the dynamic model seen from the input side of the robot joint gear becomes [1]:
Equation 4
Wherein the method comprises the steps ofIs the transmission torque of each of the robot joint gears including the robot joint gear......Is a vector of (2); Is a vector comprising the second time derivative of the angular position of the motor shaft of the joint motor and is thus related to the angular acceleration of the motor shaft. Is a positive-definite diagonal matrix indicative of the mass moment of inertia of the joint motor rotor.Is a vector including friction torque acting on the motor shaft, andIs a vector indicating the torque generated by the joint motor.
Is a vector comprising a friction torque acting on the input shaft of the robot joint gear. The friction torque acting on the input shaft depends on the angular velocity of the input shaftHowever, it should be appreciated that the friction torque acting on the input shaft may also depend on other parameters, such as temperature, lubricant type, load of the robotic arm, position/orientation of the robotic arm, etc.
In general, it should be noted that one or more of the terms in equations 2 and 4 may be omitted depending on how they affect the dynamic model in different ways.
The controller 315 is configured to control the joint motors of the robot joint by providing motor control signals to the joint motors based on a dynamic model configured to generate motor control signals based on input signals received from an Inertial Measurement Unit (IMU) that obtains at least one of:
cartesian acceleration and/or Cartesian velocity of the robot base;
Angular acceleration and/or angular velocity of the robot base;
Wherein Cartesian acceleration of the base And/or Cartesian velocityMay be indicated as a cartesian acceleration and/or a cartesian velocity of the base reference point relative to a reference coordinate system having a cartesian axis X ref、Yref、Zref (see, e.g., base reference point 114 in fig. 1).
For example, the Cartesian acceleration of the base may be indicated as:
Equation 5
Wherein the method comprises the steps ofIs the acceleration of the robot base point in the direction along the X ref axis,Is the acceleration of the robot base point in the direction along the Y ref axis, andIs the acceleration of the robot base point in a direction along the Z ref axis. The X ref axis, the Y ref axis, and the Z ref axis can be seen, for example, in FIG. 1, where these axes are axes of a Cartesian coordinate system with the centroid of the earth as its origin.
Also, the Cartesian velocity of the base may be indicated as:
Equation 6
Wherein the method comprises the steps ofIs the speed of the robot base point in the direction along the X ref axis,Is the speed of the robot base point in the direction along the Y ref axis, andIs the speed of the robot base point in the direction along the Z ref axis.
Angular acceleration of baseAnd/or angular velocityMay be indicated as angular acceleration and/or angular velocity of the base reference point relative to a reference coordinate system having an axis X ref、Yref、Zref. For example, the angular acceleration of the base may be indicated as:
equation 7
Wherein the method comprises the steps ofIs the angular acceleration of the robot base point about the X ref axis,Is the angular acceleration of the robot base point about the Y ref axis, andIs the angular acceleration of the robot base point about the Z ref axis.
Also, the angular velocity of the base may be indicated as:
Equation 8
Wherein the method comprises the steps ofIs the angular velocity of the robot base point about the X ref axis,Is the angular velocity of the robot base point about the Y ref axis, andIs the angular velocity of the robot base point about the Z ref axis.
According to the present invention, the dynamic model of equation 2 may be modified to include at least one of:
cartesian acceleration and/or Cartesian velocity of the robot base;
Angular acceleration and/or angular velocity of the robot base;
Equation 9
Equation 9 (equation 9 is similar to equation 1) illustrates that the vector representing the torque generated by the corresponding robotic joint motor is based on a plurality of torque contribution factors, each term on the right side of the equal sign representing a torque contribution factor. The skilled artisan will readily appreciate that equation 9 may be modified in a variety of ways, such as by modifying the number of torque contribution factors depending on the particular needs of the application of the robotic arm, or by modifying various terms of the equation, such as representing various terms of the equation in a different manner (e.g., vectorMay be incorporated into the terms for coriolis and centripetal torque for the robotic arm).
The IMU may, for example, be provided as an acceleration sensor arranged in the base 105, which is configured to sense an acceleration of the robot base relative to a robot base reference point (e.g., base reference point 114 in fig. 1). The base reference point 114 may also be the location of the IMU. The robot base reference point 114 may form the origin of the robot base coordinate system having a Cartesian axis X Base seat 、Y Base seat 、Z Base seat . The acceleration sensor provides an acceleration signal indicative of an acceleration of the robot base reference point. For example, the acceleration signal may indicate an acceleration vector in a robot base coordinate system:
Equation 10
Wherein the method comprises the steps ofIs the sensed acceleration along the X Base seat axis,Is the sensed acceleration along the Y Base seat axis, andIs the sensed acceleration along the z Base seat axis.
The angular acceleration signal may be indicative of an acceleration vector in a robotic tool flange coordinate system
Equation 11
Wherein the method comprises the steps ofIs the angular acceleration about the x Base seat axis,Is the angular acceleration about the y Base seat axis, andIs the angular acceleration about the z Base seat axis.
In one embodiment of the invention, the dynamic model is based on one or more terms of equation 9.
Fig. 4 illustrates a robotic system 100 according to one embodiment of the invention. The robotic system 100 includes a robotic arm 101 that includes a robotic base 105 and a plurality of robotic joints, each of which includes a robotic joint motor (or simply "joint motor"). The robotic arm 101 depicted in fig. 4 may be substantially similar to the robotic arm depicted in fig. 1, meaning that features associated with the robotic arm 101 disclosed in fig. 1 are also present in the robotic arm on fig. 4. Further, the robotic joint of the robotic arm 101 may be implemented using the robotic joint depicted in fig. 2.
As seen in fig. 4, an inertial measurement unit 447 (abbreviated as "IMU") is disposed in the robot base 105 of the robotic arm 101, and the inertial measurement unit 447 is communicatively coupled to a robot controller 115 configured to control the robotic arm using a robot control program.
The robot controller 115 of the present embodiment stores a dynamic model 449, which may be the dynamic model described with respect to fig. 3, and in particular, the dynamic model described with respect to equation 9 above. By means of the robot controller 115 comprising the dynamic model 449, the robot controller may control each of the robot joint motors by providing motor control signals (see motor control signals 333i, 333i+1..333 n of fig. 3) to each of the robot joint motors required to operate the robotic arm according to the target motion. The robot controller 115 may use the dynamic model 449 to generate these motor control signals.
Thus, the IMU 447 feeds input to the controller 115 and, thus, the controller 115 receives input related to the robot orientation, which may affect the degree of freedom of movement and/or the rate/acceleration of the robotic arm 101 in accordance with the foregoing.
Fig. 5 illustrates a robotic system 100 including two IMUs 447a, 447 b. Two IMUs 447 are advantageous because redundancy is achieved in such a way that if one IMU fails, the controller 115 can continue to operate based on the second IMU. That is, if both IMUs are in communication with the controller 115. The system 100 illustrated in fig. 5 illustrates communication between one IMU 447a and the controller 115 and between a second IMU 447b and an auxiliary system controller 452, such as a security controller. However, it should be noted that the second IMU 447b may be in communication with the controller 115 in addition to the secure controller. Likewise, the first IMU 447a may be in communication with the security controller 451.
Returning to the embodiment illustrated in fig. 5, two separate control systems are illustrated, at least with respect to IMU 447. One control system may be referred to as a process control system (or simply a control system) and one control system may be referred to as a safety control system (or simply a safety system). In such a system 100, the process control system includes a controller 115 and is therefore responsible for normal operation, including the start and stop of the robotic arm 101. The stopping of the operation may include various types of stopping that, when activated, require different actions to resume operation of the robotic arm. Obviously, if the controller does not stop the operation of the robot arm 101, a dangerous situation may occur.
Thus, the implementation of a security system is advantageous. In this context, the safety system is designed to monitor the operation of the robotic arm 101. The safety system may utilize a set of safety system sensors to monitor the robotic arm 101 such that if one of the sensors used by the process control system fails, the safety controller still receives input via the safety sensor monitoring the same parameter that may be used to stop operation of the robotic arm 101. To ensure that the safety controller 451 does not overrule the robot controller 115 unless necessary (e.g., the threshold that causes a safety stop is above/below the threshold of the process controller).
Thus, to ensure that the safety controller 451 is able to perform such "supervision" of the operation of the robotic arm performed by the controller 115 based at least in part on input from the IMU, it is advantageous that the safety controller also receives input from the IMU. It is important for safety reasons that both controllers 115, 451 do not receive input from the same IMU to avoid a single point of failure.
Further, when controlling the robotic arm 101 based at least in part on the IMU data, the IMU data provided to the safety controller 451 ensures that the safety controller does not cease operation of the robot when not needed. This may occur if the controller 115 allows some acceleration based on input from the IMU, which would not be allowed without input from the IMU. Thus, if the controller 115 receives IMU data, it is advantageous for the secure controller to also receive IMU data.
Although fig. 4 and 5 depict a single inertial measurement unit 447 and multiple inertial measurement units 447, respectively, disposed in a robot base, it should be noted that this is one way of carrying out the invention and in practice the inertial measurement units may not need to be disposed within the robot base, but may be disposed on the robot base, or on other parts of the robotic arm.
Fig. 6 and 7 illustrate two of the many possible implementations of the robotic arm 101 that are possible by using the IMU to input data in the control of the robotic arm 101. These implementations may be possible without IMU input, but there is a risk that the robotic arm will not work as intended, for example, due to erroneous torque calculations, and thus there is a risk that the robotic arm will tilt during operation. Note that the auxiliary system controller 451 and associated IMUs discussed with respect to fig. 3 may be implemented in the embodiments illustrated in fig. 6 and 7.
The robot arm 101 illustrated in fig. 6 is mounted on a carriage, i.e., a moving platform. Thus, in addition to the forces acting on the robotic arm during operation (which would be acting on the robotic arm if it were to operate similarly on a stationary and stationary platform), the movement of the robotic arm is also contributing to these forces. Thus, the force component is increased or decreased according to the moving direction of the entire robot arm with respect to the movement of the respective joints. This should be understood to allow forces that would otherwise not be allowed, as the movement of the entire robotic arm is counteracting the forces. In the same manner, forces that would otherwise be allowed may not be allowed based on input from IMU 447 that provides information on the movement of the robotic arm, thereby establishing the force that needs to be added.
Fig. 7 illustrates a robot arm 101 mounted on a moving platform. In this particular example, the mobile platform is an off-road vehicle. As shown, as the vehicle moves, the orientation of the robotic arm relative to the direction of gravity 123 changes as the vehicle moves. The change is recorded by IMU 447 and provided to controller 115. Thus, it is possible in the control to compensate for these varying orientations with respect to the direction of gravity 123 and in this way continue the operation of the robotic arm at a certain distance from the centre of the robotic arm or at a certain rate/acceleration which would otherwise not be allowed. In the same manner, the operation of the robotic arm may be limited by the controller 115 based on input from the IMU, as described above.
Reference to the literature
[1] M. W. Spong, "Modeling and Control of Elastic Joint Robots," Journal of Dynamic Systems, Measurement, and Control, vol. 109, no. 4, 1987, pp. 310-319.
Brief description of the drawings
100 Robot system
101 Mechanical arm
103A to 103f Robot joint
104b-104d Robot connecting rod
105 Robot base
107 Robot tool flange
111a-111f Robot axis
113a-113f Rotary arrow
114 Robot base reference point
115、315 Robot controller
116 Reference coordinate system
117 Interface device
119 Display device
121 Input device
123 Direction of gravity
209 Robot joint motor
211 Rotation axis of output shaft
213 Rotary arrow
225 Motor shaft
227 Output shaft
229 Robot joint gear
231 Output flange
233 Motor control signal
235 Output encoder
236 Outputting encoder signals
237 Input encoder
238 Input encoder signal
239 Encoder wheel
241 Motor torque sensor
242 Motor torque signal
303i-303n Robot joint
333i-333n Motor control signal
336i-336n Outputting encoder signals
338i-338n Input encoder signal
342i-342n Motor torque signal
343 Processor and method for controlling the same
345 Memory device
447 Inertial measurement unit
449 Dynamic model
451 Auxiliary system controller
qi-qn Angular position of output shaft
Θin Angular position of motor shaft

Claims (30)

1. A robotic system, the robotic system comprising:
a robotic arm comprising a robotic base and a plurality of robotic joints, each robotic joint of the plurality of joints comprising a joint motor;
A robot controller configured to control an operation of the robot arm based on a robot control program, and
An inertial measurement unit;
Wherein the robot controller is configured to control each joint motor of the plurality of robot joints by providing motor control signals to the joint motor based on a dynamic model, wherein the dynamic model is configured to generate motor control signals based on inputs received from the inertial measurement unit, the inputs received from the inertial measurement unit defining operating conditions of the robotic arm in the dynamic model;
Wherein the input received from the inertial measurement unit is representative of at least one of the following accelerations:
The Cartesian acceleration provided by the inertial measurement unit, or
Angular acceleration provided by the inertial measurement unit.
2. The robotic system of claim 1, wherein the operating condition is modifiable and arranged to be modified based on input received from the inertial measurement unit.
3. The robotic system of claim 1 or 2, wherein the dynamic model is configured to determine a torque to be generated by joint motors of a robotic joint of the plurality of robotic joints based on one or more torque contribution factors.
4. The robotic system of claim 3, wherein the dynamic model is configured to generate the motor control signal based on the torque determined by the dynamic model.
5. The robotic system of claim 3 or 4, wherein the input received from the inertial measurement unit is used as a parameter of at least one of the one or more torque contribution factors of the dynamic model.
6. The robotic system of any one of claims 3-5, wherein the one or more torque contribution factors include a factor related to a moment of inertia of the robotic arm.
7. The robotic system of any one of claims 3-6, wherein the one or more torque contribution factors include factors related to coriolis effect and centripetal torque.
8. The robotic system of any one of claims 3-7, wherein the one or more torque contribution factors include a factor related to gravity.
9. The robotic system of claim 8, wherein the factor related to gravity is arranged to take as input argument a cartesian acceleration of the robotic base and/or an angular acceleration of the robotic base.
10. The robotic system of any one of claims 3-9, wherein the one or more torque contribution factors include a friction-related factor.
11. The robotic system of any one of claims 3-10, wherein the one or more torque contribution factors include a factor related to an external torque applied to the robotic arm.
12. The robotic system of any one of the preceding claims, wherein the robotic controller comprises a memory on which the dynamic model is stored.
13. The robotic system of any one of the preceding claims, wherein the dynamic model is configured to take as input a target motion provided by the robotic control program.
14. The robotic system of any of the preceding claims, wherein the dynamic model is a matrix-implemented model.
15. The robotic system of any one of the preceding claims, wherein the cartesian acceleration is a cartesian acceleration of the robotic base, and wherein the angular acceleration is an angular acceleration of the robotic base.
16. The robotic system of any one of the preceding claims, wherein the cartesian acceleration of the robotic base is an acceleration of a base reference point relative to a reference coordinate system, and wherein the angular acceleration is an angular acceleration of the base reference point relative to the reference coordinate system.
17. A robotic system as claimed in any preceding claim, wherein the robotic system comprises a safety system associated with a plurality of safety parameter ranges defining permissible operation of the robotic arm when controlled by the robotic controller, wherein the safety system is arranged to monitor one or more safety parameters related to control of the robotic arm and to evaluate the one or more safety parameters relative to one or more of the plurality of safety parameter ranges to determine whether the monitored one or more safety parameters are within the one or more safety parameter ranges, and wherein one or more of the plurality of safety parameter ranges is calculated based at least in part on input received from the inertial measurement unit.
18. The robotic system of claim 17, wherein the safety system comprises a protective stopping system implemented in the robotic controller, the protective stopping system being associated with a first set of safety parameter ranges of the plurality of safety parameter ranges, wherein the protective stopping system is arranged to monitor one or more safety parameters related to control of the robotic arm and is arranged to pause execution of the robotic control program when at least one of the one or more safety parameters is outside a corresponding safety parameter range of the first set of safety parameter ranges.
19. The robotic system of any one of claims 17-18, wherein the safety system comprises an auxiliary system controller associated with a second set of safety parameter ranges of the plurality of safety parameter ranges, wherein the auxiliary system controller is configured to monitor one or more safety parameters related to control of the robotic arm and to perform an emergency stop of the robotic system when at least one of the one or more safety parameters is outside a corresponding safety parameter range of the second set of safety parameter ranges.
20. The robotic system of any one of the preceding claims, wherein the robotic system is configured to receive input by a user of the robotic system, the input defining a target motion of the robotic arm.
21. The robotic system of any one of the preceding claims, wherein the robotic arm is retrofitted to a support structure.
22. The robotic system of claim 21, wherein the support structure is a movable support structure.
23. The robotic system of any one of the preceding claims, wherein the robotic arm comprises the inertial measurement unit.
24. The robotic system of any one of the preceding claims, wherein the inertial measurement unit is disposed in the base of the robotic arm.
25. The robotic system of any one of the preceding claims, wherein the inertial measurement unit is a first inertial measurement unit, and wherein the robotic system comprises a second inertial measurement unit.
26. The robotic system of claim 25, wherein the first inertial measurement unit and the second inertial measurement unit are disposed in the base of the robotic arm.
27. A method of controlling a robotic arm of a robotic system, the robotic system comprising a robotic arm comprising a robotic base and a plurality of robotic joints, each robotic joint of the plurality of robotic joints comprising a joint motor, wherein the method comprises the steps of:
receiving, in a robot controller, input from an inertial measurement unit of the robot system, the input representing at least one of:
The Cartesian acceleration obtained by the inertial measurement unit, or
Angular acceleration obtained by the inertial measurement unit;
utilizing the received input in a dynamic model of the robot controller, the dynamic model configured to generate a motor control signal based on the received input, the input defining an operating condition of the dynamic model;
Generating one or more motor control signals from the dynamic model;
The generated one or more motor control signals are provided to one or more motors of the plurality of robotic joints to control the robotic arm.
28. The method of claim 27, wherein the robotic system is a robotic system according to any one of claims 1 to 26.
29. A computer program product comprising instructions which, when executed by a robot controller of a robot system, cause the robot controller to perform the steps of the method according to any of claims 27 to 28.
30. The computer program product of claim 29, wherein the robotic system is a robotic system according to any one of claims 1 to 26.
CN202480042776.1A 2023-07-05 2024-07-01 Continuous acceleration detection and compensation for robotic arms Pending CN121398942A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DKPA202370360 2023-07-05
DKPA202370360 2023-07-05
PCT/DK2024/050157 WO2025008036A1 (en) 2023-07-05 2024-07-01 Continual acceleration detection and compensation of robot arm

Publications (1)

Publication Number Publication Date
CN121398942A true CN121398942A (en) 2026-01-23

Family

ID=91898835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202480042776.1A Pending CN121398942A (en) 2023-07-05 2024-07-01 Continuous acceleration detection and compensation for robotic arms

Country Status (2)

Country Link
CN (1) CN121398942A (en)
WO (1) WO2025008036A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1401977B1 (en) 2010-09-28 2013-08-28 C N R Consiglio Naz Ricerche ROBOTIC EQUIPMENT WITH IMPROVED SAFETY DEVICE AND CONTROL METHOD FOR THE REAL-TIME VERIFICATION OF KINEMATIC SIZES OF STATE OF ROBOTIC EQUIPMENT.
JP6083145B2 (en) * 2012-07-31 2017-02-22 セイコーエプソン株式会社 Robot control device and robot
EP3117967A1 (en) * 2015-07-15 2017-01-18 ETH Zurich Transparency control method for robotic devices and a control device therefor
JP7147290B2 (en) * 2018-06-26 2022-10-05 セイコーエプソン株式会社 Robots and robotic systems
EP3736090A1 (en) 2019-05-10 2020-11-11 Franka Emika GmbH Joint velocity and joint acceleration estimation for robots
JP7537075B2 (en) 2019-07-09 2024-08-21 セイコーエプソン株式会社 Mobile robot
CN114954724B (en) * 2022-06-07 2023-03-28 山东大学 Motion control method and system of four-foot single-arm operation robot

Also Published As

Publication number Publication date
WO2025008036A1 (en) 2025-01-09

Similar Documents

Publication Publication Date Title
JP5191738B2 (en) Manipulator control method and control system
US20240399581A1 (en) Extendable safety system for robot system
CN112654467B (en) Get the gear stiffness of the robot joint gears of the robot arm
EP3976323B1 (en) Control of a multipurpose robot arm
Arleo et al. Control of quadrotor aerial vehicles equipped with a robotic arm
EP2703130B1 (en) Robot
EP2660013B1 (en) Method of controlling seven-shaft multi-joint robot, control program, and robot control device
US8509950B2 (en) Control apparatus and control method for robot, robot, and control program therefor
US20200306998A1 (en) Multi-Body Controller
US20180345492A1 (en) Direct teaching method of robot
CN112415086B (en) A high-altitude metal pipeline flaw detection system based on teleoperated flying manipulator
CN111479660A (en) Robots including safety systems that ensure stopping time and distance
JP2005242794A (en) Robot control apparatus and robot control method
JP2017507041A (en) Industrial robot safety system
US20160176047A1 (en) Robot
US20150120049A1 (en) Robot, control device, and robot system
US20110087374A1 (en) Robot system
JP2023515598A (en) robot device
JP6990120B2 (en) Robot control device
JP2013144325A (en) Robot apparatus, and failure detection method
CN118859687A (en) Intelligent stable control method and system for bionic transport robot
JPH10128688A (en) Non-interfering control method of robot
CN121398942A (en) Continuous acceleration detection and compensation for robotic arms
US20210146542A1 (en) Control method for robot system
JP2007168053A (en) Teaching method of vertical articulated type robot and industrial robot device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication