BobDyn/BobLib
BobDyn/BobLib is the low-level Modelica vehicle model layer for BobDyn. The active package is BobLib: a standalone VehicleInterfaces-aligned library that retains BobLib's detailed chassis, suspension, tire, aero, powertrain, and control physics.
Current package name
Current examples use BobLib.* class names. Modelica regression and component fixtures live in the sibling Tests/BobLibTest package.
Use BobDyn/BobLib when you want to inspect, modify, translate, simulate, or debug the physical Modelica models directly.
Use BobDyn/BobSim when you want complete analysis workflows: case execution, signal extraction, metrics, plots, reports, envelope maps, sensitivity studies, and public baseline artifacts.
Which layer should I use?
Clone BobLib directly for model development, package inspection, OMEdit diagram work, and regression testing. Start with BobSim when you want to run complete vehicle studies.
Highlights
- Built against Modelica Standard Library
4.1.0and VehicleInterfaces2.0.2 - Public subsystem packages follow the VehicleInterfaces chassis, driveline, powertrain, driver, road, atmosphere, and bus contracts
controlBusis the shared VehicleInterfaces signal namespace for standardized cross-subsystem intent, telemetry, status, and limits- BobLib physics live inside those contracts rather than beside duplicate connector systems
- Vehicle-level powertrain layout is explicit: battery, VCU, inverter, motor, and driveline are visible at the simulation assembly level
- Aero has a BobLib interface and rigid mount; ride heights arrive through
controlBus.chassisBus, while density and wind arrive through BobLib'sAtmosphereBus - Records are the durable Modelica parameter schemas and vehicle data
- Python/YAML vehicle generation has been removed from the active model path
Experiments.Standards.VehicleSimandExperiments.Standards.FourPostSimare the front-facing simulation entry pointsheadless=falseby default so OMEdit examples open with animation visible- Root tests cover BobLib standards plus the
Tests/BobLibTestregression and component fixtures
Operating Model
BobLib work now happens in four phases:
- Select or edit Modelica records and architecture templates.
- Translate the Modelica entry points.
- Run initialization, regression, and smoke checks.
- Simulate directly or through BobSim workflows.
Vehicle selection is plain Modelica. The standard entry points extend checked-in templates under:
BobLib.Experiments.Standards.Templates.Vehicle
BobLib.Experiments.Standards.Templates.FourPostThose templates expose the complete record and subsystem redeclare set so users can either follow the template pattern or hard-code a project/year-specific entry point.
Release Checks
From the BobLib repository root:
make test PYTHON=.venv/bin/pythonThat target runs Python checks, OpenModelica translation checks, initialization baselines, signal-level regressions, and BobLib smoke checks. The Modelica checks load Modelica 4.1.0 and VehicleInterfaces 2.0.2.
Documentation Map
| Page | Use it for |
|---|---|
| Setup | Clone path, prerequisites, Python environment, OpenModelica expectations |
| CLI Workflow | omc loading, make targets, direct simulation |
| OMEdit Workflow | Opening BobLib visually, diagram browsing, manual simulation |
| Package Map | Repository layout and Modelica package areas |
| Control Bus | VehicleInterfaces bus wiring, telemetry ownership, and explicit connector boundaries |
| Static Templates | Checked-in records, subsystem redeclares, and architecture templates |
| Entry Points | VehicleSim, FourPostSim, maneuver modes, tire relaxation behavior |
| Development | Regression tests, architecture rules, checks before commit |
| Troubleshooting | Common OpenModelica, OMEdit, dependency, and regression problems |
Maturity Notes
BobLibis the current standalone package root.- Public subsystem models should enter through the VehicleInterfaces-style top-level domains. Reusable physics can live deeper within each domain.
- Public release confidence comes from the root CI harness plus BobSim's workflow-level checks.
