  For a robot, its body structure is an a-prior knowledge when it is designed.
However, when such information is not available, can a robot recognize it by
itself? In this paper, we aim to grant a robot such ability to learn its body
structure from exteroception and proprioception data collected from on-body
sensors. By a novel machine learning method, the robot can learn a binary
Heterogeneous Dependency Matrix from its sensor readings. We showed such matrix
is equivalent to a Heterogeneous out-tree structure which can uniquely
represent the robot body topology. We explored the properties of such matrix
and the out-tree, and proposed a remedy to fix them when they are contaminated
by partial observability or data noise. We ran our algorithm on 6 different
robots with different body structures in simulation and 1 real robot. Our
algorithm correctly recognized their body structures with only on-body sensor
readings but no topology prior knowledge.
