Figure 3.1 gives a high-level overview of the platform. The architecture assumes a private cloud runningtheOpenStack (Sefraouietal.,2012)cloudoperatingsystem. Althoughaverysimilarsystem could be constructed using a public cloud such as Amazon EC2 controlled through an interface such as Amazon Web Services, with a private cloud I have full control over the hardware, visualization, andsoftwarestacks. OpenStackisdesignedtomanageandautomatepoolsofcomputeresourcesand provides scalable object storage using clusters of standardized servers. This allows us to offer ondemandcomputingresourcestoroboticsapplications,byprovisioningandmanagingalargenetwork of specialized virtual machines.
The cloud controller node distributes computational tasks to multiple compute nodes running robot application services. Each compute node provides services to support management and automation of pools of computer resources via visualization technologies. I have developed virtual machine instances responsible for performing 3D object recognition. I deploy a highly scalable object template repository using the OpenStack object storage service, which provides support for storing and retrieving arbitrary data on the cloud platform. Robots can access the cloud-provided services over the Internet by using ROS (Quigley et al., 2009). Processes running on individual robots use ROS messages (Quigley et al., 2009) for communication, and specific message types are marshaled and forwarded for processing on the cloud platform using a ROS proxy process.