RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
odometry_base.h
1
#pragma once
2
3
// These are required for Eigen to compile
4
// https://www.vexforum.com/t/eigen-integration-issue/61474/5
5
#undef __ARM_NEON__
6
#undef __ARM_NEON
7
#include <Eigen/Dense>
8
9
#include "core/robot_specs.h"
10
#include "core/utils/command_structure/auto_command.h"
11
#include "core/utils/geometry.h"
12
#include "core/utils/math/geometry/pose2d.h"
13
#include "vex.h"
14
15
#ifndef PI
16
#define PI 3.141592654
17
#endif
18
31
class
OdometryBase
{
32
public
:
38
OdometryBase
(
bool
is_async);
39
44
virtual
Pose2d
get_position
(
void
);
45
50
virtual
void
set_position
(
const
Pose2d
&newpos = zero_pos);
51
AutoCommand *SetPositionCmd(
const
Pose2d
&newpos = zero_pos);
56
virtual
Pose2d
update
() = 0;
57
65
static
int
background_task
(
void
*ptr);
66
72
void
end_async
();
73
83
static
double
smallest_angle
(
double
start_deg,
double
end_deg);
84
86
bool
end_task
=
false
;
87
92
virtual
double
get_speed
();
93
98
virtual
double
get_accel
();
99
104
double
get_angular_speed_deg
();
105
110
double
get_angular_accel_deg
();
111
112
inline
static
constexpr
Pose2d
zero_pos =
Pose2d
();
113
117
vex::task *
handle
;
118
122
vex::mutex
mut
;
123
127
Pose2d
current_pos
;
128
129
double
speed
;
130
double
accel
;
131
double
ang_speed_deg
;
132
double
ang_accel_deg
;
133
};
OdometryBase::ang_accel_deg
double ang_accel_deg
Definition
odometry_base.h:132
OdometryBase::background_task
static int background_task(void *ptr)
Definition
odometry_base.cpp:21
OdometryBase::ang_speed_deg
double ang_speed_deg
Definition
odometry_base.h:131
OdometryBase::current_pos
Pose2d current_pos
Definition
odometry_base.h:127
OdometryBase::get_accel
virtual double get_accel()
Definition
odometry_base.cpp:102
OdometryBase::get_angular_accel_deg
double get_angular_accel_deg()
Definition
odometry_base.cpp:118
OdometryBase::speed
double speed
Definition
odometry_base.h:129
OdometryBase::OdometryBase
OdometryBase(bool is_async)
Definition
odometry_base.cpp:8
OdometryBase::smallest_angle
static double smallest_angle(double start_deg, double end_deg)
Definition
odometry_base.cpp:78
OdometryBase::mut
vex::mutex mut
Definition
odometry_base.h:122
OdometryBase::accel
double accel
Definition
odometry_base.h:130
OdometryBase::get_speed
virtual double get_speed()
Definition
odometry_base.cpp:94
OdometryBase::update
virtual Pose2d update()=0
OdometryBase::end_async
void end_async()
Definition
odometry_base.cpp:39
OdometryBase::get_position
virtual Pose2d get_position(void)
Definition
odometry_base.cpp:44
OdometryBase::handle
vex::task * handle
Definition
odometry_base.h:117
OdometryBase::end_task
bool end_task
end_task is true if we instruct the odometry thread to shut down
Definition
odometry_base.h:86
OdometryBase::set_position
virtual void set_position(const Pose2d &newpos=zero_pos)
Definition
odometry_base.cpp:58
OdometryBase::get_angular_speed_deg
double get_angular_speed_deg()
Definition
odometry_base.cpp:110
Pose2d
Definition
pose2d.h:24
include
core
subsystems
odometry
odometry_base.h
Generated by
1.17.0