November 19, 2016

Software architecture sub-system

The software subsystem in this project leverages resources from RI faculty and last year’s team. Due to requirements for flexibility and maintainability, a new overall software architecture has been implemented.

The software architecture consists of four ROS nodes: system control, perception, motion planning, and grasping. Nodes have been divided based on their functionalities. The number of ROS nodes should be minimized without damaging system flexibility and the potential to run subsystems in parallel.

The system control node which issues commands to the other four nodes. Each node parses the commands and executes the desired task. Since those commands are blocking calls, the system control node will wait until a result is returned. For the motion planning node, the task is pretty simple. It moves the arm to the specific position requested by the client. The request could either specify the bin number or the arm pose. As for the perception node, it is responsible for shelf localization, item classification and item pose . The point cloud, related information and confidence score for every items will be generated for grasping and system control node. Finally, the grasping node take point clouds of bin and items as inputs to generate grasping poses. After generating poses, it will try to use arm service to move end effector to grasping position and grab target item. Figure [X] is the flow chart for picking task. The dashed line boxes stand for ROS nodes, and solid line boxes represent services or functionalities nodes provide.

software1