54 float fixedYaw = std::numeric_limits<float>::quiet_NaN();
87 template <
typename TOrthogonal,
typename TSourceObject>
109 virtual const char *
behaviorName()
const {
return "CbPx4PathFollowerBase"; }
void onStateOrthogonalAllocation()
void onStateOrthogonalAllocation()
virtual ~CbPx4PathFollowerBase()
std::chrono::steady_clock::time_point lastUpdateTime_
std::vector< NedPoint > path_
CbPx4PathFollowerBase(PathFollowerParams params={})
NedPoint commandFor(float s)
std::atomic< bool > active_
size_t carrotVertexIndex() const
virtual std::vector< NedPoint > buildPath(const NedPoint ¤t)=0
virtual void onPathStarted(const std::vector< NedPoint > &)
float tangentYawAt(size_t segmentIndex) const
std::vector< float > cumLen_
CpTunnelCentering * tunnelCentering_
PathFollowerParams followerParams_
float totalLength() const
virtual const char * behaviorName() const
void applyCentering(NedPoint &cmd) const
std::atomic< size_t > carrotVertex_
void setFollowerParams(const PathFollowerParams ¶ms)
virtual void onPathCompleted()
float progressFraction() const
const PathFollowerParams & followerParams() const
void requiresComponent(SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)
bool prependCurrentPosition