Moved 2014 code into y2014 namespace.
Change-Id: Ibece165daa9e267ea1c3c7b822b0ba3eeb9830bb
diff --git a/y2014/control_loops/claw/claw.cc b/y2014/control_loops/claw/claw.cc
index 5c1b843..040cef3 100644
--- a/y2014/control_loops/claw/claw.cc
+++ b/y2014/control_loops/claw/claw.cc
@@ -44,10 +44,13 @@
// If a claw runs up against a movable limit, move both claws outwards to get
// out of the condition.
-namespace frc971 {
+namespace y2014 {
namespace control_loops {
+using ::frc971::HallEffectTracker;
using ::y2014::control_loops::claw::kDt;
+using ::frc971::control_loops::DoCoerceGoal;
+using ::frc971::control_loops::ClawPositionToLog;
static const double kZeroingVoltage = 4.0;
static const double kMaxVoltage = 12.0;
@@ -216,7 +219,8 @@
encoder_(0.0),
last_encoder_(0.0) {}
-void ZeroedStateFeedbackLoop::SetPositionValues(const HalfClawPosition &claw) {
+void ZeroedStateFeedbackLoop::SetPositionValues(
+ const ::frc971::control_loops::HalfClawPosition &claw) {
front_.Update(claw.front);
calibration_.Update(claw.calibration);
back_.Update(claw.back);
@@ -290,7 +294,8 @@
any_triggered_last_ = any_sensor_triggered;
}
-void ZeroedStateFeedbackLoop::Reset(const HalfClawPosition &claw) {
+void ZeroedStateFeedbackLoop::Reset(
+ const ::frc971::control_loops::HalfClawPosition &claw) {
set_zeroing_state(ZeroedStateFeedbackLoop::UNKNOWN_POSITION);
front_.Reset(claw.front);
@@ -366,8 +371,8 @@
return false;
}
-ClawMotor::ClawMotor(control_loops::ClawQueue *my_claw)
- : aos::controls::ControlLoop<control_loops::ClawQueue>(my_claw),
+ClawMotor::ClawMotor(::frc971::control_loops::ClawQueue *my_claw)
+ : aos::controls::ControlLoop<::frc971::control_loops::ClawQueue>(my_claw),
has_top_claw_goal_(false),
top_claw_goal_(0.0),
top_claw_(this),
@@ -547,7 +552,7 @@
}
void LimitClawGoal(double *bottom_goal, double *top_goal,
- const frc971::constants::Values &values) {
+ const constants::Values &values) {
// first update position based on angle limit
const double separation = *top_goal - *bottom_goal;
if (separation > values.claw.soft_max_separation) {
@@ -611,10 +616,11 @@
bool ClawMotor::is_zeroing() const { return !is_ready(); }
// Positive angle is up, and positive power is up.
-void ClawMotor::RunIteration(const control_loops::ClawQueue::Goal *goal,
- const control_loops::ClawQueue::Position *position,
- control_loops::ClawQueue::Output *output,
- control_loops::ClawQueue::Status *status) {
+void ClawMotor::RunIteration(
+ const ::frc971::control_loops::ClawQueue::Goal *goal,
+ const ::frc971::control_loops::ClawQueue::Position *position,
+ ::frc971::control_loops::ClawQueue::Output *output,
+ ::frc971::control_loops::ClawQueue::Status *status) {
// Disable the motors now so that all early returns will return with the
// motors disabled.
if (output) {
@@ -637,7 +643,7 @@
bottom_claw_.Reset(position->bottom);
}
- const frc971::constants::Values &values = constants::GetValues();
+ const constants::Values &values = constants::GetValues();
if (position) {
Eigen::Matrix<double, 2, 1> Y;
@@ -1020,5 +1026,4 @@
}
} // namespace control_loops
-} // namespace frc971
-
+} // namespace y2014
diff --git a/y2014/control_loops/claw/claw.h b/y2014/control_loops/claw/claw.h
index cdd3948..86875bb 100644
--- a/y2014/control_loops/claw/claw.h
+++ b/y2014/control_loops/claw/claw.h
@@ -12,7 +12,7 @@
#include "y2014/control_loops/claw/claw_motor_plant.h"
#include "frc971/control_loops/hall_effect_tracker.h"
-namespace frc971 {
+namespace y2014 {
namespace control_loops {
namespace testing {
class WindupClawTest;
@@ -77,15 +77,15 @@
}
JointZeroingState zeroing_state() const { return zeroing_state_; }
- void SetPositionValues(const HalfClawPosition &claw);
+ void SetPositionValues(const ::frc971::control_loops::HalfClawPosition &claw);
- void Reset(const HalfClawPosition &claw);
+ void Reset(const ::frc971::control_loops::HalfClawPosition &claw);
double absolute_position() const { return encoder() + offset(); }
- const HallEffectTracker &front() const { return front_; }
- const HallEffectTracker &calibration() const { return calibration_; }
- const HallEffectTracker &back() const { return back_; }
+ const ::frc971::HallEffectTracker &front() const { return front_; }
+ const ::frc971::HallEffectTracker &calibration() const { return calibration_; }
+ const ::frc971::HallEffectTracker &back() const { return back_; }
bool any_hall_effect_changed() const {
return front().either_count_changed() ||
@@ -109,13 +109,13 @@
bool GetPositionOfEdge(const constants::Values::Claws::Claw &claw,
double *edge_encoder, double *edge_angle);
- bool SawFilteredPosedge(const HallEffectTracker &this_sensor,
- const HallEffectTracker &sensorA,
- const HallEffectTracker &sensorB);
+ bool SawFilteredPosedge(const ::frc971::HallEffectTracker &this_sensor,
+ const ::frc971::HallEffectTracker &sensorA,
+ const ::frc971::HallEffectTracker &sensorB);
- bool SawFilteredNegedge(const HallEffectTracker &this_sensor,
- const HallEffectTracker &sensorA,
- const HallEffectTracker &sensorB);
+ bool SawFilteredNegedge(const ::frc971::HallEffectTracker &this_sensor,
+ const ::frc971::HallEffectTracker &sensorA,
+ const ::frc971::HallEffectTracker &sensorB);
#undef COUNT_SETTER_GETTER
@@ -126,7 +126,7 @@
ClawMotor *motor_;
- HallEffectTracker front_, calibration_, back_;
+ ::frc971::HallEffectTracker front_, calibration_, back_;
JointZeroingState zeroing_state_;
double min_hall_effect_on_angle_;
@@ -139,16 +139,16 @@
double last_off_encoder_;
bool any_triggered_last_;
- const HallEffectTracker* posedge_filter_ = nullptr;
- const HallEffectTracker* negedge_filter_ = nullptr;
+ const ::frc971::HallEffectTracker* posedge_filter_ = nullptr;
+ const ::frc971::HallEffectTracker* negedge_filter_ = nullptr;
private:
// Does the edges of 1 sensor for GetPositionOfEdge.
bool DoGetPositionOfEdge(const constants::Values::Claws::AnglePair &angles,
double *edge_encoder, double *edge_angle,
- const HallEffectTracker &sensor,
- const HallEffectTracker &sensorA,
- const HallEffectTracker &sensorB,
+ const ::frc971::HallEffectTracker &sensor,
+ const ::frc971::HallEffectTracker &sensorA,
+ const ::frc971::HallEffectTracker &sensorB,
const char *hall_effect_name);
};
@@ -182,10 +182,11 @@
const constants::Values::Claws::Claw &claw_values);
};
-class ClawMotor : public aos::controls::ControlLoop<control_loops::ClawQueue> {
+class ClawMotor
+ : public aos::controls::ControlLoop<::frc971::control_loops::ClawQueue> {
public:
- explicit ClawMotor(control_loops::ClawQueue *my_claw =
- &control_loops::claw_queue);
+ explicit ClawMotor(::frc971::control_loops::ClawQueue *my_claw =
+ &::frc971::control_loops::claw_queue);
// True if the state machine is ready.
bool capped_goal() const { return capped_goal_; }
@@ -215,10 +216,11 @@
CalibrationMode mode() const { return mode_; }
protected:
- virtual void RunIteration(const control_loops::ClawQueue::Goal *goal,
- const control_loops::ClawQueue::Position *position,
- control_loops::ClawQueue::Output *output,
- control_loops::ClawQueue::Status *status);
+ virtual void RunIteration(
+ const ::frc971::control_loops::ClawQueue::Goal *goal,
+ const ::frc971::control_loops::ClawQueue::Position *position,
+ ::frc971::control_loops::ClawQueue::Output *output,
+ ::frc971::control_loops::ClawQueue::Status *status);
double top_absolute_position() const {
return claw_.X_hat(1, 0) + claw_.X_hat(0, 0);
@@ -257,9 +259,9 @@
// Modifies the bottom and top goal such that they are within the limits and
// their separation isn't too much or little.
void LimitClawGoal(double *bottom_goal, double *top_goal,
- const frc971::constants::Values &values);
+ const constants::Values &values);
} // namespace control_loops
-} // namespace frc971
+} // namespace y2014
#endif // Y2014_CONTROL_LOOPS_CLAW_CLAW_H_
diff --git a/y2014/control_loops/claw/claw_calibration.cc b/y2014/control_loops/claw/claw_calibration.cc
index 772a940..01d57a4 100644
--- a/y2014/control_loops/claw/claw_calibration.cc
+++ b/y2014/control_loops/claw/claw_calibration.cc
@@ -4,9 +4,10 @@
#include "aos/linux_code/init.h"
#include "y2014/constants.h"
-namespace frc971 {
+namespace y2014 {
typedef constants::Values::Claws Claws;
+using ::frc971::HallEffectStruct;
class Sensor {
public:
@@ -23,7 +24,7 @@
}
bool DoGetPositionOfEdge(
- const control_loops::HalfClawPosition &claw_position,
+ const ::frc971::control_loops::HalfClawPosition &claw_position,
const HallEffectStruct &hall_effect, Claws::AnglePair *limits) {
bool print = false;
@@ -109,16 +110,17 @@
class ClawSensors {
public:
- ClawSensors(const double start_position,
- const control_loops::HalfClawPosition &initial_claw_position)
+ ClawSensors(
+ const double start_position,
+ const ::frc971::control_loops::HalfClawPosition &initial_claw_position)
: start_position_(start_position),
front_(start_position, initial_claw_position.front),
calibration_(start_position, initial_claw_position.calibration),
back_(start_position, initial_claw_position.back) {}
- bool GetPositionOfEdge(const control_loops::HalfClawPosition &claw_position,
- Claws::Claw *claw) {
-
+ bool GetPositionOfEdge(
+ const ::frc971::control_loops::HalfClawPosition &claw_position,
+ Claws::Claw *claw) {
bool print = false;
if (front_.DoGetPositionOfEdge(claw_position,
claw_position.front, &claw->front)) {
@@ -153,17 +155,17 @@
};
int Main() {
- control_loops::claw_queue.position.FetchNextBlocking();
+ ::frc971::control_loops::claw_queue.position.FetchNextBlocking();
const double top_start_position =
- control_loops::claw_queue.position->top.position;
+ ::frc971::control_loops::claw_queue.position->top.position;
const double bottom_start_position =
- control_loops::claw_queue.position->bottom.position;
+ ::frc971::control_loops::claw_queue.position->bottom.position;
ClawSensors top(top_start_position,
- control_loops::claw_queue.position->top);
+ ::frc971::control_loops::claw_queue.position->top);
ClawSensors bottom(bottom_start_position,
- control_loops::claw_queue.position->bottom);
+ ::frc971::control_loops::claw_queue.position->bottom);
Claws limits;
@@ -217,28 +219,28 @@
limits.start_fine_tune_pos = -0.2;
limits.max_zeroing_voltage = 4.0;
- control_loops::ClawQueue::Position last_position =
- *control_loops::claw_queue.position;
+ ::frc971::control_loops::ClawQueue::Position last_position =
+ *::frc971::control_loops::claw_queue.position;
while (true) {
- control_loops::claw_queue.position.FetchNextBlocking();
+ ::frc971::control_loops::claw_queue.position.FetchNextBlocking();
bool print = false;
- if (top.GetPositionOfEdge(control_loops::claw_queue.position->top,
+ if (top.GetPositionOfEdge(::frc971::control_loops::claw_queue.position->top,
&limits.upper_claw)) {
print = true;
printf("Got an edge on the upper claw\n");
}
if (bottom.GetPositionOfEdge(
- control_loops::claw_queue.position->bottom,
+ ::frc971::control_loops::claw_queue.position->bottom,
&limits.lower_claw)) {
print = true;
printf("Got an edge on the lower claw\n");
}
const double top_position =
- control_loops::claw_queue.position->top.position -
+ ::frc971::control_loops::claw_queue.position->top.position -
top_start_position;
const double bottom_position =
- control_loops::claw_queue.position->bottom.position -
+ ::frc971::control_loops::claw_queue.position->bottom.position -
bottom_start_position;
const double separation = top_position - bottom_position;
if (separation > limits.claw_max_separation) {
@@ -300,16 +302,16 @@
printf("}\n");
}
- last_position = *control_loops::claw_queue.position;
+ last_position = *::frc971::control_loops::claw_queue.position;
}
return 0;
}
-} // namespace frc971
+} // namespace y2014
int main() {
::aos::Init();
- int returnvalue = ::frc971::Main();
+ int returnvalue = ::y2014::Main();
::aos::Cleanup();
return returnvalue;
}
diff --git a/y2014/control_loops/claw/claw_lib_test.cc b/y2014/control_loops/claw/claw_lib_test.cc
index acec791..85cb679 100644
--- a/y2014/control_loops/claw/claw_lib_test.cc
+++ b/y2014/control_loops/claw/claw_lib_test.cc
@@ -13,11 +13,13 @@
#include "gtest/gtest.h"
-namespace frc971 {
+namespace y2014 {
namespace control_loops {
namespace testing {
using ::y2014::control_loops::claw::MakeClawPlant;
+using ::frc971::HallEffectStruct;
+using ::frc971::control_loops::HalfClawPosition;
typedef enum {
TOP_CLAW = 0,
@@ -100,7 +102,7 @@
void SetClawHallEffects(double pos,
const constants::Values::Claws::Claw &claw,
- control_loops::HalfClawPosition *half_claw) {
+ HalfClawPosition *half_claw) {
SetHallEffect(pos, claw.front, &half_claw->front);
SetHallEffect(pos, claw.calibration, &half_claw->calibration);
SetHallEffect(pos, claw.back, &half_claw->back);
@@ -108,7 +110,8 @@
// Sets the values of the physical sensors that can be directly observed
// (encoder, hall effect).
- void SetPhysicalSensors(control_loops::ClawQueue::Position *position) {
+ void SetPhysicalSensors(
+ ::frc971::control_loops::ClawQueue::Position *position) {
position->top.position = GetPosition(TOP_CLAW);
position->bottom.position = GetPosition(BOTTOM_CLAW);
@@ -117,7 +120,7 @@
LOG(DEBUG, "Physical claws are at {top: %f, bottom: %f}\n", pos[TOP_CLAW],
pos[BOTTOM_CLAW]);
- const frc971::constants::Values& values = constants::GetValues();
+ const constants::Values& values = constants::GetValues();
// Signal that each hall effect sensor has been triggered if it is within
// the correct range.
@@ -162,8 +165,8 @@
}
void UpdateClawHallEffects(
- control_loops::HalfClawPosition *position,
- const control_loops::HalfClawPosition &last_position,
+ HalfClawPosition *position,
+ const HalfClawPosition &last_position,
const constants::Values::Claws::Claw &claw, double initial_position,
const char *claw_name) {
UpdateHallEffect(position->position + initial_position,
@@ -183,15 +186,15 @@
// Sends out the position queue messages.
void SendPositionMessage() {
- ::aos::ScopedMessagePtr<control_loops::ClawQueue::Position> position =
- claw_queue.position.MakeMessage();
+ ::aos::ScopedMessagePtr<::frc971::control_loops::ClawQueue::Position>
+ position = claw_queue.position.MakeMessage();
// Initialize all the counters to their previous values.
*position = last_position_;
SetPhysicalSensors(position.get());
- const frc971::constants::Values& values = constants::GetValues();
+ const constants::Values& values = constants::GetValues();
UpdateClawHallEffects(&position->top, last_position_.top,
values.claw.upper_claw, initial_position_[TOP_CLAW],
@@ -208,7 +211,7 @@
// Simulates the claw moving for one timestep.
void Simulate() {
- const frc971::constants::Values& v = constants::GetValues();
+ const constants::Values& v = constants::GetValues();
EXPECT_TRUE(claw_queue.output.FetchLatest());
claw_plant_->mutable_U() << claw_queue.output->bottom_claw_voltage,
@@ -236,10 +239,10 @@
initial_position_[type] = initial_position;
}
- ClawQueue claw_queue;
+ ::frc971::control_loops::ClawQueue claw_queue;
double initial_position_[CLAW_COUNT];
- control_loops::ClawQueue::Position last_position_;
+ ::frc971::control_loops::ClawQueue::Position last_position_;
};
@@ -248,7 +251,7 @@
// Create a new instance of the test queue so that it invalidates the queue
// that it points to. Otherwise, we will have a pointer to shared memory that
// is no longer valid.
- ClawQueue claw_queue;
+ ::frc971::control_loops::ClawQueue claw_queue;
// Create a loop and simulation plant.
ClawMotor claw_motor_;
@@ -310,7 +313,7 @@
// Tests that the wrist zeros correctly and goes to a position.
TEST_F(ClawTest, LimitClawGoal) {
- frc971::constants::Values values;
+ constants::Values values;
values.claw.claw_min_separation = -2.0;
values.claw.claw_max_separation = 1.0;
values.claw.soft_min_separation = -2.0;
@@ -510,7 +513,7 @@
protected:
void TestWindup(ClawMotor::CalibrationMode mode, ::aos::time::Time start_time, double offset) {
int capped_count = 0;
- const frc971::constants::Values& values = constants::GetValues();
+ const constants::Values& values = constants::GetValues();
bool kicked = false;
bool measured = false;
while (::aos::time::Time::Now() < ::aos::time::Time::InSeconds(7)) {
@@ -611,4 +614,4 @@
} // namespace testing
} // namespace control_loops
-} // namespace frc971
+} // namespace y2014
diff --git a/y2014/control_loops/claw/claw_main.cc b/y2014/control_loops/claw/claw_main.cc
index e573d6f..8126851 100644
--- a/y2014/control_loops/claw/claw_main.cc
+++ b/y2014/control_loops/claw/claw_main.cc
@@ -4,7 +4,7 @@
int main() {
::aos::Init();
- frc971::control_loops::ClawMotor claw;
+ ::y2014::control_loops::ClawMotor claw;
claw.Run();
::aos::Cleanup();
return 0;