Program Listing for File imu_dynamics.h¶
↰ Return to documentation for file (dynamics/imu_dynamics.h)
#pragma once
#include "lupnt/core/definitions.h"
#include "lupnt/devices/imu.h"
#include "lupnt/dynamics/dynamics.h"
namespace lupnt {
enum class ImuModel;
class ImuDynamics : public Dynamics {
public:
ImuDynamics();
ImuDynamics(Config& config);
void SetModel(ImuModel imu_model);
ImuModel GetModel() const;
void SetSeed(int seed) {
seed_ = seed;
rng_ = MakePtr<std::mt19937>(seed_);
}
using Dynamics::Propagate;
State Propagate(const State& x0, Real t0, Real tf, const State* u = nullptr) override;
StateType GetStateType() const override { return ImuState::TYPE; }
protected:
ImuModel imu_model_;
int seed_ = 0;
Ptr<std::mt19937> rng_ = nullptr;
};
} // namespace lupnt