Architecture details
This section describes the components and AWS services that make up this solution and the architecture details on how these components work together.
Store and stage data
This solution uses Amazon S3 to store the original raw rosbag data, also referred to as staged data. The solution processes the rosbag files and stores the extracted data, both structured and unstructured, in Amazon S3. The unstructured data is stored as .png images, and the structured data is stored as Apache Parquet data.
Extract rosbag data
The solution processes the rosbag files by using an Amazon MWAA DAG that invokes several AWS services for processing. The solution performs the following actions:
-
Extracts rosbag data by using AWS Batch and custom docker images stored in private Amazon ECR repositories
-
Opens the rosbag files and extracts their sensor data
-
Writes the extracted data back to Amazon S3 as either images (.png files) or Apache Parquet data
Detect objects and label
The next phase of the Amazon MWAA DAG applies object detection and LaneDet ML processing to the extracted images by using SageMaker AI processing jobs. The processing jobs use custom Docker images stored in private Amazon ECR repositories. The solution writes the resulting output to Amazon S3.
Apply business logic to extracted data
The final stage of the Amazon MWAA DAG applies custom business logic to the extracted metadata (Apache Parquet) and the resulting output from the object detection and LaneDet processes. The business logic leverages Apache Spark and runs on Amazon EMR Serverless to process the data. The solution writes the resulting metadata output from the Apache Spark job to both Amazon S3 and DynamoDB. When the solution writes the metadata to DynamoDB, it invokes a Lambda function that forwards the data to OpenSearch Service for indexing.
Search metadata output
After the solution writes the data to OpenSearch Service, you can query the data with OpenSearch Dashboards. The solution provides an Amazon EC2 instance that acts as a proxy for secure communication. This proxy only allows AWS Systems Manager