Architecture
The simulation runtime coordinates multiple services via gRPC:Core Services
Controller Service
Vehicle dynamics controller and propagation
Driver Service
Autonomous driving policy and planning
Physics Service
Ground intersection and collision detection
SensorSim Service
Camera and LiDAR rendering
Traffic Service
Background vehicle simulation
Common Types
All services share common message types defined incommon.proto:
Pose
Represents a 3D pose with translation and rotation.Translation vector (x, y, z in meters)
Rotation quaternion (w, x, y, z)
Trajectory
A sequence of poses over time.Array of timestamped poses
DynamicState
Velocity and acceleration information.Angular velocity (rad/s)
Linear velocity (m/s)
Linear acceleration (m/s²)
Angular acceleration (rad/s²)
Coordinate Systems
All services follow consistent coordinate frame conventions:
- Local frame: World/map coordinate system
- Rig frame: Vehicle body-fixed frame (origin at rear axle center)
- AABB frame: Bounding box center frame
local->rig transforms points from local to rig frame).See CONTRIBUTING.md in the source repository for detailed coordinate system documentation.Session Management
Most services support session-based workflows:- Start Session: Initialize service with configuration
- Execute Operations: Perform rendering, simulation, etc.
- Close Session: Clean up resources
Version Compatibility
All services implementget_version() returning:
Semantic version (e.g., “0.3.0”)
Git commit hash of the service
gRPC API version (major, minor, patch)
Protocol Buffer Files
Proto definitions are located at:Code Generation
Generate Python stubs from proto files:alpasim_grpc package: