  Robot developers develop various types of robots for satisfying users'
various demands. Users' demands are related to their backgrounds and robots
suitable for users may vary. If a certain developer would offer a robot that is
different from the usual to a user, the robot-specific software has to be
changed. On the other hand, robot-software developers would like to reuse their
developed software as much as possible to reduce their efforts. We propose the
system design considering hardware-level reusability. For this purpose, we
begin with the learning-from-observation framework. This framework represents a
target task in robot-agnostic representation, and thus the represented task
description can be shared with various robots. When executing the task, it is
necessary to convert the robot-agnostic description into commands of a target
robot. To increase the reusability, first, we implement the skill library,
robot motion primitives, only considering a robot hand and we regarded that a
robot was just a carrier to move the hand on the target trajectory. The skill
library is reusable if we would like to the same robot hand. Second, we employ
the generic IK solver to quickly swap a robot. We verify the hardware-level
reusability by applying two task descriptions to two different robots, Nextage
and Fetch.
