ABSTRACT

Control of robot arms for manipulation incorporates considerable detail. It is desirable to construct solutions that decompose the challenge into separate layers that can encapsulate detail and allow progressively more abstract interaction. Robot operating system (ROS) capabilities support logical decomposition through mechanisms of the parameter server, publish and subscribe communications between independent nodes, client–service interactions and action servers. This chapter discusses the exploitation of these capabilities for constructing a general-purpose manipulation system. The object-grabber action service is an example of how we can use ROS to make software more re-usable. The node objectgrabberactionserver presents an action server named objectgrabberactionservice, which accepts goals via objectgrabber.action messages. The object-grabber action server also interacts with (sends goals to) a Cartesian-motion action server. The chapter shows how an action client of the object-grabber action server can be composed in a manner that allows the programmer to focus on task properties rather than robot properties.