OpenHRP3: A Robot Simulator Implemented as Distributed Objects