mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
SCRIPT namespace replacements
This commit is contained in:
committed by
Peter Johnson
parent
ae6c043632
commit
9aca8e0fd6
@@ -12,7 +12,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/led/AddressableLED.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(AddressableLEDSimTest, InitializationCallback) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -120,4 +120,4 @@ TEST(AddressableLEDSimTest, SetData) {
|
||||
EXPECT_EQ(0xFF, simData[2].b);
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
#include "wpi/units/math.hpp"
|
||||
|
||||
#define EXPECT_NEAR_UNITS(val1, val2, eps) \
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
EXPECT_LE(wpi::units::math::abs(val1 - val2), eps)
|
||||
|
||||
TEST(AnalogEncoderSimTest, Basic) {
|
||||
frc::AnalogInput ai(0);
|
||||
frc::AnalogEncoder encoder{ai, 360, 0};
|
||||
frc::sim::AnalogEncoderSim encoderSim{encoder};
|
||||
wpi::AnalogInput ai(0);
|
||||
wpi::AnalogEncoder encoder{ai, 360, 0};
|
||||
wpi::sim::AnalogEncoderSim encoderSim{encoder};
|
||||
|
||||
encoderSim.Set(180);
|
||||
EXPECT_NEAR(encoder.Get(), 180, 1E-8);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/discrete/AnalogInput.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(AnalogInputSimTest, SetInitialized) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -92,4 +92,4 @@ TEST(AnalogInputSimTest, SetAverageBits) {
|
||||
EXPECT_EQ(3504, callback.GetLastValue());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "wpi/hardware/pneumatic/DoubleSolenoid.hpp"
|
||||
#include "wpi/hardware/pneumatic/PneumaticsControlModule.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(CTREPCMSimTest, InitializedCallback) {
|
||||
CTREPCMSim sim;
|
||||
@@ -33,7 +33,7 @@ TEST(CTREPCMSimTest, SolenoidOutput) {
|
||||
CTREPCMSim sim(pcm);
|
||||
sim.ResetData();
|
||||
|
||||
DoubleSolenoid doubleSolenoid{0, frc::PneumaticsModuleType::CTREPCM, 3, 4};
|
||||
DoubleSolenoid doubleSolenoid{0, wpi::PneumaticsModuleType::CTREPCM, 3, 4};
|
||||
|
||||
BooleanCallback callback3;
|
||||
BooleanCallback callback4;
|
||||
@@ -147,4 +147,4 @@ TEST(CTREPCMSimTest, SetCompressorCurrent) {
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(35.04, callback.GetLastValue());
|
||||
}
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
#include "wpi/system/RobotController.hpp"
|
||||
|
||||
TEST(DCMotorSimTest, VoltageSteadyState) {
|
||||
frc::DCMotor gearbox = frc::DCMotor::NEO(1);
|
||||
auto plant = frc::LinearSystemId::DCMotorSystem(
|
||||
frc::DCMotor::NEO(1), units::kilogram_square_meter_t{0.0005}, 1.0);
|
||||
frc::sim::DCMotorSim sim{plant, gearbox};
|
||||
wpi::math::DCMotor gearbox = wpi::math::DCMotor::NEO(1);
|
||||
auto plant = wpi::math::LinearSystemId::DCMotorSystem(
|
||||
wpi::math::DCMotor::NEO(1), wpi::units::kilogram_square_meter_t{0.0005}, 1.0);
|
||||
wpi::sim::DCMotorSim sim{plant, gearbox};
|
||||
|
||||
frc::Encoder encoder{0, 1};
|
||||
frc::sim::EncoderSim encoderSim{encoder};
|
||||
frc::PWMVictorSPX motor{0};
|
||||
wpi::Encoder encoder{0, 1};
|
||||
wpi::sim::EncoderSim encoderSim{encoder};
|
||||
wpi::PWMVictorSPX motor{0};
|
||||
|
||||
frc::sim::RoboRioSim::ResetData();
|
||||
wpi::sim::RoboRioSim::ResetData();
|
||||
encoderSim.ResetData();
|
||||
|
||||
// Spin-up
|
||||
@@ -33,10 +33,10 @@ TEST(DCMotorSimTest, VoltageSteadyState) {
|
||||
motor.SetVoltage(12_V);
|
||||
|
||||
// Then, SimulationPeriodic runs
|
||||
frc::sim::RoboRioSim::SetVInVoltage(
|
||||
frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
wpi::sim::RoboRioSim::SetVInVoltage(
|
||||
wpi::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
sim.SetInputVoltage(motor.Get() *
|
||||
frc::RobotController::GetBatteryVoltage());
|
||||
wpi::RobotController::GetBatteryVoltage());
|
||||
sim.Update(20_ms);
|
||||
encoderSim.SetRate(sim.GetAngularVelocity().value());
|
||||
}
|
||||
@@ -49,10 +49,10 @@ TEST(DCMotorSimTest, VoltageSteadyState) {
|
||||
motor.SetVoltage(0_V);
|
||||
|
||||
// Then, SimulationPeriodic runs
|
||||
frc::sim::RoboRioSim::SetVInVoltage(
|
||||
frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
wpi::sim::RoboRioSim::SetVInVoltage(
|
||||
wpi::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
sim.SetInputVoltage(motor.Get() *
|
||||
frc::RobotController::GetBatteryVoltage());
|
||||
wpi::RobotController::GetBatteryVoltage());
|
||||
sim.Update(20_ms);
|
||||
encoderSim.SetRate(sim.GetAngularVelocity().value());
|
||||
}
|
||||
@@ -61,18 +61,18 @@ TEST(DCMotorSimTest, VoltageSteadyState) {
|
||||
}
|
||||
|
||||
TEST(DCMotorSimTest, PositionFeedbackControl) {
|
||||
frc::DCMotor gearbox = frc::DCMotor::NEO(1);
|
||||
auto plant = frc::LinearSystemId::DCMotorSystem(
|
||||
frc::DCMotor::NEO(1), units::kilogram_square_meter_t{0.0005}, 1.0);
|
||||
frc::sim::DCMotorSim sim{plant, gearbox};
|
||||
wpi::math::DCMotor gearbox = wpi::math::DCMotor::NEO(1);
|
||||
auto plant = wpi::math::LinearSystemId::DCMotorSystem(
|
||||
wpi::math::DCMotor::NEO(1), wpi::units::kilogram_square_meter_t{0.0005}, 1.0);
|
||||
wpi::sim::DCMotorSim sim{plant, gearbox};
|
||||
|
||||
frc::PIDController controller{0.04, 0.0, 0.001};
|
||||
wpi::math::PIDController controller{0.04, 0.0, 0.001};
|
||||
|
||||
frc::Encoder encoder{0, 1};
|
||||
frc::sim::EncoderSim encoderSim{encoder};
|
||||
frc::PWMVictorSPX motor{0};
|
||||
wpi::Encoder encoder{0, 1};
|
||||
wpi::sim::EncoderSim encoderSim{encoder};
|
||||
wpi::PWMVictorSPX motor{0};
|
||||
|
||||
frc::sim::RoboRioSim::ResetData();
|
||||
wpi::sim::RoboRioSim::ResetData();
|
||||
encoderSim.ResetData();
|
||||
|
||||
for (int i = 0; i < 140; i++) {
|
||||
@@ -80,10 +80,10 @@ TEST(DCMotorSimTest, PositionFeedbackControl) {
|
||||
motor.Set(controller.Calculate(encoder.GetDistance(), 750));
|
||||
|
||||
// Then, SimulationPeriodic runs
|
||||
frc::sim::RoboRioSim::SetVInVoltage(
|
||||
frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
wpi::sim::RoboRioSim::SetVInVoltage(
|
||||
wpi::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
sim.SetInputVoltage(motor.Get() *
|
||||
frc::RobotController::GetBatteryVoltage());
|
||||
wpi::RobotController::GetBatteryVoltage());
|
||||
sim.Update(20_ms);
|
||||
encoderSim.SetDistance(sim.GetAngularPosition().value());
|
||||
encoderSim.SetRate(sim.GetAngularVelocity().value());
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "wpi/hardware/discrete/DigitalInput.hpp"
|
||||
#include "wpi/hardware/discrete/DigitalOutput.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(DIOSimTest, Initialization) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -77,4 +77,4 @@ TEST(DIOSimTest, Output) {
|
||||
EXPECT_TRUE(valueCallback.WasTriggered());
|
||||
EXPECT_FALSE(valueCallback.GetLastValue());
|
||||
}
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -18,29 +18,29 @@
|
||||
#include "wpi/units/moment_of_inertia.hpp"
|
||||
|
||||
TEST(DifferentialDrivetrainSimTest, Convergence) {
|
||||
auto motor = frc::DCMotor::NEO(2);
|
||||
auto plant = frc::LinearSystemId::DrivetrainVelocitySystem(
|
||||
auto motor = wpi::math::DCMotor::NEO(2);
|
||||
auto plant = wpi::math::LinearSystemId::DrivetrainVelocitySystem(
|
||||
motor, 50_kg, 2_in, 12_in, 0.5_kg_sq_m, 1.0);
|
||||
|
||||
frc::DifferentialDriveKinematics kinematics{24_in};
|
||||
frc::sim::DifferentialDrivetrainSim sim{
|
||||
wpi::math::DifferentialDriveKinematics kinematics{24_in};
|
||||
wpi::sim::DifferentialDrivetrainSim sim{
|
||||
plant, 24_in, motor,
|
||||
1.0, 2_in, {0.001, 0.001, 0.0001, 0.1, 0.1, 0.005, 0.005}};
|
||||
|
||||
frc::LinearPlantInversionFeedforward feedforward{plant, 20_ms};
|
||||
frc::LTVUnicycleController feedback{20_ms};
|
||||
wpi::math::LinearPlantInversionFeedforward feedforward{plant, 20_ms};
|
||||
wpi::math::LTVUnicycleController feedback{20_ms};
|
||||
|
||||
feedforward.Reset(frc::Vectord<2>{0.0, 0.0});
|
||||
feedforward.Reset(wpi::math::Vectord<2>{0.0, 0.0});
|
||||
|
||||
// Ground truth.
|
||||
frc::Vectord<7> groundTruthX = frc::Vectord<7>::Zero();
|
||||
wpi::math::Vectord<7> groundTruthX = wpi::math::Vectord<7>::Zero();
|
||||
|
||||
frc::TrajectoryConfig config{1_mps, 1_mps_sq};
|
||||
wpi::math::TrajectoryConfig config{1_mps, 1_mps_sq};
|
||||
config.AddConstraint(
|
||||
frc::DifferentialDriveKinematicsConstraint(kinematics, 1_mps));
|
||||
wpi::math::DifferentialDriveKinematicsConstraint(kinematics, 1_mps));
|
||||
|
||||
auto trajectory = frc::TrajectoryGenerator::GenerateTrajectory(
|
||||
frc::Pose2d{}, {}, frc::Pose2d{2_m, 2_m, 0_rad}, config);
|
||||
auto trajectory = wpi::math::TrajectoryGenerator::GenerateTrajectory(
|
||||
wpi::math::Pose2d{}, {}, wpi::math::Pose2d{2_m, 2_m, 0_rad}, config);
|
||||
|
||||
for (auto t = 0_s; t < trajectory.TotalTime(); t += 20_ms) {
|
||||
auto state = trajectory.Sample(t);
|
||||
@@ -48,34 +48,34 @@ TEST(DifferentialDrivetrainSimTest, Convergence) {
|
||||
|
||||
auto [l, r] = kinematics.ToWheelSpeeds(feedbackOut);
|
||||
auto voltages =
|
||||
feedforward.Calculate(frc::Vectord<2>{l.value(), r.value()});
|
||||
feedforward.Calculate(wpi::math::Vectord<2>{l.value(), r.value()});
|
||||
|
||||
// Sim periodic code.
|
||||
sim.SetInputs(units::volt_t{voltages(0, 0)}, units::volt_t{voltages(1, 0)});
|
||||
sim.SetInputs(wpi::units::volt_t{voltages(0, 0)}, wpi::units::volt_t{voltages(1, 0)});
|
||||
sim.Update(20_ms);
|
||||
|
||||
// Update ground truth.
|
||||
groundTruthX = frc::RKDP(
|
||||
[&sim](const auto& x, const auto& u) -> frc::Vectord<7> {
|
||||
groundTruthX = wpi::math::RKDP(
|
||||
[&sim](const auto& x, const auto& u) -> wpi::math::Vectord<7> {
|
||||
return sim.Dynamics(x, u);
|
||||
},
|
||||
groundTruthX, voltages, 20_ms);
|
||||
}
|
||||
|
||||
// 2 inch tolerance is OK since our ground truth is an approximation of the
|
||||
// ODE solution using RKDP anyway
|
||||
// ODE solution using wpi::math::RKDP anyway
|
||||
EXPECT_NEAR(groundTruthX(0, 0), sim.GetPose().X().value(), 0.05);
|
||||
EXPECT_NEAR(groundTruthX(1, 0), sim.GetPose().Y().value(), 0.05);
|
||||
EXPECT_NEAR(groundTruthX(2, 0), sim.GetHeading().Radians().value(), 0.01);
|
||||
}
|
||||
|
||||
TEST(DifferentialDrivetrainSimTest, Current) {
|
||||
auto motor = frc::DCMotor::NEO(2);
|
||||
auto plant = frc::LinearSystemId::DrivetrainVelocitySystem(
|
||||
auto motor = wpi::math::DCMotor::NEO(2);
|
||||
auto plant = wpi::math::LinearSystemId::DrivetrainVelocitySystem(
|
||||
motor, 50_kg, 2_in, 12_in, 0.5_kg_sq_m, 1.0);
|
||||
|
||||
frc::DifferentialDriveKinematics kinematics{24_in};
|
||||
frc::sim::DifferentialDrivetrainSim sim{plant, 24_in, motor, 1.0, 2_in};
|
||||
wpi::math::DifferentialDriveKinematics kinematics{24_in};
|
||||
wpi::sim::DifferentialDrivetrainSim sim{plant, 24_in, motor, 1.0, 2_in};
|
||||
|
||||
sim.SetInputs(-12_V, 12_V);
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
@@ -97,12 +97,12 @@ TEST(DifferentialDrivetrainSimTest, Current) {
|
||||
}
|
||||
|
||||
TEST(DifferentialDrivetrainSimTest, ModelStability) {
|
||||
auto motor = frc::DCMotor::NEO(2);
|
||||
auto plant = frc::LinearSystemId::DrivetrainVelocitySystem(
|
||||
auto motor = wpi::math::DCMotor::NEO(2);
|
||||
auto plant = wpi::math::LinearSystemId::DrivetrainVelocitySystem(
|
||||
motor, 50_kg, 2_in, 12_in, 2_kg_sq_m, 5.0);
|
||||
|
||||
frc::DifferentialDriveKinematics kinematics{24_in};
|
||||
frc::sim::DifferentialDrivetrainSim sim{plant, 24_in, motor, 1.0, 2_in};
|
||||
wpi::math::DifferentialDriveKinematics kinematics{24_in};
|
||||
wpi::sim::DifferentialDrivetrainSim sim{plant, 24_in, motor, 1.0, 2_in};
|
||||
|
||||
sim.SetInputs(2_V, 4_V);
|
||||
|
||||
@@ -111,5 +111,5 @@ TEST(DifferentialDrivetrainSimTest, ModelStability) {
|
||||
sim.Update(20_ms);
|
||||
}
|
||||
|
||||
EXPECT_LT(units::math::abs(sim.GetPose().Translation().Norm()), 100_m);
|
||||
EXPECT_LT(wpi::units::math::abs(sim.GetPose().Translation().Norm()), 100_m);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/discrete/DigitalOutput.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(DigitalPWMSimTest, Initialize) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -54,4 +54,4 @@ TEST(DigitalPWMSimTest, SetPin) {
|
||||
EXPECT_EQ(191, callback.GetLastValue());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
#include "wpi/simulation/DriverStationSim.hpp"
|
||||
#include "wpi/simulation/SimHooks.hpp"
|
||||
|
||||
using namespace frc;
|
||||
using namespace frc::sim;
|
||||
using namespace wpi;
|
||||
using namespace wpi::sim;
|
||||
|
||||
TEST(DriverStationTest, Enabled) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -138,7 +138,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// Unknown
|
||||
allianceStation = HAL_AllianceStationID_kUnknown;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_FALSE(DriverStation::GetAlliance().has_value());
|
||||
EXPECT_FALSE(DriverStation::GetLocation().has_value());
|
||||
@@ -148,7 +148,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// B1
|
||||
allianceStation = HAL_AllianceStationID_kBlue1;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kBlue, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(1, DriverStation::GetLocation());
|
||||
@@ -158,7 +158,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// B2
|
||||
allianceStation = HAL_AllianceStationID_kBlue2;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kBlue, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(2, DriverStation::GetLocation());
|
||||
@@ -168,7 +168,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// B3
|
||||
allianceStation = HAL_AllianceStationID_kBlue3;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kBlue, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(3, DriverStation::GetLocation());
|
||||
@@ -178,7 +178,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// R1
|
||||
allianceStation = HAL_AllianceStationID_kRed1;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kRed, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(1, DriverStation::GetLocation());
|
||||
@@ -188,7 +188,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// R2
|
||||
allianceStation = HAL_AllianceStationID_kRed2;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kRed, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(2, DriverStation::GetLocation());
|
||||
@@ -198,7 +198,7 @@ TEST(DriverStationTest, AllianceStationId) {
|
||||
// R3
|
||||
allianceStation = HAL_AllianceStationID_kRed3;
|
||||
DriverStationSim::SetAllianceStationId(allianceStation);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(allianceStation, DriverStationSim::GetAllianceStationId());
|
||||
EXPECT_EQ(DriverStation::kRed, DriverStation::GetAlliance());
|
||||
EXPECT_EQ(3, DriverStation::GetLocation());
|
||||
@@ -233,7 +233,7 @@ TEST(DriverStationTest, MatchTime) {
|
||||
false);
|
||||
constexpr double kTestTime = 19.174;
|
||||
DriverStationSim::SetMatchTime(kTestTime);
|
||||
frc::sim::DriverStationSim::NotifyNewData();
|
||||
wpi::sim::DriverStationSim::NotifyNewData();
|
||||
EXPECT_EQ(kTestTime, DriverStationSim::GetMatchTime());
|
||||
EXPECT_EQ(kTestTime, DriverStation::GetMatchTime().value());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/rotation/DutyCycleEncoder.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(DutyCycleEncoderSimTest, Set) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -34,4 +34,4 @@ TEST(DutyCycleEncoderSimTest, SetIsConnected) {
|
||||
EXPECT_FALSE(enc.IsConnected());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "wpi/hardware/discrete/DigitalInput.hpp"
|
||||
#include "wpi/hardware/rotation/DutyCycle.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(DutyCycleSimTest, Initialization) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -64,4 +64,4 @@ TEST(DutyCycleSimTest, SetOutput) {
|
||||
EXPECT_EQ(229.174, callback.GetLastValue());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -17,23 +17,23 @@
|
||||
#include "wpi/units/time.hpp"
|
||||
|
||||
#define EXPECT_NEAR_UNITS(val1, val2, eps) \
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
EXPECT_LE(wpi::units::math::abs(val1 - val2), eps)
|
||||
|
||||
TEST(ElevatorSimTest, StateSpaceSim) {
|
||||
frc::sim::ElevatorSim sim(frc::DCMotor::Vex775Pro(4), 14.67, 8_kg, 0.75_in,
|
||||
wpi::sim::ElevatorSim sim(wpi::math::DCMotor::Vex775Pro(4), 14.67, 8_kg, 0.75_in,
|
||||
0_m, 3_m, true, 0_m, {0.01});
|
||||
frc::PIDController controller(10, 0.0, 0.0);
|
||||
wpi::math::PIDController controller(10, 0.0, 0.0);
|
||||
|
||||
frc::PWMVictorSPX motor(0);
|
||||
frc::Encoder encoder(0, 1);
|
||||
frc::sim::EncoderSim encoderSim(encoder);
|
||||
wpi::PWMVictorSPX motor(0);
|
||||
wpi::Encoder encoder(0, 1);
|
||||
wpi::sim::EncoderSim encoderSim(encoder);
|
||||
|
||||
for (size_t i = 0; i < 100; ++i) {
|
||||
controller.SetSetpoint(2.0);
|
||||
auto nextVoltage = controller.Calculate(encoderSim.GetDistance());
|
||||
motor.Set(nextVoltage / frc::RobotController::GetInputVoltage());
|
||||
motor.Set(nextVoltage / wpi::RobotController::GetInputVoltage());
|
||||
|
||||
frc::Vectord<1> u{motor.Get() * frc::RobotController::GetInputVoltage()};
|
||||
wpi::math::Vectord<1> u{motor.Get() * wpi::RobotController::GetInputVoltage()};
|
||||
sim.SetInput(u);
|
||||
sim.Update(20_ms);
|
||||
|
||||
@@ -46,7 +46,7 @@ TEST(ElevatorSimTest, StateSpaceSim) {
|
||||
|
||||
TEST(ElevatorSimTest, InitialState) {
|
||||
constexpr auto startingHeight = 0.5_m;
|
||||
frc::sim::ElevatorSim sim(frc::DCMotor::KrakenX60(2), 20, 8_kg, 0.1_m, 0_m,
|
||||
wpi::sim::ElevatorSim sim(wpi::math::DCMotor::KrakenX60(2), 20, 8_kg, 0.1_m, 0_m,
|
||||
1_m, true, startingHeight, {0.01, 0.0});
|
||||
|
||||
EXPECT_DOUBLE_EQ(startingHeight.value(), sim.GetPosition().value());
|
||||
@@ -54,10 +54,10 @@ TEST(ElevatorSimTest, InitialState) {
|
||||
}
|
||||
|
||||
TEST(ElevatorSimTest, MinMax) {
|
||||
frc::sim::ElevatorSim sim(frc::DCMotor::Vex775Pro(4), 14.67, 8_kg, 0.75_in,
|
||||
wpi::sim::ElevatorSim sim(wpi::math::DCMotor::Vex775Pro(4), 14.67, 8_kg, 0.75_in,
|
||||
0_m, 1_m, true, 0_m, {0.01});
|
||||
for (size_t i = 0; i < 100; ++i) {
|
||||
sim.SetInput(frc::Vectord<1>{0.0});
|
||||
sim.SetInput(wpi::math::Vectord<1>{0.0});
|
||||
sim.Update(20_ms);
|
||||
|
||||
auto height = sim.GetPosition();
|
||||
@@ -65,7 +65,7 @@ TEST(ElevatorSimTest, MinMax) {
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < 100; ++i) {
|
||||
sim.SetInput(frc::Vectord<1>{12.0});
|
||||
sim.SetInput(wpi::math::Vectord<1>{12.0});
|
||||
sim.Update(20_ms);
|
||||
|
||||
auto height = sim.GetPosition();
|
||||
@@ -74,21 +74,21 @@ TEST(ElevatorSimTest, MinMax) {
|
||||
}
|
||||
|
||||
TEST(ElevatorSimTest, Stability) {
|
||||
frc::sim::ElevatorSim sim{
|
||||
frc::DCMotor::Vex775Pro(4), 100, 4_kg, 0.5_in, 0_m, 10_m, false, 0_m};
|
||||
wpi::sim::ElevatorSim sim{
|
||||
wpi::math::DCMotor::Vex775Pro(4), 100, 4_kg, 0.5_in, 0_m, 10_m, false, 0_m};
|
||||
|
||||
sim.SetState(frc::Vectord<2>{0.0, 0.0});
|
||||
sim.SetInput(frc::Vectord<1>{12.0});
|
||||
sim.SetState(wpi::math::Vectord<2>{0.0, 0.0});
|
||||
sim.SetInput(wpi::math::Vectord<1>{12.0});
|
||||
for (int i = 0; i < 50; ++i) {
|
||||
sim.Update(20_ms);
|
||||
}
|
||||
|
||||
frc::LinearSystem<2, 1, 1> system =
|
||||
frc::LinearSystemId::ElevatorSystem(frc::DCMotor::Vex775Pro(4), 4_kg,
|
||||
wpi::math::LinearSystem<2, 1, 1> system =
|
||||
wpi::math::LinearSystemId::ElevatorSystem(wpi::math::DCMotor::Vex775Pro(4), 4_kg,
|
||||
0.5_in, 100)
|
||||
.Slice(0);
|
||||
EXPECT_NEAR_UNITS(
|
||||
units::meter_t{system.CalculateX(frc::Vectord<2>{0.0, 0.0},
|
||||
frc::Vectord<1>{12.0}, 20_ms * 50)(0)},
|
||||
wpi::units::meter_t{system.CalculateX(wpi::math::Vectord<2>{0.0, 0.0},
|
||||
wpi::math::Vectord<1>{12.0}, 20_ms * 50)(0)},
|
||||
sim.GetPosition(), 1_cm);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "wpi/hardware/rotation/Encoder.hpp"
|
||||
#include "wpi/util/deprecated.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
namespace {
|
||||
constexpr double kDefaultDistancePerPulse = .0005;
|
||||
@@ -232,4 +232,4 @@ TEST(EncoderSimTest, Reset) {
|
||||
EXPECT_EQ(0, encoder.GetDistance());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/power/PowerDistribution.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(PowerDistributionSimTest, Initialize) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -22,7 +22,7 @@ TEST(PowerDistributionSimTest, Initialize) {
|
||||
BooleanCallback callback;
|
||||
|
||||
auto cb = sim.RegisterInitializedCallback(callback.GetCallback(), false);
|
||||
PowerDistribution pdp(0, 2, frc::PowerDistribution::ModuleType::kCTRE);
|
||||
PowerDistribution pdp(0, 2, wpi::PowerDistribution::ModuleType::kCTRE);
|
||||
EXPECT_TRUE(sim.GetInitialized());
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_TRUE(callback.GetLastValue());
|
||||
@@ -35,7 +35,7 @@ TEST(PowerDistributionSimTest, Initialize) {
|
||||
|
||||
TEST(PowerDistributionSimTest, SetTemperature) {
|
||||
HAL_Initialize(500, 0);
|
||||
PowerDistribution pdp{0, 2, frc::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistribution pdp{0, 2, wpi::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistributionSim sim(pdp);
|
||||
|
||||
DoubleCallback callback;
|
||||
@@ -50,7 +50,7 @@ TEST(PowerDistributionSimTest, SetTemperature) {
|
||||
|
||||
TEST(PowerDistributionSimTest, SetVoltage) {
|
||||
HAL_Initialize(500, 0);
|
||||
PowerDistribution pdp{0, 2, frc::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistribution pdp{0, 2, wpi::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistributionSim sim(pdp);
|
||||
|
||||
DoubleCallback callback;
|
||||
@@ -65,7 +65,7 @@ TEST(PowerDistributionSimTest, SetVoltage) {
|
||||
|
||||
TEST(PowerDistributionSimTest, SetCurrent) {
|
||||
HAL_Initialize(500, 0);
|
||||
PowerDistribution pdp{0, 2, frc::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistribution pdp{0, 2, wpi::PowerDistribution::ModuleType::kCTRE};
|
||||
PowerDistributionSim sim(pdp);
|
||||
|
||||
for (int channel = 0; channel < HAL_GetNumCTREPDPChannels(); ++channel) {
|
||||
@@ -84,7 +84,7 @@ TEST(PowerDistributionSimTest, SetCurrent) {
|
||||
|
||||
TEST(PowerDistributionSimTest, GetAllCurrents) {
|
||||
HAL_Initialize(500, 0);
|
||||
PowerDistribution pdp{0, 2, frc::PowerDistribution::ModuleType::kRev};
|
||||
PowerDistribution pdp{0, 2, wpi::PowerDistribution::ModuleType::kRev};
|
||||
PowerDistributionSim sim(pdp);
|
||||
|
||||
// setup
|
||||
@@ -103,4 +103,4 @@ TEST(PowerDistributionSimTest, GetAllCurrents) {
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/motor/Spark.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
TEST(PWMMotorControllerSimTest, TestMotor) {
|
||||
frc::Spark spark{0};
|
||||
frc::sim::PWMMotorControllerSim sim{spark};
|
||||
wpi::Spark spark{0};
|
||||
wpi::sim::PWMMotorControllerSim sim{spark};
|
||||
|
||||
spark.Set(0);
|
||||
EXPECT_EQ(0, sim.GetSpeed());
|
||||
@@ -23,4 +23,4 @@ TEST(PWMMotorControllerSimTest, TestMotor) {
|
||||
spark.Set(-0.785);
|
||||
EXPECT_EQ(-0.785, sim.GetSpeed());
|
||||
}
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "wpi/hal/HAL.h"
|
||||
#include "wpi/hardware/discrete/PWM.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(PWMSimTest, Initialize) {
|
||||
HAL_Initialize(500, 0);
|
||||
@@ -61,4 +61,4 @@ TEST(PWMSimTest, SetOutputPeriod) {
|
||||
EXPECT_EQ(3504, callback.GetLastValue());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "wpi/hardware/pneumatic/DoubleSolenoid.hpp"
|
||||
#include "wpi/hardware/pneumatic/PneumaticHub.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(REVPHSimTest, InitializedCallback) {
|
||||
REVPHSim sim;
|
||||
@@ -33,7 +33,7 @@ TEST(REVPHSimTest, SolenoidOutput) {
|
||||
REVPHSim sim(ph);
|
||||
sim.ResetData();
|
||||
|
||||
DoubleSolenoid doubleSolenoid{0, 1, frc::PneumaticsModuleType::REVPH, 3, 4};
|
||||
DoubleSolenoid doubleSolenoid{0, 1, wpi::PneumaticsModuleType::REVPH, 3, 4};
|
||||
|
||||
BooleanCallback callback3;
|
||||
BooleanCallback callback4;
|
||||
@@ -191,4 +191,4 @@ TEST(REVPHSimTest, SetCompressorCurrent) {
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(35.04, callback.GetLastValue());
|
||||
}
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "wpi/hal/HALBase.h"
|
||||
#include "wpi/system/RobotController.hpp"
|
||||
|
||||
namespace frc::sim {
|
||||
namespace wpi::sim {
|
||||
|
||||
TEST(RoboRioSimTest, SetVin) {
|
||||
RoboRioSim::ResetData();
|
||||
@@ -23,7 +23,7 @@ TEST(RoboRioSimTest, SetVin) {
|
||||
voltageCallback.GetCallback(), false);
|
||||
constexpr double kTestVoltage = 1.91;
|
||||
|
||||
RoboRioSim::SetVInVoltage(units::volt_t{kTestVoltage});
|
||||
RoboRioSim::SetVInVoltage(wpi::units::volt_t{kTestVoltage});
|
||||
EXPECT_TRUE(voltageCallback.WasTriggered());
|
||||
EXPECT_EQ(kTestVoltage, voltageCallback.GetLastValue());
|
||||
EXPECT_EQ(kTestVoltage, RoboRioSim::GetVInVoltage().value());
|
||||
@@ -38,7 +38,7 @@ TEST(RoboRioSimTest, SetBrownout) {
|
||||
voltageCallback.GetCallback(), false);
|
||||
constexpr double kTestVoltage = 1.91;
|
||||
|
||||
RoboRioSim::SetBrownoutVoltage(units::volt_t{kTestVoltage});
|
||||
RoboRioSim::SetBrownoutVoltage(wpi::units::volt_t{kTestVoltage});
|
||||
EXPECT_TRUE(voltageCallback.WasTriggered());
|
||||
EXPECT_EQ(kTestVoltage, voltageCallback.GetLastValue());
|
||||
EXPECT_EQ(kTestVoltage, RoboRioSim::GetBrownoutVoltage().value());
|
||||
@@ -64,13 +64,13 @@ TEST(RoboRioSimTest, Set3V3) {
|
||||
constexpr double kTestCurrent = 174;
|
||||
constexpr int kTestFaults = 229;
|
||||
|
||||
RoboRioSim::SetUserVoltage3V3(units::volt_t{kTestVoltage});
|
||||
RoboRioSim::SetUserVoltage3V3(wpi::units::volt_t{kTestVoltage});
|
||||
EXPECT_TRUE(voltageCallback.WasTriggered());
|
||||
EXPECT_EQ(kTestVoltage, voltageCallback.GetLastValue());
|
||||
EXPECT_EQ(kTestVoltage, RoboRioSim::GetUserVoltage3V3().value());
|
||||
EXPECT_EQ(kTestVoltage, RobotController::GetVoltage3V3());
|
||||
|
||||
RoboRioSim::SetUserCurrent3V3(units::ampere_t{kTestCurrent});
|
||||
RoboRioSim::SetUserCurrent3V3(wpi::units::ampere_t{kTestCurrent});
|
||||
EXPECT_TRUE(currentCallback.WasTriggered());
|
||||
EXPECT_EQ(kTestCurrent, currentCallback.GetLastValue());
|
||||
EXPECT_EQ(kTestCurrent, RoboRioSim::GetUserCurrent3V3().value());
|
||||
@@ -97,7 +97,7 @@ TEST(RoboRioSimTest, SetCPUTemp) {
|
||||
RoboRioSim::RegisterCPUTempCallback(callback.GetCallback(), false);
|
||||
constexpr double kCPUTemp = 100.0;
|
||||
|
||||
RoboRioSim::SetCPUTemp(units::celsius_t{kCPUTemp});
|
||||
RoboRioSim::SetCPUTemp(wpi::units::celsius_t{kCPUTemp});
|
||||
EXPECT_TRUE(callback.WasTriggered());
|
||||
EXPECT_EQ(kCPUTemp, callback.GetLastValue());
|
||||
EXPECT_EQ(kCPUTemp, RoboRioSim::GetCPUTemp().value());
|
||||
@@ -156,4 +156,4 @@ TEST(RoboRioSimTest, SetComments) {
|
||||
EXPECT_EQ(kCommentsTruncated, RobotController::GetComments());
|
||||
}
|
||||
|
||||
} // namespace frc::sim
|
||||
} // namespace wpi::sim
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
#include "wpi/hal/SimDevice.h"
|
||||
#include "wpi/simulation/SimDeviceSim.hpp"
|
||||
|
||||
using namespace frc::sim;
|
||||
using namespace wpi::sim;
|
||||
|
||||
TEST(SimDeviceSimTest, Basic) {
|
||||
hal::SimDevice dev{"test"};
|
||||
hal::SimBoolean devBool = dev.CreateBoolean("bool", false, false);
|
||||
wpi::hal::SimDevice dev{"test"};
|
||||
wpi::hal::SimBoolean devBool = dev.CreateBoolean("bool", false, false);
|
||||
|
||||
SimDeviceSim sim{"test"};
|
||||
hal::SimBoolean simBool = sim.GetBoolean("bool");
|
||||
wpi::hal::SimBoolean simBool = sim.GetBoolean("bool");
|
||||
EXPECT_FALSE(simBool.Get());
|
||||
simBool.Set(true);
|
||||
EXPECT_TRUE(devBool.Get());
|
||||
@@ -25,7 +25,7 @@ TEST(SimDeviceSimTest, Basic) {
|
||||
}
|
||||
|
||||
TEST(SimDeviceSimTest, EnumerateDevices) {
|
||||
hal::SimDevice dev{"test"};
|
||||
wpi::hal::SimDevice dev{"test"};
|
||||
|
||||
bool foundit = false;
|
||||
SimDeviceSim::EnumerateDevices(
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "wpi/simulation/PowerDistributionSim.hpp"
|
||||
#include "wpi/simulation/RoboRioSim.hpp"
|
||||
|
||||
using namespace frc::sim;
|
||||
using namespace wpi::sim;
|
||||
|
||||
TEST(SimInitializationTest, AllInitialize) {
|
||||
HAL_Initialize(500, 0);
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
#include "wpi/simulation/SingleJointedArmSim.hpp"
|
||||
|
||||
TEST(SingleJointedArmTest, Disabled) {
|
||||
frc::sim::SingleJointedArmSim sim(frc::DCMotor::Vex775Pro(2), 300, 3_kg_sq_m,
|
||||
wpi::sim::SingleJointedArmSim sim(wpi::math::DCMotor::Vex775Pro(2), 300, 3_kg_sq_m,
|
||||
30_in, -180_deg, 0_deg, true, 90_deg);
|
||||
sim.SetState(frc::Vectord<2>{0.0, 0.0});
|
||||
sim.SetState(wpi::math::Vectord<2>{0.0, 0.0});
|
||||
|
||||
for (size_t i = 0; i < 12 / 0.02; ++i) {
|
||||
sim.SetInput(frc::Vectord<1>{0.0});
|
||||
sim.SetInput(wpi::math::Vectord<1>{0.0});
|
||||
sim.Update(20_ms);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ TEST(SingleJointedArmTest, Disabled) {
|
||||
|
||||
TEST(SingleJointedArmTest, InitialState) {
|
||||
constexpr auto startingAngle = 45_deg;
|
||||
frc::sim::SingleJointedArmSim sim(frc::DCMotor::KrakenX60(2), 125, 3_kg_sq_m,
|
||||
wpi::sim::SingleJointedArmSim sim(wpi::math::DCMotor::KrakenX60(2), 125, 3_kg_sq_m,
|
||||
30_in, 0_deg, 90_deg, true, startingAngle);
|
||||
|
||||
EXPECT_EQ(startingAngle, sim.GetAngle());
|
||||
|
||||
@@ -22,31 +22,31 @@
|
||||
#include "wpi/units/angular_velocity.hpp"
|
||||
|
||||
TEST(StateSpaceSimTest, FlywheelSim) {
|
||||
const frc::LinearSystem<1, 1, 1> plant =
|
||||
frc::LinearSystemId::IdentifyVelocitySystem<units::radian>(
|
||||
const wpi::math::LinearSystem<1, 1, 1> plant =
|
||||
wpi::math::LinearSystemId::IdentifyVelocitySystem<wpi::units::radian>(
|
||||
0.02_V / 1_rad_per_s, 0.01_V / 1_rad_per_s_sq);
|
||||
frc::sim::FlywheelSim sim{plant, frc::DCMotor::NEO(2)};
|
||||
frc::PIDController controller{0.2, 0.0, 0.0};
|
||||
frc::SimpleMotorFeedforward<units::radian> feedforward{
|
||||
wpi::sim::FlywheelSim sim{plant, wpi::math::DCMotor::NEO(2)};
|
||||
wpi::math::PIDController controller{0.2, 0.0, 0.0};
|
||||
wpi::math::SimpleMotorFeedforward<wpi::units::radian> feedforward{
|
||||
0_V, 0.02_V / 1_rad_per_s, 0.01_V / 1_rad_per_s_sq};
|
||||
frc::Encoder encoder{0, 1};
|
||||
frc::sim::EncoderSim encoderSim{encoder};
|
||||
frc::PWMVictorSPX motor{0};
|
||||
wpi::Encoder encoder{0, 1};
|
||||
wpi::sim::EncoderSim encoderSim{encoder};
|
||||
wpi::PWMVictorSPX motor{0};
|
||||
|
||||
frc::sim::RoboRioSim::ResetData();
|
||||
wpi::sim::RoboRioSim::ResetData();
|
||||
encoderSim.ResetData();
|
||||
|
||||
for (int i = 0; i < 100; i++) {
|
||||
// RobotPeriodic runs first
|
||||
auto voltageOut = controller.Calculate(encoder.GetRate(), 200.0);
|
||||
motor.SetVoltage(units::volt_t{voltageOut} +
|
||||
motor.SetVoltage(wpi::units::volt_t{voltageOut} +
|
||||
feedforward.Calculate(200_rad_per_s));
|
||||
|
||||
// Then, SimulationPeriodic runs
|
||||
frc::sim::RoboRioSim::SetVInVoltage(
|
||||
frc::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
wpi::sim::RoboRioSim::SetVInVoltage(
|
||||
wpi::sim::BatterySim::Calculate({sim.GetCurrentDraw()}));
|
||||
sim.SetInput(
|
||||
frc::Vectord<1>{motor.Get() * frc::RobotController::GetInputVoltage()});
|
||||
wpi::math::Vectord<1>{motor.Get() * wpi::RobotController::GetInputVoltage()});
|
||||
sim.Update(20_ms);
|
||||
encoderSim.SetRate(sim.GetAngularVelocity().value());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user