Submitted by Dylan Losey on
Many robots are composed of interchangeable modular components, each of which can be independently controlled, and collectively can be disassembled and reassembled into new configurations. When assembling these modules into an open kinematic chain, there are some discrete choices dictated by the module geometry; for example, the order in which the modules are placed, the axis of rotation of each module with respect to the previous module, and/or the overall shape of the assembled robot. Although it might be straightforward for a human user to provide this information, there is also a practical benefit in the robot autonomously identifying these unknown, discrete forward kinematics. To date, a variety of techniques have been proposed to identify unknown kinematics; however, these methods cannot be directly applied during situations where we seek to identify the correct model amid a discrete set of options. In this research, we introduce a method specifically for finding discrete robot kinematics, which relies on collision detection, and is inspired by the biological concepts of body schema and evolutionary algorithms. Under the proposed method, the robot maintains a population of possible models, stochastically identifies a motion which best distinguishes those models, and then performs that motion while checking for a collision. Models which correctly predicted whether a collision would occur produce candidate models for the next iteration. Using this algorithm during simulations with a Baxter robot, we were able to correctly determine the order of the links in 84% of trials while exploring around 0.01% of all possible models, and we were able to correctly determine the axes of rotation in 94% of trials while exploring <0.1% of all possible models.