WO2011042293A1 - A method for reducing the energy consumption of an industrial robot and an industrial robot system - Google Patents

A method for reducing the energy consumption of an industrial robot and an industrial robot system Download PDF

Info

Publication number
WO2011042293A1
WO2011042293A1 PCT/EP2010/063783 EP2010063783W WO2011042293A1 WO 2011042293 A1 WO2011042293 A1 WO 2011042293A1 EP 2010063783 W EP2010063783 W EP 2010063783W WO 2011042293 A1 WO2011042293 A1 WO 2011042293A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
energy
energy consumption
model
axes
Prior art date
Application number
PCT/EP2010/063783
Other languages
French (fr)
Inventor
Mathias Björkman
Mikael NORRLÖF
Original Assignee
Abb Technology Ab
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 Abb Technology Ab filed Critical Abb Technology Ab
Priority to EP10754755.6A priority Critical patent/EP2485875B1/en
Priority to CN201080045058.8A priority patent/CN102666030B/en
Publication of WO2011042293A1 publication Critical patent/WO2011042293A1/en

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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/34Director, elements to supervisory
    • G05B2219/34314Slow down, limit speed for energy saving
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39361Minimize time-energy cost
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40498Architecture, integration of planner and motion controller
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40507Distributed planning, offline trajectory, online motion, avoid collision
    • 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/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50181After stopping apply additionally a brake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P80/00Climate change mitigation technologies for sector-wide applications
    • Y02P80/10Efficient use of energy, e.g. using compressed air or pressurized fluid as energy carrier

