3#include "core/math/kinematics/chassis_accelerations.h"
4#include "core/math/kinematics/chassis_velocities.h"
5#include "core/math/kinematics/tank_wheel_accelerations.h"
6#include "core/math/kinematics/tank_wheel_velocities.h"
7#include "core/math/units.h"
37 units::Velocity vx = (wheel_velocities.
left + wheel_velocities.
right) / 2.0;
40 units::AngularVelocity omega =
41 ((wheel_velocities.
right.to(units::inps) - wheel_velocities.
left.to(units::inps)) /
58 units::Velocity omega_linear =
59 (chassis_velocities.
omega.to(units::radps) * (
track_width.to(units::in) / 2.0)) *
63 chassis_velocities.
vx - omega_linear, chassis_velocities.
vx + omega_linear
74 units::Acceleration ax = (wheel_accels.
left + wheel_accels.
right) / 2.0;
77 units::AngularAcceleration alpha =
78 ((wheel_accels.
right.to(units::inps2) - wheel_accels.
left.to(units::inps2)) /
95 units::Acceleration alpha_linear =
96 (chassis_accels.
alpha.to(units::radps2) * (
track_width.to(units::in) / 2.0)) * units::inps2;
99 chassis_accels.
ax - alpha_linear, chassis_accels.
ax + alpha_linear
TankKinematics(units::Length track_width)
Constructs a tank drive kinematics object.
Definition tank_kinematics.h:28
TankWheelAccelerations to_wheel_accelerations(const ChassisAccelerations &chassis_accels) const
Returns left and right component accelerations from a chassis acceleration using inverse kinematics.
Definition tank_kinematics.h:92
ChassisVelocities to_chassis_velocities(const TankWheelVelocities &wheel_velocities) const
Returns a chassis velocity from left and right component velocities using forward kinematics.
Definition tank_kinematics.h:36
TankWheelVelocities to_wheel_velocities(const ChassisVelocities &chassis_velocities) const
Returns left and right component velocities from a chassis velocity using inverse kinematics.
Definition tank_kinematics.h:55
units::Length track_width
Distance between the left and right wheels (often tuned empirically).
Definition tank_kinematics.h:22
ChassisAccelerations to_chassis_accelerations(const TankWheelAccelerations &wheel_accels) const
Returns a chassis acceleration from left and right component accelerations using forward kinematics.
Definition tank_kinematics.h:73
Represents robot chassis accelerations.
Definition chassis_accelerations.h:12
units::Acceleration ax
Acceleration along the x-axis. (Forward is positive).
Definition chassis_accelerations.h:14
units::AngularAcceleration alpha
Angular acceleration of the robot frame. (Counter-Clockwise is positive).
Definition chassis_accelerations.h:20
Represents robot chassis velocities.
Definition chassis_velocities.h:14
units::AngularVelocity omega
Angular velocity of the robot frame. (Counter-Clockwise is positive).
Definition chassis_velocities.h:22
units::Velocity vx
Velocity along the x-axis. (Forward is positive).
Definition chassis_velocities.h:16
Represents the left and right accelerations of a tank drive.
Definition tank_wheel_accelerations.h:9
units::Acceleration left
Left wheel acceleration.
Definition tank_wheel_accelerations.h:11
units::Acceleration right
Right wheel acceleration.
Definition tank_wheel_accelerations.h:13
Represents the left and right velocities of a tank drive.
Definition tank_wheel_velocities.h:9
units::Velocity right
Right wheel velocity.
Definition tank_wheel_velocities.h:13
units::Velocity left
Left wheel velocity.
Definition tank_wheel_velocities.h:11