The lightweight and polyarticulated Kuka LWR4+ robot is designed for applied research that focuses on developing control laws to improve the performance of the Kuka LMR4 and its industrial version, the Kuka IIWA (intelligent industrial work assistant). Like most robots, the Kuka LWR4+ is equipped with motor position and motor current sensors. The special features of this robot are its joint torque sensors, which it uses to detect contact with objects in the environment. It is this capability that enables the robot to work closely with humans rather than in a safety cage and to perform tasks that requires precise control.
An effective collaborative robot control system needs to incorporate advanced techniques such as impedance control, gravity compensation, and collision management. Designing such a system requires a good dynamic model and a clear understanding of energy consumption, frictional losses, vibration behavior, and other dynamic effects. With the Kuka LWR4+, such a model is not readily available because the robot parameters are not disclosed and are specific to each robot.
My colleagues and I at the LS2N Laboratory identified parameters and built a complete dynamic model of the Kuka LWR4+ using MATLAB® and Simulink®.
Acquiring Data for System Identification
To gather data, we programmed the robot to move its end-effector through a series of 44 points. The resulting trajectory exercised the robot throughout most of its reachable work area. As the robot moved, we collected motor position, motor current, and joint torque measurements at a rate of 1 KHz. We then repeated these measurements with a payload attached to the end-effector.
After importing the measured data into MATLAB, we preprocessed it by applying filters from Signal Processing Toolbox™. We eliminated high-frequency noise by applying parallel decimation using a decimate filter. We applied a Butterworth bandpass filter to the position measurements to estimate velocities and accelerations and to minimize bias in the least squares estimation performed during the parameter identification process.
Identifying Parameters with an Inverse Dynamic Model of the Robot
We used an inverse dynamic model (IDM) and least squares estimation, a proven method for identifying dynamic parameters using motor position and motor torque measurements. We augmented this method by incorporating joint torque data.
The IDM is based on a set of equations that calculate torques as a function of motor position, velocity, and acceleration, all of which can be either measured or calculated. We used Symbolic Math Toolbox™ in developing the IDM based on the Newton-Euler equations for describing motor and body dynamics.
The IDM equations factor in a matrix of robot inertia parameters as well as vectors of centrifugal, gravitational, and friction force parameters. To identify values for these parameters from the measured data, we developed custom parameter identification algorithms in MATLAB that employ linear least squares estimation. We applied these algorithms using a variety of data sets, including one set with only motor current and motor position measurements, a second with motor position and joint torque measurements, and a third with motor current, motor position, and joint torque measurements. We validated our algorithms by cross-validation and tool available from System Identification Toolbox™.
We found that either motor current or joint torque measurements could adequately identify dynamic parameters. In fact, motor torques calculated from motor currents alone can be used to identify each link’s inertial parameters with the same accuracy as an approach that includes joint torque measurements. When both measurements are used together, however, we can identify not only link inertias but also motor friction and motor inertias.
Developing and Simulating a Controller Model
To develop controls, we created a Simulink model that includes a MATLAB block containing the dynamic model of the robot in the form of equations with the parameter values we identified earlier. This block calculates positions, velocities, and accelerations of the robot’s links from the motor torque values supplied by the controller.
Using this model we created a hybrid proportional-integral-derivative (PID) computed torque control (CTC) controller, which calculates required motor torques from the position tracking error of the robot (Figure 3). We calculated the gains for this controller using the results of the dynamic identification. Compared to a controller designed without a dynamic model, this new controller reduces tracking position error by a factor of 2 to 5.
We are currently developing new parameter identification algorithms, including real-time versions, as well as new control laws for the KUKA LWR4+ and other collaborative robots for industrial and medical applications.