Definitions

  • the present invention relates to a method for reducing the energy consumption of an industrial robot configured to carry out work during a work cycle. Further, the present invention relates to an industrial robot system comprising a robot including a ma- nipulator, and program storage for storing a control program defining work to be carried out by the robot during a work cycle.
  • An industrial robot is generally used for industrial automation.
  • the robot is programmed to follow a movement path while the robot carries out work during a work cycle.
  • a robot control program has information about what the robot should do and in which order tasks should be executed along the path.
  • the con- trol program comprises a series of robot program instructions written in a robot programming language.
  • the control program has information about all target points on the movement path.
  • the robot programming could be done online manually by teaching the robot positions and orientations of target points on the movement path.
  • the control program could also be created by an offline programming and simulation tool running on an external computer, such as a PC.
  • An industrial robot system includes a manipulator having a plu- rality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes and a robot controller having means for operating the manipulator.
  • the robot controller comprises a storage unit for storing one or more control programs for controlling the movement of the manipulator.
  • the control program comprises program in- structions, including movement instructions for the manipulator.
  • the control program specifies a geometric path to be followed by the robot when carrying out the work.
  • the program may also specify limitations on speed and accelerations along the path.
  • the geometric path can be expressed in joint angels or in Car- tesian coordinates. The relation between the joint angels and the Cartesian coordinates are determined by a kinematic model of the robot.
  • the geometric path specifies the positions of the robot, but not the speed.
  • the robot controller comprises a program interpreter configured to execute the control program and to provide instructions based on the movement instructions to a path planner.
  • the path planner receives the instructions from the program interpreter and on basis thereof determines how the manipulator should move in order to be able to execute the movement instructions.
  • the path planner generates a trajectory including a geometric path and a speed profile along the path.
  • the path planner plans how the instructed movement should be performed by carrying out an interpolation of the movements.
  • the interpolation includes dividing the instructed movement into a plurality of small increments, and computing the joint angles for all axis of the robot for each increment.
  • the joint angels are then converted into reference values for the motors.
  • the path planner transmits the computed motor references to drive units that control the motors by converting DC current to a variable alternating current in dependence on the motors references.
  • cycle time is meant the time it takes for the robot to carry out a work cycle. It is important to make the control program as time optimal as possible in order to reduce the cycle time. Therefore, the normal path planning algorithms are based on a solution to an optimization problem that is defined as minimizing the cycle time subject to customer constraints and robot constraints, where customer constraints could be e.g. speed and acceleration values specified by the user.
  • customer constraints could be e.g. speed and acceleration values specified by the user.
  • Some examples of robot constraints are maximum gear-box torque, maximum available motor torque, and maximum motor speed. This means that all available motor power is used in every discrete time step as long as no customer or robot constraint is violated.
  • D1 utilizes the internal self move due to the redundant kinematics to energy optimize and minimizes the deviation from a given Cartesian trajectory.
  • One disadvantage with this method is that the geometrical path is only followed to a certain accuracy. Furthermore, if applied to a non redundant robot the only freedom to optimize is the deviation from the Cartesian trajectory. In applications at which it is important to follow a given geometric path, this method will have very small possibilities to reduce the energy consumption.
  • EP1 705 541 shows that it is possible to time optimize a time critical part of a work cycle and to reduce the speed of the robot during a non time critical part of the work cycle, in order to lower the energy consumption. During the non time critical part of the work cycle, the robot is run with as low speed as possible dependent on a determined maximum allowed time period. However, to reduce the speed does not necessarily reduce the energy consumed due to friction and gravity.
  • the object of the present invention is to further reduce the energy consumed by the robot when following a specified geometric path.
  • this object is achieved by the method defined in claim 1 .
  • Such method comprises:
  • the speed profile for the axes of the robot when following the specified geometric path is optimized with regard to minimizing the energy consumption of the robot.
  • a speed profile for an axis includes information on the speed of the axis and how the speed changes over time, and accordingly information on the acceleration of the axis.
  • the present invention optimizes the speed and acceleration of the manipulator, and not the geometric path.
  • the geometric path is fixed, or can be allowed to vary within a mall tolerance interval.
  • the present invention is advantageous to use for applications which rely on following a given path, for example, to avoid collisions with fixed obstacles in the robot work space.
  • the power is proportional to the torque square and therefore friction plays an important role for the energy consumption.
  • the model for the energy consumption of the robot includes a relation between the energy consumed due to friction and the speed of the axes. There exists a speed where the friction torque is at a minimum. When the speed of the manipulator is lower than the speed where the friction torque is at a minimum, the energy consumption will increase, as shown in figure 3.
  • the time for the robot to carry out the robot movement can be shorter than the maximum allowed time. This possibility is used to further reduce the energy consumed.
  • the optimization is carried out with the provision that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, thereby making it possible to lock the axes of the robot when it is in a final position, and then switch off the control of the motors in order to save energy.
  • the fact that the energy consumed due to gravity can be significantly reduced when one or more of the axes are locked is considered during the optimization of the robot movements.
  • the axes are mechanically locked, for example, by applying the brakes of the robot. Whether or not energy is saved depends on the length of the time period of the stand still, it takes some time to apply and release the brakes and preferably those times are also included in the model.
  • the optimization method determines whether or not an axis should be mechanically locked during a standstill in order to reduce the energy consumption.
  • the axes can be mechanically locked during a stand still at any time during the energy optimized part of the work cycle, not only in the end of the move- ment.
  • the influence on the energy consumption when locking the axes is always considered during a stand still. This means that for some cases the energy consumption can be further reduced by increasing the speed. Accordingly, a further reduction of the energy consumption can be made.
  • the invention makes it possible to command optimization of the movements of the robot during at least a part of the work cycle with regard to minimizing the energy consumption of the robot and a maximum allowed time for carrying out the work.
  • the term during at least a part of the work cycle is meant during the whole or during one or more parts of the work cycle.
  • the invention is suitable for robot applications for which the time is not critical during at least a part of the work cycle, for instance in applications where the robot is tending a machine and the robot spends a part of the work cycle waiting for the machine to be ready.
  • the invention enables saving of energy for such applica- tions.
  • the maximum allowed time for carrying out the work is set in dependence on the application, for example, the minimum time the robot has to wait for the machine to be tended.
  • the model for the energy consumption includes the time it takes to engage/disengage the mechanical lock of the axes of the manipulator, and is designed to take into consideration the time for the engagement/disengagement of the mechanical lock. Whether or not energy is saved depends on the length of the time period of the stand still, it takes some time to apply and release the brakes and preferably those times are also included in the model. If the time period of the stand still is too short, it is not possible to apply the brakes, or it costs more energy to apply the brakes than is saved.
  • movements for the manipulator are determined with regard to minimizing the energy consumption during a part of the work cycle, and movements for the manipulator are determined with regard to minimizing the time it takes for the robot to carry out the work during another part of the work cycle, and that reference values for the motors of the robot are calculated based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work.
  • This embodiment makes it possible to switch between minimizing the cycle time and minimizing the energy consumption during one work cycle.
  • This embodiment is advantageous for applications having one or more time critical parts and one or more non-time critical parts during the work cycle.
  • control program includes instructions for switching on and off the minimiz- ing of the energy consumption of the robot during the work cycle. This embodiment makes it possible for a robot programmer to command minimizing of the energy consumption during selected parts of the work cycle.
  • the method com- prises calculating the energy reduction achieved by determining the movements of the manipulator with regard to minimizing the energy consumption of the robot instead of with regard to minimizing the cycle time, and displaying the calculated energy reduction.
  • This embodiment enables a robot operator to view the energy reduction achieved and hopefully to encourage the robot operator to use this function.
  • the robot comprises drive units that control the motors by converting DC cur- rent to a variable alternating current in dependence on said reference values for the motors, and said model for the energy consumption of the robot includes a model of the energy consumption of mechanical parts of the manipulator, a model of the energy consumption of the motors, and a model of the energy consumption of the drive units.
  • Such a robot system comprises:
  • - data storage storing a model for the energy consumption of the robot depending on the movements of the axes of robot, said model including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms, and the model is designed to consider the fact that the energy consumed due to gravity acting on the arms can be reduced during standstill of the manipulator if one or more of the axes are mechanically locked, and
  • an energy optimization module configured to, for at least a part of the work cycle, determine speed profiles for the axes of the robot, when following the specified geometric path and with re- gard to minimizing the energy consumption of the robot and to determine whether or not an axis should be mechanically locked during standstill in order to reduce the energy consumption based on said control program, said model for the energy con- sumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, and
  • a computing unit configured to calculate reference values for the motors of the robot based on the determined robot movements.
  • the system comprises a time optimization module configured to determine, for at least a part of the work cycle, movements for the manipulator with regard to minimizing the time it takes for the robot to carry out the work based on a dynamic model of the robot, the system is configured to upon command switch between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during one work cycle, and said computing unit is configured to calculate reference values for the motors of the robot based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work.
  • control program includes instructions for switching between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during the work cycle, and the system is configured to switch between time and energy optimization based on the instructions in the robot program.
  • the system com- prises an external computer for off-line programming of the robot and a robot controller for controlling the movements of the manipulator
  • said energy optimization module is configured to generate an energy optimized control program and the energy optimization module is stored on the external computer
  • the computing unit for calculate reference values for the motors of the robot is stored on the robot controller.
  • the system com- prises a robot controller including a path planner adapted to determine how the manipulator should move based on the control program, and said energy optimization module and the computing unit are parts of the path planner and are stored on the robot controller.
  • the energy optimiza- tion of the movements is done in the robot controller during path planning. If the robot program is not programmed off-line it is an advantage from a user's point of view to perform the optimization on the controller instead of on an external computer.
  • the maximum allowed time can be a vari- able and, for example, it can depend on an input signal from an external unit.
  • Another advantage with this embodiment is that it is possible to determine the trajectory with a higher accuracy compared to if the energy optimization is performed off-line due to the fact that the path planner determines the path based on small increments.
  • Fig. 1 shows a time-optimized speed profile for a robot axis together with and an energy-optimized speed profile determined without regard to friction.
  • Fig. 2 shows the time-optimized speed profile of figure 1 together with an energy-optimized speed profile determined with regard to friction.
  • Fig. 3 shows an example of the relation between friction torque and speed. shows an example of a prior art robot controller.
  • Fig. 5 shows a robot system according to an embodiment of the invention.
  • Fig. 6 shows an example of energy optimization done on an external computer.
  • Fig. 7 shows a robot controller including an energy optimized trajectory generation that only optimizes the speed profile and not the geometric path.
  • FIG. 8 shows a robot controller generating an energy optimized trajectory includes determining an energy optimized geometric path as well as an energy optimized speed profile.
  • Fig. 9 shows an example of components in the robot system energy model.
  • Fig. 10 shows a simplified robot with only one rotational joint.
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION The present invention is based upon minimizing the energy consumption, instead of cycle time, and this can be described by the following optimization problem:
  • MaxCycleTime is a user defined maximum cycle time for the robot movements.
  • Customer constraints could be e.g. speed and acceleration values specified by the user.
  • Robot constraints are, for example, maximum gear-box torque, maximum available motor torque, and maximum motor speed.
  • the term energy optimization is in the following used as an equivalent of energy optimal or energy optimized motion planning, which means that the robot motions are planned in order to minimize the energy consumption.
  • the energy optimization can be switched on and off.
  • the motion planning is made with regard to minimizing the cycle time.
  • the switching on and off of the energy optimization is commanded in the control program, for example by providing program instructions for switching on and off of the energy optimization.
  • the energy optimization can be switched on per program, per module, per procedure, or per instruction.
  • the following is an example how the energy optimization can be used in program code of a control program.
  • the energy optimization is turned on by the command Ener- gyOptimizationOn and is turned off by the command EnergyOp- timizationOff.
  • the two instructions EnergyOptimizationOn and EnergyOptimizationOff are included in a sequence of move instructions. EnergyOptimizationOn switches on the energy optimization and the second argument is the maximum time that the motion is allowed to take until the EnergyOptimizationOff instruction is executed.
  • the program instructions in between a EnergyOptimizationOn and a EnergyOptimizationOff instructions are referred to as an energy-optimization block.
  • the time given by the variable maxMoveTime in the example, can change as a function of other related processes and hence the actual energy saving can be different at each execution of a particular energy- optimization block.
  • the command printEnergyReduction initiates calculation of the energy reduction achieved by energy optimization instead of optimization of the cycle time, and displaying the calculated energy reduction.
  • the "xx” is replaced with the time that it actualiy takes to perform the move instruction according to the optimization criterion. If a time close to "xx" is chosen in the EnergyoptimizationOn instruction not much freedom is left for the energy optimization and therefore a small re- duction of energy will be achieved. When the optimization is performed an estimate of the energy reduction is computed and if the optional argument "printEnergyReduction" is given to the EnergyoptimizationOff command this value is printed, for example, on a teach pendant unit.
  • An important part of the optimization concept is to make it possible to apply a mechanical lock to the axis of the manipulator, , such as the brakes of the robot, in the final position and then switch off the control of the motors in order to save energy.
  • the brakes When the time specified in the EnergyoptimizationOn instruction is reached the brakes must already be released and the motors must be in controlled mode, in order to be responsive and be able to directly move at the next instruction after the energy- optimization block.
  • Case 1 The geometric path is given and only the dynamics can be affected in the optimization (this means the speed profile along the path).
  • Case 2 Only the start target and the end target are specified and the geometric path is free to choose in the optimization. Case 2 is not a part of the invention. However, it is possible and useful to include a case where case 1 and case 2 are combined so that a geometric path is given where the robot can deviate from the path to some specified limit when it reduces the total energy consumption.
  • the optimization algorithm can be executed at different levels, Level 1 : Model based in an offline tool, for example, an externa! PC, and before the program is run on the robot controller.
  • the different versions of the solution will be described in detail later.
  • the solution is similar in level 1 and 2a.
  • the major difference between the different levels is the requirements on the computational complexity.
  • level 1 and to some extend level 2a there are not many restrictions on the computational complexity while level 2b put very hard restrictions on the computational complexity since the optimization must be solved while the robot moves and with the limited computer resources available in the robot controller.
  • Within an energy-optimization block the motion data is not allowed to change when the block is executed. No conditions, i.e. if-statements or loops, which can affect the path, are allowed.
  • When entering an energy-optimization biock the geometry of the path within the block has to be decided.
  • level 1 The important difference between level 1 and level 2, using model based optimization, is that in the execution at level 1 no data can be changed at the execution of the program while at level 2, motion data can change until the energy-optimization block is entered.
  • Figure 1 shows a time-optimized speed profile 1 together with and an energy-optimized speed profile 2 for a robot axis moving without being affected by gravity.
  • the energy-optimized speed profile makes the robot reach the final point exactly at a specified maximum time.
  • Figure 3 shows a typical friction behavior with static friction, stiction, Coulomb and viscous friction. For a mechanical system the power produced is proportional to the torque square and therefore friction plays an important role for the energy consumption of the robot.
  • a typical friction behavior is shown and obviously there exists a speed where the friction torque is at a minimum and hence it will result in a different speed profile compared to figure 1 if the energy optimization is done with regard to friction.
  • Figure 2 shows the time-optimized speed profile 1 of figure 1 together with an energy-optimized speed profile 3 determined with regard to friction.
  • the resulting energy-optimized speed profile gives a higher acceleration and speed compared to the profile shown in figure 1 but still lower acceleration and speed compared to the time optimal profile.
  • the energy-optimized speed profile 3 shows a motion that reaches the final position at a point in time T r that is before Max time. In the time from T r to Max time the mechanical brakes can be activated and hence no energy is consumed by the mechanical system during this time, which further reduces the total energy consumption.
  • the energy-optimized solution has to consider this energy as well and minimize the wasted kinetic energy, in practice this will imply to reduce the speed , leading to the solution in figure 2.
  • the resulting maximum speed will therefore be a trade-off between minimizing the wasted kinetic energy and minimizing the friction losses.
  • FIG. 4 shows an example of a prior art robot system including a manipulator 8 having a plurality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes, and a robot controller 9 for controlling the movements of the manipulator.
  • the robot controller 9 includes program storage 10 for storing one or more control programs defining work to be carried out by the robot during a work cycle, and a program interpreter 12 configured to execute the control program.
  • the robot controller 9 further includes a path planner that receives the instructions from the program interpreter and on ba- sis thereof determines how the manipulator should move in order to be able to execute the movement instructions.
  • the path planner generates a trajectory including a geometric path and a speed profile along the path.
  • the path planner comprises a geo- metric path planner 14 configured to plan a geometric path, i.e. the positions of the path, and a dynamic optimization planner 16 configured to plan the speed profile for the path with regard to minimizing the cycle time.
  • the dynamic optimization planner 16 uses algorithms that are based on a solution to an optimization problem that is defined as minimizing the cycle time with subject to customer constraints and robot constraints.
  • the controller 9 further comprises data storage 18,19,20 storing a robot kinematic model, a robot dynamic model and a drive system model. From the control program a geometric path is created using the robot kinematic model.
  • the dynamic optimization planner uses the geometric path to create a time optimal speed profile using a dynamic model of the robot and a model of the robot drive system.
  • the path planner further comprises a computing unit 21 configured to calculate reference values for the motors of the robot based on the determined path and speed profile.
  • the computing unit 21 carries out an interpolation of the generated trajectory. The interpolation includes dividing the trajectory into a plurality of small increments, and computing the joint angles for all axis of the robot for each increment. The joint angels are then converted into reference values for the motors.
  • the computing unit 21 carries out an interpolation of the generated trajectory. The interpolation includes dividing the trajectory into a plurality of small increments, and computing the joint angles for all axis of the robot for each increment. The joint angels are then converted into
  • the drive system includes drive units that control the motors by converting DC current to a variable alternating current in dependence on the motors references.
  • FIG. 5 shows an example of a robot system according to the invention.
  • a new additional condition is introduced to differenti- ate the trajectory generation in the traditional time optimized case from the new energy optimized case.
  • FIG 5 it is shown how the overall structure has to be modified in order to introduce the energy optimized trajectory generation in parallel with the present time optimized trajectory generation.
  • the program interpreter detects whether energy optimization is com- manded on or off.
  • the energy optimization is, for example, turned on by the command EnergyOptimizationOn and is turned off by the command EnergyOptimizationOff enclosed in the control program. Energy optimization can be turned on and off several times during a work cycle. If energy optimization is turned off, the time optimized trajectory generation 30 is carried out for the motion instructions.
  • the time optimized trajectory generation 30 determines time optimal movements for the robot and includes the steps of generating a geometric path based on a robot kinematic model and generating a time optimal speed profile based on a robot dynamic model and a drive system model. Input to the time optimization is a motion instruction.
  • the energy optimization is carried out on the program instructions in between the EnergyOptimizationOn and the EnergyOptimizationOff instructions, also called a program block.
  • Input to the energy optimization is a program block and a maximum time for carrying out the block.
  • the energy optimization is carried out based on all motion instructions in the program block and the maximum time for the block.
  • the energy optimal trajectory generation determines energy optimized movements for the robot and includes the steps of generating a geometric path based on the robot kinematic model and an energy optimal speed profile based on a robot system energy model, the robot dynamic model, and the drive system model.
  • the energy optimized movements for the robot is generated based on a maximum allowed time, such as maxMoveTime described above, for carrying out the movements, and robot and customary constrains.
  • an energy optimized geometric path is generated as well as an energy optimized speed profile.
  • the robot system comprises a time optimization module 30 configured to carry out the time optimized trajectory generation and an energy optimization module 32 configured to carry out the energy optimized trajectory generation.
  • the robot system comprises data storage 34 for storing the robot system energy model.
  • the robot system energy model is a model of the energy consumption of the robot system in dependence on the movements of the axes of the robot.
  • the robot system comprises a robot controller including a computing unit 21 configured to calculate reference values for the motors of the robot based on the determined movements.
  • Optimization of the movements of the robot with regard to minimizing the energy consumption of the robot means that the movements of the robot are determined with the aim of minimizing the energy consumption. Different degrees of reduction of the consumed energy can be achieved in dependence on how sophisticated the energy model is.
  • the time optimal trajectory generation and the energy optimal trajectory generation can be done off-line on an external computer during programming of the robot, or in the robot controller during programming of the robot or during execution of the control program. Irrespective of whether the energy optimization is done on the controller or on an external computer, the computing of motor references is always done on the robot controller.
  • level 1 i.e. off-line energy optimization
  • the energy optimization is done off-line at an external computer 40, for example during off-line programming of the robot.
  • Input at this level is a robot control program while the output is a new energy optimized control program including energy optimized robot move instructions.
  • For program instructions where energy optimization is off no change is made to the program instructions.
  • energy optimization is on energy optimization is carried out on the program instructions in between the EnergyOptimiza- tionOn and the EnergyOptimizationOff instruction, also called a program block.
  • Output from the energy optimization is an energy optimized program block.
  • the program block includes move instructions, and the energy optimized program block includes energy optimized program instructions.
  • an instruction to engage/disengage the brakes can be inserted in the program.
  • the energy optimized program can have the same path geometry as the original program if case 1 of the energy optimization is used or a modified geometry if case 2 or a combination of case 1 and case 2 is used.
  • the offline energy optimization module takes a robot program as input and makes an energy optimization of the part of the program where the energy optimization is activated. Output from the energy optimization module is a new energy optimized robot program or part of a program.
  • the path planner generates a motor references based on the movement instructions in the control program.
  • Figure 7 shows a robot controller 50 including an energy optimization that only optimizes the speed profile and the brake en- gage/disengage time instances but not the geometric path.
  • the robot move instructions of the control program specify the geometry of the robot motion while the speed profile and the brake engage/disengage time instances are optimized to achieve minimal energy consumption.
  • the path planner includes a geometric path planner 14 that generates a geometric path based on the move instructions in the control program and a ro- bot kinematic model.
  • the path planner also includes an energy optimization module 52 configured to generate an energy optimized speed profile based on the geometric path description, the robot dynamic model, the model of the drive system and the robot system energy model.
  • the path planner also includes a time optimization module 53 configured to generate a time optimized speed profile based on the robot dynamic model and the drive system model. If energy optimization is turned on the energy optimization module 52 is used for generating the speed profile and brake engage/disengage time instances while if energy optimization is turned off, the time optimization module is used for generating the speed profile.
  • Figure 8 shows a robot controller 54 including a path planner 56 adapted to generate an energy optimized trajectory.
  • the generation of the energy optimized trajectory includes determining an energy optimized geometric path as well as an energy optimized speed profile. In this case the geometry of the path is free to decide in the energy optimization.
  • the robot program provides the start and end robot configuration, next the energy trajectory optimization finds an energy optimal path and speed profile for the robot.
  • the optimization utilizes the robot kinematic model, the dynamic model, the drive system model, and finally the robot system energy model, to solve for the energy optimal trajectory.
  • case 1 and case 2 of the optimization principle can be described as in figure 7 and 8.
  • the geometry is still generated by the geometric path planner using the robot kinematic model while the time optimiza- tion is replaced by the energy optimization which utilizes the robot dynamic model, the drive system model and the robot system energy model.
  • the resulting motor reference is fed down to the drive system 22 as a reference for the motors of the robot manipulator 8.
  • figure 8 also the geometry is a free parameter for the energy optimization to decide.
  • the geometric path planner is now a part of the energy- optimization block 56 and input to this block is a robot program, output is a reference to the drive system.
  • the energy optimization utilizes in case 2, the robot kinematic model, the robot dynamic model, the drive system model, and finally the robot sys- tern energy model.
  • the energy model is a model of the energy consumption of the complete robot system; this includes the mechanical manipulator, the electric motors and the electric drive system. It could also take into account other resources in the system such as fans and processors that can be switched on and off or be controlled depending on the current status of the system.
  • Figure 9 a block diagram for the energy model is shown.
  • the model includes a mechanical model, an electric drive system model, a motor model, and a controller hardware model. Further, the model includes an environmental model, for example, the surrounding temperature can be measured and used as an input to calculations of the friction.
  • the mechanical model contains the robot dynamic model including friction model. However, the mechanical model in the energy model could have a more sophisticated friction model than the prior art mechanical models.
  • the electric drive system model and the motor model are extensions to the drive system model which could include the energy flow (reuse of energy) between motors at acceleration/deceleration.
  • An energy dissipation model is also included in the electric motor model, this model include friction in the motor but also the actual efficiency of the motor.
  • the controller hardware model is a model of the energy consumption in the controller hardware, such as fans, CPU- boards, etc.
  • the model also includes a model of the brakes; engage/disengage times as well as power consumption in engaged and disengaged mode.
  • Figure 10 shows a simplified robot with only one rotational joint and illustration of two domains, electrical and mechanical.
  • the use of an optional arm is also illustrated and with this option the example becomes the same as the motion of a robot (axis 3 of an articulated 6-DOF robot for example).
  • K p and K t are the current controller proportional and integral gains.
  • the current reference is simply the torque t computed from:
  • Input to the model is the joint acceleration ' .
  • the joint speed and position can be computed from ⁇ by simple integration.
  • no model of the controller hardware energy consumption is included.
  • the brake engagement/disengagement time is here assumed to be zero.
  • the discrete optimization problem is formulated with a number of constraints, for example on the torque, the joint speed, and the joint acceleration.
  • the criterion and the equations in the energy mode! are reformulated using to be able to write down the optimization problem in a mathematical formulation.
  • the motor model and the electric motor drive system are combined using the assumption that the current controller is significantly faster than the optimization time step.
  • the torque is given by the system equation in (1 ).
  • the constraints include maximum and minimum values on the torques and acceleration as well as boundary conditions on the angular position and angular velocity.
  • angular speed is zero at the start time (t 0 ) and zero at the end time (t N ) but other values could also be included as well as con- straints on the angular acceleration (start, end, and max/mi n values).
  • the delta time is assumed to be fixed to a sampling time A t and the smaller this value the closer the solution comes to the true continuous optimum.
  • the optimization problem can be solved using a standard general non-linear optimization algorithm, see for example Jorge Nocedal and Stephen J. Wright. Numerical Optimization, Springer. Series in Operations Research, 1999, ISBN 0-387-98793-2, and R. Fletcher. Practical Methods of Optimization. 1987. ISBN 0-471 - 91547-5.
  • the brake is applied when the robot arm is standing still, since no torque is applied when
  • the motion of a robot with two or more degrees-of-freedom (DOF) robot is optimized with respect to the energy consumption.
  • the optimization can be made according to the cases described previously, i.e.,
  • the geometric path is given and only the dynamic can be affected in the optimization, 2. only the start target and the end target are specified and the geometric path is free to choose in the optimization, it is possible and useful to include cases where 1 and 2 are combined so that a geometric path is given where the robot can deviate from the path to some specified limit if it reduces the total energy consumption.
  • the optimization problem can still be formulated in a simi- lar way as in (4) but some inequalities now become vector inequalities.
  • the number of variables and the complexity of the solution grow also significantly with the increased number of degrees-of-freedom.
  • the present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims.
  • the energy optimization could be turned on and off by a signal from an external unit, such as a PLC.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

