Qinjie Lin, Guo Ye, Jiayi Wang, Han Liu
Department of Computer Science, Northwestern University
We propose RoboFlow, a cloud-based workflow management system orchestrating the pipelines of developing AI-enhanced robots. Unlike most traditional robotic development processes that are essentially process-centric, RoboFlow is data-centric. This striking property makes it especially suitable for developing AI-enhanced robots in which data play a central role. More specifically, RoboFlow models the whole robotic development process into 4 building modules (1. data processing, 2. algorithmic development, 3. back testing and 4. application adaptation) interacting with a centralized data engine. All these building modules are containerized and orchestrated under a unified interfacing framework. Such an architectural design greatly increases the maintainability and re-usability of all the building modules and enables us to develop them in a fully parallel fashion. To demonstrate the efficacy of the developed system, we exploit it to develop two prototype systems named ``Egomobility" and ``Egoplan". Egomobility provides general-purpose navigation functionalities for a wide variety of mobile robots and Egoplan solves path planning problems in high dimensional continuous state and action spaces for robot arms. Our result shows that RoboFlow can significantly streamline the whole development lifecycle and the same workflow is applicable to numerous intelligent robotic applications.
The robot development pipeline consists of 4 modules interacting with a centralized data engine. The data engine manages the large-scale dataset, and publishes data from robot. The data preprocess module encodes raw input to data that algorithm development module can easily parse. The algorithms development module develops customized control policy. The back testing module tests the policy in various environments. The application adaption module deploys the learned policy in real world.
The architecture of RoboFlow. RoboFlow provides a graphical user interface for developers to access all containerized modules. These modules interact with the data engine through shared storage and DDS topics. The data engine consists of large-scale datasets and model data stored in the shared folder, simulation containers and robots connected to the RoboFlow system through DDS topics.
The centralized data engine consists of two parts:(1) shared storage, which shares data between modules and data engine. (2) DDS, which manages the communication. The preprocess module processes the raw data into array format. The algorithm module develops a path planning algorithm for robot arms. The back testing module contains various bookshelves, which are used to evaluate the developed policy. The adaptation module deploys the learned policy on the real robot.
The workflow of Egomobility using RoboFlow system. Each module is a container running on our system. The data exchange between is taken charge by \texttt{DDS} or distributed file system. The curved arrows and counting numbers show how the data flow among each module and data engine.
PreProcess Module: This allows developers to specify the image name, version, required CPU number, memory size, and GPU number.
Algorithm Module: The module enables users to access the code editor and simulator view, monitor the progress of a learning robot training process.
Ego-Mobile Adaption Module: This adaptation page provides real-time camera stream and current position, velocity and battery usage.
Ego-plan Adaption Module: This provides the simulation views, rviz view and status panel.
Notes: Video is coming soon. The system is still on development and keep updating the progress here.