I am interested to know how one goes about creating an interface for a device, such as an arm or hand. In particular, the question is what is the lowest level component in the ROS architecture which one would implement first? Presumably, once that low level element was in place, one could then go on to create services or actions that make use of that component. Could someone point me to (or write?) a summary of what this stack looks like for something like the PR2 or Shadow arms?