The present invention relates to a method for reducing the energy consumption of an industrial robot comprising a manipulator (8) having a plurality of arms that are movable relative each other about a plurality of axes. The method comprises: defining a model for the energy consumption of the robot dependent on the movements of the axes of the robot, including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms considering the fact that the energy consumed due to gravity can be reduced during standstill one or more of the axes if the axes are mechanically locked, storing a control program specifying a geometric path to be followed by the robot, determining, during at least a part of the work cycle, speed profiles for the axes of the robot when following the specified geometric path with regard to minimizing the energy consumption of the robot and determining whether or not an axis should be mechanically locked during standstill in order to reduce the energy consumption, based on said model for the energy consumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, and calculating reference values for the motors of the robot based on the determined speed profiles.

Description

A METHOD FOR REDUCING THE ENERGY CONSUMPTION OF AN INDUSTRIAL ROBOT AND AN INDUSTRIAL ROBOT SYSTEM
FIELD OF THE INVENTION
The present invention relates to a method for reducing the energy consumption of an industrial robot configured to carry out work during a work cycle. Further, the present invention relates to an industrial robot system comprising a robot including a ma- nipulator, and program storage for storing a control program defining work to be carried out by the robot during a work cycle.
PRIOR ART An industrial robot is generally used for industrial automation. The robot is programmed to follow a movement path while the robot carries out work during a work cycle. A robot control program has information about what the robot should do and in which order tasks should be executed along the path. The con- trol program comprises a series of robot program instructions written in a robot programming language. The control program has information about all target points on the movement path. The robot programming could be done online manually by teaching the robot positions and orientations of target points on the movement path. The control program could also be created by an offline programming and simulation tool running on an external computer, such as a PC.
An industrial robot system includes a manipulator having a plu- rality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes and a robot controller having means for operating the manipulator. The robot controller comprises a storage unit for storing one or more control programs for controlling the movement of the manipulator. The control program comprises program in- structions, including movement instructions for the manipulator. The control program specifies a geometric path to be followed by the robot when carrying out the work. The program may also specify limitations on speed and accelerations along the path. The geometric path can be expressed in joint angels or in Car- tesian coordinates. The relation between the joint angels and the Cartesian coordinates are determined by a kinematic model of the robot. The geometric path specifies the positions of the robot, but not the speed.
The robot controller comprises a program interpreter configured to execute the control program and to provide instructions based on the movement instructions to a path planner. The path planner receives the instructions from the program interpreter and on basis thereof determines how the manipulator should move in order to be able to execute the movement instructions. The path planner generates a trajectory including a geometric path and a speed profile along the path. The path planner plans how the instructed movement should be performed by carrying out an interpolation of the movements. The interpolation includes dividing the instructed movement into a plurality of small increments, and computing the joint angles for all axis of the robot for each increment. The joint angels are then converted into reference values for the motors. The path planner transmits the computed motor references to drive units that control the motors by converting DC current to a variable alternating current in dependence on the motors references.
One important parameter for almost all robot applications is the cycle time. By cycle time is meant the time it takes for the robot to carry out a work cycle. It is important to make the control program as time optimal as possible in order to reduce the cycle time. Therefore, the normal path planning algorithms are based on a solution to an optimization problem that is defined as minimizing the cycle time subject to customer constraints and robot constraints, where customer constraints could be e.g. speed and acceleration values specified by the user. Some examples of robot constraints are maximum gear-box torque, maximum available motor torque, and maximum motor speed. This means that all available motor power is used in every discrete time step as long as no customer or robot constraint is violated.
Industrial robots are today used throughout almost all branches of industrial applications. As an asset among others, the robots contribute to the total environment impact of the plant, for example, due to its energy consumption. The energy consumption for a work cycle is dependent on the movements of the robot, such as the actual path, the velocity, and the acceleration of the robot during the work cycle. Accordingly, there is an aim to reduce the energy consumed by the robot. An article "Trajectory generation for redundant manipulators under optimization of consumed electrical energy" written by Andre R Hirakawa and Atsuo Kawamura conference record of the 1996 IEEE Application conference, volume 3, 6 October 1996, pages 1626 - 1632, discloses a method for energy optimizing a trajec- tory with a fixed length in time for a robot having redundant degrees of freedom. D1 utilizes the internal self move due to the redundant kinematics to energy optimize and minimizes the deviation from a given Cartesian trajectory. One disadvantage with this method is that the geometrical path is only followed to a certain accuracy. Furthermore, if applied to a non redundant robot the only freedom to optimize is the deviation from the Cartesian trajectory. In applications at which it is important to follow a given geometric path, this method will have very small possibilities to reduce the energy consumption. EP1 705 541 shows that it is possible to time optimize a time critical part of a work cycle and to reduce the speed of the robot during a non time critical part of the work cycle, in order to lower the energy consumption. During the non time critical part of the work cycle, the robot is run with as low speed as possible dependent on a determined maximum allowed time period. However, to reduce the speed does not necessarily reduce the energy consumed due to friction and gravity. OBJECTS AND SUMMARY OF THE INVENTION
The object of the present invention is to further reduce the energy consumed by the robot when following a specified geometric path.
According to one aspect of the invention this object is achieved by the method defined in claim 1 .
Such method comprises:
- defining a model for the energy consumption of the robot dependent on the movements of the axes of the robot, including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms considering that the energy consumed due to gravity can be reduced during standstill of the manipulator or one or more of its axes if one or more of the axes are mechanically locked,
- storing a control program specifying a geometric path to be followed by the robot when carrying out the work,
- determining, during at least a part of the work cycle, speed profiles for the axes of the robot when following the specified geometric path with regard to minimizing the energy consumption of the robot and determining whether or not an axis should be mechanically locked during standstill in order to reduce the energy consumption, based on said model for the energy consumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, and
- calculating reference values for the motors of the robot based on the determined speed profiles.
According to the present invention, the speed profile for the axes of the robot when following the specified geometric path is optimized with regard to minimizing the energy consumption of the robot. A speed profile for an axis includes information on the speed of the axis and how the speed changes over time, and accordingly information on the acceleration of the axis. The present invention optimizes the speed and acceleration of the manipulator, and not the geometric path. The geometric path is fixed, or can be allowed to vary within a mall tolerance interval. The present invention is advantageous to use for applications which rely on following a given path, for example, to avoid collisions with fixed obstacles in the robot work space. For a mechanical system, the power is proportional to the torque square and therefore friction plays an important role for the energy consumption. The model for the energy consumption of the robot includes a relation between the energy consumed due to friction and the speed of the axes. There exists a speed where the friction torque is at a minimum. When the speed of the manipulator is lower than the speed where the friction torque is at a minimum, the energy consumption will increase, as shown in figure 3. By using a model for the energy consumption that considers the energy consumption due to friction it is possible to determine robot speeds that minimizes the energy consumption. As a consequence, the time for the robot to carry out the robot movement can be shorter than the maximum allowed time. This possibility is used to further reduce the energy consumed. According to the invention, the optimization is carried out with the provision that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, thereby making it possible to lock the axes of the robot when it is in a final position, and then switch off the control of the motors in order to save energy. According to the invention, the fact that the energy consumed due to gravity can be significantly reduced when one or more of the axes are locked is considered during the optimization of the robot movements. The axes are mechanically locked, for example, by applying the brakes of the robot. Whether or not energy is saved depends on the length of the time period of the stand still, it takes some time to apply and release the brakes and preferably those times are also included in the model. If the time period of the stand still is too short, it is not possible to apply the brakes, or it costs more energy to apply the brakes than is saved. The optimization method determines whether or not an axis should be mechanically locked during a standstill in order to reduce the energy consumption. The axes can be mechanically locked during a stand still at any time during the energy optimized part of the work cycle, not only in the end of the move- ment. Preferably, the influence on the energy consumption when locking the axes is always considered during a stand still. This means that for some cases the energy consumption can be further reduced by increasing the speed. Accordingly, a further reduction of the energy consumption can be made.
The invention makes it possible to command optimization of the movements of the robot during at least a part of the work cycle with regard to minimizing the energy consumption of the robot and a maximum allowed time for carrying out the work. With the term during at least a part of the work cycle is meant during the whole or during one or more parts of the work cycle. The invention is suitable for robot applications for which the time is not critical during at least a part of the work cycle, for instance in applications where the robot is tending a machine and the robot spends a part of the work cycle waiting for the machine to be ready. The invention enables saving of energy for such applica- tions. The maximum allowed time for carrying out the work is set in dependence on the application, for example, the minimum time the robot has to wait for the machine to be tended. According to an embodiment of the invention the model for the energy consumption includes the time it takes to engage/disengage the mechanical lock of the axes of the manipulator, and is designed to take into consideration the time for the engagement/disengagement of the mechanical lock. Whether or not energy is saved depends on the length of the time period of the stand still, it takes some time to apply and release the brakes and preferably those times are also included in the model. If the time period of the stand still is too short, it is not possible to apply the brakes, or it costs more energy to apply the brakes than is saved.
According to an embodiment of the invention, movements for the manipulator are determined with regard to minimizing the energy consumption during a part of the work cycle, and movements for the manipulator are determined with regard to minimizing the time it takes for the robot to carry out the work during another part of the work cycle, and that reference values for the motors of the robot are calculated based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work. This embodiment makes it possible to switch between minimizing the cycle time and minimizing the energy consumption during one work cycle. This embodiment is advantageous for applications having one or more time critical parts and one or more non-time critical parts during the work cycle.
According to an embodiment of the invention, the control program includes instructions for switching on and off the minimiz- ing of the energy consumption of the robot during the work cycle. This embodiment makes it possible for a robot programmer to command minimizing of the energy consumption during selected parts of the work cycle.
According to an embodiment of the invention, the method com- prises calculating the energy reduction achieved by determining the movements of the manipulator with regard to minimizing the energy consumption of the robot instead of with regard to minimizing the cycle time, and displaying the calculated energy reduction. This embodiment enables a robot operator to view the energy reduction achieved and hopefully to encourage the robot operator to use this function.
According to an embodiment of the invention, the robot comprises drive units that control the motors by converting DC cur- rent to a variable alternating current in dependence on said reference values for the motors, and said model for the energy consumption of the robot includes a model of the energy consumption of mechanical parts of the manipulator, a model of the energy consumption of the motors, and a model of the energy consumption of the drive units.
According to another aspect of the invention this object is achieved by the industrial robot system defined in claim 8. Such a robot system comprises:
- data storage storing a model for the energy consumption of the robot depending on the movements of the axes of robot, said model including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms, and the model is designed to consider the fact that the energy consumed due to gravity acting on the arms can be reduced during standstill of the manipulator if one or more of the axes are mechanically locked, and
- an energy optimization module configured to, for at least a part of the work cycle, determine speed profiles for the axes of the robot, when following the specified geometric path and with re- gard to minimizing the energy consumption of the robot and to determine whether or not an axis should be mechanically locked during standstill in order to reduce the energy consumption based on said control program, said model for the energy con- sumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geometric path in a shorter time than the maximum allowed time, and
- a computing unit configured to calculate reference values for the motors of the robot based on the determined robot movements.
According to an embodiment of the invention, the system comprises a time optimization module configured to determine, for at least a part of the work cycle, movements for the manipulator with regard to minimizing the time it takes for the robot to carry out the work based on a dynamic model of the robot, the system is configured to upon command switch between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during one work cycle, and said computing unit is configured to calculate reference values for the motors of the robot based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work.
According to an embodiment of the invention, the control program includes instructions for switching between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during the work cycle, and the system is configured to switch between time and energy optimization based on the instructions in the robot program.
According to an embodiment of the invention, the system com- prises an external computer for off-line programming of the robot and a robot controller for controlling the movements of the manipulator, said energy optimization module is configured to generate an energy optimized control program and the energy optimization module is stored on the external computer, and the computing unit for calculate reference values for the motors of the robot is stored on the robot controller. This embodiment makes it possible to optimize the control program with regard to minimizing the energy consumption during off-line programming of the robot. The output from the off-line programming is an energy optimized control program. An advantage with this em- bodiment is that it is easy to implement and there is no demand of the computational speed and accordingly it is possible to use a more demanding optimizing algorithm with a high accuracy.
According to an embodiment of the invention, the system com- prises a robot controller including a path planner adapted to determine how the manipulator should move based on the control program, and said energy optimization module and the computing unit are parts of the path planner and are stored on the robot controller. According to this embodiment, the energy optimiza- tion of the movements is done in the robot controller during path planning. If the robot program is not programmed off-line it is an advantage from a user's point of view to perform the optimization on the controller instead of on an external computer. A further advantage is that the maximum allowed time can be a vari- able and, for example, it can depend on an input signal from an external unit. Another advantage with this embodiment is that it is possible to determine the trajectory with a higher accuracy compared to if the energy optimization is performed off-line due to the fact that the path planner determines the path based on small increments.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be explained more closely by the descrip- tion of different embodiments of the invention and with reference to the appended figures. Fig. 1 shows a time-optimized speed profile for a robot axis together with and an energy-optimized speed profile determined without regard to friction.
Fig. 2 shows the time-optimized speed profile of figure 1 together with an energy-optimized speed profile determined with regard to friction. Fig. 3 shows an example of the relation between friction torque and speed. shows an example of a prior art robot controller. Fig. 5 shows a robot system according to an embodiment of the invention.
Fig. 6 shows an example of energy optimization done on an external computer.
Fig. 7 shows a robot controller including an energy optimized trajectory generation that only optimizes the speed profile and not the geometric path.
8 shows a robot controller generating an energy optimized trajectory includes determining an energy optimized geometric path as well as an energy optimized speed profile. Fig. 9 shows an example of components in the robot system energy model.
Fig. 10 shows a simplified robot with only one rotational joint. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION The present invention is based upon minimizing the energy consumption, instead of cycle time, and this can be described by the following optimization problem:
Minimize: Integral of Energy Consumption
Subject to: Customer Constraints
Robot constraints
CycleTime < MaxCycleTime
where MaxCycleTime is a user defined maximum cycle time for the robot movements. Customer constraints could be e.g. speed and acceleration values specified by the user. Robot constraints are, for example, maximum gear-box torque, maximum available motor torque, and maximum motor speed. There are a number of robot applications where the robot is not the bottleneck and where the time between robot actions is predefined, depending on machines that the robot tends for example, and where it is logical to use a max time rather than a min time.
The solution to the optimization problem will be discussed in detail later, but now some general properties of the solution and the algorithms to find the solution will be presented. The term energy optimization is in the following used as an equivalent of energy optimal or energy optimized motion planning, which means that the robot motions are planned in order to minimize the energy consumption. The energy optimization can be switched on and off. When the energy optimization is switched off, the motion planning is made with regard to minimizing the cycle time. According to an embodiment of the invention the switching on and off of the energy optimization is commanded in the control program, for example by providing program instructions for switching on and off of the energy optimization. The energy optimization can be switched on per program, per module, per procedure, or per instruction.
The following is an example how the energy optimization can be used in program code of a control program.
Figure imgf000014_0002
Figure imgf000014_0001
The energy optimization is turned on by the command Ener- gyOptimizationOn and is turned off by the command EnergyOp- timizationOff. The two instructions EnergyOptimizationOn and EnergyOptimizationOff are included in a sequence of move instructions. EnergyOptimizationOn switches on the energy optimization and the second argument is the maximum time that the motion is allowed to take until the EnergyOptimizationOff instruction is executed. The program instructions in between a EnergyOptimizationOn and a EnergyOptimizationOff instructions are referred to as an energy-optimization block. The time, given by the variable maxMoveTime in the example, can change as a function of other related processes and hence the actual energy saving can be different at each execution of a particular energy- optimization block. Notice that it is not possible to change the maximum motion time parameter of the energy-optimization block once the control program execution has entered the block. The command printEnergyReduction initiates calculation of the energy reduction achieved by energy optimization instead of optimization of the cycle time, and displaying the calculated energy reduction. Some comments on the solution from a user's perspective: If the maximum time for an energy-optimization block is too short, this means that the normal minimum cycle time criterion could not find a trajectory that satisfies the specified cycle time, the program execution will stop with an error message, e.g. "The time specified for the energy optimization is too short". "No trajectory exists with a cycle time < xx seconds". The "xx" is replaced with the time that it actualiy takes to perform the move instruction according to the optimization criterion. If a time close to "xx" is chosen in the EnergyoptimizationOn instruction not much freedom is left for the energy optimization and therefore a small re- duction of energy will be achieved. When the optimization is performed an estimate of the energy reduction is computed and if the optional argument "printEnergyReduction" is given to the EnergyoptimizationOff command this value is printed, for example, on a teach pendant unit.
An important part of the optimization concept is to make it possible to apply a mechanical lock to the axis of the manipulator, , such as the brakes of the robot, in the final position and then switch off the control of the motors in order to save energy. When the time specified in the EnergyoptimizationOn instruction is reached the brakes must already be released and the motors must be in controlled mode, in order to be responsive and be able to directly move at the next instruction after the energy- optimization block.
In a standard industrial robot configuration where the cycle time is minimized, the geometric path that the robot should follow is well defined from the robot control program. For energy optimization it is possible either to let the path be given by the robot program and optimize the speed profile, or let the geometric path be part of the optimization. This leads to two different cases in the optimization:
Case 1 : The geometric path is given and only the dynamics can be affected in the optimization (this means the speed profile along the path). Case 2; Only the start target and the end target are specified and the geometric path is free to choose in the optimization. Case 2 is not a part of the invention. However, it is possible and useful to include a case where case 1 and case 2 are combined so that a geometric path is given where the robot can deviate from the path to some specified limit when it reduces the total energy consumption.
In the following example the resulting code with a maximum al lowed deviation of 100mm from the desired geometric path i shown:
Figure imgf000016_0001
The optimization algorithm can be executed at different levels, Level 1 : Model based in an offline tool, for example, an externa! PC, and before the program is run on the robot controller.
Level 2: Model based but within the robot controller:
a. Pre-computation before the robot control program starts.
b. Online computation during executions of the control program.
The different versions of the solution will be described in detail later. The solution is similar in level 1 and 2a. The major difference between the different levels is the requirements on the computational complexity. In level 1 and to some extend level 2a there are not many restrictions on the computational complexity while level 2b put very hard restrictions on the computational complexity since the optimization must be solved while the robot moves and with the limited computer resources available in the robot controller. Within an energy-optimization block the motion data is not allowed to change when the block is executed. No conditions, i.e. if-statements or loops, which can affect the path, are allowed. When entering an energy-optimization biock the geometry of the path within the block has to be decided.
The important difference between level 1 and level 2, using model based optimization, is that in the execution at level 1 no data can be changed at the execution of the program while at level 2, motion data can change until the energy-optimization block is entered.
Figure 1 shows a time-optimized speed profile 1 together with and an energy-optimized speed profile 2 for a robot axis moving without being affected by gravity. The energy-optimized speed profile makes the robot reach the final point exactly at a specified maximum time. Figure 3 shows a typical friction behavior with static friction, stiction, Coulomb and viscous friction. For a mechanical system the power produced is proportional to the torque square and therefore friction plays an important role for the energy consumption of the robot. In figure 3 a typical friction behavior is shown and obviously there exists a speed where the friction torque is at a minimum and hence it will result in a different speed profile compared to figure 1 if the energy optimization is done with regard to friction. Figure 2 shows the time-optimized speed profile 1 of figure 1 together with an energy-optimized speed profile 3 determined with regard to friction. The resulting energy-optimized speed profile gives a higher acceleration and speed compared to the profile shown in figure 1 but still lower acceleration and speed compared to the time optimal profile. The energy-optimized speed profile 3 shows a motion that reaches the final position at a point in time Tr that is before Max time. In the time from Tr to Max time the mechanical brakes can be activated and hence no energy is consumed by the mechanical system during this time, which further reduces the total energy consumption. The energy that is regenerated when the robot is decelerating at the end of the motion, in for example figure 1 , is in most cases wasted as electric energy through a resistor (creating the equivalent amount of heat energy). The energy-optimized solution has to consider this energy as well and minimize the wasted kinetic energy, in practice this will imply to reduce the speed , leading to the solution in figure 2. The resulting maximum speed will therefore be a trade-off between minimizing the wasted kinetic energy and minimizing the friction losses. To further reduce the energy consumption it is possible to apply the brakes to one or more axes also during a robot motion if one or more axes are standing still during a time period long enough for the brakes to be applied and released. The total reduction of energy can be computed by evaluating the optimization criterion for the time optimal trajectory and compare this with what is achieved in the energy optimal trajectory. The total reduction of energy is displayed. Figure 4 shows an example of a prior art robot system including a manipulator 8 having a plurality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes, and a robot controller 9 for controlling the movements of the manipulator. The robot controller 9 includes program storage 10 for storing one or more control programs defining work to be carried out by the robot during a work cycle, and a program interpreter 12 configured to execute the control program. The robot controller 9 further includes a path planner that receives the instructions from the program interpreter and on ba- sis thereof determines how the manipulator should move in order to be able to execute the movement instructions. The path planner generates a trajectory including a geometric path and a speed profile along the path. The path planner comprises a geo- metric path planner 14 configured to plan a geometric path, i.e. the positions of the path, and a dynamic optimization planner 16 configured to plan the speed profile for the path with regard to minimizing the cycle time. The dynamic optimization planner 16 uses algorithms that are based on a solution to an optimization problem that is defined as minimizing the cycle time with subject to customer constraints and robot constraints. The controller 9 further comprises data storage 18,19,20 storing a robot kinematic model, a robot dynamic model and a drive system model. From the control program a geometric path is created using the robot kinematic model. The dynamic optimization planner uses the geometric path to create a time optimal speed profile using a dynamic model of the robot and a model of the robot drive system. The path planner further comprises a computing unit 21 configured to calculate reference values for the motors of the robot based on the determined path and speed profile. The computing unit 21 carries out an interpolation of the generated trajectory. The interpolation includes dividing the trajectory into a plurality of small increments, and computing the joint angles for all axis of the robot for each increment. The joint angels are then converted into reference values for the motors. The computing unit
21 transmits the computed motor references to the drive system
22 of the robot controller. The drive system includes drive units that control the motors by converting DC current to a variable alternating current in dependence on the motors references.
Figure 5 shows an example of a robot system according to the invention. A new additional condition is introduced to differenti- ate the trajectory generation in the traditional time optimized case from the new energy optimized case. In Figure 5 it is shown how the overall structure has to be modified in order to introduce the energy optimized trajectory generation in parallel with the present time optimized trajectory generation. The program interpreter detects whether energy optimization is com- manded on or off. The energy optimization is, for example, turned on by the command EnergyOptimizationOn and is turned off by the command EnergyOptimizationOff enclosed in the control program. Energy optimization can be turned on and off several times during a work cycle. If energy optimization is turned off, the time optimized trajectory generation 30 is carried out for the motion instructions. The time optimized trajectory generation 30 determines time optimal movements for the robot and includes the steps of generating a geometric path based on a robot kinematic model and generating a time optimal speed profile based on a robot dynamic model and a drive system model. Input to the time optimization is a motion instruction.
If energy optimization is turned on the energy optimized trajectory generation 30 is started. The energy optimization is carried out on the program instructions in between the EnergyOptimizationOn and the EnergyOptimizationOff instructions, also called a program block. Input to the energy optimization is a program block and a maximum time for carrying out the block. The energy optimization is carried out based on all motion instructions in the program block and the maximum time for the block. The energy optimal trajectory generation determines energy optimized movements for the robot and includes the steps of generating a geometric path based on the robot kinematic model and an energy optimal speed profile based on a robot system energy model, the robot dynamic model, and the drive system model. The energy optimized movements for the robot is generated based on a maximum allowed time, such as maxMoveTime described above, for carrying out the movements, and robot and customary constrains. According to one embodiment of the in- vention, an energy optimized geometric path is generated as well as an energy optimized speed profile. The robot system comprises a time optimization module 30 configured to carry out the time optimized trajectory generation and an energy optimization module 32 configured to carry out the energy optimized trajectory generation. The robot system comprises data storage 34 for storing the robot system energy model. The robot system energy model is a model of the energy consumption of the robot system in dependence on the movements of the axes of the robot. The robot system comprises a robot controller including a computing unit 21 configured to calculate reference values for the motors of the robot based on the determined movements.
Optimization of the movements of the robot with regard to minimizing the energy consumption of the robot means that the movements of the robot are determined with the aim of minimizing the energy consumption. Different degrees of reduction of the consumed energy can be achieved in dependence on how sophisticated the energy model is.
From the introduction to the energy optimization problem stated above it follows that the energy optimization can run at different levels in the robot system. Thus, the time optimal trajectory generation and the energy optimal trajectory generation can be done off-line on an external computer during programming of the robot, or in the robot controller during programming of the robot or during execution of the control program. Irrespective of whether the energy optimization is done on the controller or on an external computer, the computing of motor references is always done on the robot controller.
In figure 6, level 1 , i.e. off-line energy optimization, is shown. The energy optimization is done off-line at an external computer 40, for example during off-line programming of the robot. Input at this level is a robot control program while the output is a new energy optimized control program including energy optimized robot move instructions. For program instructions where energy optimization is off, no change is made to the program instructions. If energy optimization is on, energy optimization is carried out on the program instructions in between the EnergyOptimiza- tionOn and the EnergyOptimizationOff instruction, also called a program block. Output from the energy optimization is an energy optimized program block. The program block includes move instructions, and the energy optimized program block includes energy optimized program instructions. In addition an instruction to engage/disengage the brakes can be inserted in the program.
In the optimization the robot kinematic model, dynamic model, the model of the drive system and in addition a robot system energy model, is utilized. The energy optimized program can have the same path geometry as the original program if case 1 of the energy optimization is used or a modified geometry if case 2 or a combination of case 1 and case 2 is used. When the programming is finished, the control program is loaded to the robot controller. The offline energy optimization module takes a robot program as input and makes an energy optimization of the part of the program where the energy optimization is activated. Output from the energy optimization module is a new energy optimized robot program or part of a program. During execution of the energy optimized program in the robot controller, the path planner generates a motor references based on the movement instructions in the control program.
Figure 7 shows a robot controller 50 including an energy optimization that only optimizes the speed profile and the brake en- gage/disengage time instances but not the geometric path. In this case, the robot move instructions of the control program specify the geometry of the robot motion while the speed profile and the brake engage/disengage time instances are optimized to achieve minimal energy consumption. The path planner includes a geometric path planner 14 that generates a geometric path based on the move instructions in the control program and a ro- bot kinematic model. The path planner also includes an energy optimization module 52 configured to generate an energy optimized speed profile based on the geometric path description, the robot dynamic model, the model of the drive system and the robot system energy model. The path planner also includes a time optimization module 53 configured to generate a time optimized speed profile based on the robot dynamic model and the drive system model. If energy optimization is turned on the energy optimization module 52 is used for generating the speed profile and brake engage/disengage time instances while if energy optimization is turned off, the time optimization module is used for generating the speed profile.
Figure 8 shows a robot controller 54 including a path planner 56 adapted to generate an energy optimized trajectory. The generation of the energy optimized trajectory includes determining an energy optimized geometric path as well as an energy optimized speed profile. In this case the geometry of the path is free to decide in the energy optimization. The robot program provides the start and end robot configuration, next the energy trajectory optimization finds an energy optimal path and speed profile for the robot. The optimization utilizes the robot kinematic model, the dynamic model, the drive system model, and finally the robot system energy model, to solve for the energy optimal trajectory.
When the optimization runs at level 2, case 1 and case 2 of the optimization principle can be described as in figure 7 and 8. In case 1 the geometry is still generated by the geometric path planner using the robot kinematic model while the time optimiza- tion is replaced by the energy optimization which utilizes the robot dynamic model, the drive system model and the robot system energy model. The resulting motor reference is fed down to the drive system 22 as a reference for the motors of the robot manipulator 8. In case 2, figure 8, also the geometry is a free parameter for the energy optimization to decide. This means that the geometric path planner is now a part of the energy- optimization block 56 and input to this block is a robot program, output is a reference to the drive system. The energy optimization utilizes in case 2, the robot kinematic model, the robot dynamic model, the drive system model, and finally the robot sys- tern energy model.
The energy model is a model of the energy consumption of the complete robot system; this includes the mechanical manipulator, the electric motors and the electric drive system. It could also take into account other resources in the system such as fans and processors that can be switched on and off or be controlled depending on the current status of the system. In Figure 9 a block diagram for the energy model is shown. The model includes a mechanical model, an electric drive system model, a motor model, and a controller hardware model. Further, the model includes an environmental model, for example, the surrounding temperature can be measured and used as an input to calculations of the friction. The mechanical model contains the robot dynamic model including friction model. However, the mechanical model in the energy model could have a more sophisticated friction model than the prior art mechanical models. The electric drive system model and the motor model are extensions to the drive system model which could include the energy flow (reuse of energy) between motors at acceleration/deceleration. An energy dissipation model is also included in the electric motor model, this model include friction in the motor but also the actual efficiency of the motor. The controller hardware model is a model of the energy consumption in the controller hardware, such as fans, CPU- boards, etc. The model also includes a model of the brakes; engage/disengage times as well as power consumption in engaged and disengaged mode. The detailed description will be divided in two sections. In the first section a simplified version of the problem is solved to in- troduce the concepts of the solution and to explain on what the solution relies. In the second section the same problem is introduced and the solution is described for a complete, realistic robot model.
Simplified case
Figure 10 shows a simplified robot with only one rotational joint and illustration of two domains, electrical and mechanical. The use of an optional arm is also illustrated and with this option the example becomes the same as the motion of a robot (axis 3 of an articulated 6-DOF robot for example).
In this case a simplified system according to figure 10 is used where the mechanical part is described by
Figure imgf000025_0001
where J is the inertia (matrix or scalar depending upon the num- ber of degrees of freedom of the corresponding system), q the arm angle. The term d(q) represent the gravity term when an arm is attached to the load, as shown in figure 10.
Figure imgf000025_0004
is the friction torque and τ represents the actuator torque, generated by, for example, an electrical motor. The electrical part de- scribed by the DC-motor equation:
Figure imgf000025_0002
With i the circuit current, u the input voltage, L the motor induc- tance, R the motor resistance and um the back EMF (electric motor back electromotive force) generated according to the following equations;
Figure imgf000025_0003
where k is the torque constant. In addition a dissipation term should be added in the energy model, in general this term is a nonlinear function h{i,um) of the current and the back EMF. The friction can be described as
1 ) only viscous friction,
Figure imgf000026_0001
2) model with Coulomb friction and viscous friction, such as the Lugre-model suggested by Canudas de Wit, C, Olsson, H. , Astrom, K., and Lischinsky, P. (1995). "A new model for
control of systems with friction." IEEE Transactions on Automatic Control, 40(3):419-425, or the one suggested by
B. Feeny, and F. Moon. (1994). "Chaos in a forced dry-friction oscillator: Experiments and numerical modelling." Journal of Sound and Vibration, 170(3):303-323.
Figure imgf000026_0002
In terms of the equations describing the system dynamics the optimization problem can now be stated as
Figure imgf000026_0003
where x is the state of the dynamic system, u is the input to the system, Ms a non-linear function, and P can be divided into P- electrical and P-mechanical. P-electrical is the total energy consumed by the system and P-mechanical is only the mechanical part. To be able to explicitly state the energy model in this case it necessary to, again, write down the equations describing the electric motor model:
Figure imgf000026_0004
and the motor drive system model:
Figure imgf000027_0001
where Kp and Kt are the current controller proportional and integral gains. The current reference is simply the torque t computed from:
Figure imgf000027_0003
It is assumed that the current controller is fast so that /' follows !ref well. To conclude, the energy model can now be formulated as
Figure imgf000027_0002
Input to the model is the joint acceleration ' . The joint speed and position can be computed from < by simple integration. In the energy model above no model of the controller hardware energy consumption is included. The brake engagement/disengagement time is here assumed to be zero. When the motor is in steady state, i.e. , / is constant, the electric energy is given by P = ui, where / = τ/k and u = Ri, i.e.,
Figure imgf000027_0004
Clearly the static torque level when the robot is standing still has a great impact on the energy consumption, since it appears in square. It is therefore evident that the position where the ro- bot stands still will be important for the total energy consumption. By applying the brakes it is possible to reduce the wasted energy when the robot is standing still. This is why the mechani- cal model in the energy model above has two distinct cases, one when the joint is moving and one when the joint is standing still. This model is however simplified since the brake engagement/disengagement is assumed to be instantaneous.
To solve the general optimization problem stated above a discrete version can be utilized where q(t) is parameterized so that acceleration is a free parameter in each interval, speed and position can then be computed as:
Figure imgf000028_0001
where
Figure imgf000028_0005
can be fixed or computed from
Figure imgf000028_0003
and "' is the acceleration value used in the time interval
Figure imgf000028_0006
. To simplify the solution it is also assumed that the current controller is sig- nificantly faster then the optimization step length, I.e.,
Figure imgf000028_0004
can be assumed to be zero at each optimization time instance. The optimization problem is now formulated as:
Figure imgf000028_0002
In (4) the discrete optimization problem is formulated with a number of constraints, for example on the torque, the joint speed, and the joint acceleration. The criterion and the equations in the energy mode! are reformulated using
Figure imgf000029_0001
to be able to write down the optimization problem in a mathematical formulation. The motor model and the electric motor drive system are combined using the assumption that the current controller is significantly faster than the optimization time step. The torque is given by the system equation in (1 ). The constraints include maximum and minimum values on the torques and acceleration as well as boundary conditions on the angular position and angular velocity. The normal case would be that the angular speed is zero at the start time (t0) and zero at the end time (tN) but other values could also be included as well as con- straints on the angular acceleration (start, end, and max/mi n values).
The delta time is assumed to be fixed to a sampling time At and the smaller this value the closer the solution comes to the true continuous optimum. Given the formulation in (4) the optimization problem can be solved using a standard general non-linear optimization algorithm, see for example Jorge Nocedal and Stephen J. Wright. Numerical Optimization, Springer. Series in Operations Research, 1999, ISBN 0-387-98793-2, and R. Fletcher. Practical Methods of Optimization. 1987. ISBN 0-471 - 91547-5. In (4) it is assumed that the brake is applied when the robot arm is standing still, since no torque is applied when
Fully developed solution
In a fully developed case the motion of a robot with two or more degrees-of-freedom (DOF) robot is optimized with respect to the energy consumption. The optimization can be made according to the cases described previously, i.e.,
1 . the geometric path is given and only the dynamic can be affected in the optimization, 2. only the start target and the end target are specified and the geometric path is free to choose in the optimization, it is possible and useful to include cases where 1 and 2 are combined so that a geometric path is given where the robot can deviate from the path to some specified limit if it reduces the total energy consumption.
Both cases of the problem can be formulated in a similar way as in (4). In case 1 the geometry of the path is given and the opti- mization problem is to find a (scalar) speed profile along the geometry that minimizes the energy and brake engagement/disengagement time instances for each axis. In case 2 the geometry is not specified, except for the start and the end position. This case is similar to (4) where only the start and end point are specified and the acceleration is a free parameter. In case 2 of the fully developed solution the
Figure imgf000030_0002
parameters are no longer scalars, instead each
Figure imgf000030_0001
is a vector with the length equal to the number of actuated degrees-of-freedom of the considered robot. The optimization problem can still be formulated in a simi- lar way as in (4) but some inequalities now become vector inequalities. The number of variables and the complexity of the solution grow also significantly with the increased number of degrees-of-freedom. The present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims. For example, the energy optimization could be turned on and off by a signal from an external unit, such as a PLC.

