Datasets
Long Term Experiment
Overview
This dataset offers a compilation of long-term dynamic motion data gathered over approximately 3.5 weeks from a newly designed 4-DoF tendon-driven robotic arm powered by pneumatic artificial muscles (PAMs). The data encompasses movements generated by random multisine signals of target pressures, as well as repeated fixed target pressure movements, facilitating the evaluation of system repeatability and performance.
Robot
The dataset was taken on Pamy2
Files
The files can be downloaded on Edmond. There are 6 zip files. Each file contains several “df” files (around 40), each file containing a pandas dataframe.
How to read the data
pandas dataframes
Each dataframe can be read using pandas:
import pandas
dataframe = pandas.read_pickle("/path/to/file.df")
To each line of the dataframe correspond an observation of the state of the robot. Dataframe’s columns have explicit names.
robot behavioral segments
The movement of the robot is annotated. The behavioral segments are provided by intervals of iteration number (‘iteration’ is one of the dataframe column). The intervals are provided as attributes of the dataframe.
There are 5 annotation categories:
random movement: Open loop motion generated by a random multisine signals of target pressures with different frequencies.
fixed movement fast: Open loop motion with a list of fixed target pressures, with 0.7 seconds time interval between two target pressures.
fixed movement slow: Open loop motion with a list of fixed target pressures, with 2 seconds time interval between two target pressures.
move to random pressure: Motion generate by applying a random target pressure.
reset: Reset motion by moving to medium pressures, then to min pressures, and back to medium pressures again; the final position might be suitable for assessing the system’s repeatability.
# see the categories
dataframe.attrs.keys()
# getting the intervals corresponding to "fixed movement fast"
# 'fast_intervals' is a list of tuple (iteration start, iteration end)
fast_intervals = dataframe.attrs['fixed_movement_fast']
# getting the dataframe corresponding to the first
# interval
iter_start, iter_end = fast_intervals[0]
dataframe_fixed_movement_fast = dataframe[
(dataframe['iteration']>=iter_start) & (dataframe['iteration']<=iter_end)
]