DOI: 10.5061/dryad.h44j0zpsf
title: Data from: Machine learning driven self-discovery of the robot body morphology

description: 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.
description: 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<em>. 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)</em>. 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.
description: # Machine Learning Driven Self-Discovery of the Robot Body Morphology
 The repository contains: *
 Data sets * Links to **MATLAB** source code ## Requirements *
 MATLAB's Robotics System Toolbox * MATLAB's Optimization Toolbox
 * Tool­boxes for opti­mization on manifolds and matrices
 [MANOPT](https://www.manopt.org/) * Java Information Dynamics Toolkit
 [JIDT](https://github.com/jlizier/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](https://www.kaggle.com/datasets/fernandodazledezma/armproprioceptionsimulated/data) * Physical manipulator experiment (fixed base) [here](https://www.kaggle.com/datasets/fernandodazledezma/frankaproprioceptionrealfixedbase) * Simulated hexapod robot [here](https://www.kaggle.com/datasets/fernandodazledezma/phantomx-proprioception) * Simulated humanoid robot [here](https://www.kaggle.com/datasets/fernandodazledezma/humanoid-proprioception) 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](https://github.com/mecafdl/pigraphs_body_morphology). 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: 1. Add directories to the search path in MATLAB's command line: run init_path.m 2. To see the results for the simulated robot manipulator, open armProprioceptionSimulated.m. 3. To see the results for the physical robot manipulator, open armIMUExperiment.m. 4. To see the results for the hexapod robot, open hexapodProprioception.m. 5. To see the results for the humanoid robot, open humanoidProprioception.m. The different sections in the scripts are self-explanatory.