LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
Loading...
Searching...
No Matches
ekf.hpp
Go to the documentation of this file.
1#pragma once
2
5
31namespace light::ekf {
32
41void init(const Pose& initial, MCLConfig cfg = {});
42
48void reset(const Pose& pose);
49
63void predict(float dLocalX, float dLocalY, float dTheta, float dt);
64
70void updateHeadingIMU(float thetaRad, float variance);
71void updateGPS(float x, float y, float variance);
72void updateWheelPose(const Pose& measured, float variance);
77
80
82float covTrace();
83
85bool diverged(float threshold_in_sq);
86
94void setConfig(const MCLConfig& cfg);
97} // namespace light::ekf
Pose, sensor specs, and the global odometry / pose-estimation API.
Runtime tuning for LightCast (particle filter) and the EKF.
MCLConfig config()
void init(const Pose &initial, MCLConfig cfg={})
Initialize the filter.
float covTrace()
void predict(float dLocalX, float dLocalY, float dTheta, float dt)
Propagate mean + covariance one tick forward using local-frame arc deltas.
void updateWheelPose(const Pose &measured, float variance)
bool diverged(float threshold_in_sq)
void updateHeadingIMU(float thetaRad, float variance)
void setConfig(const MCLConfig &cfg)
Pose mean()
void updateGPS(float x, float y, float variance)
Pose velocity()
void reset()
Reset all internal pose state to (0, 0, 0).
Tuning knobs for the LightCast particle filter and the EKF.
Field-frame 2D pose.
Definition odometry.hpp:24
2D pose: position (in) and heading (deg).
Definition util.hpp:116