RIT VEXU Core API
Loading...
Searching...
No Matches
odometry_3wheel.h
1#pragma once
2#include "../core/include/subsystems/custom_encoder.h"
3#include "../core/include/subsystems/odometry/odometry_base.h"
4#include "../core/include/subsystems/tank_drive.h"
5
33public:
38 typedef struct {
41 double wheel_diam;
44
54 Odometry3Wheel(CustomEncoder &lside_fwd, CustomEncoder &rside_fwd, CustomEncoder &off_axis, odometry3wheel_cfg_t &cfg,
55 bool is_async = true);
56
63 pose_t update() override;
64
73 void tune(vex::controller &con, TankDrive &drive);
74
75private:
88 static pose_t calculate_new_pos(double lside_delta_deg, double rside_delta_deg, double offax_delta_deg,
89 pose_t old_pos, odometry3wheel_cfg_t cfg);
90
91 CustomEncoder &lside_fwd, &rside_fwd, &off_axis;
93};
Definition custom_encoder.h:8
Definition odometry_3wheel.h:32
Odometry3Wheel(CustomEncoder &lside_fwd, CustomEncoder &rside_fwd, CustomEncoder &off_axis, odometry3wheel_cfg_t &cfg, bool is_async=true)
Definition odometry_3wheel.cpp:5
pose_t update() override
Definition odometry_3wheel.cpp:15
void tune(vex::controller &con, TankDrive &drive)
Definition odometry_3wheel.cpp:132
Definition odometry_base.h:24
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
Definition geometry.h:52