RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
odometry_tank.h
1
#pragma once
2
3
#include "core/robot_specs.h"
4
#include "core/subsystems/custom_encoder.h"
5
#include "core/subsystems/odometry/odometry_base.h"
6
#include "core/utils/moving_average.h"
7
8
// static int background_task(void *odom_obj);
15
class
OdometryTank
:
public
OdometryBase
{
16
public
:
28
OdometryTank
(
29
vex::motor_group& left_side, vex::motor_group& right_side,
robot_specs_t
& config,
30
vex::inertial* imu = NULL,
bool
is_async =
true
31
);
32
44
45
OdometryTank
(
46
CustomEncoder
& left_custom_enc,
CustomEncoder
& right_custom_enc,
robot_specs_t
& config,
47
vex::inertial* imu = NULL,
bool
is_async =
true
48
);
49
61
62
OdometryTank
(
63
vex::encoder& left_vex_enc, vex::encoder& right_vex_enc,
robot_specs_t
& config,
64
vex::inertial* imu = NULL,
bool
is_async =
true
65
);
66
71
Pose2d
update
()
override
;
72
77
void
set_position
(
const
Pose2d
& newpos = zero_pos)
override
;
78
79
private
:
82
static
Pose2d
calculate_new_pos(
83
robot_specs_t
& config,
Pose2d
& stored_info,
double
lside_diff,
double
rside_diff,
84
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
ExponentialMovingAverage::ExponentialMovingAverage
ExponentialMovingAverage(int buffer_size)
Definition
moving_average.cpp:75
OdometryBase::OdometryBase
OdometryBase(bool is_async)
Definition
odometry_base.cpp:8
OdometryTank::set_position
void set_position(const Pose2d &newpos=zero_pos) override
Resets the position and rotational data to the input.
Definition
odometry_tank.cpp:79
OdometryTank::update
Pose2d update() override
Definition
odometry_tank.cpp:92
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:14
Pose2d
Definition
pose2d.h:21
robot_specs_t
Definition
robot_specs.h:11
include
core
subsystems
odometry
odometry_tank.h
Generated by
1.18.0