RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
odometry_serial.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/subsystems/custom_encoder.h"
10
#include "core/subsystems/odometry/odometry_base.h"
11
#include "core/utils/math_util.h"
12
13
#include "core/utils/math/geometry/pose2d.h"
14
32
class
OdometrySerial
:
public
OdometryBase
{
33
public
:
37
OdometrySerial
(
38
bool
is_async,
bool
calc_vel_acc_on_brain,
Pose2d
initial_pose,
Pose2d
sensor_offset, int32_t port,
39
int32_t baudrate
40
);
41
42
void
send_config
(
const
Pose2d
&initial_pose,
const
Pose2d
&sensor_offset,
const
bool
&calc_vel_acc_on_brain);
43
44
int
background_task(
void
*ptr);
45
51
Pose2d
update
()
override
;
52
56
void
set_position
(
const
Pose2d
&new_pose)
override
;
57
58
int
receive_cobs_packet
(uint32_t port, uint8_t *buffer,
size_t
buffer_size);
59
60
Pose2d
get_position
(
void
)
override
;
61
62
Pose2d
get_pose2d
(
void
);
63
64
size_t
cobs_decode
(
const
uint8_t *buffer,
size_t
length,
void
*data);
65
66
size_t
cobs_encode
(
const
void
*data,
size_t
length, uint8_t *buffer);
67
68
double
get_speed
()
override
;
69
70
double
get_accel
()
override
;
71
72
private
:
73
int32_t _port;
74
75
bool
calc_vel_acc_on_brain;
76
77
Pose2d
pose;
78
79
Pose2d
pose_offset;
80
81
double
speed;
82
double
accel;
83
double
ang_speed_deg;
84
double
ang_accel_deg;
85
};
OdometryBase::get_accel
virtual double get_accel()
Definition
odometry_base.cpp:102
OdometryBase::OdometryBase
OdometryBase(bool is_async)
Definition
odometry_base.cpp:8
OdometryBase::get_speed
virtual double get_speed()
Definition
odometry_base.cpp:94
OdometrySerial::send_config
void send_config(const Pose2d &initial_pose, const Pose2d &sensor_offset, const bool &calc_vel_acc_on_brain)
Definition
odometry_serial.cpp:48
OdometrySerial::get_pose2d
Pose2d get_pose2d(void)
Definition
odometry_serial.cpp:171
OdometrySerial::OdometrySerial
OdometrySerial(bool is_async, bool calc_vel_acc_on_brain, Pose2d initial_pose, Pose2d sensor_offset, int32_t port, int32_t baudrate)
Definition
odometry_serial.cpp:35
OdometrySerial::set_position
void set_position(const Pose2d &new_pose) override
Definition
odometry_serial.cpp:154
OdometrySerial::cobs_decode
size_t cobs_decode(const uint8_t *buffer, size_t length, void *data)
Definition
odometry_serial.cpp:213
OdometrySerial::update
Pose2d update() override
Definition
odometry_serial.cpp:115
OdometrySerial::get_position
Pose2d get_position(void) override
Definition
odometry_serial.cpp:161
OdometrySerial::receive_cobs_packet
int receive_cobs_packet(uint32_t port, uint8_t *buffer, size_t buffer_size)
Definition
odometry_serial.cpp:83
OdometrySerial::cobs_encode
size_t cobs_encode(const void *data, size_t length, uint8_t *buffer)
Definition
odometry_serial.cpp:182
Pose2d
Definition
pose2d.h:24
include
core
subsystems
odometry
odometry_serial.h
Generated by
1.17.0