2023-Robot
Robot code for 2023 FRC season by Argos, FRC team #1756
Loading...
Searching...
No Matches
set_arm_pose_command.h
Go to the documentation of this file.
1
4
5#pragma once
6
7#include <frc2/command/CommandBase.h>
8#include <frc2/command/CommandHelper.h>
9
10#include "Constants.h"
14#include "utils/custom_units.h"
15
17
18class SetArmPoseCommand : public frc2::CommandHelper<frc2::CommandBase, SetArmPoseCommand> {
19 public:
21 BashGuardSubsystem* bashGuard,
22 std::function<ScoringPosition()> scoringPositionCb,
23 frc::Translation2d scoringPositionOffset,
24 std::function<bool()> bashGuardModeCb,
25 std::function<bool()> placeGamePieceInvertedCb,
27 units::velocity::inches_per_second_t maxVelocity = speeds::armKinematicSpeeds::effectorVelocity,
28 units::acceleration::inches_per_second_squared_t maxAcceleration =
30
32 BashGuardSubsystem* bashGuard,
33 ScoringPosition scoringPosition,
34 frc::Translation2d scoringPositionOffset,
35 std::function<bool()> bashGuardModeCb,
36 std::function<bool()> placeGamePieceInvertedCb,
38 units::velocity::inches_per_second_t maxVelocity = speeds::armKinematicSpeeds::effectorVelocity,
39 units::acceleration::inches_per_second_squared_t maxAcceleration =
41
43 BashGuardSubsystem* bashGuard,
44 frc::Translation2d targetPose,
45 frc::Translation2d scoringPositionOffset,
46 BashGuardPosition desiredBashGuardPosition,
47 WristPosition desiredWristPosition = WristPosition::Unknown,
49 units::velocity::inches_per_second_t maxVelocity = speeds::armKinematicSpeeds::effectorVelocity,
50 units::acceleration::inches_per_second_squared_t maxAcceleration =
52 bool isTunable = false);
53
54 void Initialize() override;
55
56 void Execute() override;
57
58 void End(bool interrupted) override;
59
60 bool IsFinished() override;
61
62 frc2::Command::InterruptionBehavior GetInterruptionBehavior() const override;
63
64 private:
67 std::optional<std::function<ScoringPosition()>> m_scoringPositionCb;
68 frc::Translation2d m_scoringPositionOffset;
69 std::optional<std::function<bool()>> m_bashGuardModeCb;
70 std::optional<std::function<bool()>> m_placeGamePieceInvertedCb;
71 frc::Translation2d m_targetPose;
73 units::degree_t m_targetShoulder;
74 units::inch_t m_targetExtension;
75 units::velocity::inches_per_second_t m_maxVelocity;
76 units::acceleration::inches_per_second_squared_t m_maxAcceleration;
78
83
88
90 const units::degree_t m_wristSafeZoneMinAngle;
91
92 unsigned m_id;
93};
BashGuardPosition
Definition bash_guard_subsystem.h:12
Definition bash_guard_subsystem.h:14
Definition lifter_subsystem.h:26
Definition set_arm_pose_command.h:18
BashGuardSubsystem * m_bashGuard
Definition set_arm_pose_command.h:66
void Initialize() override
Definition set_arm_pose_command.cpp:152
bool IsFinished() override
Definition set_arm_pose_command.cpp:512
static constexpr auto m_wristSafeZoneMaxExtension
Definition set_arm_pose_command.h:89
bool m_lastInversion
Definition set_arm_pose_command.h:80
bool m_isExtending
Definition set_arm_pose_command.h:87
std::optional< std::function< ScoringPosition()> > m_scoringPositionCb
Definition set_arm_pose_command.h:67
BashGuardPosition m_bashGuardTarget
Definition set_arm_pose_command.h:72
bool m_hasBashGuardMotion
Definition set_arm_pose_command.h:86
const units::degree_t m_wristSafeZoneMinAngle
Definition set_arm_pose_command.h:90
units::degree_t m_targetShoulder
Definition set_arm_pose_command.h:73
bool m_hasExtensionMotion
Definition set_arm_pose_command.h:85
void Execute() override
Definition set_arm_pose_command.cpp:418
PathType m_pathType
Definition set_arm_pose_command.h:81
units::velocity::inches_per_second_t m_maxVelocity
Definition set_arm_pose_command.h:75
void End(bool interrupted) override
Definition set_arm_pose_command.cpp:486
frc::Translation2d m_targetPose
Definition set_arm_pose_command.h:71
frc::Translation2d m_scoringPositionOffset
Definition set_arm_pose_command.h:68
units::inch_t m_targetExtension
Definition set_arm_pose_command.h:74
LifterSubsystem * m_lifter
Definition set_arm_pose_command.h:65
std::optional< std::function< bool()> > m_placeGamePieceInvertedCb
Definition set_arm_pose_command.h:70
units::acceleration::inches_per_second_squared_t m_maxAcceleration
Definition set_arm_pose_command.h:76
SetArmPoseCommand(LifterSubsystem *lifter, BashGuardSubsystem *bashGuard, ScoringPosition scoringPosition, frc::Translation2d scoringPositionOffset, std::function< bool()> bashGuardModeCb, std::function< bool()> placeGamePieceInvertedCb, PathType pathType=PathType::unmodified, units::velocity::inches_per_second_t maxVelocity=speeds::armKinematicSpeeds::effectorVelocity, units::acceleration::inches_per_second_squared_t maxAcceleration=speeds::armKinematicSpeeds::effectorAcceleration)
WristPosition m_endingWristPosition
Definition set_arm_pose_command.h:82
SetArmPoseCommand(LifterSubsystem *lifter, BashGuardSubsystem *bashGuard, std::function< ScoringPosition()> scoringPositionCb, frc::Translation2d scoringPositionOffset, std::function< bool()> bashGuardModeCb, std::function< bool()> placeGamePieceInvertedCb, PathType pathType=PathType::unmodified, units::velocity::inches_per_second_t maxVelocity=speeds::armKinematicSpeeds::effectorVelocity, units::acceleration::inches_per_second_squared_t maxAcceleration=speeds::armKinematicSpeeds::effectorAcceleration)
std::optional< std::function< bool()> > m_bashGuardModeCb
Definition set_arm_pose_command.h:69
ScoringPosition m_latestScoringPosition
Definition set_arm_pose_command.h:79
bool m_isTunable
Definition set_arm_pose_command.h:77
unsigned m_id
Definition set_arm_pose_command.h:92
SetArmPoseCommand(LifterSubsystem *lifter, BashGuardSubsystem *bashGuard, frc::Translation2d targetPose, frc::Translation2d scoringPositionOffset, BashGuardPosition desiredBashGuardPosition, WristPosition desiredWristPosition=WristPosition::Unknown, PathType pathType=PathType::unmodified, units::velocity::inches_per_second_t maxVelocity=speeds::armKinematicSpeeds::effectorVelocity, units::acceleration::inches_per_second_squared_t maxAcceleration=speeds::armKinematicSpeeds::effectorAcceleration, bool isTunable=false)
bool m_hasShoulderMotion
Definition set_arm_pose_command.h:84
frc2::Command::InterruptionBehavior GetInterruptionBehavior() const override
Definition set_arm_pose_command.cpp:528
WristPosition
Definition lifter_subsystem.h:22
constexpr auto minExtension
Definition measure_up.h:38
constexpr auto effectorAcceleration
Definition Constants.h:30
constexpr auto effectorVelocity
Definition Constants.h:29
PathType
Definition set_arm_pose_command.h:16
Definition field_points.h:37