[go: up one dir, main page]

WO2025008036A1 - Continual acceleration detection and compensation of robot arm - Google Patents

Continual acceleration detection and compensation of robot arm Download PDF

Info

Publication number
WO2025008036A1
WO2025008036A1 PCT/DK2024/050157 DK2024050157W WO2025008036A1 WO 2025008036 A1 WO2025008036 A1 WO 2025008036A1 DK 2024050157 W DK2024050157 W DK 2024050157W WO 2025008036 A1 WO2025008036 A1 WO 2025008036A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
robot arm
measuring unit
inertial measuring
safety
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
PCT/DK2024/050157
Other languages
French (fr)
Inventor
Carsten Nommensen Tingskov
Rune SØE-KNUDSEN
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 WO2025008036A1 publication Critical patent/WO2025008036A1/en
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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

Definitions

  • the present invention relates to a robot system, a method of controlling a robot arm of a robot system, and a computer program product.
  • Robot arms comprising a plurality of robot joints and links where motors can rotate the joints in relation to each other are known in the field of robotics.
  • the robot arm comprises a robot base which serves as a mounting base for the robot arm and a robot tool flange where to various tools can be attached.
  • a robot controller is configured to control the robot joints to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of working instructions.
  • the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm.
  • the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm.
  • the kinematic model defines a geometric relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or the like.
  • the dynamic model makes it possible for the controller to determine which torques the joint motors shall provide in order to move the robot joints for instance at specified velocity, acceleration or in order to hold the robot arm in a static posture.
  • the robot joint comprises a joint motor having a motor axle configured to rotate an output axle via a robot joint gear.
  • the output axle is connected to and configured to rotate parts of the robot arm in relation to each other. The complicity of such robot control is typically increased when the robot is to operate under challenging operational conditions such as not mounted on a fixed and stationary platform.
  • US 2013/0245825 Al discloses a safety device for the safe use of industrial robots.
  • Inertial sensor means are attached to a part of a robot arm, and the inertial sensor means operate independently of the movement means in order to make additional measurements of kinematic state values of the robot arm and are functionally associated with at least one safety module.
  • US 2021/0008710 Al discloses a mobile robot including a movable platform including wheels, a manipulator having a base supported by the movable platform, and an arm attached to the base.
  • the movable platform comprises internal sensors including an inertial sensor.
  • the sensor data provided by the sensors is used by a first control circuit controlling movement actuators of the movable platform.
  • WO 2020/228978 Al discloses a robot with an actuated robot manipulator comprising a number of rigid body links connected via joints.
  • the robot comprises an inertial measuring unit configured to determine an angular velocity information of a given link.
  • a robot system comprising: a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of joints comprising a joint motor; a robot controller configured to control operation of said robot arm based on a robot control program; and an inertial measuring unit; wherein said robot controller is configured to control each joint motor of said plurality of robot joints by providing a motor control signal to said joint motor based on a dynamic model, wherein said dynamic model is configured to generate motor control signals based on an input received from said inertial measuring unit, said input received from said inertial measuring unit defining an operational condition of said robot arm in said dynamic model; wherein said input received from said inertial measuring unit represents at least one of the following accelerations: a cartesian acceleration provided by said inertial measuring unit, or an angular acceleration provided by said inertial measuring unit.
  • the inertial measuring unit makes it possible to sense both cartesian accelerations and angular accelerations, which makes it possible for the robot system to determine the operational conditions of the robot arm.
  • the input provided by the IMU may enable the robot system to determine an orientation of the robot arm, or at least an orientation of a part of the robot arm, with respect to the direction of gravity.
  • the input provided by the IMU may be used to determine other conditions relating to the operation of the robot arm, for example other accelerations of the base of the robot arm which may occur if the robot arm is mounted to a moving object.
  • an integrator person setting up the robot system for a specific application
  • a source of error may be removed during the setting up of the robot system, and a more fail-safe setup of the robot system may therefore be achieved.
  • the mounting of the robot may be allowed to be moved without negatively impacting the robot arm's capability to move and be safe.
  • the robot system may still function as intended when the robot arm is mounted on an external axis, even without any communication setup.
  • an inertial measuring unit is understood as any kind of electronic device capable of measuring and reporting acceleration, orientation and angular rates.
  • the IMU may comprise three accelerometers and three gyroscopes; one accelerometer and gyroscope for each of the three axes: roll, pitch, and yaw.
  • the IMU may provide input (or sensor data) comprising data of each of the six sensors of the IMU.
  • the IMU may be implemented using any technology known to the skilled person including FOG (Fiber Optic Gyroscope), RLG (Ring laser Gyroscope), and MEMS (Micro Electro-Mechanical Systems).
  • a "dynamic model” is understood as a computer-implemented model which is capable of modelling the dynamic behaviour of the robot arm.
  • the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm.
  • the term “dynamic” refers to the model's capability of modelling motional behaviour of the robot arm.
  • the dynamic model may also comprise a kinematic model of the robot arm defining geometric relationships between different parts of the robot arm such as length and size of the robot joints and links and can for instance be described by Denavit-Hartenberg parameters or the like.
  • the dynamic model makes it possible for the robot controller to calculate which torque the joint motors shall provide to each of the joints to make the robot arm perform a desired movement (a target motion), and/or to be arranged in a static posture.
  • an "operational condition” may be understood as a constraint to the dynamic model, which constraint is based on what is happening to the real robot arm being modelled by the dynamic model.
  • the conditions are referred to as being operational, meaning that the conditions describe circumstances of the robot arm that relate to the actual use of the robot arm, i.e., circumstances relating to the operation of the robot arm such as an orientation of the robot arm, a Cartesian acceleration of the robot arm, and an angular acceleration of the robot arm.
  • an operational condition may refer to the orientation of the robot base with respect to the direction of gravity, or a movement of the robot base (for example if the robot arm is mounted on a moving platform) such as a linear movement, or a circular movement where centrifugal forces affect the robot arm (in a reference system of the robot arm).
  • a "motor control signal” may be understood as a signal specifying a certain amount of torque to be generated by a joint motor, however, the motor control signal may alternatively be a signal which specifies a certain electric current to be delivered to the joint motor in order for the joint motor to generate the required torque.
  • a "robot control program” may be understood as any computer-implemented control program which is capable of being executed by a robot controller with the purpose of controlling operation of a robot arm.
  • the robot control program may comprise instructions which when executed by the robot controller ensures that the robot arm moves according to target motions defined by the instructions.
  • the dynamic model is configured to determine a torque to be generated by a joint motor of a robot joint of said plurality of robot joints based on one or more torque contributing factors.
  • the dynamic model may be able to determine a torque to be generated by an individual joint motor of the robot arm and depending on the required motion of the robot arm, the dynamic model may also determine a plurality of torques to be generated by a plurality of joint motors respectively.
  • the dynamic model may perform such determination using a formula, for example the formula presented below as an example.
  • the formula may take into account one or more torque contributing factors.
  • T joint is a vector denoting the torques to be generated by the joint motors of the robot arm
  • q is a vector comprising the angular position of the output axles of the robot joint gears
  • q is a vector comprising the first time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular velocity of the output axles
  • q is a vector comprising the second time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular acceleration of the output axles.
  • M(q) is the inertia matrix of the robot arm and indicates the mass moments of inertia of the robot arm as a function of the angular position of the output axles of the robot joint gears.
  • C(q,q)q is the Coriolis and centripetal torques of the robot arm as a function of the angular position and angular velocity of the output axle of the robot joint gears.
  • G(q) is the gravity torques acting on the robot arm as a function of the angular position of the output axles of the robot joint gears.
  • F q (q) is a vector comprising the friction torques acting on the output axles of the robot joint gears.
  • the friction torques acting on the output axle depends on angular velocity of the output axle (q); however it is to be understood that the friction torques acting on the output axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc.
  • F q (q) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and F q (q) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation.
  • r ext is a vector indicating the external torques acting on the output axles of the robot joint gears.
  • the external torques can for instance be provided by external forces and/or torques acting on parts of the robot arm.
  • a base denotes the cartesian acceleration of the base of the robot arm
  • a base denotes the angular acceleration of the base of the robot arm
  • base denotes the angular velocity of the base of the robot arm.
  • the dynamic model may be configured to determine a torque to be generated by a joint motor of a robot joint of said plurality of robot joints based on a plurality of torque contributing factors.
  • the dynamic model may be configured to determine torques to be generated by a plurality of joint motors of said plurality of robot joints based on one or more torque contributing factors.
  • Determining a torque to be generated by a joint motor, or torques to be generated by a plurality of joint motors, based on one or more torque contributing factors, such as the torque contributing factors explained above, is advantageous in that the control of the robot arm can take into account factors relating to motion of the robot arm (or base of robot arm) and adapt the control signals on the basis thereof to ensure stable control of the robot arm under various operational conditions.
  • said operational condition is modifiable and arranged to be modified on the basis of input received from said inertial measuring unit.
  • the operational condition of the robot arm reflected in the dynamic model may be modifiable, implying that the representation of the robot arm being modelled in the dynamic model is modifiable. Changes in the dynamics of the robot arm in real life may be recorded by the inertial measuring unit, and the input received from the inertial measuring unit to modify (or update) the representation of the robot arm in the dynamic model. In this way the robot system being modelled by the dynamic model may be updated over time so that the model at any time reflects the actual condition of the robot arm.
  • modifying the operational condition may be understood adjusting parameters of the dynamic model, such as adjusting arguments of functions in the dynamic model, for example adjusting arguments to functions describing torque contributing factors.
  • the dynamic model is configured to generate the motor control signals 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 a joint motor (or torques to be generated by a plurality of joint motors), and accordingly, the robot controller may generate one or more motor control signals based on the torque (or torques) generated by the dynamic model.
  • the input received from said inertial measuring unit is used as a parameter of at least one torque contributing factor of said one or more torque contributing factors of said dynamic model.
  • the dynamic model may be configured in a way suitable for the specific application of the robot arm, meaning that the relevant torque contributing factors are predefined in the dynamic model, but the factors are dependable on one or more specific parameters which are not known to the model ab initia. These parameters may be provided based on input from the inertial measuring unit during operation of the robot arm. For example, a torque contributing factor may be dependable on the cartesian acceleration of the base of the robot arm, and a torque contributing factor may be dependable on the angular acceleration of the base of the robot arm. In other words, the input provided by the IMU may be used as an argument of a torque contributing factor.
  • the one or more torque contributing factors comprises a factor relating to moment of inertia of said robot arm.
  • One of the one or more torque contributing factors may be a factor relating to moment of inertia of the robot arm.
  • Mass can be thought of as an object's unwillingness to respond to applied forces. The heavier something is, the more resistant it is to acceleration, and the force required to move a system along a desired trajectory depends on the object's mass and its current acceleration.
  • the moments of inertia may have to be calculated so that it can be included in the control signal and cancelled out.
  • the "undesired" mass moments of inertia may be dealt with by introducing a torque contributing factor relating to mass moment of inertia in the dynamic model.
  • this torque contributing factor may be expressed as M(q) q (see equation 1 above).
  • the one or more torque contributing factors comprises a factor relating to Coriolis effect and centripetal torque.
  • the Coriolis effect is an inertial force acting on robot joints due to the rotation of other robot joints. Taking into account the Coriolis effect is advantageous in that the robot arm may be controlled more precisely.
  • this torque contributing factor may be expressed as C(q,q,o> base )q (see equation 1 above). It should be noted that the parameter q which is multiplied on the function C may be implemented in the function C itself. The same torque contributing factor may also be used to take account of centripetal forces arising from robot joints accelerating other robot joints along curved trajectories. Also the Coriolis factor may take as arguments the cartesian and angular velocities of the base of the robot arm which may be provided by the inertial measuring unit.
  • the one or more torque contributing factors comprises a factor relating to gravity.
  • the one or more torque contributing factors may comprise a factor relating to gravity.
  • the effect of gravity may impose torques on the robot joints depending on e.g., the angular position of the output axles of the robot joint gears.
  • this torque contributing factor may be expressed as G(q,a base ,a base ) .
  • the factor may take as arguments the cartesian and angular accelerations of the base of the robot arm which may be provided by the inertial measuring unit.
  • the factor relating to gravity is arranged to take as input argument a cartesian acceleration of said robot base and/or an angular acceleration of said robot base.
  • the one or more torque contributing factors comprises a factor relating to friction.
  • the one or more torque contributing factors may comprise a factor relating to friction, specifically friction of the joints of the robot arm.
  • this torque contributing factor may be expressed as F q (q).
  • the factor takes as argument the first time derivative of the angular position of the output axles of the robot joint gears, i.e., the angular velocity of the output axles of the robot joint gears.
  • the one or more torque contributing factors comprises a factor relating to an external torque applied to said robot arm.
  • the one or more torque contributing factors may comprise a factor relating to an external torque applied to the robot arm.
  • an external torque may arise if for example the robot arm is performing an operation to an object, such as pushing against an object, or if the robot arm is lifting a payload.
  • the robot controller comprises a memory storing thereon said dynamic model.
  • the robot controller may comprise a memory, i.e., a digital memory, storing thereon said dynamic model.
  • the dynamic model may be regarded as a computer-implemented model.
  • Using the cartesian acceleration and the angular acceleration as a cartesian acceleration and an angular acceleration of the robot base respectively is advantageous in that the computational requirements of the robot controller may be reduced.
  • Using such accelerations of the base as input in the dynamic model may be more convenient than using accelerations of other parts of the robot arm, as such accelerations may be the result of application of torques on robot joints of the robot arm, and not for example accelerations purely due to gravity or movements of the entire robot arm. In other words, the calculations by the dynamic model would be much more complicated if the accelerations are not accelerations of the base of the robot arm.
  • the risk of such a false positive occurring may be mitigated by calculating the safety parameter range relating to tool flange speed at least on the basis of input received from an IMU.
  • the upper limit of the safety parameter range would be higher, and the robot arm would be allowed to perform its desired motion.
  • the opposite situation where movements of the robot arm involve a relative speed of the tool flange with respect to the robot base is inside the defined safety parameter range, even though the actual speed of the tool flange with respect to a static point in space is outside the safety parameter range, may also be mitigated by the present invention.
  • the robot arm is retrofitted to a support structure.
  • the support structure is a movable support structure.
  • movable support structures include an AMR. (autonomous mobile robot) or an AGV (autonomous guided vehicle), or any other support structure comprising transporting means.
  • AMR autonomous mobile robot
  • AGV autonomous guided vehicle
  • Other examples of movable support structures include mountings used in offshore cases, on planes, or in road- and agricultural cases.
  • the robot arm may comprise the inertial measuring unit by the inertial measuring unit being attached to the robot arm, or by the inertial measuring unit being accommodated within a part of the robot arm.
  • the robot arm comprising the inertial measuring unit may be achieved an advantageous robot arm system which may be easy to implement in any application, as the robot arm is self-contained, i.e., not depending on an externally arranged inertial measuring unit. From a point of view of a robot integrator, this may facilitate a more easy installation of the robot arm.
  • the inertial measuring unit is arranged in said base of said robot arm.
  • Arranging the IMU in the base of the robot arm is advantageous in that the IMU may directly be sensing accelerations of the base. Thus, data provided by the IMU may better reflect the actual conditions of the base of the robot arm.
  • arranging the IMU in the base may be understood that the IMU is located within the base or located on the base.
  • the inertial measuring units may be arranged inside the base or attached to the base.
  • the first inertial measuring unit and said second inertial measuring are arranged in said base of said robot arm.
  • the invention relates to a method of controlling a robot arm of a robot system, said robot system comprising a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor, wherein said method comprises the steps of: receiving, in a robot controller, an input from an inertial measuring unit of said robot system, said input being representative of at least one of: a cartesian acceleration obtained by said inertial measuring unit, or an angular acceleration obtained by said inertial measuring unit; utilizing said received input in a dynamic model of said robot controller, said dynamic model being configured to generate motor control signals based on said received input, said input defining an operational condition of said dynamic model; generating one or more one motor control signal by said dynamic model; providing said one or more generated motor control signals to one or more motors of said plurality of robot joints to control said robot arm.
  • the wherein the robot system is a robot system of any of the claims 1-19.
  • Fig. 1 illustrates a robot system comprising a robot arm
  • fig. 2 illustrates a schematic cross-sectional view of a robot joint which can be implemented in robot systems according to various embodiments of the present invention
  • fig. 3 illustrates a structural diagram of a robot arm which can be implemented in robot systems according to various embodiments of the present invention
  • figs. 4-5 illustrates robot systems according to embodiments of the present invention
  • figs. 6-7 illustrates application of the robot system according to different embodiments of the present invention.
  • the invention can be embodied into a robot arm and is described in view of the robot arm illustrated in fig. 1.
  • the robot arm 101 comprises a plurality of robot joints 103a, 103b, 103c, 103d, 103e, 103f and robot links 104b, 104c, 104d connecting a robot base 105 and a robot tool flange 107.
  • a base joint 103a is connected directly with a shoulder joint and is configured to rotate the robot arm around a base axis Illa (illustrated by a dashed dotted line) as illustrated by rotation arrow 113a.
  • the first wrist joint 103d is connected to a second wrist joint 103e via a robot link 104d and is configured to rotate the robot arm around a first wrist axis 11 Id (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113d.
  • the second wrist joint 103e is connected to a robot tool joint 103f and is configured to rotate the robot arm around a second wrist axis llle (illustrated by a dashed dotted line) as illustrate by rotation arrow 113e.
  • the robot tool joint 103f comprising the robot tool flange 107, which is rotatable around a tool axis 11 If (illustrated by a dashed dotted line) as illustrated by rotation arrow 113f.
  • the illustrated robot arm is thus a six-axis robot arm with six degrees of freedom, however it is noticed that the present invention can be provided in robot arms comprising less or more robot joints, and the robot joints can be connected directly to the neighbor robot joint or via a robot link. It is to be understood that the robot joints can be identical and/or different and that the robot joint gear may be omitted in some of the robot joints.
  • Fig. 1 illustrates a direction of gravity 123, which in the situation depicted in the figure is in a downwards direction with respect to the robot arm.
  • the direction of gravity with respect to the robot arm, may change depending on the orientation of the robot arm, and obviously, the direction of gravity in respect of individual robot links and robot joints may change depending on the orientation and posture of the robot arm.
  • Fig. 1 also illustrates that the robot base 105 is associated with a base reference point 114 (indicated by coordinates Xbase, ybase, Zbase) .
  • the coordinates of the base reference point 114 are given with respect to a reference coordinate system 116, which in the present embodiment is a cartesian coordinate system having three axis: an x-axis (denoted x re f in the fig. 1), a y- axis (denoted y re f in the fig. 1), and a z-axis (denoted z re f in the fig. 1).
  • the reference coordinate system 116 is a coordinate system having as origin the center of mass of the earth.
  • the robot arm comprises at least one robot controller 115 configured to control the robot joints by controlling the motor torque provided to the joint motors based on a dynamic model of the robot.
  • the robot controller 115 can be provided as a computer comprising an interface device 117 enabling a user to control and program the robot arm.
  • the controller can be provided as an external device as illustrated in fig. 1 or as a device integrated into the robot arm.
  • the interface device can for instance be provided as a teach pendent as known from the field of industrial robots which can communicate with the controller via wired or wireless communication protocols.
  • the interface device can for instance comprise a display 119 and a number of input devices 121 such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards etc.
  • the display may be provided as a touch screen acting both as display and input device.
  • Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203.
  • the schematic robot joint 203 can reflect any of the robot joints 103a-103f of the robot arm 101 of fig. 1.
  • the robot joint 203 comprises a joint motor 209 having a motor axle 225.
  • the motor axle 225 is configured to rotate an output axle 227 via a robot joint gear 229.
  • the output axle 227 rotates around an axis of rotation 211 (illustrated by a dashed line) and can be connected to a neighbor part (not shown) of the robot. Consequently, the neighbor part of the robot can rotate in relation to the robot joint 203 around the axis of rotation 211 as illustrated by rotation arrow 213.
  • the robot joint comprises an output flange 231 connected to the output axle and the output flange can be connected to a neighbor robot joint or an arm section of the robot arm.
  • the output axle can be directly connected to the neighbor part of the robot or by any other way enabling rotation of the neighbor part of the robot by the output axle.
  • the joint motor is configured to rotate the motor axle by applying a motor torque to the motor axle as known in the art of motor control, for instance based on a motor control signal 233 indicating the torque, Tcontrol, motor, applied by said motor axle.
  • the robot joint gear 229 forms a transmission system configured to transmit the torque provided by the motor axle to the output axle for instance to provide a gear ratio between the motor axle and the output axle.
  • the robot joint gear can for instance be provided as spur gears, planetary gears, bevel gears, worm gears, strain wave gears or other kind of transmission systems.
  • the robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position, q, of the output axle and an angular position, 0, of the motor axle.
  • the angular position of the output axle can be indicated by an output encoder 235, which provide an output encoder signal 236 indicating the angular position of the output axle in relation to the robot joint.
  • the angular position of the motor axle can be provided by an input encoder 237 providing an input encoder signal 238 indicating the angular position of the motor axle in relation to the robot joint.
  • the output encoder 235 and the input encoder 237 can be any encoder capable of indicating the angular position, velocity and/or acceleration of respectively the output axle and the motor axle.
  • the output/input encoders can for instance be configured to obtain the position of the respective axle based on the position of an encoder wheel 239 arranged on the respective axle.
  • the encoder wheels can for instance be optical or magnetic encoder wheels as known in the art of rotary encoders.
  • the output encoder indicating the angular position of the output axle and the input encoder indicating the angular position of the motor axle makes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear.
  • the robot joints may optionally comprise one or more motor torque sensors 241 providing a motor torque signal 242 indicating the torque provided by the motor axle.
  • the motor torque sensor can be provided as current sensors obtaining the current through the coils of the joint motor whereby the motor torque can be determined as known in the art of motor control.
  • a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor and the motor torque can then be obtained based on the quadrature current obtained from the phase currents through a Park Transformation.
  • the motor torque can be obtained using other kind of sensors for instance force-torque sensors, strain gauges etc.
  • Fig. 3 illustrates a simplified structural diagram of a robot arm comprising a plurality of n number of robot joints 303i, 303i + 1....303n.
  • the robot arm can for instance be embodied like the robot arm illustrated in fig. 1 with a plurality of interconnected robot joints, where the robot joints can be embodied like the robot joint illustrated in fig. 2. It is to be understood that some of the robot joints and robot links between the robot joints have been omitted for sake of simplicity.
  • the controller is connected to an interface device comprising a display 119 and a number of input devices 121, as described in connection with fig.l.
  • the controller 315 comprises a processor 343, a memory 345 and at least one input and/or output port enabling 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.
  • the motor control signals 333i, 333i + 1....333n are indicative of the motor torque ⁇ control, motorj, T control, motor, i+ 1 , and ⁇ control, motor, n, that each joint motor shall provide by the motor axles.
  • the motor control signals can indicate the desired motor torque, the desired torque provided by the output axle, the currents provided by the motor coils or any other signal from which the motor torque can be obtained.
  • the motor torque signals can be sent to a motor control driver (not shown) configured to drive the motor joint with the motor current resulting in the desired motor torque.
  • the robot controller is configured to determine the motor torque based on a dynamic model of the robot arm as known in the prior art.
  • the dynamic model makes it possible for the controller to calculate which torque the joint motors shall provide to each of the joint motors to make the robot arm perform a desired movement and/or be arranged in a static posture.
  • the dynamic model of the robot arm can be stored in the memory 345.
  • the robot joints comprise an output encoder providing output encoder signals 336i, 336i + 1...336n indicating the angular position q,i, q,i+i...q, n of the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal 338i, 338i + 1...338n indicating the angular position of the motor axle 0,i, 0,i+i...0, n in relation to the respective robot joint and a motor torque sensor providing a motor torque signal 342i,342i + 1...342n indicating the torque Tactually, motor,!, Tactually, motor, i+l-.-T actually, motor, n, provided by the motor axle of the respective robot joint.
  • the controller is configured to receive the output encoder signal 336i, 336i + 1...336n, the input encoder signal 338i, 338i + 1...338n and the motor torque signals 342i,342i + 1...342n.
  • the dynamic model of the robot arm can be obtained by considering the robot arm as an open kinematic chain having a plurality of (n + 1) rigid robot links and a plurality of n revolute robot joints, comprising a joint motor configured to rotate at least one robot link.
  • the configuration of robot arm can be characterized by the generalized coordinates (q 0) e K 2W where q is a vector comprising the angular position of the output axles of the robot joint gears and 0 is a vector comprising the angular position of the motor axles as seen in "space" of the output side of the robot joint gear. Consequently: where Q rec is the real angular position of the motor axle (e.g. as measured by an encoder) and r the gear ratio of the robot joint gear. This is the notation used throughout this application.
  • T motor is a vector comprising the torques of the motor axles 4 as seen in "space" of the output side of the robot joint gear. Consequently: where T mo torreai is the real torque of the motor axles (e.g. as measured by sensors) and r the gear ratio of the robot joint gear. This is the notation used throughout this application.
  • q is a vector comprising the angular position of the output axles of the robot joint gears
  • q is a vector comprising the first time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular velocity of the output axles
  • q is a vector comprising the second time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular acceleration of the output axles.
  • M(q) is the inertia matrix of the robot arm and indicates the mass moments of inertia of the robot arm as a function of the angular position of the output axles of the robot joint gears.
  • C(q,q)q is the Coriolis and centripetal torques of the robot arm as a function of the angular position and angular velocity of the output axle of the robot joint gears.
  • G(q) is the gravity torques acting on the robot arm as a function of the angular position of the output axles of the robot joint gears.
  • F q (q) is a vector comprising the friction torques acting on the output axles of the robot joint gears.
  • the friction torques acting on the output axle depends on angular velocity of the output axle (q); however it is to be understood the friction torques acting on the output axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc.
  • F q (q) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and Fq(q) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation.
  • r ext is a vector indicating the external torques acting on the output axles of the robot joint gears.
  • the external torques can for instance be provided by external forces and/or torques acting on parts of the robot arm.
  • T joint is a vector comprising transmission torque Tjoint ... Tj O int,n of each of the robot joint gears
  • 0 is a vector comprising the second time derivative of the angular position of the motor axle of the joint motor and thus relates to the angular acceleration of the motor axle.
  • B is the positive-definite diagonal matrix indicating the mass moments of inertia of the joint motor's rotors.
  • F 0 (0) is a vector comprising the friction torques acting on the motor axles and T mot or is a vector indicating the torque generated by the joint motors.
  • F 0 (0) is a vector comprising the friction torques acting on the input axles of the robot joint gears.
  • the friction torques acting on the input axle depends on angular velocity of the input axle (0) ; however, it is to be understood the friction torques acting on the input axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc.
  • the controller 315 is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors based on a dynamic model that is configured to generate the motor control signals based on an input signal received from an Inertia Measuring Unit obtaining (IMU) at least one of:
  • the cartesian acceleration base and/or the cartesian velocity v base of the base can be indicated as the cartesian acceleration and/or the cartesian velocity of a base reference point in relation to a reference coordinate system with cartesian axis X re f, Yref, Z re f (see for example base reference point 114 in figure 1).
  • the cartesian acceleration of the base can be indicated as: where is the acceleration of the robot base point in a direction along the
  • Xref axis, a y e base is the acceleration of the robot base point in a direction along the Yref axis and a ⁇ ase is the acceleration of the robot base point in a direction along the Zref axis.
  • the Xref axis, Yref axis and Zref axis can for example be seen in fig. 1, where these are axes of a cartesian coordinate system having the earth's center of mass as its origin.
  • the cartesian velocity of the base can be indicated as: where v x re base is the velocity of the robot base point in a direction along the Xref axis, v re base is the velocity of the robot base point in a direction along the Yref axis and v z re ⁇ ase is the velocity of the robot base point in a direction along the Zref axis.
  • the angular acceleration a base and/or the angular velocity c base of the base can be indicated as the angular acceleration and/or the angular velocity of a base reference point in relation to a reference coordinate system with axis Xref, Yref, Zref.
  • the angular acceleration of the base can be indicated as: cceleration of the robot base point around the Xref axis, a y e base is the angular acceleration of the robot base point around the Yref axis and a z re ⁇ ase is the angular acceleration of the robot base point around the Zref axis.
  • the angular velocity of the base can be indicated as: where ⁇ e / ase is the angular velocity of the robot base point around the Xref axis, ⁇ base is the angular velocity of the robot base point around the Yref axis and ⁇ base is the angular velocity of the robot base point around the Zref axis.
  • Equation 9 (eq. 9 similar to eq. 1) illustrates that the vector denoting the torques to be generated by respective robot joint motors is based on a number of torque contributing factors, each term to the right of the equal sign representing a torque contributing factor.
  • eq. 9 can be modified in a number of ways such as by modifying the number of torque contributing factors depending on specific needs of the application of the robot arm, or by modifying the individual terms of the equation such as representing the various terms of the equation differently (for example the vector q can be incorporated into the term for the Coriolis and centripetal torques of the robot arm).
  • the acceleration signal can indicate an acceleration vector A b ⁇ or in the robot base coordinate system: where Censor is the sensed acceleration along the Xbase axis, A ⁇ y a ⁇ nsor is the sensed acceleration along the Ybase axis and A b z a s s e e nsor is the sensed acceleration along the Zbase axis.
  • the robot arm 101 illustrated in fig. 6 is mounted on a sledge i.e. on a moving platform. Accordingly, in addition to the forces that are acting on the robot arm during operation that would also be acting on the robot arm if it was operation similarly on a fixed and stationary platform, the moving of the robot arm is providing a contribution to these forces. Accordingly, depending on the direction of movement of the entire robot arm relative to the movement of the individual joints, a force component is either added or subtracted. This should be understood as a force may be allowed that was otherwise not allowed because the movement of the entire robot arm is counteracting this force. In the same way a force that otherwise would be allowed may not, based on input from the IMU 447 providing information of movement of the robot arm establishing a force that need to be added.
  • Fig. 7 illustrates a robot arm 101 that is installed on a moving platform.
  • the moving platform is a cross-country vehicle.
  • the orientation of the robot arm with respect to the direction of gravity 123 is changing as the vehicle is moving. This change is registered by the IMU 447 and provided to the controller 115.
  • the control is able to compensate for these varying orientation with respect to the direction of gravity 123 and in this way continue operation of the robot arm in a certain distance from its center or with a certain speed I acceleration that would otherwise not be allowed.
  • the restrictions to the operation of the robot arm may be made by the controller 115 based on input from the IMU as described above.

Landscapes

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

Abstract

Disclosed is a robot system comprising a robot base and a plurality of robot joints, each robot joint comprising a joint motor; a robot controller configured to control operation of the robot arm based on a robot control program; and an inertial measuring unit; wherein the robot controller is configured to control each joint motor by providing a motor control signal to the joint motor based on a dynamic model configured to generate motor control signals based on an input received from the inertial measuring unit, the input received from the inertial measuring unit defining an operational condition of the robot arm in the dynamic model; wherein the input received from the inertial measuring unit represents at least one of the following: a cartesian acceleration provided by the inertial measuring unit, or an angular acceleration provided by the inertial measuring unit.

Description

CONTINUAL ACCELERATION DETECTION AND COMPENSATION OF ROBOT ARM
FIELD OF THE INVENTION
[0001] The present invention relates to a robot system, a method of controlling a robot arm of a robot system, and a computer program product.
BACKGROUND OF THE INVENTION
[0002] Robot arms comprising a plurality of robot joints and links where motors can rotate the joints in relation to each other are known in the field of robotics. Typically, the robot arm comprises a robot base which serves as a mounting base for the robot arm and a robot tool flange where to various tools can be attached. A robot controller is configured to control the robot joints to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of working instructions.
[0003] Typically, the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Often, the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm. The kinematic model defines a geometric relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the controller to determine which torques the joint motors shall provide in order to move the robot joints for instance at specified velocity, acceleration or in order to hold the robot arm in a static posture.
[0004] On many robot arms it is possible to attach various end effectors to the robot tool flange, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc. [0005] In some robots the robot joint comprises a joint motor having a motor axle configured to rotate an output axle via a robot joint gear. Typically, the output axle is connected to and configured to rotate parts of the robot arm in relation to each other. The complicity of such robot control is typically increased when the robot is to operate under challenging operational conditions such as not mounted on a fixed and stationary platform.
[0006] US 2013/0245825 Al discloses a safety device for the safe use of industrial robots. Inertial sensor means are attached to a part of a robot arm, and the inertial sensor means operate independently of the movement means in order to make additional measurements of kinematic state values of the robot arm and are functionally associated with at least one safety module.
[0007] US 2021/0008710 Al discloses a mobile robot including a movable platform including wheels, a manipulator having a base supported by the movable platform, and an arm attached to the base. The movable platform comprises internal sensors including an inertial sensor. The sensor data provided by the sensors is used by a first control circuit controlling movement actuators of the movable platform.
[0008] WO 2020/228978 Al discloses a robot with an actuated robot manipulator comprising a number of rigid body links connected via joints. The robot comprises an inertial measuring unit configured to determine an angular velocity information of a given link.
[0009] None of the above documents describe ways of controlling individual robot joints to take account of challenging operational conditions, and accordingly there is a need in the art for more advanced control schemes of robot arms.
SUMMARY OF THE INVENTION
[0010] The objective of the present invention is to address the abovedescribed limitations with the prior art or other problems of the prior art. This is achieved by a robot system comprising: a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of joints comprising a joint motor; a robot controller configured to control operation of said robot arm based on a robot control program; and an inertial measuring unit; wherein said robot controller is configured to control each joint motor of said plurality of robot joints by providing a motor control signal to said joint motor based on a dynamic model, wherein said dynamic model is configured to generate motor control signals based on an input received from said inertial measuring unit, said input received from said inertial measuring unit defining an operational condition of said robot arm in said dynamic model; wherein said input received from said inertial measuring unit represents at least one of the following accelerations: a cartesian acceleration provided by said inertial measuring unit, or an angular acceleration provided by said inertial measuring unit.
[0011] Thereby is provided an advantageous robot system capable of operating under challenging operational conditions. The robot system is advantageous for a number of reasons.
[0012] The inertial measuring unit (IMU) makes it possible to sense both cartesian accelerations and angular accelerations, which makes it possible for the robot system to determine the operational conditions of the robot arm. For example, the input provided by the IMU may enable the robot system to determine an orientation of the robot arm, or at least an orientation of a part of the robot arm, with respect to the direction of gravity. In addition, the input provided by the IMU may be used to determine other conditions relating to the operation of the robot arm, for example other accelerations of the base of the robot arm which may occur if the robot arm is mounted to a moving object.
[0013] By providing the input from the IMU to the dynamic model of the robot system and generating motor control signals on the basis of this input the following may be achieved:
[0014] First, an integrator (person setting up the robot system for a specific application) does not have to provide information about the mounting of the robot arm in the robot controller. Thus, a source of error may be removed during the setting up of the robot system, and a more fail-safe setup of the robot system may therefore be achieved.
[0015] Second, the mounting of the robot may be allowed to be moved without negatively impacting the robot arm's capability to move and be safe. Thus, the robot system may still function as intended when the robot arm is mounted on an external axis, even without any communication setup.
[0016] Third, the robot system may be able to detect when the mounting of the robot arm gets loose before the robot arm falls completely off. Thereby, the robot system may stop execution of the robot control program before the robot arm falls off, and a safer robot system is thereby provided.
[0017] Fourth, the robot system no longer has to treat gravity like a static parameter that only change when a user defines, for example, that "now the robot arm is mounted in a 45 degrees angle or upside down, but instead senses gravity and make the robot system react accordingly. Thus, the robot system may always know what to expect in terms of joint control, and the robot system may become safe without being exposed to false positives introduced by movement of the whole robot arm.
[0018] Fifth, the above improves utilization of a robot system. The present system makes it possible to utilize a robot arm in environments that so far not have been possible. Such cases include amongst others offshore cases, on planes, on road and agricultural cases without being limited on the stability of the mounting platform.
[0019] In the context of the present disclosure, an inertial measuring unit (IMU) is understood as any kind of electronic device capable of measuring and reporting acceleration, orientation and angular rates. The IMU may comprise three accelerometers and three gyroscopes; one accelerometer and gyroscope for each of the three axes: roll, pitch, and yaw. Thus, the IMU may provide input (or sensor data) comprising data of each of the six sensors of the IMU. The IMU may be implemented using any technology known to the skilled person including FOG (Fiber Optic Gyroscope), RLG (Ring laser Gyroscope), and MEMS (Micro Electro-Mechanical Systems).
[0020] In the context of the present disclosure, a "dynamic model" is understood as a computer-implemented model which is capable of modelling the dynamic behaviour of the robot arm. In particular, the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Thus, the term "dynamic" refers to the model's capability of modelling motional behaviour of the robot arm. The dynamic model may also comprise a kinematic model of the robot arm defining geometric relationships between different parts of the robot arm such as length and size of the robot joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the robot controller to calculate which torque the joint motors shall provide to each of the joints to make the robot arm perform a desired movement (a target motion), and/or to be arranged in a static posture.
[0021] In the context of the present disclosure, an "operational condition" may be understood as a constraint to the dynamic model, which constraint is based on what is happening to the real robot arm being modelled by the dynamic model. The conditions are referred to as being operational, meaning that the conditions describe circumstances of the robot arm that relate to the actual use of the robot arm, i.e., circumstances relating to the operation of the robot arm such as an orientation of the robot arm, a Cartesian acceleration of the robot arm, and an angular acceleration of the robot arm. For example, an operational condition may refer to the orientation of the robot base with respect to the direction of gravity, or a movement of the robot base (for example if the robot arm is mounted on a moving platform) such as a linear movement, or a circular movement where centrifugal forces affect the robot arm (in a reference system of the robot arm).
[0022] 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 a joint motor, however, the motor control signal may alternatively be a signal which specifies a certain electric current to be delivered to the joint motor in order for the joint motor to generate the required torque.
[0023] In the context of the present disclosure, a "robot control program" may be understood as any computer-implemented control program which is capable of being executed by a robot controller with the purpose of controlling operation of a robot arm. The robot control program may comprise instructions which when executed by the robot controller ensures that the robot arm moves according to target motions defined by the instructions.
[0024] According to an embodiment of the invention, the dynamic model is configured to determine a torque to be generated by a joint motor of a robot joint of said plurality of robot joints based on one or more torque contributing factors.
[0025] The dynamic model may be able to determine a torque to be generated by an individual joint motor of the robot arm and depending on the required motion of the robot arm, the dynamic model may also determine a plurality of torques to be generated by a plurality of joint motors respectively. The dynamic model may perform such determination using a formula, for example the formula presented below as an example. The formula may take into account one or more torque contributing factors.
[0026] In the present context, a "torque contributing factor" is understood as any type of torque about a joint of the robot arm. Examples of such torque contributing factors include inertia of the robot arm, the Coriolis effect due to rotation of the robot arm, centripetal torque, gravity, friction, and external forces acting on the robot arm. The dynamic model may implement any number of such torque contributing factors, depending on the specific needs of the robot arm control. For example, the torque contributing factors may be modelled using a function, where individual torque contributing factors are implemented as terms of that function. Below is disclosed an example of such a function implemented using matrix notation (however, it should be noted that a skilled person will also be able to implement the function without use of matrix notation):
Figure imgf000008_0001
In this function, Tjoint is a vector denoting the torques to be generated by the joint motors of the robot arm, q is a vector comprising the angular position of the output axles of the robot joint gears; q is a vector comprising the first time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular velocity of the output axles; q is a vector comprising the second time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular acceleration of the output axles. M(q) is the inertia matrix of the robot arm and indicates the mass moments of inertia of the robot arm as a function of the angular position of the output axles of the robot joint gears. C(q,q)q is the Coriolis and centripetal torques of the robot arm as a function of the angular position and angular velocity of the output axle of the robot joint gears. G(q) is the gravity torques acting on the robot arm as a function of the angular position of the output axles of the robot joint gears. Fq(q) is a vector comprising the friction torques acting on the output axles of the robot joint gears. The friction torques acting on the output axle depends on angular velocity of the output axle (q); however it is to be understood that the friction torques acting on the output axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc. Fq(q) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and Fq(q) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation. For instance, the Fq(q) can be obtained during calibration of the robot joints for instance by measuring the total friction torques of the robot joint gear and assuming that the friction torques act on the motor axle only thus Fq(q)=0. rext is a vector indicating the external torques acting on the output axles of the robot joint gears. The external torques can for instance be provided by external forces and/or torques acting on parts of the robot arm.
[0027] From the above example of a dynamic model, it is seen that some terms of the function use specific inputs denoted abase, abase and a>base - These inputs may be based on inputs provided by the IMU. abase denotes the cartesian acceleration of the base of the robot arm, abase denotes the angular acceleration of the base of the robot arm, and base denotes the angular velocity of the base of the robot arm.
[0028] The dynamic model may be configured to determine a torque to be generated by a joint motor of a robot joint of said plurality of robot joints based on a plurality of torque contributing factors.
[0029] According to an embodiment, the dynamic model may be configured to determine torques to be generated by a plurality of joint motors of said plurality of robot joints based on one or more torque contributing factors. [0030] Determining a torque to be generated by a joint motor, or torques to be generated by a plurality of joint motors, based on one or more torque contributing factors, such as the torque contributing factors explained above, is advantageous in that the control of the robot arm can take into account factors relating to motion of the robot arm (or base of robot arm) and adapt the control signals on the basis thereof to ensure stable control of the robot arm under various operational conditions.
[0031] According to an embodiment, said operational condition is modifiable and arranged to be modified on the basis of input received from said inertial measuring unit.
[0032] The operational condition of the robot arm reflected in the dynamic model may be modifiable, implying that the representation of the robot arm being modelled in the dynamic model is modifiable. Changes in the dynamics of the robot arm in real life may be recorded by the inertial measuring unit, and the input received from the inertial measuring unit to modify (or update) the representation of the robot arm in the dynamic model. In this way the robot system being modelled by the dynamic model may be updated over time so that the model at any time reflects the actual condition of the robot arm. By modifying the operational condition may be understood adjusting parameters of the dynamic model, such as adjusting arguments of functions in the dynamic model, for example adjusting arguments to functions describing torque contributing factors.
[0033] According to an embodiment of the invention, the dynamic model is configured to generate the motor control signals based on the torque determined by the dynamic model.
[0034] 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 a joint motor (or torques to be generated by a plurality of joint motors), and accordingly, the robot controller may generate one or more motor control signals based on the torque (or torques) generated by the dynamic model.
[0035] According to an embodiment of the invention, the input received from said inertial measuring unit is used as a parameter of at least one torque contributing factor of said one or more torque contributing factors of said dynamic model.
[0036] The dynamic model may be configured in a way suitable for the specific application of the robot arm, meaning that the relevant torque contributing factors are predefined in the dynamic model, but the factors are dependable on one or more specific parameters which are not known to the model ab initia. These parameters may be provided based on input from the inertial measuring unit during operation of the robot arm. For example, a torque contributing factor may be dependable on the cartesian acceleration of the base of the robot arm, and a torque contributing factor may be dependable on the angular acceleration of the base of the robot arm. In other words, the input provided by the IMU may be used as an argument of a torque contributing factor. [0037] According to an embodiment of the invention, the one or more torque contributing factors comprises a factor relating to moment of inertia of said robot arm.
[0038] One of the one or more torque contributing factors may be a factor relating to moment of inertia of the robot arm. The fact that robot systems have mass introduces inertia into the system, making control of how the system will move at any given point in time more difficult. Mass can be thought of as an object's unwillingness to respond to applied forces. The heavier something is, the more resistant it is to acceleration, and the force required to move a system along a desired trajectory depends on the object's mass and its current acceleration. To effectively control a system, the moments of inertia may have to be calculated so that it can be included in the control signal and cancelled out. In the present context, the "undesired" mass moments of inertia may be dealt with by introducing a torque contributing factor relating to mass moment of inertia in the dynamic model. In an example of the dynamic model, this torque contributing factor may be expressed as M(q) q (see equation 1 above).
[0039] According to an embodiment of the invention, the one or more torque contributing factors comprises a factor relating to Coriolis effect and centripetal torque.
[0040] The Coriolis effect, or Coriolis force, is an inertial force acting on robot joints due to the rotation of other robot joints. Taking into account the Coriolis effect is advantageous in that the robot arm may be controlled more precisely. In an example of the dynamic model, this torque contributing factor may be expressed as C(q,q,o>base)q (see equation 1 above). It should be noted that the parameter q which is multiplied on the function C may be implemented in the function C itself. The same torque contributing factor may also be used to take account of centripetal forces arising from robot joints accelerating other robot joints along curved trajectories. Also the Coriolis factor may take as arguments the cartesian and angular velocities of the base of the robot arm which may be provided by the inertial measuring unit.
[0041] According to an embodiment of the invention, the one or more torque contributing factors comprises a factor relating to gravity.
[0042] The one or more torque contributing factors may comprise a factor relating to gravity. The effect of gravity may impose torques on the robot joints depending on e.g., the angular position of the output axles of the robot joint gears. In an example of the dynamic model, this torque contributing factor may be expressed as G(q,abase,abase) . As seen in this example of the torque contributing factor relating to gravity, the factor may take as arguments the cartesian and angular accelerations of the base of the robot arm which may be provided by the inertial measuring unit.
[0043] According to an embodiment, the factor relating to gravity is arranged to take as input argument a cartesian acceleration of said robot base and/or an angular acceleration of said robot base.
[0044] According to an embodiment of the invention, the one or more torque contributing factors comprises a factor relating to friction.
[0045] The one or more torque contributing factors may comprise a factor relating to friction, specifically friction of the joints of the robot arm. In an example of the dynamic model, this torque contributing factor may be expressed as Fq(q). As seen in this example of the torque contributing factor relating to friction, the factor takes as argument the first time derivative of the angular position of the output axles of the robot joint gears, i.e., the angular velocity of the output axles of the robot joint gears.
[0046] According to an embodiment of the invention, the one or more torque contributing factors comprises a factor relating to an external torque applied to said robot arm.
[0047] The one or more torque contributing factors may comprise a factor relating to an external torque applied to the robot arm. Such an external torque may arise if for example the robot arm is performing an operation to an object, such as pushing against an object, or if the robot arm is lifting a payload. [0048] According to an embodiment, the robot controller comprises a memory storing thereon said dynamic model.
[0049] The robot controller may comprise a memory, i.e., a digital memory, storing thereon said dynamic model. In that sense, the dynamic model may be regarded as a computer-implemented model.
[0050] According to an embodiment of the invention, the dynamic model is configured to take as input a target motion provided by said robot control program.
[0051] In the present context, a target motion is understood as a desired motion or path of the robot arm. The target motion may for example prescribe values of the angular positions of the output axles of the robot joint gears, for example denoted by the vector q described above in relation to the dynamic model. The target motion may also prescribe time derivatives (first and second time derivatives) of these angular positions, for example denoted by the vectors q and q in relation to the dynamic model. Also, the target motion may define a path or trajectory along which the robot arm, and joints thereof, should follow, the values prescribed by the target motion may vary over time. It is also be to be understood that the target motion can be provided as a desired motion of a part of the robot arm in cartesian space, such as the position of the tool flange in relation to the robot base or another reference point. Configuring the dynamic model to take as input a target motion provided by the robot control program is advantageous in that the robot arm may be operated according to specific needs of a user of the system.
[0052] According to an embodiment of the invention, the dynamic model is a matrix implemented model.
[0053] By a matrix implemented model is understood that the underlying physics of the model is formulated using matrix notation. Using such matrix notation allows for computations to be performed using matrix calculations which is advantageous in that such calculations are computationally efficient, resulting in the possibility of the dynamic model being executed more efficiently by a robot controller, possibly resulting in faster computations and a more precise control of the robot arm of the robot system. [0054] It should be noted that until now the accelerations have been explained as being accelerations of the base of the robot arm, however, this in itself does not imply that the IMU has to be arranged on (or in) the base of the robot arm. For example, the IMU may be external to the robot arm, such as mounted on a platform on which the robot arm is also mounted in such a way that measurements provided by the IMU are still representative of the conditions of the robot base. It may also be the case that the IMU is arranged in other positions of the robot arm than the robot base, for example on a link of the robot arm.
[0055] According to an embodiment of the invention, the cartesian acceleration is a cartesian acceleration of said robot base, and wherein said angular acceleration is an angular acceleration of said robot base.
[0056] Using the cartesian acceleration and the angular acceleration as a cartesian acceleration and an angular acceleration of the robot base respectively is advantageous in that the computational requirements of the robot controller may be reduced. Using such accelerations of the base as input in the dynamic model may be more convenient than using accelerations of other parts of the robot arm, as such accelerations may be the result of application of torques on robot joints of the robot arm, and not for example accelerations purely due to gravity or movements of the entire robot arm. In other words, the calculations by the dynamic model would be much more complicated if the accelerations are not accelerations of the base of the robot arm. Additionally, using the accelerations representing accelerations of the robot base, more accurate control of the robot arm may be achieved, e.g., the trajectory of the robot arm may deviate less from a target motion provided by the robot control program. One way of achieving this is by mounting the inertial measuring unit in (or on) the base of the robot arm, or on a structure coupled to the base of the robot arm.
[0057] According to an embodiment of the invention, the cartesian acceleration of said robot base is an acceleration of a base reference point in relation to a reference coordinate system, and wherein said angular acceleration is an angular acceleration of said base reference point in relation to said reference coordinate system. [0058] In the context of the present disclosure, a "reference coordinate system" is a coordinate system having as origin the center of mass of the earth, for instance an earth reference coordinate system. In other words, the cartesian acceleration may be defined as the acceleration of the base reference point with respect to the center of mass of the earth, and likewise the angular acceleration may be defined as the angular acceleration of the base reference point with respect to the center of mass of the earth.
[0059] According to an embodiment of the invention, the robot system comprises a safety system associated with a plurality of safety parameter ranges defining allowable operations of said robot arm when controlled by said robot controller, wherein said safety system is arranged to monitor one or more safety parameters relating to control of said robot arm and to evaluate said one or more safety parameters with respect to one or more safety parameter ranges of said plurality of safety parameter ranges to determine whether said monitored one or more safety parameters are within said one or more safety parameter ranges, and wherein one or more safety parameters of said plurality of safety parameter ranges are at least partly calculated based on input received from said inertial measuring unit.
[0060] The robot system may comprise 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 which is implemented in the robot controller. The safety system may be arranged to monitor, such as continuously monitor during use operation of the robot arm, specific parameters relating to the control of the robot arm, which parameters may be critical for the operational safety of the robot arm.
[0061] An example of a monitored parameter may be the speed of the tool flange. If the speed of the tool flange becomes too high it may impose a danger to its surroundings, and a nearby person could be severely injured in a collision with the robot arm. Therefore, it is advantageous to monitor the speed of the tool flange (i.e., end of the robot arm) and to ensure that it is within safely defined limits (i.e., within a corresponding safety parameter range). The speed of the tool flange may be calculated through knowledge of the kinematics of the robot arm and the speed of the joints of the robot arm. A problem may arise here if the safety parameter range is defined based on an assumption of a static robot arm base. If, the robot arm is mounted to a moving structure, for example mounted on a moving gantry, there may be movements of the robot arm which would involve a relative speed of the tool flange with respect to the robot base which would be outside the safety parameter range, even though the actual speed of the tool flange with respect to a static point in space is within the safety parameter range. This could for instance occur in a situation where the gantry moves the robot base in one direction and where the robot arm moves the tool flange in the opposite direction and where the resulting speed of the tool flange in relation to the surroundings is below the allowed speed. This would be an example of a false positive. However, the risk of such a false positive occurring may be mitigated by calculating the safety parameter range relating to tool flange speed at least on the basis of input received from an IMU. Thereby, in the present example, the upper limit of the safety parameter range would be higher, and the robot arm would be allowed to perform its desired motion. The opposite situation, where movements of the robot arm involve a relative speed of the tool flange with respect to the robot base is inside the defined safety parameter range, even though the actual speed of the tool flange with respect to a static point in space is outside the safety parameter range, may also be mitigated by the present invention. This could for instance occur in a situation where the gantry moves the robot base in one direction and where the robot arm moves the tool flange in the same direction and such that the resulting speed of the tool flange in relation to the surroundings is above the allowed speed even though the speed of the tool flange in relation to the robot base is within the safety parameter range. This would be an example of a false negative. However, the risk of such a false negative occurring may be mitigated by calculating the safety parameter range relating to tool flange speed at least based on input received from an IMU. Thereby, in the present example, the upper limit of the safety parameter range would be lower, and the robot arm can be controlled such that the movements of the robot arm is within the specified safety limits. [0062] Another example of a monitored parameter may be joint angles. If one or more joints of the robot arm reaches certain values there may a risk of the robot arm toppling over. However, there may also be a risk of false positives when evaluating such safety parameters with respect to a corresponding safety parameter range. If for example, the base of the robot arm is moving, and for example tilting in one direction, there may be cases where the robot joints can assume otherwise forbidden angles (forbidden if calculated based on an assumption of a static robot base) without imposing a risk of tipping over the robot arm. Again, a risk of such a false positive may be mitigated by calculating the safety parameter range relating to joint angles on the basis of input received from an IMU.
[0063] Yet another example of a monitored parameter may be tool flange position. It may be that there are specific limits to the positions in space in which the robot arm may be operated. For example, an integrator of the robot system may define a volume in space in which the robot arm is allowed to move. Based on the kinematics of the robot arm, the robot system may always deduce the position in space of the tool flange of the robot arm. However, again, if an assumption is made that the base of the robot arm is static, there may situations in which the system could mistake the tool flange to be outside the positional limits even though in reality this is not the case (for example if the base of the robot arm is tilted). Again, a risk of such a false positive may be mitigated by calculating the safety parameter range relating to positions of the tool flange on the basis of input received from an IMU.
[0064] Yet other examples of monitored parameters may include gear constants (is the output speed a fixed multiple of the input speed in the gear of a robot joint), gear speeds (for example, if a wrong payload is submitted to the robot system, the robot arm may generate too great torques resulting in too high gear speeds).
[0065] Using input from the inertial measuring unit in calculating the plurality of safety parameter ranges is advantageous in that the safety parameter ranges may better reflect the actual limits of the robot arm in respect of the specific safety parameter. Thereby may be avoided that the safety system detects that a safety parameter is outside the corresponding safety parameter range, when in fact operation of the robot arm is safe. Thus, unnecessary protective stops or emergency stops of the robot system may be avoided due to false positives, resulting in less downtime of the robot system.
[0066] The calculation of the safety parameter may include using the dynamic model.
[0067] According to an embodiment of the invention, the safety system comprises a protective stop system implemented in said robot controller, said protective stop system being associated with a first set of safety parameter ranges of said plurality of safety parameter ranges, wherein said protective stop system is arranged to monitor one or more safety parameters relating to control of said robot arm and to suspend execution of said robot control program when at least one safety parameter of said one or more safety parameters is outside a corresponding safety parameter range of said first set of safety parameter ranges.
[0068] The safety system may comprise a protective stop system which is implemented in the robot controller. By a "protective stop system" is understood a system which is capable of at least terminating execution of the robot control program upon a monitored safety parameter being outside its corresponding safety parameter range. The protective stop system may terminate the execution of the robot control program without shutting down the power to the robot arm. By implementing a protective stop system in the robot system is advantageous in that it may be possible to halt the operation of the robot arm without powering off the robot system which may require a resetting of the robot controller. Thus, a user of the system may fairly quickly resume operation of the robot system after a protective stop compared to situations where the robot system is turned off completely.
[0069] The protective stop system may be associated with a first set of safety parameter ranges of the plurality of safety parameter ranges. For example, there may be specific safety parameters of concern to the protective stop system. [0070] According to an embodiment of the invention, the safety system comprises an auxiliary system controller associated with a second set of safety parameter ranges of said plurality of safety parameter ranges, wherein said auxiliary system controller is configured to monitor one or more safety parameters relating to control of said robot arm and to perform an emergency stop of said robot system when at least one safety parameter of said one or more safety parameters is outside a corresponding safety parameter range of said second set of safety parameter ranges.
[0071] The safety system may comprise an auxiliary system controller. By an auxiliary system controller is understood a controller dedicated with the safety of the robot system, and the auxiliary system controller may be physically distinct from the robot controller. The auxiliary system controller may also, independently from the robot controller monitor operation of the robot arm by monitoring safety parameters and evaluating these against corresponding safety parameter ranges. Contrary to a protective stop system, the auxiliary system controller may perform an emergency stop of the robot system involving a complete shutting off of the power to the robot arm and robot controller.
[0072] By providing an auxiliary system controller is achieved a redundant safety system which is capable of monitoring safety parameters, evaluating the monitored parameters in respect of corresponding safety parameter ranges, and to power off the entire robot system upon detecting a safety parameter being outside a corresponding safety parameter range, and the auxiliary system controller may be capable of performing these acts independently from 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 specific safety parameters of concern to the auxiliary system controller. The second set of safety parameter ranges may be different from the first set of safety parameters.
[0073] Thereby is provided an advantageous safety system which is redundant in that it may operate independently from the robot controller, and independently from a possible protective stop system implemented in the robot controller. In this regard, the auxiliary system controller may overrule the control of the robot controller. [0074] According to an embodiment of the invention, the robot system is configured to receive input by a user of said robot system, said input defining a target motion of said robot arm.
[0075] The robot system may advantageously be configured to receive input by a user. For example, the user of the robot system may provide input to the robot system using the robot controller, for example using an interface device, e.g., a teach pendant, associated with the controller. The input provided by the user may define a target motion of the robot arm . The target motion may define an intended movement of one or more of the robot joints of the robot arm. The target motion may advantageously be taken into account by the robot controller, and using the dynamic model, the robot controller may be able to calculate the necessary torques to be provided by respective joint motors in order to complete the target motion under the constraint of the operational conditions given by the input provided by the inertial measuring unit. By considering a target motion using the dynamic model, it may be possible to perform the target motion even under conditions where for example, the robot base is moving, tilted, or even accelerating.
[0076] According to an embodiment, the robot arm is retrofitted to a support structure.
[0077] The robot arm may be retrofitted to a 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-fixed structure meaning that for example that the support structure is different from the floor of a building or from the ground if the robotic arm is operating outside. Examples of support structures may include structures such as tables and workbenches, but also structures with transport means (for example wheels) such as carts, trolleys and mobile robots. The robot arm, e.g., the base of the robot arm, may be retrofitted to a support structure meaning that the robot arm is attached or mounted to a support structure which at previous point in time was not attached to the robot arm.
[0078] According to an embodiment, the support structure is a movable support structure. [0079] Examples of movable support structures include an AMR. (autonomous mobile robot) or an AGV (autonomous guided vehicle), or any other support structure comprising transporting means. Other examples of movable support structures include mountings used in offshore cases, on planes, or in road- and agricultural cases.
[0080] According to an embodiment, the robot arm comprises the inertial measuring unit.
[0081] The robot arm may comprise the inertial measuring unit by the inertial measuring unit being attached to the robot arm, or by the inertial measuring unit being accommodated within a part of the robot arm. By the robot arm comprising the inertial measuring unit may be achieved an advantageous robot arm system which may be easy to implement in any application, as the robot arm is self-contained, i.e., not depending on an externally arranged inertial measuring unit. From a point of view of a robot integrator, this may facilitate a more easy installation of the robot arm.
[0082] According to an embodiment of the invention, the inertial measuring unit is arranged in said base of said robot arm.
[0083] Arranging the IMU in the base of the robot arm is advantageous in that the IMU may directly be sensing accelerations of the base. Thus, data provided by the IMU may better reflect the actual conditions of the base of the robot arm. By arranging the IMU in the base may be understood that the IMU is located within the base or located on the base. For example, the inertial measuring units may be arranged inside the base or attached to the base.
[0084] According to an embodiment of the invention, the inertial measuring unit is a first inertial measuring unit, and wherein said robot system comprises a second inertial measuring unit.
[0085] The system may advantageously comprise two inertial measuring units including a first inertial measuring unit and a second inertial measuring unit. Having two inertial measuring units is advantageous in that the system may still operate even if one of the inertial measuring units is not working or has gone out of calibration. Furthermore, having two inertial measuring units it becomes possible to correlate measurements provided by the two inertial measuring units and to observe deviations in the measurements. Such deviations may for example be indicative of a calibration error or malfunctioning of one of the IMU's. Thus, two inertial measuring units provide a redundancy to the present system.
[0086] According to an embodiment of the invention, the first inertial measuring unit and said second inertial measuring are arranged in said base of said robot arm.
[0087] The two inertial measuring units may advantageously be arranged in the base of the robot arm. Thereby is understood that the inertial measuring units may be arranged in (or on) the base of the robot arm. For example, the inertial measuring units may be arranged inside the base or attached to the base.
[0088] Moreover, the invention relates to a method of controlling a robot arm of a robot system, said robot system comprising a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor, wherein said method comprises the steps of: receiving, in a robot controller, an input from an inertial measuring unit of said robot system, said input being representative of at least one of: a cartesian acceleration obtained by said inertial measuring unit, or an angular acceleration obtained by said inertial measuring unit; utilizing said received input in a dynamic model of said robot controller, said dynamic model being configured to generate motor control signals based on said received input, said input defining an operational condition of said dynamic model; generating one or more one motor control signal by said dynamic model; providing said one or more generated motor control signals to one or more motors of said plurality of robot joints to control said robot arm.
[0089] Thereby is provided an advantageous method of controlling a robot arm of a robot system. As the method involves generating motor control signals based on input received from an inertial measuring unit, the method is advantageous for at least the same reasons as described in relation to the robot system.
[0090] According to an embodiment of the invention, the robot system is a robot system of any of the claims 1-19.
[0091] Moreover, the invention relates to a computer program product comprising instructions which when executed by a robot controller of a robot system causes the robot controller to carry out the steps of the method according to any of the claims 20-21.
[0092] Thereby is provided an advantageous computer program product. As the computer program product, when executed by a robot controller of a robot system, carries out the steps of the above method, the computer program product is advantageous for the same reasons as to why the above method is advantageous.
[0093] According to an embodiment of the invention, the wherein the robot system is a robot system of any of the claims 1-19.
[0094] The dependent claims describe possible embodiments of the method according to the present invention. The advantages and benefits of the present invention are described in the detailed description of the invention
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 illustrates a robot system comprising a robot arm; fig. 2 illustrates a schematic cross-sectional view of a robot joint which can be implemented in robot systems according to various embodiments of the present invention; fig. 3 illustrates a structural diagram of a robot arm which can be implemented in robot systems according to various embodiments of the present invention; figs. 4-5 illustrates robot systems according to embodiments of the present invention; and figs. 6-7 illustrates application of the robot system according to different embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0095] The present invention is described in view of exemplary embodiments only intended to illustrate the principles of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims. Further it is to be understood that in the case that an embodiment comprises a plurality of the same features then only some of the features may be labeled by a reference number.
[0096] The invention can be embodied into a robot arm and is described in view of the robot arm illustrated in fig. 1. The robot arm 101 comprises a plurality of robot joints 103a, 103b, 103c, 103d, 103e, 103f and robot links 104b, 104c, 104d connecting a robot base 105 and a robot tool flange 107. A base joint 103a is connected directly with a shoulder joint and is configured to rotate the robot arm around a base axis Illa (illustrated by a dashed dotted line) as illustrated by rotation arrow 113a. The shoulder joint 103b is connected to an elbow joint 103c via a robot link 104b and is configured to rotate the robot arm around a shoulder axis 111b (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113b. The elbow joint 103c connected to a first wrist joint 103d via a robot link 104c and is configured to rotate the robot arm around an elbow axis 111c (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113c. The first wrist joint 103d is connected to a second wrist joint 103e via a robot link 104d and is configured to rotate the robot arm around a first wrist axis 11 Id (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113d. The second wrist joint 103e is connected to a robot tool joint 103f and is configured to rotate the robot arm around a second wrist axis llle (illustrated by a dashed dotted line) as illustrate by rotation arrow 113e. The robot tool joint 103f comprising the robot tool flange 107, which is rotatable around a tool axis 11 If (illustrated by a dashed dotted line) as illustrated by rotation arrow 113f. The illustrated robot arm is thus a six-axis robot arm with six degrees of freedom, however it is noticed that the present invention can be provided in robot arms comprising less or more robot joints, and the robot joints can be connected directly to the neighbor robot joint or via a robot link. It is to be understood that the robot joints can be identical and/or different and that the robot joint gear may be omitted in some of the robot joints.
[0097] Fig. 1 illustrates a direction of gravity 123, which in the situation depicted in the figure is in a downwards direction with respect to the robot arm. However, it should be noted that the direction of gravity, with respect to the robot arm, may change depending on the orientation of the robot arm, and obviously, the direction of gravity in respect of individual robot links and robot joints may change depending on the orientation and posture of the robot arm. [0098] Fig. 1 also illustrates that the robot base 105 is associated with a base reference point 114 (indicated by coordinates Xbase, ybase, Zbase) . The coordinates of the base reference point 114 are given with respect to a reference coordinate system 116, which in the present embodiment is a cartesian coordinate system having three axis: an x-axis (denoted xref in the fig. 1), a y- axis (denoted yref in the fig. 1), and a z-axis (denoted zref in the fig. 1). In the present embodiment, the reference coordinate system 116 is a coordinate system having as origin the center of mass of the earth. The use of the base reference point, and its relation to a reference coordinate system will become more clear when the present invention is described in relation to fig. 3.
[0099] The robot arm comprises at least one robot controller 115 configured to control the robot joints by controlling the motor torque provided to the joint motors based on a dynamic model of the robot. The robot controller 115 can be provided as a computer comprising an interface device 117 enabling a user to control and program the robot arm. The controller can be provided as an external device as illustrated in fig. 1 or as a device integrated into the robot arm. The interface device can for instance be provided as a teach pendent as known from the field of industrial robots which can communicate with the controller via wired or wireless communication protocols. The interface device can for instance comprise a display 119 and a number of input devices 121 such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards etc. The display may be provided as a touch screen acting both as display and input device.
[0100] Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203. The schematic robot joint 203 can reflect any of the robot joints 103a-103f of the robot arm 101 of fig. 1. The robot joint 203 comprises a joint motor 209 having a motor axle 225. The motor axle 225 is configured to rotate an output axle 227 via a robot joint gear 229. The output axle 227 rotates around an axis of rotation 211 (illustrated by a dashed line) and can be connected to a neighbor part (not shown) of the robot. Consequently, the neighbor part of the robot can rotate in relation to the robot joint 203 around the axis of rotation 211 as illustrated by rotation arrow 213. In the illustrated embodiment the robot joint comprises an output flange 231 connected to the output axle and the output flange can be connected to a neighbor robot joint or an arm section of the robot arm. However, the output axle can be directly connected to the neighbor part of the robot or by any other way enabling rotation of the neighbor part of the robot by the output axle.
[0101] The joint motor is configured to rotate the motor axle by applying a motor torque to the motor axle as known in the art of motor control, for instance based on a motor control signal 233 indicating the torque, Tcontrol, motor, applied by said motor axle.
[0102] The robot joint gear 229 forms a transmission system configured to transmit the torque provided by the motor axle to the output axle for instance to provide a gear ratio between the motor axle and the output axle. The robot joint gear can for instance be provided as spur gears, planetary gears, bevel gears, worm gears, strain wave gears or other kind of transmission systems. The robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position, q, of the output axle and an angular position, 0, of the motor axle. For instance, the angular position of the output axle can be indicated by an output encoder 235, which provide an output encoder signal 236 indicating the angular position of the output axle in relation to the robot joint. Similarly, the angular position of the motor axle can be provided by an input encoder 237 providing an input encoder signal 238 indicating the angular position of the motor axle in relation to the robot joint. The output encoder 235 and the input encoder 237 can be any encoder capable of indicating the angular position, velocity and/or acceleration of respectively the output axle and the motor axle. The output/input encoders can for instance be configured to obtain the position of the respective axle based on the position of an encoder wheel 239 arranged on the respective axle. The encoder wheels can for instance be optical or magnetic encoder wheels as known in the art of rotary encoders. The output encoder indicating the angular position of the output axle and the input encoder indicating the angular position of the motor axle makes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear.
[0103] The robot joints may optionally comprise one or more motor torque sensors 241 providing a motor torque signal 242 indicating the torque provided by the motor axle. For instance, the motor torque sensor can be provided as current sensors obtaining the current through the coils of the joint motor whereby the motor torque can be determined as known in the art of motor control. For instance, in connection with a multiphase motor, a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor and the motor torque can then be obtained based on the quadrature current obtained from the phase currents through a Park Transformation. Alternatively, the motor torque can be obtained using other kind of sensors for instance force-torque sensors, strain gauges etc.
[0104] Fig. 3 illustrates a simplified structural diagram of a robot arm comprising a plurality of n number of robot joints 303i, 303i + 1....303n. The robot arm can for instance be embodied like the robot arm illustrated in fig. 1 with a plurality of interconnected robot joints, where the robot joints can be embodied like the robot joint illustrated in fig. 2. It is to be understood that some of the robot joints and robot links between the robot joints have been omitted for sake of simplicity. The controller is connected to an interface device comprising a display 119 and a number of input devices 121, as described in connection with fig.l. The controller 315 comprises a processor 343, a memory 345 and at least one input and/or output port enabling communication with at least one peripheral device.
[0105] The controller is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors. The motor control signals 333i, 333i + 1....333n are indicative of the motor torque ^control, motorj, T control, motor, i+ 1 , and ^control, motor, n, that each joint motor shall provide by the motor axles. The motor control signals can indicate the desired motor torque, the desired torque provided by the output axle, the currents provided by the motor coils or any other signal from which the motor torque can be obtained. The motor torque signals can be sent to a motor control driver (not shown) configured to drive the motor joint with the motor current resulting in the desired motor torque. The robot controller is configured to determine the motor torque based on a dynamic model of the robot arm as known in the prior art. The dynamic model makes it possible for the controller to calculate which torque the joint motors shall provide to each of the joint motors to make the robot arm perform a desired movement and/or be arranged in a static posture. The dynamic model of the robot arm can be stored in the memory 345.
As described in connection with fig. 2 the robot joints comprise an output encoder providing output encoder signals 336i, 336i + 1...336n indicating the angular position q,i, q,i+i...q,n of the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal 338i, 338i + 1...338n indicating the angular position of the motor axle 0,i, 0,i+i...0,n in relation to the respective robot joint and a motor torque sensor providing a motor torque signal 342i,342i + 1...342n indicating the torque Tactually, motor,!, Tactually, motor, i+l-.-T actually, motor, n, provided by the motor axle of the respective robot joint. The controller is configured to receive the output encoder signal 336i, 336i + 1...336n, the input encoder signal 338i, 338i + 1...338n and the motor torque signals 342i,342i + 1...342n.
[0106] The dynamic model of the robot arm can be obtained by considering the robot arm as an open kinematic chain having a plurality of (n + 1) rigid robot links and a plurality of n revolute robot joints, comprising a joint motor configured to rotate at least one robot link.
[0107] The configuration of robot arm can be characterized by the generalized coordinates (q 0) e K2W where q is a vector comprising the angular position of the output axles of the robot joint gears and 0 is a vector comprising the angular position of the motor axles as seen in "space" of the output side of the robot joint gear. Consequently:
Figure imgf000028_0001
where Qrec is the real angular position of the motor axle (e.g. as measured by an encoder) and r the gear ratio of the robot joint gear. This is the notation used throughout this application.
[0108] Similar Tmotor is a vector comprising the torques of the motor axles 4 as seen in "space" of the output side of the robot joint gear. Consequently:
Figure imgf000029_0001
where Tmotorreai is the real torque of the motor axles (e.g. as measured by sensors) and r the gear ratio of the robot joint gear. This is the notation used throughout this application.
[0109] According to prior art the dynamic model as seen from the output side of the robot joint gears of the robot arm can be defined as [1] : eq. 2 TjOint = M(q) q + C(q, q)q + G(q) + Fq q) + Text where Tjoint is a vector comprising the transmission torques Tjoint,!... Tjoint, n of each of the robot joint gears; q is a vector comprising the angular position of the output axles of the robot joint gears; q is a vector comprising the first time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular velocity of the output axles; q is a vector comprising the second time derivative of the angular position of the output axles of the robot joint gears and thus relates to the angular acceleration of the output axles. M(q) is the inertia matrix of the robot arm and indicates the mass moments of inertia of the robot arm as a function of the angular position of the output axles of the robot joint gears. C(q,q)q is the Coriolis and centripetal torques of the robot arm as a function of the angular position and angular velocity of the output axle of the robot joint gears. G(q) is the gravity torques acting on the robot arm as a function of the angular position of the output axles of the robot joint gears.
[0110] Fq(q) is a vector comprising the friction torques acting on the output axles of the robot joint gears. The friction torques acting on the output axle depends on angular velocity of the output axle (q); however it is to be understood the friction torques acting on the output axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc. Fq(q) can for instance be provided as linear or nonlinear functions or lookup tables (LUTs) with interpolation, and Fq(q) can be defined based on for instance prior knowledge of the robot, experiments, and/or be adaptively updated during robot operation. For instance, the Fq(q) can be obtained during calibration of the robot joints for instance by measuring the total friction torques of the robot joint gear and assuming that the friction torques act on the motor axle only thus Fq(q)=0. rext is a vector indicating the external torques acting on the output axles of the robot joint gears. The external torques can for instance be provided by external forces and/or torques acting on parts of the robot arm. For instance, if the tool flange of the robot is subject to external forces and/or torques described by Fextl the resulting torques at the output axles of the robot joints becomes: <7- 3 ext ~ J (l) Fext where /T(q) is the transposed manipulator Jacobian of the robot arm and where Fext is a vector describing the direction and magnitude of the external forces and torques in relation to the tool flange of the robot arm.
[0111] Secondly, the dynamic model as seen from the input side of the robot joint gears becomes [1]:
Figure imgf000030_0001
where Tjoint is a vector comprising transmission torque Tjoint ... TjOint,n of each of the robot joint gears; 0 is a vector comprising the second time derivative of the angular position of the motor axle of the joint motor and thus relates to the angular acceleration of the motor axle. B is the positive-definite diagonal matrix indicating the mass moments of inertia of the joint motor's rotors. F0(0) is a vector comprising the friction torques acting on the motor axles and Tmotor is a vector indicating the torque generated by the joint motors.
[0112] F0(0) is a vector comprising the friction torques acting on the input axles of the robot joint gears. The friction torques acting on the input axle depends on angular velocity of the input axle (0) ; however, it is to be understood the friction torques acting on the input axle also can depend on other parameters such as temperatures, type of lubricants, loads to robot arm, position/orientation of the robot arm etc.
[0113] In general, it is noted that one or more of the of the terms in eq.
2 and eq. 4 can be omitted depending on how may differently effect the dynamic model should model.
[0114] The controller 315 is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors based on a dynamic model that is configured to generate the motor control signals based on an input signal received from an Inertia Measuring Unit obtaining (IMU) at least one of:
• the cartesian acceleration and/or the cartesian velocity of the robot base;
• the angular acceleration and/or the angular velocity of the robot base; where the cartesian acceleration base and/or the cartesian velocity vbase of the base can be indicated as the cartesian acceleration and/or the cartesian velocity of a base reference point in relation to a reference coordinate system with cartesian axis Xref, Yref, Zref (see for example base reference point 114 in figure 1).
[0115] For instance, the cartesian acceleration of the base can be indicated as:
Figure imgf000031_0001
where is the acceleration of the robot base point in a direction along the
Xref axis, ay e base is the acceleration of the robot base point in a direction along the Yref axis and a^ase is the acceleration of the robot base point in a direction along the Zref axis. The Xref axis, Yref axis and Zref axis can for example be seen in fig. 1, where these are axes of a cartesian coordinate system having the earth's center of mass as its origin.
And, the cartesian velocity of the base can be indicated as:
Figure imgf000032_0001
where vx re base is the velocity of the robot base point in a direction along the Xref axis, vre base is the velocity of the robot base point in a direction along the Yref axis and vz re^ase is the velocity of the robot base point in a direction along the Zref axis.
[0116] The angular acceleration abase and/or the angular velocity c base of the base can be indicated as the angular acceleration and/or the angular velocity of a base reference point in relation to a reference coordinate system with axis Xref, Yref, Zref. For instance, the angular acceleration of the base can be indicated as:
Figure imgf000032_0002
cceleration of the robot base point around the Xref axis, ay e base is the angular acceleration of the robot base point around the Yref axis and az re^ase is the angular acceleration of the robot base point around the Zref axis. and, the angular velocity of the base can be indicated as:
Figure imgf000032_0003
where ^e/ase is the angular velocity of the robot base point around the Xref axis, ^base is the angular velocity of the robot base point around the Yref axis and ^base is the angular velocity of the robot base point around the Zref axis.
[0117] According to the present invention the dynamic model of equation
2 can be modified to include at least one of:
• the cartesian acceleration and/or the cartesian velocity of the robot base; the angular acceleration and/or the angular velocity of the robot base;
Figure imgf000033_0001
[0118] Equation 9 (eq. 9 similar to eq. 1) illustrates that the vector denoting the torques to be generated by respective robot joint motors is based on a number of torque contributing factors, each term to the right of the equal sign representing a torque contributing factor. A skilled person will readily appreciate that eq. 9 can be modified in a number of ways such as by modifying the number of torque contributing factors depending on specific needs of the application of the robot arm, or by modifying the individual terms of the equation such as representing the various terms of the equation differently (for example the vector q can be incorporated into the term for the Coriolis and centripetal torques of the robot arm).
[0119] The IMU can for instance be provided as an acceleration sensor arranged in the base 105 which is configured to sense the acceleration of the robot base in relation to a robot base reference point (for example base reference point 114 in fig. 1). The base reference point 114 may also be a position of the IMU. The robot base reference point 114 can form the origin of a robot base coordinate system with cartesian axis Xbase, Ybase, Zbase. The acceleration sensor provides an acceleration signal indicating the acceleration of the robot base reference point. For instance, the acceleration signal can indicate an acceleration vector Ab^or in the robot base coordinate system:
Figure imgf000033_0002
where Censor is the sensed acceleration along the Xbase axis, A^y a^nsor is the sensed acceleration along the Ybase axis and Ab z a s s e e nsor is the sensed acceleration along the Zbase axis.
[0120] The angular acceleration signal can indicate an acceleration vector asensor in the robot tool flange coordinate system
Figure imgf000034_0001
where is the angular acceleration around the Xbase axis, aya s s e e nsOr is the angular acceleration around the ybase axis and a^Tnsor is the angular acceleration around the Zbase axis.
[0121] In an embodiment of the invention, the dynamic model is based on one or more terms of eq. 9.
[0122] Fig. 4 illustrates a robot system 100 according to an embodiment of the present invention. The robot system 100 comprises a robot arm 101 comprising a robot base 105 and a plurality of robot joints, each of the robot joints comprising a robot joint motor (or simply a "joint motor"). The robot arm 101 depicted in fig. 4 may substantially resemble the robot arm depicted in fig. 1, meaning that the features relating to the robot arm 101 disclosed in fig. 1 are also present in the robot arm on fig. 4. Furthermore, the robot joints of the robot arm 101 can be implemented using the robot joint depicted in fig. 2.
[0123] As seen in fig. 4, an inertial measuring unit 447 (abbreviated "IMU") is arranged in the robot base 105 of the robot arm 101, and the inertial measuring unit 447 is communicatively coupled to the robot controller 115 which is configured to control the robot arm using a robot control program.
[0124] The robot controller 115 of the present embodiment stores a dynamic model 449, which can be the dynamic model described in relation to fig. 3, and in particular described in relation to eq. 9 above. By virtue of the robot controller 115 comprising the dynamic model 449, the robot controller can control each robot joint motor by providing a motor control signal (see motor control signals 333i, 333i + 1....333n of fig. 3) to each of the robot joint motors needed for operating the robot arm in accordance with a target motion. The robot controller 115 can generate these motor control signals using the dynamic model 449.
[0125] Thus, the IMU 447 feeds input to the controller 115 and thereby the controller 115 receives input related to the robots orientation which according to the above may impact the freedom of movement and/or the speed I acceleration of the robot arm 101. [0126] Fig. 5 illustrates a robot system 100 comprising two IMUs 447a, 447b. Two IMUs 447 is advantageous in that in this way redundancy is achieved i.e. if one IMU fails, the controller 115 may continue operation based on the second IMU. That is, if the two IMUs are both communicating with the controller 115. The system 100 illustrated in fig. 5 illustrate communication between one IMU 447a and the controller 115 and between a second IMU 447b and an auxiliary system controller 452 such as a safety controller. It should however be mentioned that the second IMU 447b may in addition to communication with the safety controller also communicate with the controller 115. Likewise, the first IMU 447a may communicate with the safety controller 451.
[0127] Returning to the embodiment illustrated in fig. 5 where, at least with respect to the IMUs 447, two independent control systems are illustrated. One control system may be referred to as a process control system (or simply control system) and one may be referred to as a safety control system (or simply safety system). In such system 100, the process control system is comprising the controller 115 and thus responsible for the normal operation including start and stop of the robot arm 101. The stopping of the operation may include various types of stop which when activated requires different actions for resuming operation of the robot arm. Obviously, if the controller does not stop operation of the robot arm 101 hazardous situations may occur.
[0128] Therefore, the implementation of a safety system is advantageous. In this context, a safety system is designed to monitor the operation of the robot arm 101. The safety system may monitor the robot arm 101 with a set of safety system sensors so that if one of the sensors that are used by the process control system fails, the safety controller is still, via the safety sensor monitoring the same parameter, receiving the input that can be used to stop the operation of the robot arm 101. To ensure that the safety controller 451 does not overrule the robot controller 115 unless it is necessary, e.g. the threshold leading to a safety stop is higher I lower than thresholds of the process controller.
[0129] Hence, to ensure the safety controller 451 is able to perform such "surveillance" of the operation of the robot arm, performed by the controller 115 at least partly based on input from an IMU, it is advantageous that the safety controller also receives input from an IMU. It is important with respect to the safety aspects, that the two controllers 115, 451 are not receiving input from the same IMU to avoid single point of failure.
[0130] Further, when the robot arm 101 is controlled at least partly based on the IMU data, the IMU data provided to the safety controller 451 ensures that the safety controller does not stop operation of the robot when this is not necessary. This could happen if the controller 115 based on input form an IMU allow a certain acceleration which without input from an IMU was not allowed. Therefore, if the controller 115 receives IMU data, it is advantageous that also the safety controller receives IMU data.
[0131] Although, figs. 4 and 5 depict a single inertial measuring unit 447 and a plurality of inertial measuring units 447 arranged in the robot base, respectively, it should be noted that this is one way of carrying out the invention, and indeed the inertial measuring unit(s) may not need to be arranged within the robot base, but could be arranged on the robot base, or on other parts of the robot arm.
[0132] Fig. 6 and fig. 7 illustrates two of a plurality of possible implementations of a robot arm 101 that is made possible by using IMU input data in the control of the robot arm 101. These implementations may have been possible without the IMU input, but with a risk of the robot arm would not working as intended e.g. due to erroneous torque calculations and thus a risk of tilting the robot arm during operation. Note that the auxiliary system controller 451 and the associated IMU discussed in relation to fig. 3 may be implemented in the embodiments illustrated in fig. 6 and 7.
[0133] The robot arm 101 illustrated in fig. 6 is mounted on a sledge i.e. on a moving platform. Accordingly, in addition to the forces that are acting on the robot arm during operation that would also be acting on the robot arm if it was operation similarly on a fixed and stationary platform, the moving of the robot arm is providing a contribution to these forces. Accordingly, depending on the direction of movement of the entire robot arm relative to the movement of the individual joints, a force component is either added or subtracted. This should be understood as a force may be allowed that was otherwise not allowed because the movement of the entire robot arm is counteracting this force. In the same way a force that otherwise would be allowed may not, based on input from the IMU 447 providing information of movement of the robot arm establishing a force that need to be added.
[0134] Fig. 7 illustrates a robot arm 101 that is installed on a moving platform. In this particular example, the moving platform is a cross-country vehicle. As illustrated, as the vehicle is moving, the orientation of the robot arm with respect to the direction of gravity 123 is changing as the vehicle is moving. This change is registered by the IMU 447 and provided to the controller 115. Thus, in the control is able to compensate for these varying orientation with respect to the direction of gravity 123 and in this way continue operation of the robot arm in a certain distance from its center or with a certain speed I acceleration that would otherwise not be allowed. In the same way, the restrictions to the operation of the robot arm may be made by the controller 115 based on input from the IMU as described above.
REFERENCES [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 FIGURE REFERENCES
Figure imgf000038_0001

Claims

1. A robot system comprising: a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of joints comprising a joint motor; a robot controller configured to control operation of said robot arm based on a robot control program; and an inertial measuring unit; wherein said robot controller is configured to control each joint motor of said plurality of robot joints by providing a motor control signal to said joint motor based on a dynamic model, wherein said dynamic model is configured to generate motor control signals based on an input received from said inertial measuring unit, said input received from said inertial measuring unit defining an operational condition of said robot arm in said dynamic model; wherein said input received from said inertial measuring unit represents at least one of the following accelerations: a cartesian acceleration provided by said inertial measuring unit, or an angular acceleration provided by said inertial measuring unit.
2. A robot system according to claim 1, wherein said operational condition is modifiable and arranged to be modified on the basis of input received from said inertial measuring unit.
3. A robot system according to claim 1 or 2, wherein said dynamic model is configured to determine a torque to be generated by a joint motor of a robot joint of said plurality of robot joints based on one or more torque contributing factors.
4. A robot system according to claim 3, wherein said dynamic model is configured to generate said motor control signals based on said torque determined by said dynamic model.
5. A robot system according to claim 3 or 4, wherein said input received from said inertial measuring unit is used as a parameter of at least one torque contributing factor of said one or more torque contributing factors of said dynamic model.
6. A robot system according to any of the claims 3-5, wherein said one or more torque contributing factors comprises a factor relating to moment of inertia of said robot arm.
7. A robot system according to any of the claims 3-6, wherein said one or more torque contributing factors comprises a factor relating to Coriolis effect and centripetal torque.
8. A robot system according to any of the claims 3-7, wherein said one or more torque contributing factors comprises a factor relating to gravity.
9. A robot system according to claim 8, wherein said factor relating to gravity is arranged to take as input argument a cartesian acceleration of said robot base and/or an angular acceleration of said robot base.
10. A robot system according to any of the claims 3-9, wherein said one or more torque contributing factors comprises a factor relating to friction.
11. A robot system according to any of the claims 3-10, wherein said one or more torque contributing factors comprises a factor relating to an external torque applied to said robot arm.
12. A robot system according to any of the preceding claims, wherein said robot controller comprises a memory storing thereon said dynamic model.
13. A robot system according to any of the preceding claims, wherein said dynamic model is configured to take as input a target motion provided by said robot control program.
14. A robot system according to any of the preceding claims, wherein said dynamic model is a matrix implemented model.
15. A robot system according to any of the preceding claims, wherein said cartesian acceleration is a cartesian acceleration of said robot base, and wherein said angular acceleration is an angular acceleration of said robot base.
16. A robot system according to any of the preceding claims, wherein said cartesian acceleration of said robot base is an acceleration of a base reference point in relation to a reference coordinate system, and wherein said angular acceleration is an angular acceleration of said base reference point in relation to said reference coordinate system.
17. A robot system according to any of the preceding claims, wherein said robot system comprises a safety system associated with a plurality of safety parameter ranges defining allowable operations of said robot arm when controlled by said robot controller, wherein said safety system is arranged to monitor one or more safety parameters relating to control of said robot arm and to evaluate said one or more safety parameters with respect to one or more safety parameter ranges of said plurality of safety parameter ranges to determine whether said monitored one or more safety parameters are within said one or more safety parameter ranges, and wherein one or more safety parameters of said plurality of safety parameter ranges are at least partly calculated based on input received from said inertial measuring unit.
18. A robot system according to claim 17, wherein said safety system comprises a protective stop system implemented in said robot controller, said protective stop system being associated with a first set of safety parameter ranges of said plurality of safety parameter ranges, wherein said protective stop system is arranged to monitor one or more safety parameters relating to control of said robot arm and to suspend execution of said robot control program when at least one safety parameter of said one or more safety parameters is outside a corresponding safety parameter range of said first set of safety parameter ranges.
19. A robot system according to any of the claims 17-18, wherein said safety system comprises an auxiliary system controller associated with a second set of safety parameter ranges of said plurality of safety parameter ranges, wherein said auxiliary system controller is configured to monitor one or more safety parameters relating to control of said robot arm and to perform an emergency stop of said robot system when at least one safety parameter of said one or more safety parameters is outside a corresponding safety parameter range of said second set of safety parameter ranges.
20. A robot system according to any of the preceding claims, wherein said robot system is configured to receive input by a user of said robot system, said input defining a target motion of said robot arm.
21. A robot system according to any of the preceding claims, wherein said robot arm is retrofitted to a support structure.
22. A robot system according to claim 21, wherein said support structure is a movable support structure.
23. A robot system according to any of the preceding claims, wherein said robot arm comprises said inertial measuring unit.
24. A robot system according to any of the preceding claims, wherein said inertial measuring unit is arranged in said base of said robot arm.
25. A robot system according to any of the preceding claims, wherein said inertial measuring unit is a first inertial measuring unit, and wherein said robot system comprises a second inertial measuring unit.
26. A robot system according to claim 25, wherein said first inertial measuring unit and said second inertial measuring are arranged in said base of said robot arm.
27. A method of controlling a robot arm of a robot system, said robot system comprising a robot arm comprising a robot base and a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor, wherein said method comprises the steps of: receiving, in a robot controller, an input from an inertial measuring unit of said robot system, said input being representative of at least one of: a cartesian acceleration obtained by said inertial measuring unit, or an angular acceleration obtained by said inertial measuring unit; utilizing said received input in a dynamic model of said robot controller, said dynamic model being configured to generate motor control signals based on said received input, said input defining an operational condition of said dynamic model; generating one or more one motor control signal by said dynamic model; providing said one or more generated motor control signals to one or more motors of said plurality of robot joints to control said robot arm.
28. A method according to claim 27, wherein said robot system is a robot system of any of the claims 1-26.
29. A computer program product comprising instructions which when executed by a robot controller of a robot system causes the robot controller to carry out the steps of the method according to any of the claims 27-28.
30. A computer program product according to claim 29, wherein the robot system is a robot system of any of the claims 1-26.
PCT/DK2024/050157 2023-07-05 2024-07-01 Continual acceleration detection and compensation of robot arm Pending WO2025008036A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DKPA202370360 2023-07-05
DKPA202370360 2023-07-05

Publications (1)

Publication Number Publication Date
WO2025008036A1 true WO2025008036A1 (en) 2025-01-09

Family

ID=91898835

Family Applications (1)

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

Country Status (1)

Country Link
WO (1) WO2025008036A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130245825A1 (en) 2010-09-28 2013-09-19 C.N.R. Consiglio Nazionale Ricerche Safety device for the safe use of industrial apparatuses and robots, and control method for realtime verification of the kinematic state values of a robotized apparatus
US20150306765A1 (en) * 2012-07-31 2015-10-29 Seiko Epson Corporation Control device and control method for robot and the robot
EP3117967A1 (en) * 2015-07-15 2017-01-18 ETH Zurich Transparency control method for robotic devices and a control device therefor
US20190389077A1 (en) * 2018-06-26 2019-12-26 Seiko Epson Corporation Robot and robot system
WO2020228978A1 (en) 2019-05-10 2020-11-19 Franka Emika Gmbh Joint velocity and joint acceleration estimation for robots
US20210008710A1 (en) 2019-07-09 2021-01-14 Seiko Epson Corporation Mobile robot
CN114954724A (en) * 2022-06-07 2022-08-30 山东大学 Motion control method and system of four-foot single-arm operation robot

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130245825A1 (en) 2010-09-28 2013-09-19 C.N.R. Consiglio Nazionale Ricerche Safety device for the safe use of industrial apparatuses and robots, and control method for realtime verification of the kinematic state values of a robotized apparatus
US20150306765A1 (en) * 2012-07-31 2015-10-29 Seiko Epson Corporation Control device and control method for robot and the robot
EP3117967A1 (en) * 2015-07-15 2017-01-18 ETH Zurich Transparency control method for robotic devices and a control device therefor
US20190389077A1 (en) * 2018-06-26 2019-12-26 Seiko Epson Corporation Robot and robot system
WO2020228978A1 (en) 2019-05-10 2020-11-19 Franka Emika Gmbh Joint velocity and joint acceleration estimation for robots
US20210008710A1 (en) 2019-07-09 2021-01-14 Seiko Epson Corporation Mobile robot
CN114954724A (en) * 2022-06-07 2022-08-30 山东大学 Motion control method and system of four-foot single-arm operation robot
US20230311320A1 (en) * 2022-06-07 2023-10-05 Shandong University Mobile manipulation control method and system of quadruped robot with operation arm

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. W. SPONG: "Modeling and Control of Elastic Joint Robots", JOURNAL OF DYNAMIC SYSTEMS, MEASUREMENT, AND CONTROL, vol. 109, no. 4, 1987, pages 310 - 319

Similar Documents

Publication Publication Date Title
JP7381595B2 (en) Multibody controllers and robots
JP5191738B2 (en) Manipulator control method and control system
US20240399581A1 (en) Extendable safety system for robot system
JP6111562B2 (en) robot
US9844875B2 (en) Robot
US9044861B2 (en) Robot
JP6111563B2 (en) robot
US20130006422A1 (en) Control apparatus and control method for robot, robot, and control program therefor
CN112654467A (en) Obtaining gear stiffness of a robot joint gear of a robot arm
EP2660013B1 (en) Method of controlling seven-shaft multi-joint robot, control program, and robot control device
KR20120028837A (en) Reducer abnormality determination method, abnormality determination device, and robot system
US12172321B2 (en) Work mode and travel mode for mobile robots
JP2003211379A (en) Mobile robot abnormality detection device
JP2015202534A (en) Robot control device and robot system for robot moved according to input power
JP2023515598A (en) robot device
JP5758777B2 (en) robot
WO2025008036A1 (en) Continual acceleration detection and compensation of robot arm
JP2003211380A (en) Mobile robot abnormality detection device
CN121398942A (en) Continuous acceleration detection and compensation for robotic arms
JP7358744B2 (en) Robot system, control device, and control method
Fujiwara et al. Torque-sensorless Impedance Control for an Actuator with Compound Planetary Gearbox for reducing External Contact Force
JP6036476B2 (en) robot
JP2020179465A (en) Control devices, control methods, and robot systems
WO2025177419A1 (en) Robot device
CN121038934A (en) Redundant accelerometer sensor system for absolute movement and orientation determination of a robot arm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24740799

Country of ref document: EP

Kind code of ref document: A1