Data from: Machine learning driven self-discovery of the robot body morphology
Data files
Dec 05, 2023 version files 1.19 GB
-
armIMUExperiment.mat
-
armProprioceptionSimulated.mat
-
hexapodProprioception.mat
-
humanoidProprioception.mat
-
README.md
Abstract
Conventionally, the kinematic structure of a robot is assumed to be known and data from external measuring devices are used mainly for calibration. We take an agent-centric perspective to explore whether a robot could learn its body structure by relying on scarce knowledge and depending only on unorganized proprioceptive signals. To achieve this, we analyze a mutual-information-based representation of the relationships between the proprioceptive signals, which we call proprioceptive information graphs (pi-graph), and use it to look for connections that reflect the underlying mechanical topology of the robot. We then use the inferred topology to guide the search for the morphology of the robot; i.e. the location and orientation of its joints. Results from different robots show that the correct topology and morphology can be effectively inferred from their pi-graph, regardless of the number of links and body configuration.
README: Machine Learning Driven Self-Discovery of the Robot Body Morphology
https://doi.org/10.5061/dryad.h44j0zpsf
The repository contains:
- Data sets
- Links to MATLAB source code
Requirements
- MATLAB's Robotics System Toolbox
- MATLAB's Optimization Toolbox
- Toolboxes for optimization on manifolds and matrices MANOPT
- Java Information Dynamics Toolkit JIDT
NOTE: MATLAB 2021b was used.
Sharing/Access information
All datasets are also publicly available at Kaggle; these are the corresponding links:
- Simulated robot manipulator with fixed and moving base here
- Physical manipulator experiment (fixed base) here
- Simulated hexapod robot here
- Simulated humanoid robot here
The datasets are MATLAB .mat files containing a structure with the following fields:
- samplingTime: Contains the sampling time of the signals
- jointPosition: Contains the joint positions
- jointVelocity: Contains the joint velocities
- jointTorque: Contains the joint torques
- bodyAngularVelocity: Contains the body angular velocities (simulated/actual IMU gyroscope measurements)
- bodyLinearVelocity: Contains the body linear velocities
- bodyAngularAcceleration: Contains the body angular accelerations
- bodyLinearAcceleration: Contains the body linear accelerations (simulated/actual IMU accelerometer measurements)
NOTE: as described in the manuscript, the virtual experiment corresponding to the robot manipulator considers two different scenarios: (a) a floating base and (b) a fixed base. The corresponding measurements are contained in the fields movingBase and fixedBase of the structure armProprioceptionSimulated.mat.
Code/Software
The repository containing the code for this work can be freely accessible here. All datasets must be stored in the data directory.
Versions of the toolboxes used are included in this repository; check if you want to update them. To reproduce the results:
- Add directories to the search path in MATLAB's command line: run init_path.m
- To see the results for the simulated robot manipulator, open armProprioceptionSimulated.m.
- To see the results for the physical robot manipulator, open armIMUExperiment.m.
- To see the results for the hexapod robot, open hexapodProprioception.m.
- To see the results for the humanoid robot, open humanoidProprioception.m.
The different sections in the scripts are self-explanatory.
Methods
The datasets contain the proprioceptive signals for a robot arm, a hexapod, and a humanoid, including joint position, velocity, torque, body angular and linear velocities, and body angular and linear accelerations. The robot manipulator experiment used simulated robot joint trajectories to generate the proprioceptive signals. These signals were computed using the robot's Denavit-Hartenberg parameters and the Newton-Euler method with artificially added noise. In the physical experiment, joint trajectories were optimized for joint velocity signal entropy, and measurements were obtained directly from encoders, torque sensors, and inertial measurement units (IMU). In the hexapod and humanoid robot experiments, sensor data was collected from a physics simulator (Gazebo 11) using virtual IMU sensors. Filters were applied to handle measurement noise, including low-pass filters for offline estimation and moving average filters for online estimation, emphasizing noise reduction for angular velocity measurements.