Dexai Robotics: graphical user interface for robot operation
Meet Alfred, an automated robotic arm and your personal sous chef! Alfred was born at Dexai Robotics, while SumatoSoft developed a graphic user interface (GUI) that helps to communicate with the robot!
There was a robotic arm named Alfred, but only robotics and software engineers could communicate with it. The Client didn’t have a user-friendly interface that sends commands to the robot or monitors its state.
The company planned to sell Alfred to restaurants and reached out to the SumatoSoft team to develop a platform with GUI for interaction between restaurant personnel and multiple robots.
The main challenges
Not all restaurant workers are native English speakers. Thus, GUI must be intuitive, informative, and simple so every restaurant worker can understand the current Alfred state or an error just at first sight on the screen.
Another challenge of this project was the requirement that the main order processing flow should work offline (without global Internet connectivity).
- built-in user management system;
- robot state and actions monitoring;
- sending commands to robots;
- POS systems integration;
- managing the order queue;
- error/edge cases handling.
Our final solution was a progressive web application (PWA) as the main UI for kitchen staff based on our React UI application and Kitchen Coordinator server written in Python. We came up with a distributed microservice architecture with event-based communication.
Created a user interface for placing orders
During the next stage, the Client needed to develop several additional microservices and a separate user interface for placing orders.
Used multiple backend services:
- service for order creation and storing them into the cloud;
- order queue management server;
- microservice for storing and managing recipes;
- service for synchronizing data between on-premise and cloud service;
- UI for placing orders written in React JS and the cloud microservices written in Kotlin.
The project was successfully completed, the user interface allows to send commands to the robot arm. The robot functionality is currently being finalized to start real-life commercial deployments.