RIT VEXU Core API
Loading...
Searching...
No Matches
odometry_3wheel.h
1#pragma once
2#include "core/subsystems/custom_encoder.h"
3#include "core/subsystems/odometry/odometry_base.h"
4#include "core/subsystems/tank_drive.h"
5
33public:
38 typedef struct {
41 double wheel_diam;
42
44
54 Odometry3Wheel(CustomEncoder &lside_fwd, CustomEncoder &rside_fwd, CustomEncoder &off_axis, odometry3wheel_cfg_t &cfg,
55 bool is_async = true);
56
63 Pose2d update() override;
64
73 void tune(vex::controller &con, TankDrive &drive);
74
75private:
88 static Pose2d calculate_new_pos(double lside_delta_deg, double rside_delta_deg, double offax_delta_deg,
89 Pose2d old_pos, odometry3wheel_cfg_t cfg);
90
91 CustomEncoder &lside_fwd, &rside_fwd, &off_axis;
93};
Definition custom_encoder.h:8
Pose2d update() override
Definition odometry_3wheel.cpp:15
Odometry3Wheel(CustomEncoder &lside_fwd, CustomEncoder &rside_fwd, CustomEncoder &off_axis, odometry3wheel_cfg_t &cfg, bool is_async=true)
Definition odometry_3wheel.cpp:4
void tune(vex::controller &con, TankDrive &drive)
Definition odometry_3wheel.cpp:131
OdometryBase(bool is_async)
Definition odometry_base.cpp:8
Definition pose2d.h:23
Definition tank_drive.h:23
Definition odometry_3wheel.h:38
double wheel_diam
Definition odometry_3wheel.h:41
double wheelbase_dist
Definition odometry_3wheel.h:39
double off_axis_center_dist
Definition odometry_3wheel.h:40