The present invention relates to methods and robot controllers for controlling a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, where external objects have been provided to the robot arm.
Robot arms comprising a plurality of robot joints and links where motors or actuators can move parts of the robot arm in relation to each other are known in the field of robotics. Typically, the robot arm comprises a robot base which serves as a mounting base for the robot arm; and a robot tool flange where to various tools can be attached. A robot controller is configured to control the robot joints in order to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of working instructions. The robot joints may be rotational robot joints configured to rotate parts of the robot arm in relation to each other, prismatic joints configured to translate parts of the robot arm in relation to each other and/or any other kind of robot joints configured to move parts of the robot arm in relation to each other.
Typically, the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Often, the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm. The kinematic model defines a relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or like. The dynamic model makes it possible for the controller to determine which torques and/or forces the joint motors or actuators shall provide in order to move the robot joints for instance at specified velocity, acceleration or in order to hold the robot arm in a static posture.
Robot arms need to be programmed by a user or a robot integrator which defines various instructions for the robot arm, such as predefined moving patterns and working instructions such as gripping, waiting, releasing, screwing instructions. The instruction can be based on various sensors or input signals which typically provide a triggering signal used to stop or start at a given instruction. The triggering signals can be provided by various indicators, such as safety curtains, vision systems, position indicators, etc.
Typically, it is possible to attach various end effectors to the robot tool flange or other parts of the robot arm, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc.
A collaborative robot is a robot designed for direct interaction with a human. Light-weight design is one of the main concerns, when a robot is designed to be collaborative. This is to reduce the impact in a potential collision with a human or an obstacle. Thus, the design will be a compromise between low mass and high rigidity. Light-weight design is a major goal in current development of robots, cranes, and automotive industry, just to name a few. A light-weight design is motivated by for example increased performance, increased safety, reduced environmental footprint, reduced energy consumption, and reduced price. A light-weight design will feature an increased amount of mechanical flexibility, compared to the traditional heavy and rigid industrial robots, which are often based on a cast iron design.
Robots with mechanical flexibility pose a challenge in terms of performance. For example, when rapid point-to-point motions are desired, and mechanical vibrations are not acceptable. Therefore, it is desired to suppress mechanical vibrations in robot arms. This can for instance be achieved by utilizing input shaping methods, which slightly modify the target motion of the robot arm, by intelligently adding a time-delay. The modified (shaped) trajectory will reduce the amount of vibrations at the critical natural frequencies of the system.
WO2019012040A1 and corresponding scientific articles {ii.} {iii.} discloses a method for generating inputs to a physical system with varying dynamic properties, which can be used to suppress the mechanical vibrations of a robot arm. The control signals to the robot arm are generated based on the dynamic properties of the physical system which for instance can be obtained based on dynamic modeling of the physical system, lookup tables containing dynamic properties of the physical system, measurements of parts of the physical system, or a combination of the aforementioned. In order to provide an efficient vibration suppression of the robot arm accurate dynamic properties of the robot arm at various poses must be available for the possible poses of the robot arm, where a pose of the robot arm characterizes the position and orientation of the different parts of the robot arm, for instance in form of the positions of the robot joints such as joint angles of the robot joints. This can be achieved by arranging the robot arm in the possible poses and obtain the dynamic properties of the robot arm in a given pose, for instance by performing measurements of the robot arm's damping and eigenfrequencies at the current pose. This is a very complicated process which requires measurement of eigenfrequencies and damping of robot arm at huge number of different configurations of the robot arm, as a typical robot arm can be arrange in nearly infinite amount of pose due to the fine resolution of the robot joints; this is very time consuming. Additionally, the huge number of measured data makes it difficult to evaluate the dynamic properties in real-time.
Additionally, the robot arms are often used in connection with various external objects connected to the robot arm as end effectors attached to the robot tool flange, wires, hoses, safety equipment attached to the robot arm etc. When providing such external objects, the vibrational properties of the robot arm are influenced by the external objects. Consequently, the effect of controlling the robot arm using input shaping as described in WO2019012040A1, the scientific articles {ii.} {iii.} may be limited as the vibrational properties used for input shaping typically is obtained at a calibration process during the manufacturing of the robot arm. Additionally, the robot arm may be arranged on structures that influences the vibrational properties of the robot arm whereby the similar effects occurs.
EP 1132790 A1 discloses a controller for a machine such as a robot and a machine tool having an electric motor as a driving source of the machine, capable of suppressing a natural vibration of the machine and/or an attachment attached to the machine. A frequency or a cycle of the natural vibration of an end effector of the robot as the attachment or the machine itself is determined and a coefficient of a filter for suppressing an amplitude of the natural vibration is altered in accordance with the measured frequency or cycle of the natural vibration. In the case of suppressing a natural vibration of the end effector attached to the robot, frequencies or cycles of natural vibrations of various end effectors in accordance with an operation status of the end effector are determined and stored, and the coefficient of the filter is set in accordance with the stored frequency or cycle of the natural vibration in accordance with the end effector attached to the robot and the operation status. In the case of suppressing a natural vibration of the machine, the natural frequency of the machine is always detected and the coefficient of the filter is automatically altered in accordance with the detected natural frequency, to thereby suppressing an amplitude of the natural vibration of the machine having the natural frequency varying due to variation of load and aging of the machine.
The object of the present invention is to address the above described limitations with the prior art or other problems of the prior art. This is achieved by the robot controller and a method of controlling a robot arm according to the independent claims.
Where, the robot controller according to an independent claim comprises an external object installation interface configured to receive vibrational properties of at least one external object connected to the robot arm and where the robot controller is configured to generate a control signal for the robot arm based on a target motion and the received vibrational properties of the at least one external object. This makes it possible for the user to ensure that the robot controller controls the robot arm in a way that minimizes the vibrations of and/or caused by external objects connected to the robot arm. The external object installation interface makes it possible, for a user to provide the vibrational properties as these typically are not known by the robot arm manufacture and the robot controller will then automatically take these vibrational properties into account when controlling the robot arm.
Where, the method for controlling a robot arm according to an independent claim comprises a step of receiving the vibrational properties of an external object connected to the robot arm via an external object installation interface, a step of generating a target motion for the robot arm and a step of generating a control signal for the robot arm based on the target motion and the received vibrational properties. This makes it possible for a user of a robot arm to provide the vibrational properties of an external object connected to the robot arm and provide control signals for the robot arm that reduces the vibrations introduced by the external object.
The dependent claims describe possible embodiments of the robot arm and methods according to the present invention. The advantages and benefits of the present invention are described in further detail the in detailed description of the invention.
The present invention is described in view of exemplary embodiments only intended to illustrate the principles of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims. Throughout the description, the reference numbers of similar elements providing similar effects have the same last two digits. Further it is to be understood that in the case that an embodiment comprises a plurality of the same features then only some of the features may be labeled by a reference number.
A robot tool flange reference point 107 also known as a TCP (Tool Center Point) is indicated at the robot tool flange and defines the origin of a tool flange coordinate system defining three coordinate axes xflange, yflange, zflange. In the illustrated embodiment the origin of the robot tool flange coordinate system has been arranged on the tool flange axis 105f with one axis (zflange) parallel with the tool flange axis and with the other axes xflange, yflange parallel with the outer surface of the robot tool flange 104. Further a base reference point 108 is coincident with the origin of a robot base coordinate system defining three coordinate axes xbase, ybase, zbase. In the illustrated embodiment the origin of the robot base coordinate system has been arrange on the base axis 105a with one axis (zbase) parallel with the base axis 105a axis and with the other axes xbase, ybase parallel with the bottom surface of the robot base. The direction of gravity 109 in relation to the robot arm is also indicated by an arrow and it is to be understood that the robot arm can be arranged at any position and orientation in relation to gravity.
The robot arm comprises at least one robot controller 110 configured to control the robot arm 101 and can be provided as a computer comprising in interface device 111 enabling a user to control and program the robot arm. The controller can be provided as an external device as illustrated in
The robot tool flange 104 comprises a force-torque sensor 114 integrated into the robot tool flange 104 The force-torque sensor 114 provides a tool flange force signal indicating a force-torque provided at the robot tool flange. In the illustrated embodiment the force-torque sensor is integrated into the robot tool flange and is configured to indicate the forces and torques applied to the robot tool flange in relation to the tool robot tool flange reference point 107. The force-torque sensor 114 provides a force and torque signal indicating a force and torque provided at the tool flange. In the illustrated embodiment the force-torque sensor is integrated into the robot tool flange and is configured to indicate the forces applied to the robot tool flange in relation to the reference point 107 and in the tool flange coordinate system. However, the force-torque sensor can indicate the force-torque applied to the robot tool flange in relation to any point which can be linked to the robot tool flange coordinate system. In one embodiment the force-torque sensor is provided as a six-axis force-torque sensor configured to indicate the forces along and the torques around three perpendicular axes. The force-torque sensor can for instance be provided as any force-torque sensor capable of indicating the forces and torques in relation to a reference point for instance any of the force torque sensors disclosed by WO2014/110682A1, U.S. Pat. No. 4,763,531, US2015204742. However, it is to be understood that the force sensor in relation to the present invention not necessarily need to be capable of sensing the torque applied to the tool flange. It is noted that the force-torque sensor may be provided as an external device arranged at the robot tool flange, at other parts of the robot arm or be omitted.
An acceleration sensor 115 is arranged at the robot tool joint 102f and is configured to sense the acceleration of the robot tool joint 102f and/or the acceleration of the robot tool flange 104. The acceleration sensor 115 provides an acceleration signal indicating the acceleration of the robot tool joint 102f and/or the acceleration of the robot tool flange 104. In the illustrated embodiment the acceleration sensor is integrated into the robot tool joint and is configured to indicate accelerations of the robot tool joint in the robot tool coordinate system. However, the acceleration sensor can indicate the acceleration of the robot tool joint in relation to any point which can be linked to the robot tool flange coordinate system. The acceleration sensor can be provided as any accelerometer capable of indicating the accelerations of an object. The acceleration sensor can for instance be provided as an IMU (Inertial Measurement Unit) capable of indicating both linear acceleration and rotational accelerations of an object. It is noted that the acceleration sensor may be provided as an external device arranged at the robot tool flange, at other parts of the robot arm or omitted.
Each of the robot joints comprises a robot joint body and an output flange rotatable or translatable in relation to the robot joint body and the output flange is connected to a neighbor robot joint either directly or via an arm section as known in the art. The robot joint comprises a joint motor configured to rotate or translate the output flange in relation to the robot joint body, for instance via a gearing or directly connected to the motor shaft. The robot joint body can for instance be formed as a joint housing and the joint motor can be arranged inside the joint housing and the output flange can extend out of the joint housing. Additionally, the robot joint comprises at least one joint sensor providing a sensor signal indicative of at least one of the following parameters: an angular and/or linear position of the output flange, an angular and/or linear position of the motor shaft of the joint motor, a motor current of the joint motor or an external force and/or torque trying to rotate the output flange or motor shaft. For instance, the angular position of the output flange can be indicated by an output encoder such as optical encoders, magnetic encoders which can indicate the angular position of the output flange in relation to the robot joint. Similarly, the angular position of the joint motor shaft can be provided by an input encoder such as optical encoders, magnetic encoders which can indicate the angular position of the motor shaft in relation to the robot joint. It is noted that both output encoders indicating the angular position of the output flange and input encoders indicating the angular position of the motor shaft can be provided, which in embodiments where a gearing have been provided makes it possible to determine a relationship between the input and output side of the gearing. The joint sensor can also be provided as a current sensor indicating the current through the joint motor and thus be used to obtain the torque provided by the motor. For instance, in connection with a multiphase motor, a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor. It is also noted that some of the robot joints may comprise a plurality of output flanges rotatable and/or translatable by joint actuators, for instance one of the robot joints may comprise a first output flange rotating/translating a first part of the robot arm in relation to the robot joint and a second output flange rotating/translating a second part of the robot arm in relation to the robot joint. As indicated above, the joint sensor can also be provided as a force-torque sensor or an acceleration sensor. Such force and/or torque and acceleration sensor may be part of the outmost joint as indicated on
An end effector 126 (illustrated in dotted lines) is attached to the robot tool flange and is illustrated in form of a gripper, however it is to be understood that the end effector can be any kind of end effector such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, gluing equipment, dispensing systems, painting equipment, visual systems, cameras etc. The end effector 126 constitute an external object connected to the robot arm, however an external object connected to the robot arm can be any objects or objects connected to the robot arm such as wires, hoses, safety equipment, markers, lights etc. which is connected to the robot arm. The robot base 103 is also connected to an external object which is illustrated in form of a robot stand 127 (illustrated in dashed lines), whereon the robot arm is mounted.
External objects connected to the robot arm have some vibrational properties that influences the robot arm and the external objects may vibrate due to movement of the robot arm. For instance, the working point of end effectors may vibrate during movement of the robot arm in an undesired way. For instance, in situations were the external object is provided as a camera for visual inspection the camera may vibrate upon arrival at the position where the camera needs to take photos or video, consequently the camera need to wait some time before it can take the photos/video. Consequently, the inspection time is prolonged. End effectors where the working point of the end effector need to be very precise and accurate also need to wait until the vibrations are reduced. As will be described in the following paragraphs the robot controller according to the present invention solves this by providing an external object installation interface, where vibrational properties of at least one external object connected to the robot arm can be provided to the robot controller. The robot controller can then be configured to generate controls signal for the joint motors based on a target motion and the vibrational properties of the external object. This makes it possible for the user to ensure that the robot controller controls the robot arm in a way that minimizes the vibrations of and/or caused by external objects connected to the robot arm. The external object installation interface makes if possible, for a user to provide the vibrational properties as these typically are not known by the robot arm manufacture and the robot controller will then automatically take these vibrational properties into account when controlling the robot arm.
Robot tool joint 102f comprises the force-torque sensor 114 providing a tool flange force-torque signal 224 indicating a force-torque FTflange provided to the tool flange. For instance, the force signal-torque FTflange can be indicated as a force vector {right arrow over (Fsensorflange )} and a torque vector {right arrow over (Tsensorflange )} in the robot tool flange coordinate system:
where Fx,sensorflange is the indicated force along the xflange axis, Fy,sensorflange is the indicated force along the yflange axis and Fz,sensorflange is the indicated force along the zflange axis.
In an embodiment where the force sensor is provided as a combined force-torque sensor the force-torque sensor can additionally also provide a torque signal indicating the torque provided to the tool flange, for instance as a separate signal (not illustrated) or as a part of the force signal. The torque can be indicated as a torque vector in the robot tool flange coordinate system:
where Tx,sensorflange is the indicated torque around the xflange axis, Ty,sensorflange is the indicated torque around the yflange axis and Tz,sensorflange is the indicated torque around the zflange axis. It is noted that the force vector and torque vector can be provided as separate signals and that a separate force sensor and/or torque sensor can be provided.
Robot tool joint 102f may comprise the acceleration sensor 115 providing an acceleration signal 225 indicating the acceleration of the robot tool flange where the acceleration may be indicated in relation to the tool flange coordinate system
where ψx,sensorflange is the sensed acceleration along the xflange axis, ψy,sensorflange is the sensed acceleration along the yflange axis and ψz,sensorflange is the sensed acceleration along the zflange axis. Also or alternatively, the acceleration sensor can be configured to measure the acceleration of the robot tool flange in relation to gravity and the acceleration measured acceleration in relation to gravity can be converted into accelerations in relation to the robot tool flange of robot base.
In an embodiment where the acceleration sensor is provided as a combined accelerometer/gyrometer (e.g. an IMU) the acceleration sensor can additionally or alternatively provide an angular acceleration signal indicating the angular acceleration of the output flange in relation to the robot tool flange coordinate system, for instance as a separate signal (not illustrated) or as a part of the acceleration signal. The angular acceleration signal can indicate an angular acceleration vector {right arrow over (αsensorflange )} in the robot tool flange coordinate system
where αx,sensorflange is the angular acceleration around the xflange axis, αy,sensorflange is the angular acceleration around the yflange axis and αz,sensorflange is the angular acceleration around the zflange axis. Also or alternatively, the acceleration sensor can be configured to measure the angular acceleration of the robot tool flange in relation to gravity and the angular acceleration measured in relation to gravity can be converted into angular accelerations in relation to the robot tool flange of robot base.
The force sensor and acceleration sensor of the illustrated embodiment are arranged at the robot tool joint 102f; however, it is to be understood that the force sensor and acceleration sensor can be arranged at any part of the robot arm, as one or more external object connected to the robot arm. It is noted that the force sensor and acceleration sensor are optional and that they can be omitted.
An end effector 127 in form of a gripper (illustrated in dotted lines) is connected to the robot tool flange 104. The end effector may be connected to the robot controller and the robot controller may be configured to control the end effector via an end effector control signal 228. Further the end effector may provide an effector feedback signal 229 to the robot controller for instance in order to indicate the status of the end effector, signals from various sensors etc.
The robot controller 110 comprises a processer 221, memory 222, a motion planer module 230, a motor controller module 231 and an external object installation interface 232. The motion planer module 230, the motor controller module 231 and the external object installation interface 232 can for instance be provided as processes executed by the processor 221, however it is noted that they also can be executed on separate processor units.
The motion planner module 230 is configured to provide target motions of the robot arm, for instance by generating trajectories of parts of the robot arm. The trajectories can for instance be generated based on a robot program instructing the robot arm to perform various tasks or user inputs provided via an interface device 111. In the illustrated embodiment the motion planner module provides a target motion Md of parts of the robot arm. The target motion may indicate a path along which a part of the robot arm shall move, the speed of a part of the robot arm, the acceleration of a part of the robot arms, a waypoint to which a part of the robot arm shall move. The target motion can for instance be indicated in cartesian space in reference to the robot base coordinate system, the tool flange coordinate system or any other reference coordinate systems. Also, the target motion can be indicated in joint space where the motions properties of the robot joints are indicated; e.g. as angular position qd of output axles of the joint transmissions, a desired angular velocity qd of output axles of the joint transmissions, a desired angular acceleration {umlaut over (q)}d of the robot transmission.
The target motion Md is provided to the motor controller module 231. The motor controller module 231 is configured to generate at least one motor control signal to the joint motors, for instance in form of a motor control signals 223a, 223b, 223f indicating control parameters for the joint motors, which can be used to control the joint motors as desired. For instance the control parameters can indicate the motor torque Tmotor,a, Tmotor,b, and Tmotor,f that each joint motor shall provide to the output flanges and the robot controller is configured to determine the motor torque based on a dynamic model of the robot arm as known in the prior art. The motor controller module 231 is configured to generate the motor control signals 223a, 223b, 223f based on the target motion Md and a dynamic model of the robot arm Drobot. The dynamic model of the robot arm Drobot can for instance be stored in a memory 222. The dynamic model makes it possible for the controller to calculate which torque the joint motors shall provide to each of the joint motors to make the robot arm perform a target motion, where a target motion indicate a motion of at least a part of the robot arm. The motor controller module may additionally also be configured to generate the motor control signal 223a, 223b, 223f based on at least one sensor signal 220a, 220b, 220f indicative of at least one joint sensor parameter Jsensor,a, Jsensor,b, Jsensor,f and/or other sensor signals indicating other robot parameters. The sensor signal can for instance indicate the angular position q of the output axle; the angular position θ of the motor axle; the motor torque Tmotor provided to the motor axle by the joint motor. For instance, the joint motors can be provided as multiphase electromotors and the robot controller can be configured to adjust the motor torque provided by the joint motors by regulating the current through the phases of the multiphase motors as known in the art of motor regulation.
In addition, the motor controller module is configured to generate the control signal for the robot arm based on vibrational properties (Wi, of at least one external object connected to the robot arm, where the vibrational properties are received by the external object installation interface 232. This makes it possible for the user to ensure that the robot controller controls the robot arm in a way that minimizes the vibrations of and/or caused by external objects connected to the robot arm. The external object installation interface makes it possible, for a user to provide the vibrational properties as these typically are not known by the robot arm manufacture and the robot controller will then automatically take these vibrational properties into account when controlling the robot arm. The external object installation interface can be configured to receive the vibrational properties of the at least one external object via a vibrational properties user signal 233 received via an user interface device 111, a vibrational properties data signal 234 received from an external data source 235 (e.g. a memory device, a server, an external processer, etc) and/or a vibrational properties effector signal 236 received from the external object for instance as a effector feedback signal 229.
In one embodiment the vibrational properties of the at least one external object is received from a vibrational properties user signal 233 received via an user interface device 111. This makes it possible for a user to provide the vibrational properties of external objects connected to the robot arm directly to the robot arm, for instance in connection with an installation module where the user provided various properties of external objects connected to the robot arm.
In one embodiment the vibrational properties of the at least one external object is received from a vibrational properties data signal 234 received from an external data source 235. This makes it possible to connect the robot controller to receive the vibrational properties from any data source which can be connected to the robot arm. For instance, providers of external objects which can be connected to the robot arm can provide the vibrational properties of the external object as data which automatically can be installed on the robot controller without the user having detailed knowledge of the vibrational properties. This is advantageously in that simplifies the user's tasks of providing vibrational properties of external objects and makes it thus easier for the user to reduce vibrations of the robot arm caused by connection external objects to the robot arm. Additionally, the external data source may update the vibrational properties of the external object in real time.
In one embodiment the vibrational properties of the at least one external object is received from a vibrational properties effector signal 236 received from the external object. This makes it possible to automatically receive the vibrational properties directly from the external object once an effector feedback signal is established. External objects like end effector may have comprise their own processor and memory and the end effector can be configured to send the vibrational properties to the robot controller when the two are interconnected. Providers of external objects can hereby provide the vibrational properties of the external object on the external object itself hereby it can be ensured that vibrational properties of the external object follow the external object. This is advantageously in that it simplifies the user's tasks of providing vibrational properties of the external objects and makes it thus easier for the user to reduce vibrations of the robot arm caused by connecting external objects to the robot arm. Additionally, the external object may update the vibrational properties of the external object in real time.
The vibrational properties of the external object can be received in form of at least one number indicating the vibrational properties of the at least one external object. The at least one number indicating the vibrational properties of the at least one external object can be any kind of number such as integers, rational number, real numbers and or complex numbers. Also, the vibrational properties can be received in form of at least one external object vibration formula, where the external object vibration formula defines at relationship between the vibrational properties of the at least one external object and at least one robot parameter. This makes it possible to obtain the vibrational properties of the external object based on robot parameters such as position, orientation, speed, acceleration of parts of the robot arm, as such parameters may influence the vibrational properties of the external object. The external object vibration formula may for instance be defined in form of a mathematical formula, program codes, look up tables or combinations thereof. Also, it is to be understood the robot parameters of which different formulas is defined can be the same, different of partially the same. Also, the numbers indicating the vibrational properties of the external object and/or a result of another formula can be used as input into one formula.
In
In
In one embodiment wherein the external object installation module can comprise a first external object installation user interface, where a user can provide vibrational properties of a first external object connected to the robot arm and a second external object installation user interface, where a user can provide vibrational properties of a second external object connected to the robot arm. In fact, the external object installation module may comprise a plurality of external object installation user interfaces enabling a user to provide the vibrational properties of a plurality of external objects connected to the robot arm. This makes it possible for the user to provide the vibrational properties of the external objects independently of each other and thus makes it possible to reduce the vibrations caused by adding a plurality of external objects to the robot arm.
In
In one embodiment the motor controller module 231 is configured to generate motor control signals to the joint motors by providing at least one object impulse train based on the received vibrational properties of the at least one external object. The object impulse train comprises a number of impulses and generate the control signal by convolving the target motion and the at least one object impulse train, for instance as described in {i.}{ii.} {iii.}. This makes it possible to reduce vibrations introduced by external objects utilizing impulse shaping techniques where the user has provided the vibrational properties of the external object. It is to be understood that generation of the object impulse train and convolving of the target motion and the object impulse train can be performed by other modules of the robot controller, for instance an impulse train generation module can be provided which is configured to generate the object impulse train based on the vibrational properties of the external object and the motion planner module 230 can be configured to perform the convolving and then send the convolved target motion to the motor controller module 231, or a convolving module can be provided which is configured to receive the target motion from the motion planner module and the impulse train from a impulse train generation module.
In an embodiment with a plurality of external objects the motor controller module can be configured to providing an impulse train based on the vibrational properties of each of the plurality of external objects. Consequently, a plurality of impulse trains is provided and the motor controller module can be configured to convolute the control signals for the joint motors with each of the impulse trains. It noted that the order of convolution does not matter, and that the plurality of impulse trains can be convolved with each other before convolving them with the control signal.
In one embodiment the motor controller module 231 is configured to generate motor control signals to the joint motors by obtaining the vibrational properties of the robot arm, for instance based on prior knowledge of the robot arm and/or based on user inputs. The motor controller module is then configured to provide a robot arm impulse train based on the vibrational properties of the robot arm and generate the control signal by convolving the target motion and the robot arm impulse train. This makes it possible to reduce vibrations caused by the robot arm. Consequently, the control signal can be convoluted by both the object impulse train and the robot arm impulse train, whereby both vibrations caused by the robot arm and the external object can be reduced.
Step 450 of receiving the vibrational properties (ωi, ζi) of the at least one external object connected to the robot arm can be performed by one or more of the following steps:
Step 460 of generating a target motion for the robot arm by generating trajectories of parts of the robot arm. The trajectories can for instance be generated based on a robot program instructing the robot arm to perform various tasks or user inputs provided via an interface device. In the illustrated embodiment step 460 provides a target motion Md of parts of the robot arm based on a desired waypoint WP1 to which a part of the robot arm shall move and also based on knowledge of the robot arm KoR, such as the dynamic model and/or the kinematic model of the robot arm. The target motion may indicate a path along which a part of the robot arm shall move, the speed of a part of the robot arm, the acceleration of a part of the robot arm, a waypoint to which a part of the robot arm shall move. The target motion can for instance be indicated in cartesian space in reference to the robot base coordinate system, the tool flange coordinate system or any other reference coordinate systems. Also, the target motion can be indicated in joint space where the motions properties of the robot joints are indicated; e.g. as angular position qd of output axles of the joint transmissions, a desired angular velocity {dot over (q)}d of output axles of the joint transmissions, a desired angular acceleration {umlaut over (q)}d of the robot transmission.
Step 470 of generating a control signal for the robot arm is performed based on the target motion MD and the received vibrational properties, ωi, ζi and the control signal comprises control parameters for the joint motor. In the illustrated embodiment the control parameters are the motor torques that the joint motors shall provide Tmotor, a, Tmotor, b, Tmotor, c, Tmotor, d, Tmotor, e, Tmotor, f.
In one embodiment step 470 of generating control signal comprises a step 471 of providing at least one object impulse train based on the provided vibrational properties of the at least one external object and a step 472 of generating the control signals based on the object impulse train and the target motion. The object impulse train comprises a number of impulses and can for instance be obtained as for instance as described in {i.}{ii.} {iii.}. The object impulse train can for instance be indicated by the magnitudes, {right arrow over (AO)}, and the delays, {right arrow over (ΔO)}, of the impulses. For input shaping in general, the impulse train consist of n impulses, n being a positive integer. An impulse train consisting of n impulses is presented as in:
{right arrow over (AO)}={AO,1AO,2 . . . AO,n} eq. 5
{right arrow over (ΔO)}={ΔO,1ΔO,2 . . . ΔO,n} eq. 6
The step 470 of generating control signals for the robot arm comprises a step 472 of convolving the target motion Md and the object impulse train {right arrow over (AO)},{right arrow over (ΔO )} resulting in a convolved target motion Md*, thereafter in step 473 the control signals for the robot arm are generated based on the convolved target motion.
Further step 470 of generating control signal for the robot arm comprises a step 574 of providing a robot arm impulse train based on the vibrational properties of the robot arm, the robot arm impulse train comprises a number of impulses and can for instance be obtained as for instance as described in {i.}{ii.} {iii.}. The robot arm impulse train can for instance be indicated by the magnitudes, {right arrow over (Ara)}, and the delays, {right arrow over (Δra)}, of the impulses:
{right arrow over (Ara)}={Ara,1Ara,2 . . . Ara,n} eq. 7
{right arrow over (Δra)}={Δra,1Δra,2 . . . Δra,n} eq. 8
In the illustrated embodiment step 470 of generating control signals for the robot arm comprises a step 575 of convolving the convolved target motion M*d robot arm with the robot arm impulse train {right arrow over (Ara)},{right arrow over (Δra)} resulting in a double convolved target motion Md**, thereafter in step 473 the control signals for the robot arm are generated based on the double convolved target motion Md*. Consequently, vibrations caused by the robot arm it self can be reduced along with the vibrations of the external object. It is noted that the order of the convolutions does not matter, and that the robot arm impulse train can be convolved with the target motion Md and where after the object impulse train can be convolved with the result of this convolution.
In this embodiment step 450 of receiving the vibrational properties of an external object connected to the robot arm comprises a step 651 of receiving the vibrational properties ω1, ζ1 of a first external object connected to the robot arm and a step 652 of receiving the vibrational properties ω2, ζ2 of a second external object connected to the robot arm.
The impulse train generated in step 471 is in this embodiment labeled {right arrow over (A)}O1,{right arrow over (Δ)}O1 indicating that step 471 generates a first object impulse train based on the vibrational properties of the first external object chi, received in step 651. Step 472 of convolving the target motion is performed by convolving the target motion Md with the first object impulse train {right arrow over (A)}O1,{right arrow over (Δ)}O1.
Further step 470 of generating control signal for the robot arm comprises a step 676 of providing a second object impulse train {right arrow over (A)}O2,{right arrow over (Δ)}O2 based on the vibrational properties of the second object received in step 652.
In the illustrated embodiment step 470 of generating control signals for the robot arm comprises a step 677 of convolving the convolved target motion Md* with the second object impulse train {right arrow over (A)}O2,{right arrow over (Δ)}O2 resulting in a double convolved target motion Md**, thereafter in step 473 the control signals for the robot arm are generated based on the double convolved target motion Md**. Consequently, vibrations caused by the first external object and the second external object can be reduced. It is noted that the order of the convolutions does not matter, and that the second object impulse train can be convolved with the target motion Md and where after the first object impulse train can be convolved with result of this convolution. Also is it noted that the vibrational properties of additional external objects can be provided and the impulse trains for such additional eternal objects can be convolved with the target motion or any convolved state of the target motion. Consequently, the vibrational introduced by an unlimited number of external objects can be reduced by impulse shaping based on each of the external objects' vibrational properties. Also, the embodiment illustrated in
Step 780 is a step of instructing a part of said robot arm to move to a first target position WP1. This can for instance be achieved by providing a program code instructing the robot arm to move the robot tool flange to a target position in the surroundings of the robot arm. The program code can for instance be provide via a user interface as illustrated in
Step 760 is at step of generating a first target motion Mai for the robot arm, where the first target motion defines a motion of the robot arm causing the part of the robot arm to move to the first target position. Step 760 is like step 460 previous described and can for instance be performed by a motion planner module 230.
Step 770 is a step of generating first control signal(s) for the robot arm based on the first target motion and vibrational properties of at least one external object connected to said robot arm, where the control signal comprises control parameters for the joint motors. Step 770 is like step 470 described previously and generates the control signals based on input shaping based on the vibrational properties of at least one external object connected to the robot arm. For instance, the external object can be a gripper.
Step 781 is a step of changing the vibrational properties of the of at least one external object connected to the robot arm. This can for instance be achieved by adding or removing an external object connected to the robot arm, as this cause the vibrational properties of external object to change. In
Once the vibrational properties of the external object(s) have been changed in step 781 the steps of instructing a part of said robot arm to move to a target position is repeated with the difference the target position is changed to a second target position WP2 as illustrated in brackets.
This can for instance be achieved by providing a program code instructing the robot arm to move the robot tool flange to a target position in the surroundings of the robot arm. In
Step 760 is repeated and generates second target motion Md2 as illustrated in brackets for the robot arm, where the second target motion defines a motion of the robot arm causing the part of the robot arm to move to the second target position.
Step 770 is repeated and generates control signal(s) for the robot arm based on the second target motion and the in step 781 change vibrational properties of at least one external object connected to said robot arm. In other words, the vibrational properties of the object which is gripped by the gripper is considered when generating the control signals for the robot arm, resulting in the fact the vibrations of the robot arm can be reduced in situations where the vibrational properties of the robot arm changes during execution of a robot program.
It is noted that the method illustrated in
Number | Date | Country | Kind |
---|---|---|---|
PA 2019 01559 | Dec 2019 | DK | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/DK2020/050385 | 12/18/2020 | WO |