Перейти к содержимому

Validation — what drawtonomy checks before it runs

Это содержимое пока не доступно на вашем языке.

Before drawtonomy hands your scenario to esmini, it resolves every catalog reference and every parameter in the file. Anything that cannot be resolved is reported with the actor and the attribute named, next to the ▶ button — not as a simulation that quietly does the wrong thing.

The LOGIC bar showing "Simulator init failed · car_does_not_exist_xyz is not in VehicleCatalog" with a Details link

The one-line cause is always visible. Details opens the fix and the simulator’s own log line for people who want them.

The Details popover: a fix hint, the verbatim esmini error line, and a collapsed "Show 5 engine notices" row

What it meansPlayback
Error (red, next to ▶)The reference cannot be resolved. Running it would either fail to load or silently use the wrong value.Blocked until you fix it
Warning (⚠ next to ▶)The scenario runs, but not with what the file literally asks for — usually because a catalog is missing and a built-in model stands in.Not blocked

Warnings sit behind the ⚠ button so a working scenario stays uncluttered. On narrow windows the ⚠ button is hidden entirely; the import toast still tells you once.

Ego: CatalogReference@entryName “car_does_not_exist_xyz” is not in the loaded catalog — the simulator refuses to load this scenario.

What it means. Your <CatalogReference entryName="…"> names a vehicle, pedestrian, or object that does not exist in the catalog files you opened with the scenario. esmini looks the name up literally and aborts.

How to fix it. Use a name that exists in the catalog file. drawtonomy suggests one when the difference is only capitalisation — Did you mean “car_white”? Otherwise open the catalog .xosc and copy an <Vehicle name="…"> value from it.

The lookup is case-sensitive and exact: Car_White and car_white are two different entries.

Ego: CatalogReference@catalogName “NoSuchCatalog” matches no catalog file name in <CatalogLocations> — the simulator looks for “NoSuchCatalog.xosc” and cannot locate it.

What it means. catalogName is a file name, not a label. esmini searches the <CatalogLocations> directories for <catalogName>.xosc.

How to fix it. Point catalogName at a catalog file that is actually mounted, or add that file to one of your <CatalogLocations> directories when you open the scenario.

Ego: LanePosition@s references $EgoStartS, which is not declared in <ParameterDeclarations> — the value cannot be resolved.

What it means. An attribute refers to a parameter that no <ParameterDeclaration> defines — often a rename that missed one use site, or a scenario copied out of a set where the parameter lived in another file.

How to fix it. Declare it in <ParameterDeclarations>, or replace the reference with a literal value. If the name is close to an existing one, drawtonomy suggests it.

The Details popover for an undeclared parameter, showing the declare-it hint and esmini's "Failed to resolve parameter $EgoStartS" line

A declared parameter’s value does not match its type

Section titled “A declared parameter’s value does not match its type”

Parameter “EgoStartS” is declared as double but its value “not_a_number” is not a valid double — every attribute that reads $EgoStartS becomes NaN.

What it means. parameterType="double" (or integer, or boolean) with a value that cannot be parsed as one.

How to fix it. Correct the value, or change parameterType to string if the value really is text.

Ego: CatalogReference “$HostVehicle” plays as default_car (5.0 x 2.0 m).

What it means. You opened a .xosc without its catalog files. Rather than refusing to play, drawtonomy substitutes a built-in model so you can still see the scenario move — but the dimensions are the substitute’s, not the ones the file asks for.

How to fix it. Open the scenario together with its catalog files (see Open and play a .xosc), or use a built-in entry name such as car_white.

The "Before you play" warning popover listing two substituted actors, alongside the import toast

Ego: CatalogReference@entryName “car_does_not_exist_xyz” is not a built-in entry — it will play as default_car (5.0 x 2.0 m).

The same situation, seen from the other side: no catalog is loaded and the name is not one drawtonomy knows. This is a warning rather than an error because naming an entry from a catalog you have not mounted yet is a legitimate way to work — the scenario stays playable with a stand-in model.

A ParameterAssignment targets an undeclared parameter

Section titled “A ParameterAssignment targets an undeclared parameter”

Ego: ParameterAssignment@parameterRef “NotADeclaredParam” is not declared by catalog entry “car_white” — the assignment is ignored.

What it means. Your <ParameterAssignments> sets a parameter the catalog entry does not declare, so it has no effect. The hint lists the parameters that entry does declare.

How to fix it. Use one of the declared names, or drop the assignment.

  • Catalog kinds other than vehicles, pedestrians, and objects. Controller, route, maneuver, environment, and trajectory catalogs are resolved by the simulator, not by drawtonomy — a reference to one of those is checked only at the catalogName level, to avoid reporting entries that are fine.
  • Whether the scenario does what you meant. Validation is about references resolving, not about the manoeuvre being correct. For that, run it and use fail conditions.

The same catalog check runs on scenarios from AI generation, at the Logic gate — one stage before the simulator runs. A generated scenario that invents a vehicle model is rejected and regenerated, rather than played with a stand-in.