Claims

1 . A method for reducing the energy consumption of an indus- trial robot configured to carry out work during a work cycle and comprising a manipulator having a plurality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes, wherein the method comprises:
- defining a model for the energy consumption of the robot dependent on the movements of the axes of robot, including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms,
- storing a control program specifying a geometric path to be followed by the robot when carrying out the work, and
- determining robot movements during at least a part of the work cycle with regard to minimizing the energy consumption of the robot based on said model for the energy consumption of the robot, and
- calculating reference values for the motors of the robot based on the determined robot movements, characterized in that
- said model for the energy consumption is designed to consider the fact that the energy consumed due to gravity acting on the arms can be reduced during standstill of one or more of the axes if the axes are mechanically locked, and
- said determining of the robot movements comprises calculating speed profiles for the axes of the robot when following the specified geometric path and determining whether or not an axis should be mechanically locked during standstill of the axis in order to reduce the energy consumption, based on said model for the energy consumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geomet- ric path in a shorter time than the maximum allowed time.
2. The method according to claim 1 , wherein said model for the energy consumption is designed to take into consideration the time for the engagement/disengagement of the mechanical lock.
3. The method according to claim 1 or 2, wherein the axes are mechanically locked by applying brakes to the motors of the robot.
4. The method according to any of the previous claims, wherein movements for the manipulator are determined with regard to minimizing the energy consumption during a part of the work cycle, and movements for the manipulator are determined with regard to minimizing the time it takes for the robot to carry out the work during another part of the work cycle, and that refer- ence values for the motors of the robot are calculated based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work.
5. The method according to any of the previous claims, wherein the control program includes instructions for switching on and off the minimizing of the energy consumption of the robot during the work cycle.
6. The method according to any of the previous claims, wherein the method comprises:
calculating the energy reduction achieved by determining the movements of the manipulator with regard to minimizing the energy consumption of the robot instead of with regard to mini- mizing the cycle time, and
displaying the calculated energy reduction.
7. The method according to any of the previous claims, wherein robot comprises drive units that control the motors by converting DC current to a variable alternating current in dependence on said reference values for the motors, and said model for the en- ergy consumption of the robot includes a model of the energy consumption of mechanical parts of the manipulator, a model of the energy consumption of the motors, and a model of the energy consumption of the drive units.
8. An industrial robot system comprising a robot including a manipulator (8) having a plurality of arms that are movable relative each other about a plurality of axes and motors for actuating the movements of the axes, and a program storage (10) for storing a control program specifying a geometric path to be followed by the robot when carrying out the work during a work cycle,
- data storage (34) storing a model for the energy consumption of the robot depending on the movements of the axes of robot, said model including a relation between the energy consumed due to friction and the speed of the axes, and the energy consumed due to gravity acting on the arms, and
- an energy optimization module (32) configured to determine, for at least a part of the work cycle, movements for the manipulator with regard to minimizing the energy consumption of the robot based on said control program, said model for the energy consumption of the robot, and
- a computing unit (21 ) configured to calculate reference values for the motors of the robot based on the determined robot movements, characterized in that said data storage is adapted to store a model for the energy designed to consider the fact that the energy consumed due to gravity acting on the arms can be reduced during standstill of one or more of the axes if the axes are mechanically locked, and
- said energy optimization module is configured to calculate speed profiles for the axes of the robot when following the specified geometric path and to determine whether or not an axis should be mechanically locked during standstill in order to reduce the energy consumption, based on said model for the energy consumption of the robot, and a maximum allowed time for carrying out the robot movement during said part of the work cycle, provided that it is permitted to complete the geometric path in a shorter time than the maximum allowed time.
9. The robot system according to claim 8, wherein the system comprises a time optimization module (30) configured to determine, for at least a part of the work cycle, movements for the manipulator with regard to minimizing the time it takes for the robot to carry out the work based on a dynamic model of the robot, the system is configured to upon command switch between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during one work cycle, and said computing unit is configured to calculate reference values for the motors of the robot based on the robot movements determined with regard to minimizing the energy consumption of the robot as well as with regard to minimizing the time it takes for the robot to carry out the work.
10. The robot system according to claim 9, wherein the control program includes instructions for switching between minimizing the time it takes for the robot to carry out the work and minimizing the energy consumption of the robot during the work cycle, and the system is configured to switch between time and energy optimization based on the instructions in the robot program.
1 1. The robot system according to any of the claims 8 - 10, wherein the system comprises an external computer (40) for offline programming of the robot and a robot controller (50,54) for controlling the movements of the manipulator, said energy optimization module (32) is configured to generate an energy opti- mized control program, the energy optimization module is stored on the external computer, and the computing unit (21 ) is stored on the robot controller.
12. The robot system according to any of the claims 8 - 1 1 , wherein the system comprises a robot controller (50,54) including a path planner adapted to determine how the manipulator should move based on the control program, and said energy optimization module (32) and the computing unit (21 ) are parts of the path planner.
PCT/EP2010/063783 2009-10-06 2010-09-20 A method for reducing the energy consumption of an industrial robot and an industrial robot system WO2011042293A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP10754755.6A EP2485875B1 (en) 2009-10-06 2010-09-20 A method for reducing the energy consumption of an industrial robot and an industrial robot system
CN201080045058.8A CN102666030B (en) 2009-10-06 2010-09-20 A method for reducing the energy consumption of an industrial robot and an industrial robot system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EPPCT/EP2009/062961 2009-10-06
PCT/EP2009/062961 WO2011042049A1 (en) 2009-10-06 2009-10-06 A method for reducing the energy consumption of an industrial robot and an industrial robot system

