The RoboEarth system consists of various software components, with the core cloud infrastructure provided by the RoboEarth databases (RoboEarth DB) and the RoboEarth Cloud Engine (Rapyuta). Additional software components can access the RoboEarth DB to query and store data and can be deployed for execution in Rapyuta or locally on the robot, depending on the desired use case (see figure to the right for an example setup). All components can also be used independently. All RoboEarth software components are available under open source licenses. Detailed descriptions and relevant links for all components are provided below.
For general questions relating to RoboEarth software, please use the RoboEarth mailing list. For questions related to usage, feature requests, suggestions and general discussions on Rapyuta (the RoboEarth Cloud Engine), please use the Rapyuta Google groups.
A simplified architectural diagram of the integrated RoboEarth system that was used during the final demonstrator.
The RoboEarth Cloud Engine is an open source Platform-as-a-Service (Paas) framework designed specifically for robotics applications. It helps robots to offload heavy computation by providing secure customizable computing environments in the cloud. The RoboEarth Cloud Engine’s nick name is “Rapyuta”, after the castle in the sky inhabited by robots featured in the Japanese movie Tenkū no Shiro Rapyuta.
Rapyuta’s computing environments allow robots to easily access the RoboEarth knowledge repository. Furthermore, they are tightly interconnected, paving the way for deployment of robot teams.
- Documentation for Rapyuta, the RoboEarth Cloud Engine.
- Rapyuta’s GitHub repository.
- RoboEarth Cloud Engine Google groups. If you do not have a Google account send a mail to firstname.lastname@example.org to subscribe.
The RoboEarth DB is a WWW-style database based on Apache Hadoop. We recommend to use the RoboEarth platform at http://api.roboearth.org, which allows you to participate in a community of users who share data about environments, actions, and objects.
KnowRob is a knowledge processing system that combines knowledge representation and reasoning methods with techniques for acquiring knowledge and for grounding the knowledge in a physical system. It can serve as a common semantic framework for integrating information from different sources and is used in RoboEarth as local knowledge base on the robot.
This set of ROS packages allow both users and robots to create a point cloud model from an object using a Kinect camera and a marker pattern, to store the resulting model in the RoboEarth knowledge repository, and to later download object models and use them for object detection.
The WIRE stack allows to generate and maintain one consistent world state estimate based on object detections. It solves the data association problem by maintaining multiple hypotheses and facilitates tracking of various object attributes.
C2TAM implements a visual SLAM system based on a distributed framework where the expensive map optimization and storage is allocated on an external server, while a light camera tracking client runs on a local computer. The robot onboard computers are freed from most of the computation, the only extra requirement being an internet connection. The data flow from and to the Cloud is low enough to be supported by a standard wireless connection.