100 likes | 117 Views
This document outlines the hardware and software architecture of CajunBot, including hardware topology, control loop, laser drivers, obstacle detection, path planning, robot controller, and data flow management. It discusses shared memory, interprocess communication, code structure, and resolving concurrency conflicts in a distributed system. Key topics include process topology scaling, distributing shared memory queues using NDDS middleware, and addressing architectural concerns such as tuning queue sizes, managing process priorities, optimizing shared memory usage, and employing real-time operating systems.
E N D
Laser Drivers Steering Module Obstacle Detection Path Planning Robot Controller Drivers PosMV Drivers 3-D terrain of obstacles Path to follow Commands controlling device Raw sensor data Formatted sensor data Data Flow Architecture
Code Code Code Private Data Private Data Private Data Shared Data Shared Data Shared Data Interprocess Communication • POSIX Shared Memory
Resolving Concurrency Conflicts • Queues in shared memory • Circular • Pre-allocated • No dynamic allocation • Single writer per queue • Multiple readers
Scaling Computation • Shared memory • Tied to a single computer • May have multiple processors • Replace motherboard with better processor, more memory • Limited growth • Alternative • Distribute Shared Memory
Code Code Code Code Code Code Private Data Private Data Private Data Private Data Private Data Private Data Shared Data Shared Data Shared Data Shared Data Shared Data Shared Data Distributing Shared Memory Queues • NDDS – Publish/Subscribe middleware NDDS Middleware
Architectural Issues • Tuning the size of the queues? • Managing the priority of processes? • Optimizing shared memory use? • Using real-time OS