1#ifndef FANG_ROBOTICS_MCB_INFANTRY_HPP
2#define FANG_ROBOTICS_MCB_INFANTRY_HPP
11#include "cool_serial/byte_queue.hpp"
61 flyRemote_{
drivers.commandMapper, flySkyByteQueue_},
68 CoolSerialUart::HandlerMap
70 {253, std::ref(*
this)},
71 {254, std::ref(basicTargetHandler_)}
74 BaseRobot{makeRobot(
drivers, holonomicInput_, gimbalInput_,
config)}
114 coolSerial::ByteQueue flySkyByteQueue_;
115 remote::FlySky flyRemote_;
116 chassis::DjiHolonomicInput holonomicInput_;
117 turret::DjiGimbalInput gimbalInput_;
118 turret::FlySkyGimbalInput flySkyGimbalInput_;
119 CoolSerialUart coolSerialUart_;
124 auto gimbal{std::make_unique<turret::PierceFieldGimbal>(
drivers,
config.subsystemConfig.gimbalConfig)};
125 auto feeder{std::make_unique<turret::M2006SimpleFeeder>(
drivers,
config.subsystemConfig.feederConfig)};
126 auto booster{std::make_unique<turret::PierceAmmoBooster>(
drivers,
config.subsystemConfig.boosterConfig)};
127 auto mecanumDrive{std::make_unique<chassis::PierceMecanumDrive>(
drivers,
config.subsystemConfig.chassisConfig)};
130 std::make_unique<command::PierceCommandPack>
143 Subsystems subsystems{};
144 subsystems.push_back(std::move(booster));
145 subsystems.push_back(std::move(feeder));
146 subsystems.push_back(std::move(gimbal));
147 subsystems.push_back(std::move(mecanumDrive));
149 CommandPacks commandPacks{};
150 commandPacks.push_back(std::move(commandPack));
Definition drivers.hpp:31
Definition basic_target_handler.hpp:13
Definition ibasic_target_listener.hpp:13
Definition base_robot.hpp:20
virtual void initialize() override
Definition base_robot.cpp:25
void handleData(const coolSerial::Bytes &bytes)
Definition pierce.hpp:97
Pierce(Drivers &drivers, const Config &config)
Definition pierce.hpp:56
void initialize() override
Definition pierce.hpp:77
void update() override
Not virtual so that it can be passed around in maker functions.
Definition pierce.hpp:85
control::CommandScheduler commandScheduler
Definition drivers.hpp:141
Definition remote_map_state.hpp:56
Config(double p, double i, double d, double maxIntegralAccumulation, double maxOutput, double errorDerivativeFloor, double errorDeadzone=0.0, double tQDerivativeKalman=1.0, double tRDerivativeKalman=0.0, tRProportionalKalman=1.0)
Definition dimensional_smooth_pid.hpp:16
Definition pwm_info.hpp:4
rail::chassis::IHolonomicInput< math::AbstractVector2D, double > IHolonomicInput
Definition iholonomic_input.hpp:7
Definition base_robot.cpp:4
rail::IGimbalInput< double > IGimbalInput
Definition igimbal_input.hpp:5
fang::Drivers & drivers
Definition robot_singleton.cpp:45
Definition pierce_mecanum_drive.hpp:16
Definition pierce_command_pack.hpp:65
command::PierceCommandPack::Config commandPackConfig
Definition pierce.hpp:53
SubsystemConfig subsystemConfig
Definition pierce.hpp:51
InputConfig input
Definition pierce.hpp:52
fang::turret::M2006SimpleFeeder::Config feederConfig
Definition pierce.hpp:45
turret::PierceFieldGimbal::Config gimbalConfig
Definition pierce.hpp:44
turret::PierceAmmoBooster::Config boosterConfig
Definition pierce.hpp:46
chassis::PierceMecanumDrive::Config chassisConfig
Definition pierce.hpp:43
Definition m2006_simple_feeder.hpp:17
Definition pierce_ammo_booster.hpp:17
Definition pierce_field_gimbal.hpp:18