Publications (1)

Publication Number Publication Date
WO2011042293A1 true WO2011042293A1 (en) 2011-04-14

Family

ID=42106087

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2009/062961 WO2011042049A1 (en) 2009-10-06 2009-10-06 A method for reducing the energy consumption of an industrial robot and an industrial robot system
PCT/EP2010/063783 WO2011042293A1 (en) 2009-10-06 2010-09-20 A method for reducing the energy consumption of an industrial robot and an industrial robot system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/062961 WO2011042049A1 (en) 2009-10-06 2009-10-06 A method for reducing the energy consumption of an industrial robot and an industrial robot system

Country Status (2)

Country Link
CN (1) CN102666030B (en)
WO (2) WO2011042049A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014164303A1 (en) * 2013-03-11 2014-10-09 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
DE102013216799A1 (en) * 2013-08-23 2015-02-26 Siemens Aktiengesellschaft Apparatus and method for operating a technical system and method for producing a technical system
US9298863B2 (en) 2014-07-31 2016-03-29 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by using optimal robotic joint configurations
US9457469B2 (en) 2014-08-14 2016-10-04 Siemens Industry Software Ltd. Method and apparatus for automatic and efficient location generation for cooperative motion
US9469029B2 (en) 2014-07-31 2016-10-18 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by optimal ordering of the industrial robotic path
US9701011B2 (en) 2014-05-08 2017-07-11 Siemens Industry Software Ltd. Method for robotic energy saving tool search
US9815201B2 (en) 2014-07-31 2017-11-14 Siemens Industry Software Limited Method and apparatus for industrial robotic energy saving optimization using fly-by
US9922144B2 (en) 2014-03-26 2018-03-20 Siemens Industry Software Ltd. Energy and cycle time efficiency based method for robot positioning
CN113021334A (en) * 2019-12-25 2021-06-25 广东省智能制造研究所 Robot control method with optimal energy
DE102011079117B4 (en) 2011-07-14 2022-09-29 Kuka Deutschland Gmbh Method of programming a robot
EP4035844A4 (en) * 2019-09-29 2022-11-09 Zhuhai Gree Intelligent Equipment Co., Lte. Robot control method and apparatus, storage medium, and processor

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011120037A1 (en) * 2011-12-02 2013-06-06 Kuka Roboter Gmbh Manipulator arrangement and method for operating the manipulator arrangement
DE102012003479A1 (en) * 2012-02-21 2013-08-22 Kuka Roboter Gmbh Method and device for carrying out a manipulator process
DE102013010463A1 (en) 2013-06-24 2014-03-27 Daimler Ag Method for selecting variants of robot e.g. industrial robot, involves determining energy requirements and clock times of selected robot variants for processing production objects under consideration of trajectories
DE102013013847A1 (en) * 2013-08-20 2015-02-26 Kuka Roboter Gmbh Energy-optimized configuration of a manipulator
DE102014202755A1 (en) 2014-02-14 2015-08-20 Carl Zeiss Smt Gmbh Method for shifting at least one optical component
CN104749956A (en) * 2015-03-24 2015-07-01 北京理工大学 Structure optimization method of industrial robot based on harmony search algorithm
JP2017102674A (en) * 2015-12-01 2017-06-08 オムロン株式会社 Track generator, control method of track generator, control program, and record medium
JP2018060289A (en) * 2016-10-03 2018-04-12 オムロン株式会社 Trajectory generation apparatus, control method, control program and recording medium for trajectory generation apparatus
CN110099773B (en) * 2016-12-27 2022-06-10 西门子工业软件有限公司 Method and system for determining kinematic chain sequences of multiple robots
GB2559357B (en) * 2017-02-01 2021-02-24 Jaguar Land Rover Ltd Control of machine movement
CN108237535A (en) * 2018-02-02 2018-07-03 广东工业大学 A kind of mechanical arm and its control system and method
US20200160210A1 (en) * 2018-11-20 2020-05-21 Siemens Industry Software Ltd. Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations
CN110421564A (en) * 2019-08-06 2019-11-08 浙江大学 A kind of robot working unit's layout optimization method based on joint energy consumption assessment
DE102019128583B4 (en) * 2019-10-23 2022-03-10 Franka Emika Gmbh Optimization modes for control programs of a robot manipulator
DE102020102351B9 (en) * 2019-11-04 2024-10-24 ReActive Robotics GmbH Method for controlling and regulating a device comprising a motion module in its interaction with a human, and a device controlled in this way
CN111546379B (en) * 2020-04-26 2021-07-13 西安交通大学 Sensor layout method for monitoring operating state of industrial robot
CN112231919A (en) * 2020-10-20 2021-01-15 山东大学 Energy consumption prediction method and system in task execution process of robot
EP4313503A1 (en) * 2021-03-30 2024-02-07 ABB Schweiz AG A method for controlling displacement of a robot
CN115107035B (en) * 2022-07-26 2023-01-06 珞石(北京)科技有限公司 Hybrid control method for monitoring robot single-joint artificial immune system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408224B1 (en) * 1999-11-10 2002-06-18 National Aerospace Laboratory Of Science Technology Agency Rotary articulated robot and method of control thereof
EP1705541A2 (en) 2005-03-23 2006-09-27 Kawasaki Jukogyo Kabushiki Kaisha Robot controller and robot control method
EP1857229A1 (en) * 2006-05-16 2007-11-21 Abb Ab A control system for an industrial robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0100974D0 (en) * 2001-03-20 2001-03-20 Abb Ab Thermal optimization method
DE102004056861A1 (en) * 2004-11-25 2006-06-08 Kuka Roboter Gmbh Method and device for controlling, manipulating manipulators
JP4936288B2 (en) * 2007-12-10 2012-05-23 本田技研工業株式会社 Target route generation system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408224B1 (en) * 1999-11-10 2002-06-18 National Aerospace Laboratory Of Science Technology Agency Rotary articulated robot and method of control thereof
EP1705541A2 (en) 2005-03-23 2006-09-27 Kawasaki Jukogyo Kabushiki Kaisha Robot controller and robot control method
EP1857229A1 (en) * 2006-05-16 2007-11-21 Abb Ab A control system for an industrial robot

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ANDRE R HIRAKAWA; ATSUO KAWAMURA: "Trajectory generation for redundant manipulators under optimization of consumed electrical energy", IEEE APPLICATION CONFERENCE, vol. 3, 6 October 1996 (1996-10-06), pages 1626 - 1632
B. FEENY; F. MOON: "Chaos in a forced dry-friction oscillator: Experiments and numerical modelling", JOURNAL OF SOUND AND VIBRATION, vol. 170, no. 3, 1994, pages 303 - 323
CANUDAS DE WIT, C.; OLSSON, H.; ASTR6M, K.; LISCHINSKY, P.: "A new model for control of systems with friction", IEEE TRANSACTIONS ON AUTOMATIC CONTROL, vol. 40, no. 3, 1995, pages 419 - 425
HIRAKAWA A R ET AL: "Trajectory generation for redundant manipulators under optimization of consumed electrical energy", CONFERENCE RECORD OF THE 1996 IEEE INDUSTRY APPLICATIONS CONFERENCE - 31ST IAS ANNUAL MEETING, IEEE SERVICE CENTER, US LNKD- DOI:10.1109/IAS.1996.559286, vol. 3, 6 October 1996 (1996-10-06), pages 1626 - 1632, XP010201236, ISBN: 978-0-7803-3544-8 *
JORGE NOCEDAL; STEPHEN J. WRIGHT, NUMERICAL OPTIMIZATION, SPRINGER. SERIES IN OPERATIONS RESEARCH, 1999
R. FLETCHER, PRACTICAL METHODS OF OPTIMIZATION, 1987

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011079117B4 (en) 2011-07-14 2022-09-29 Kuka Deutschland Gmbh Method of programming a robot
WO2014164303A1 (en) * 2013-03-11 2014-10-09 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
US9649765B2 (en) 2013-03-11 2017-05-16 Siemens Aktiengesellschaft Reducing energy consumption of industrial robots by using new methods for motion path programming
DE102013216799A1 (en) * 2013-08-23 2015-02-26 Siemens Aktiengesellschaft Apparatus and method for operating a technical system and method for producing a technical system
US9922144B2 (en) 2014-03-26 2018-03-20 Siemens Industry Software Ltd. Energy and cycle time efficiency based method for robot positioning
US9701011B2 (en) 2014-05-08 2017-07-11 Siemens Industry Software Ltd. Method for robotic energy saving tool search
US9298863B2 (en) 2014-07-31 2016-03-29 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by using optimal robotic joint configurations
US9469029B2 (en) 2014-07-31 2016-10-18 Siemens Industry Software Ltd. Method and apparatus for saving energy and reducing cycle time by optimal ordering of the industrial robotic path
US9815201B2 (en) 2014-07-31 2017-11-14 Siemens Industry Software Limited Method and apparatus for industrial robotic energy saving optimization using fly-by
US9457469B2 (en) 2014-08-14 2016-10-04 Siemens Industry Software Ltd. Method and apparatus for automatic and efficient location generation for cooperative motion
EP4035844A4 (en) * 2019-09-29 2022-11-09 Zhuhai Gree Intelligent Equipment Co., Lte. Robot control method and apparatus, storage medium, and processor
CN113021334A (en) * 2019-12-25 2021-06-25 广东省智能制造研究所 Robot control method with optimal energy

