Skip to content

imagry/VehicleDynamics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vehicle Dynamics Simulation

A modular Python library for simulating vehicle longitudinal dynamics, fitting parameters from real trip data, and running physics-based simulations.

Features

  • Physics-Based Simulation: Detailed DC motor + nonlinear brake + wheel dynamics model
  • Parameter Fitting: Fit 18+ vehicle parameters from real trip data using trajectory optimization
  • Interactive GUI: User-friendly interface for parameter fitting and visualization
  • Data Processing: Tools for fetching and parsing trip data from S3 or local files
  • Modular Design: Clean separation between simulation, fitting, and data handling

Quick Start

Installation

pip install -r requirements.txt
# Or install as package:
pip install -e .

Basic Usage

from simulation.dynamics import ExtendedPlant, ExtendedPlantParams

# Create vehicle model
params = ExtendedPlantParams()
plant = ExtendedPlant(params)

# Simulate
plant.reset(speed=0.0)
for _ in range(100):
    state = plant.step(0.5, dt=0.1)  # 50% throttle
    print(f"Speed: {state.speed:.2f} m/s")

Fit Parameters from Data

# Using command line
python scripts/fit_params.py \
    --data data/processed/vehicle/all_trips_data.pt \
    --output fitted_params.json

# Or using GUI
python examples/gui_usage.py

Run Simulation

python scripts/simulate_trip.py \
    --params fitted_params.json \
    --trip-data data/processed/vehicle/all_trips_data.pt \
    --output results.npz

Documentation

Examples

See the examples/ directory for:

  • basic_simulation.py - Simple simulation example
  • fit_from_data.py - Parameter fitting example
  • gui_usage.py - GUI usage example
  • custom_vehicle.py - Custom vehicle configurations

Project Structure

simulation_repo/
├── simulation/          # Core dynamics simulation
├── fitting/             # Parameter fitting
├── data/                # Data fetching and parsing
├── utils/               # Utility functions
├── scripts/             # Command-line tools
├── tests/               # Test suite
├── examples/            # Usage examples
└── docs/                # Documentation

Testing

# Run all tests
pytest tests/

# Run specific test categories
pytest tests/test_dynamics.py
pytest tests/test_fitting.py
pytest tests/test_data_parsing.py
pytest tests/test_simulation.py

Requirements

  • Python 3.10+
  • numpy, scipy, torch
  • pandas, boto3 (for data handling)
  • matplotlib (for visualization)
  • tkinter (for GUI, included with Python)

See requirements.txt for complete list.

About

Vehicle dynamics simulation and utilities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages