2022-Robot
Robot code for 2022 FRC Season by Argos, FRC team #1756
Loading...
Searching...
No Matches
swerve_trapezoidal_profile.h
Go to the documentation of this file.
1
4
5#pragma once
6
7#include <frc/geometry/Pose2d.h>
8#include <frc/trajectory/Trajectory.h>
9#include <frc/trajectory/TrapezoidProfile.h>
10#include <units/angle.h>
11#include <units/angular_velocity.h>
12#include <units/length.h>
13#include <units/time.h>
14#include <units/velocity.h>
15
16enum class SegmentType { start, middle, end };
17
19 public:
21 SwerveTrapezoidalProfileSegment(const frc::Pose2d initialPosition,
22 const units::degree_t initialAngle,
23 const frc::Translation2d relativeTranslation,
24 const units::degree_t relativeRotation,
25 const frc::TrapezoidProfile<units::inches>::Constraints linearConstraints);
26 SwerveTrapezoidalProfileSegment(const frc::Pose2d initialPosition,
27 const units::degree_t initialAngle,
28 const frc::Pose2d finalPosition,
29 const units::degree_t finalAngle,
30 const frc::TrapezoidProfile<units::inches>::Constraints linearConstraints);
33
36
37 frc::Trajectory::State Calculate(units::second_t time) const;
38 bool IsFinished(units::second_t time) const;
39 units::degree_t GetEndAngle() const;
40 units::degree_t GetOdometryOffset() const;
41
42 units::feet_per_second_t GetXVelocity(const frc::Trajectory::State& state) const;
43 units::feet_per_second_t GetYVelocity(const frc::Trajectory::State& state) const;
44
45 private:
46 frc::Pose2d m_initialPosition;
47 units::degree_t m_initialAngle;
48 const frc::Translation2d m_relativeTranslation;
49 units::degree_t m_relativeRotation;
50 const frc::TrapezoidProfile<units::inches> m_linearProfile;
51 const units::degree_t m_motionAngle;
52
53 units::degree_t m_odometryOffsetAngle;
54};
55
57 public:
59};
Definition: swerve_trapezoidal_profile.h:56
Definition: swerve_trapezoidal_profile.h:18
bool IsFinished(units::second_t time) const
Definition: swerve_trapezoidal_profile.cpp:80
frc::Trajectory::State Calculate(units::second_t time) const
Definition: swerve_trapezoidal_profile.cpp:63
frc::Pose2d m_initialPosition
Definition: swerve_trapezoidal_profile.h:46
const frc::Translation2d m_relativeTranslation
Definition: swerve_trapezoidal_profile.h:48
units::degree_t GetEndAngle() const
Definition: swerve_trapezoidal_profile.cpp:84
const units::degree_t m_motionAngle
Definition: swerve_trapezoidal_profile.h:51
SwerveTrapezoidalProfileSegment & operator=(const SwerveTrapezoidalProfileSegment &)=delete
SwerveTrapezoidalProfileSegment(const SwerveTrapezoidalProfileSegment &other)=default
units::feet_per_second_t GetXVelocity(const frc::Trajectory::State &state) const
Definition: swerve_trapezoidal_profile.cpp:92
SwerveTrapezoidalProfileSegment(SwerveTrapezoidalProfileSegment &&other)=default
units::degree_t m_initialAngle
Definition: swerve_trapezoidal_profile.h:47
units::degree_t m_relativeRotation
Definition: swerve_trapezoidal_profile.h:49
units::degree_t m_odometryOffsetAngle
Definition: swerve_trapezoidal_profile.h:53
units::degree_t GetOdometryOffset() const
Definition: swerve_trapezoidal_profile.cpp:88
units::feet_per_second_t GetYVelocity(const frc::Trajectory::State &state) const
Definition: swerve_trapezoidal_profile.cpp:96
const frc::TrapezoidProfile< units::inches > m_linearProfile
Definition: swerve_trapezoidal_profile.h:50
SwerveTrapezoidalProfileSegment & operator=(SwerveTrapezoidalProfileSegment &&)=delete
SwerveTrapezoidalProfileSegment()
Definition: swerve_trapezoidal_profile.cpp:11
SegmentType
Definition: swerve_trapezoidal_profile.h:16