DOI: 10.5281/zenodo.11096791
title: Accelerometer and Force/Torque Sensor Measurements for Parameter and State Estimation of an Unknown Robot End Effector

description: Introduction

This dataset was created as part of a study on the development of an estimator for the contact wrench (force and torque) of an unknown robot end effector. A conference paper from this study has been submitted and accepted for the 2024 IEEE International Conference on Real-time Computing and Robotics (RCAR 2024) [1]. 

A force/torque sensor (FTS) was attached to the robot wrist, and the unknown end effector was attached to the FTS. An inertial measurement unit (IMU) was in turn attached to the end effector. The FTS measurement can be decomposed into the (1) sensor bias, (2) contact wrench, and the effects from (3) gravity, (4) inertia, (5) vibrations,  and (6) noise. Estimation of the contact wrench requires that the remaining effects are compensated for. The FTS and IMU sensor biases, as well as mass and mass center of the unknown end effector, were estimated as described by Vougioukas [2]. His method requires FTS and IMU samples from 24 specific orientations of the sensors. See his paper for a description of this calibration method.

The hardware used to generate this dataset were:



KUKA LBR Med 14 serial robot (KUKA AG, Germany)

ATI Gamma FTS (ATI Industrial Automation, Inc., USA)

ATI Netbox (ATI Industrial Automation, Inc., USA)

MPU6886 IMU (M5Stack, China) 

Arduino Mega 2580 with a W5500 Ethernet Shield 


Method

The robot was used to move the end effector, FTS, and IMU such that a trajectory could be replicated with high precision and accuracy. The trajectory was a simple rotation about the FTS y-axis. This trajectory and the resulting measurements were performed three times. The sensor signals were sampled during each iteration when:



The robot moved freely without any kind of disturbance (basline).

The robot moved freely with gentle taps to the robot body, using a rubber hammer (vibrations).

The robot moved with gentle taps to the body using the hammer, and with a manual force exerted on the end effector (vibrations and contact).


The IMU signal was obtained by the Arduino Mega using I2C, and the signal was sent from the Arduino to the external PC using the ethernet shield. This setup resulted in a phase of the IMU signal by 8416 μs. This was compensated for in the offline analysis of the study on the contact wrench estimator [1]. The sensor samplig rates were different for each sensor; they were approximately 100 Hz for the robot controller (FTS orientation measurements), 700 Hz for the FTS, and 254 Hz for the IMU. The frequency for each signal can be obtained through the timestamps in the dataset.

Dataset

Each CSV file has a row which serves as the header, which labels the columns of each file. The following nomenclature of the column labels were used:

t  - Timestep in microseconds. Epoch time. fx, fy, fz - The force components as measured by the FTS.tx, ty, tz - The torque components as measured by the FTS.ax, ay, az  - The acceleration components measured by the IMU.gx,gy,gz - The direction of the gravitational vector in the FTS frame.r11, r12, r13, r21, r22, r23, r31, r32, r33 - The components of the rotation matrix that represents the FTS orientation in the world frame. (R_wf)

The measurements from the FTS and IMU signals from the 24 orientations (as required for the calibration method described by Vougioukas [2]), are stored in 0-calibration_fts-accel.csv. Additionally, the files 0-steady-state_wrench.csv and 0-steady-state_accel.csv contains the continuous sensor signal from the FTS and IMU, respectively, while they were at rest; these two files can be used to calculate the sensor signal variances.

After calibration, each sensor signal was recorded independently and stored in a separate file from the other sensors. The raw (biased) values were stored. Each test iteration produced three files:



The end effector/FTS/IMU orientation in [test_iteration]_orientation.csv

The unbiased wrench as measured by the FTS in [test iteration]_wrench.csv

The unbiased acceleration as measured by the IMU in [test_iteration]_accel.csv


The test iteration prefix for these files are: 1-baseline, 2-vibrations, and 3-vibrations-contact, as described in the previous section "Method". To obtain the relative time between samples across the test iteration files ([]_orientation, []_wrench, and []_accel.csv), load each dataset and determine which has the earliest timestamped sample on the first row. Then, subtract this initial timestamp value from all timestamps across the files for the respective test iteration.

Note that the IMU frame does not align with the FTS frame (_accel.csv vs _wrench.csv), the following table describes the rotation matrix R_fa which can be used to transform the acceleration measurements from the IMU frame {a} to the FTS frame {f}. 

R_fa = 




0
-1
0


0
0
1


-1
0
0




References

[1] A. Skrede, "A Linear Discrete Kalman Filter to Estimate the Contact Wrench of an Unknown Robot End Effector", Accepted for the 2024 IEEE International Conference on Real-time Computing and Robotics (RCAR), Ålesund, Norway, June 2024 

[2] S. Vougioukas, “Bias Estimation and Gravity Compensation For Force-Torque Sensors,” in Recent Advances in Simulation, Computational Methods and Soft Computing. WSEAS Press, 2001, pp. 82–85.