RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
odometry_tank.h
1
#pragma once
2
3
#include "core/subsystems/custom_encoder.h"
4
#include "core/subsystems/odometry/odometry_base.h"
5
#include "core/utils/geometry.h"
6
#include "core/utils/moving_average.h"
7
8
#include "core/robot_specs.h"
9
10
static
int
background_task(
void
*odom_obj);
11
18
class
OdometryTank
:
public
OdometryBase
{
19
public
:
30
OdometryTank
(
31
vex::motor_group &left_side, vex::motor_group &right_side,
robot_specs_t
&config, vex::inertial *imu = NULL,
32
bool
is_async =
true
33
);
34
45
46
OdometryTank
(
47
CustomEncoder
&left_custom_enc,
CustomEncoder
&right_custom_enc,
robot_specs_t
&config, vex::inertial *imu = NULL,
48
bool
is_async =
true
49
);
50
61
62
OdometryTank
(
63
vex::encoder &left_vex_enc, vex::encoder &right_vex_enc,
robot_specs_t
&config, vex::inertial *imu = NULL,
64
bool
is_async =
true
65
);
66
71
Pose2d
update
()
override
;
72
77
void
set_position
(
const
Pose2d
&newpos = zero_pos)
override
;
78
79
private
:
83
static
Pose2d
calculate_new_pos(
84
robot_specs_t
&config,
Pose2d
&stored_info,
double
lside_diff,
double
rside_diff,
double
angle_deg
85
);
86
87
vex::motor_group *left_side, *right_side;
88
CustomEncoder
*left_custom_enc, *right_custom_enc;
89
vex::encoder *left_vex_enc, *right_vex_enc;
90
vex::inertial *imu;
91
robot_specs_t
&config;
92
93
double
rotation_offset = 0;
94
ExponentialMovingAverage
ema =
ExponentialMovingAverage
(3);
95
};
CustomEncoder
Definition
custom_encoder.h:8
ExponentialMovingAverage
Definition
moving_average.h:87
OdometryBase::OdometryBase
OdometryBase(bool is_async)
Definition
odometry_base.cpp:8
OdometryTank::set_position
void set_position(const Pose2d &newpos=zero_pos) override
Definition
odometry_tank.cpp:56
OdometryTank::update
Pose2d update() override
Definition
odometry_tank.cpp:68
OdometryTank::OdometryTank
OdometryTank(vex::motor_group &left_side, vex::motor_group &right_side, robot_specs_t &config, vex::inertial *imu=NULL, bool is_async=true)
Definition
odometry_tank.cpp:13
Pose2d
Definition
pose2d.h:24
robot_specs_t
Definition
robot_specs.h:11
include
core
subsystems
odometry
odometry_tank.h
Generated by
1.17.0