Converted trapezoid_profile over to monotonic_clock
This also involves updating all the callers, and updating
control_loop's frequency variable.
Change-Id: Ic88d2715db30efcc25721da2dd8c89910ede7788
diff --git a/aos/common/util/trapezoid_profile.cc b/aos/common/util/trapezoid_profile.cc
index f441fbe..4e4546e 100644
--- a/aos/common/util/trapezoid_profile.cc
+++ b/aos/common/util/trapezoid_profile.cc
@@ -7,10 +7,8 @@
namespace aos {
namespace util {
-TrapezoidProfile::TrapezoidProfile(const time::Time &delta_time)
- : maximum_acceleration_(0),
- maximum_velocity_(0),
- timestep_(delta_time) {
+TrapezoidProfile::TrapezoidProfile(::std::chrono::nanoseconds delta_time)
+ : maximum_acceleration_(0), maximum_velocity_(0), timestep_(delta_time) {
output_.setZero();
}
@@ -26,7 +24,9 @@
double goal_velocity) {
CalculateTimes(goal_position - output_(0), goal_velocity);
- double next_timestep = timestep_.ToSeconds();
+ double next_timestep =
+ ::std::chrono::duration_cast<::std::chrono::duration<double>>(timestep_)
+ .count();
if (acceleration_time_ > next_timestep) {
UpdateVals(acceleration_, next_timestep);
diff --git a/aos/common/util/trapezoid_profile.h b/aos/common/util/trapezoid_profile.h
index fe63352..cc91db1 100644
--- a/aos/common/util/trapezoid_profile.h
+++ b/aos/common/util/trapezoid_profile.h
@@ -17,7 +17,7 @@
class TrapezoidProfile {
public:
// delta_time is how long between each call to Update.
- TrapezoidProfile(const time::Time &delta_time);
+ TrapezoidProfile(::std::chrono::nanoseconds delta_time);
// Updates the state.
const Eigen::Matrix<double, 2, 1> &Update(double goal_position,
@@ -58,7 +58,7 @@
double maximum_velocity_;
// How long between calls to Update.
- const time::Time timestep_;
+ ::std::chrono::nanoseconds timestep_;
DISALLOW_COPY_AND_ASSIGN(TrapezoidProfile);
};
diff --git a/aos/common/util/trapezoid_profile_test.cc b/aos/common/util/trapezoid_profile_test.cc
index 1dfeff3..c6e811c 100644
--- a/aos/common/util/trapezoid_profile_test.cc
+++ b/aos/common/util/trapezoid_profile_test.cc
@@ -45,11 +45,13 @@
}
private:
- static const time::Time delta_time;
+ static constexpr ::std::chrono::nanoseconds delta_time =
+ ::std::chrono::milliseconds(10);
Eigen::Matrix<double, 2, 1> position_;
};
-const time::Time TrapezoidProfileTest::delta_time = time::Time::InSeconds(0.01);
+
+constexpr ::std::chrono::nanoseconds TrapezoidProfileTest::delta_time;
TEST_F(TrapezoidProfileTest, ReachesGoal) {
for (int i = 0; i < 450; ++i) {