55 auto now = std::chrono::steady_clock::now();
56 double dt = std::chrono::duration<double>(now -
lastUpdateTime_).count();
62 float sinT = std::sin(
t_);
63 float cosT = std::cos(
t_);
64 float denom = 1.0f + sinT * sinT;
66 float localX =
size_ * cosT / denom;
67 float localY =
size_ * sinT * cosT / denom;
74 float sinT2 = sinT * sinT;
75 float cosT2 = cosT * cosT;
76 float denom2 = denom * denom;
77 float dxdt =
size_ * (-sinT * (1.0f + sinT2) - cosT * 2.0f * sinT * cosT) / denom2;
79 size_ * ((cosT2 - sinT2) * (1.0f + sinT2) - sinT * cosT * 2.0f * sinT * cosT) / denom2;
80 float yaw = std::atan2(dydt, dxdt);
85 float requiredT =
numLoops_ * 2.0f * M_PI;
88 RCLCPP_INFO(
getLogger(),
"CbFigureEight: %d loops completed - posting success",
numLoops_);