Dynamic Models
The dynamic model tells the u-blox receiver what kind of motion to expect. It affects the navigation filter — choosing the right model improves position accuracy and fix stability.
| Value | C++ | C | Python | Max Altitude | Max Speed | Description |
|---|---|---|---|---|---|---|
| 0 | Portable |
JP_GNSS_DYNAMIC_MODEL_PORTABLE |
PORTABLE |
12 km | 310 m/s | General purpose, no assumptions about motion |
| 2 | Stationary |
JP_GNSS_DYNAMIC_MODEL_STATIONARY |
STATIONARY |
9 km | 10 m/s | Fixed position — tightest filter, best accuracy |
| 3 | Pedestrian |
JP_GNSS_DYNAMIC_MODEL_PEDESTRIAN |
PEDESTRIAN |
9 km | 30 m/s | Walking speed |
| 4 | Automotive |
JP_GNSS_DYNAMIC_MODEL_AUTOMOTIVE |
AUTOMOTIVE |
5.5 km | 100 m/s | Cars, trucks |
| 5 | Sea |
JP_GNSS_DYNAMIC_MODEL_SEA |
SEA |
500 m | 25 m/s | Marine — low altitude, low dynamics |
| 6 | Airborne1G |
JP_GNSS_DYNAMIC_MODEL_AIRBORNE_1G |
AIRBORNE_1G |
50 km | 100 m/s | Low-dynamics airborne (balloon, glider) |
| 7 | Airborne2G |
JP_GNSS_DYNAMIC_MODEL_AIRBORNE_2G |
AIRBORNE_2G |
50 km | 250 m/s | Medium-dynamics airborne |
| 8 | Airborne4G |
JP_GNSS_DYNAMIC_MODEL_AIRBORNE_4G |
AIRBORNE_4G |
50 km | 500 m/s | High-dynamics airborne (rocket, fast UAV) |
| 9 | Wrist |
JP_GNSS_DYNAMIC_MODEL_WRIST |
WRIST |
9 km | 30 m/s | Wrist-worn device — accounts for arm swing |
| 10 | Bike |
JP_GNSS_DYNAMIC_MODEL_BIKE |
BIKE |
9 km | 50 m/s | Bicycle |
| 11 | Mower |
JP_GNSS_DYNAMIC_MODEL_MOWER |
MOWER |
9 km | 10 m/s | Robotic lawn mower — low speed, tight turns |
| 12 | Escooter |
JP_GNSS_DYNAMIC_MODEL_ESCOOTER |
ESCOOTER |
9 km | 30 m/s | Electric scooter |
config.dynamicModel = EDynamicModel::Automotive;
config['dynamic_model'] = gnsshat.DynamicModel.AUTOMOTIVE
config.dynamic_model = JP_GNSS_DYNAMIC_MODEL_AUTOMOTIVE;
NoteChoosing the Right Model — When in doubt, usePortable— it works in all scenarios but provides less filtering. For fixed installations (base stations, time servers), useStationaryfor the tightest position filter.