Also Published As

Publication number Publication date
WO2011042049A1 (en) 2011-04-14
CN102666030A (en) 2012-09-12
CN102666030B (en) 2015-03-25

Similar Documents

Publication Publication Date Title
EP2485875B1 (en) A method for reducing the energy consumption of an industrial robot and an industrial robot system
WO2011042293A1 (en) A method for reducing the energy consumption of an industrial robot and an industrial robot system
Fang et al. An approach for jerk-continuous trajectory generation of robotic manipulators with kinematical constraints
Gasparetto et al. Path planning and trajectory planning algorithms: A general overview
Kröger et al. Literature survey: Trajectory generation in and control of robotic systems
Lu et al. Time-optimal tool motion planning with tool-tip kinematic constraints for robotic machining of sculptured surfaces
JP2018114607A (en) Robot control device, robot system, robot control method, program, and manufacturing method of recording medium and article
Pastras et al. A theoretical investigation on the potential energy savings by optimization of the robotic motion profiles
Halevi et al. Minimum energy control of redundant actuation machine tools
EP3441201B1 (en) Method for operating a robot and robotic system
Kroger et al. Towards on-line trajectory computation
KR101721700B1 (en) Control device and method for a manipulator
Pham et al. On the structure of the time-optimal path parameterization problem with third-order constraints
Hansen et al. Path planning approach for the amplification of electrical energy exchange in multi axis robotic systems
Chuy et al. Sampling-based direct trajectory generation using the minimum time cost function
Wang et al. Path-constrained time-optimal motion planning for robot manipulators with third-order constraints
Stihi et al. Tracking Fractional Power Rate sliding mode control for a 4DOF manipulator robot
Shiller et al. Trajectory preshaping for high-speed articulated systems
De Schutter et al. Unified constraint-based task specification for complex sensor-based robot systems
Messner et al. Efficient online computation of smooth trajectories along geometric paths for robotic manipulators
Hamad et al. Fast yet predictable braking manoeuvers for real-time robot control
Hansen et al. Concurrent energy efficiency optimization of multi-axis positioning tasks
Pedel et al. Actuator constraints in optimal motion planning of manipulators
Reiter et al. Path and Trajectory Planning
Gattringer et al. Extending continuous path trajectories to point-to-point trajectories by varying intermediate points

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080045058.8

Country of ref document: CN

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

Ref document number: 10754755

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010754755

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE