Autoware.Auto
|
|
Autoware.Auto require a means to abstract the process model from the measurement/uncertainty models for state estimation. This allows a generic state estimation (e.g. kalman filter) implementation to be used with many different process models.
A constant velocity motion model was used to provide a perfect linear model for the purpose of testing the state estimation schemes.
This motion model is a perfect linear model that also can provide curved paths. In fact, the CATR model (below) can be recovered from the constant acceleration parameters. The linearity, expressive power, and cheaper computation make the constant acceleration model attractive compared to the CATR model.
The CATR model was chosen to provide a minimally descriptive kinematic model for how cars move. This represents a zero-order hold on vehicle controls. Constant acceleration roughly corresponds to a fixed throttle. Constant turn rate roughly corresponds to fixed wheel angle.
This enables minimal kinematic reasoning for somewhat more complex maneuvers, such as curves, and keep the models valid for a slightly longer time horizon.
In addition, this model was shown to have lower error compared to other models. For more details, see Schubert et. al. in the reference section.
The parameter estimator model is a simple model that provides capabilities to do parameter estimation for a set of potential correlated parameters.
In the context of our motion models, it is intended to provide an extension to the CATR model by having decoupled parameter estimates of the bounding box size.
The primary purpose of the motion model class is to:
The following considerations were included for the API:
set_internal_state(x)
compute_jacobian_and_predict()
was added because there may be some common computation between jacobian computation and prediction for a given model.The interface is designed as is. It is unclear how it will change and if it can be extended to motion models for planning.
Particular models have various assumptions baked in.
The constant velocity instantiation of the model is purely linear and assumes constant velocity.
The CATR instantiation of the model assumes constant turn rate and constant acceleration.
Turn rate is assumed to be independent of all other parameters, such as velocity or acceleration.
This is a nonlinear model.
This model assumes no dynamics.
The following inputs are provided:
set_internal_state()
)predict(), compute_jacobian()
)The following outputs are provided:
get_state()
, operator[]
)compute_jacobian(F)
)The motion model class is primarily an interface.
The constant velocity motion model has the following state:
With the following update equation:
Resulting in the following jacobian:
The constant acceleration model has the following state:
And the following update equation:
Resulting in the following jacobian:
The derivations are left as an exercise for the reader.
Run the script contained in motion_models/scripts/catr_diff.py
for a computation of the derivatives and formula for position update
The parameter estimator is templated for N
parameters. The process model is then the identity matrix:
For N=3
parameters.
TBD by a security specialist.
N/A