Jaguar Land Rover — Driver-in-the-Loop Simulator
Overview
Contributed to Jaguar Land Rover’s simulation engineering efforts by developing immersive driving environments, integrating vehicle and control models, and supporting hardware-to-software validation workflows. Work focused on improving simulator versatility, reliability, and real-time performance for vehicle testing and controls validation in Driver-in-the-Loop and HiL-style environments.
Role and Responsibilities
- Integrated hardware-to-software interfaces for steering wheels, pedals, and drivetrain components using CAN-based communication.
- Developed Python tooling to analyze HiL rig CPU load, identify performance bottlenecks, and support optimization efforts with systems engineers.
- Implemented packet-capture and parsing scripts to isolate and identify specific CAN signals (e.g., steering wheel button states) from live data streams.
- Mapped wheel and button inputs into Simulink models to support control logic validation and driver interaction testing.
- Built and iterated on VR-based driving simulators using Unity/Unreal, adapting video templates into interactive simulation environments.
- Performed full teardown, relocation, and rebuild of simulator hardware and supporting systems, restoring functionality and validating end-to-end operation.
Requirements and Constraints
- Required to rapidly understand and operate a complex simulator stack with limited on-site engineering support during the initial internship period.
- Systems needed to be restored, validated, and documented to ensure reliable operation for future testing and development.
- Hardware and software changes had to maintain real-time responsiveness and deterministic behavior for accurate driver-in-the-loop testing.
- Tooling and scripts were designed to be reusable, maintainable, and understandable by future engineers.
System Architecture & Integration
The simulator stack was built around a real-time loop where hardware inputs and model outputs were synchronized to support repeatable Driver-in-the-Loop and HiL-style testing. I focused on bridging hardware signals into the software and model layers, and building tooling to observe, validate, and debug the end-to-end data flow.
High-level data flow
- Hardware Inputs: steering wheel, pedals, and button states generate signals (including CAN).
- Signal Capture & Parsing: packet capture/parsing scripts isolate target messages and extract usable states.
- Model Integration: normalized inputs are routed into Simulink models for control logic validation.
- Simulation Runtime: Unity/Unreal consumes model outputs to drive vehicle behavior and VR interaction.
- Logging & Telemetry: tooling captures performance and runtime signals for debugging and repeatability.
Testing, Debugging & Performance
A key focus was ensuring the simulator was stable and responsive under real-time constraints. I supported validation by building repeatable checks for hardware inputs and by analyzing system performance to identify bottlenecks that impacted latency and reliability.
- Built Python tooling to profile CPU load, isolate high-usage processes, and support performance tuning with systems engineers.
- Debugged signal pipelines by capturing packets, validating message structure, and confirming expected state changes (e.g., button and switch transitions).
- Verified end-to-end behavior by checking that hardware inputs propagated correctly into models and into the simulator runtime.
- Emphasized reliability: repeatable steps, clear logging, and documentation to reduce “tribal knowledge” and improve maintainability.


