AWS Robotics Blog
Building cost effective and scalable autonomous driving application with AWS RoboMaker
Introduction
MORAI is an Autonomous Vehicle (AV) technology startup which provides a simulation platform for validation and verification of autonomous vehicles. MORAI’s autonomous vehicle simulator, MORAI SIM, is quickly gaining adoption in the AV/ADAS, automotive, robotics and aerospace sectors. Companies from multiple domains, such as autonomous vehicles, UAM, robotics, logistics, are using MORAI SIM to test a large and diverse number of scenarios to reduce cost, time to market and liability. In the public sector, government organizations and educational institutions, like Korea’s safety regulation bodies and universities, are using MORAI SIM to meet regulation and educate students.
MORAI SIM enables virtual testing for autonomous vehicles by creating high fidelity simulation environments, sensor models, and vehicle models. MORAI SIM is able to recreate real road scenarios through a high-performance simulation rendering engine or by importing data logs from deployed vehicles.
In this post, we cover how AWS customer MORAI has been able to leverage the AWS RoboMaker which enables developers to run and scale AV testing without managing infrastructure. Because MORAI built a serverless architecture with RoboMaker and other AWS services, it is a cost effective and scalable so that MORAI built a reliable platform and tools for large-scale AV testings.
Challenge in Developing Autonomous Vehicles
There are significant differences between having an AV demo and AV product because the latter requires reliable evidence that the system is sufficiently safe. But AV testing in the real world has numerous challenges. Developers can’t easily re-run the test as changes are made to the AV, so it becomes very time consuming and expensive to even try.
AV development is one of the most resource intensive technology endeavors ever undertaken by automotive companies. To reduce the level of effort to develop AV system, MORAI needed a solution that enables developers to speed up building, testing, and managing robot application.
On the other hand, it quickly became cumbersome for MORAI to manage instances and orchestrate a large number of scenarios with a diverse number of compute instances. They had unexpected resource usage because they provide AV training and testing environments to diverse customers. To scale resource capacity up or down according to the events, MORAI was looking for a scalable and cost-efficient way to run AV applications.
Build Cost Effective and Scalable Autonomous Driving Application
With the AWS RoboMaker Batch API, MORAI was able to abstract the orchestration and management of simulation jobs. RoboMaker allows developers to focus on developing testing platform for self-driving cars with scenario-based testing and highly automated generations of high definition maps. As a result developers in MORAI reduced the time of vehicle software deployment by up to 4 weeks.
Figure 1. MORAI’s autonomous vehicle driving simulator recreating different lane change scenarios
With MORAI SIM Cloud, AV developers can test scheduling, routing and navigation optimization algorithms at scale in ways it has not been possible before. By recreating and parametrizing scenarios with an easy and natural script-able format and leverage an intuitive graphical interface which developers use to can create or edit various scenario conditions, such as weather, vehicle, or obstacles. As well as use various types of validated sensors, such as cameras, LiDARs, and Radars can be attached wherever the user wants.
MORAI SIM also provides an intuitive environment that enables the setting, calibration, and monitoring of embedded dynamics. MORAI’s data-driven simulation approach delivers value along each step of the autonomous vehicle development process, from the project inception stage to the testing and acceptance trial stage.
MORAI SIM’s architecture has been designed from the ground up to be a platform for accurate autonomous vehicles simulations, with large scale multi-sensor simulation capabilities. MORAI SIM Cloud’s multi-layer and multi-purpose architecture and libraries can be easily extended to facilitate software testing and validation across various automation software applications. Saving customers months and hundreds of thousands of dollars on new development by reducing their testing and validation risk.
Solution Architecture
MORAI team uses AWS serverless services to focus less on managing capacity and cost of servers. Because handling infrastructure management and predicting the resource usage were difficult considering their business, MORAI decided to build a resilient and efficient serverless architecture.
The following architecture shows a solution overview of backend in MORAI SIM using Amazon Lambda, Amazon API Gateway, Amazon Simple Queue Service (Amazon SQS), and Amazon DynamoDB. These services are serverless that scale automatically depending on demand without managing servers.
Figure 2. MORAI’s Simulation Architecture using the AWS RoboMaker API
The steps for the solution shown in Figure 2 are as follows:
- Users submit simulation requests with user algorithms and configurations to verify and simulate their code. Then MORAI SIM requests simulation jobs to API Gateway.
- Lambda validates the request and parses it. If the request is valid, simulation metadata is extracted, converted to a JSON format, and sent to SQS queue. In most cases, a request the user sent contains about 50 to 100 simulation jobs.
- To run simulations in parallel, a request with a bunch of simulations has to be split into smaller batches. Lambda gets messages from the queue and generates a message for batch requests. The lambda sends the messages with small batch requests into the second SQS queue.
- Then, the Lambda function gets a request from SQS queue and executes AWS Step Functions to start simulation when RoboMaker is available.
- The state machine consists of two Lambda functions: The first Lambda function creates a robot application and simulation application, and then starts a RoboMaker Simulation Job.
- Once the job is launched, the Lambda function invokes another Lambda function. The second one monitors the status of the RoboMaker simulation job and records the result of the simulation job.
- Then the Lambda function saves logs and output files in DynamoDB, and sends notification that the request has been completed.
Conclusion
MORAI was looking for a scalable and cost-efficient way to run autonomous vehicle simulations and robot applications in the cloud. With AWS RoboMaker, MORAI was also able to reduce cost and time to develop AV application, running large-scale scenario-based simulations without managing infrastructure.