libstp
Robotics library for Botball
Loading...
Searching...
No Matches
libstp::motion::SplineMotion Class Referencefinal

#include <spline_motion.hpp>

Inheritance diagram for libstp::motion::SplineMotion:
[legend]
Collaboration diagram for libstp::motion::SplineMotion:
[legend]

Public Member Functions

 SplineMotion (MotionContext ctx, SplineMotionConfig config)
void start () override
void update (double dt) override
bool isFinished () const override
const std::vector< SplineMotionTelemetry > & getTelemetry () const
Public Member Functions inherited from libstp::motion::Motion
 Motion (MotionContext ctx)
virtual ~Motion ()=default

Additional Inherited Members

Protected Member Functions inherited from libstp::motion::Motion
drive::Drive & drive ()
const drive::Drive & drive () const
odometry::IOdometry & odometry ()
const odometry::IOdometry & odometry () const
Protected Attributes inherited from libstp::motion::Motion
MotionContext ctx_
bool started_ {false}

Detailed Description

Closed-loop controller for following a Catmull-Rom spline path.

Uses a trapezoidal velocity profile on arc-length for smooth acceleration/deceleration along the path. Heading either tracks the spline tangent (differential and omni) or is independently interpolated between per-waypoint values (omni only).

Definition at line 88 of file spline_motion.hpp.

Constructor & Destructor Documentation

◆ SplineMotion()

libstp::motion::SplineMotion::SplineMotion ( MotionContext ctx,
SplineMotionConfig config )

Member Function Documentation

◆ getTelemetry()

const std::vector< SplineMotionTelemetry > & libstp::motion::SplineMotion::getTelemetry ( ) const
inlinenodiscard

Definition at line 97 of file spline_motion.hpp.

◆ isFinished()

bool libstp::motion::SplineMotion::isFinished ( ) const
nodiscardoverridevirtual

Return true once the primitive has met its completion criteria.

Implements libstp::motion::Motion.

◆ start()

void libstp::motion::SplineMotion::start ( )
overridevirtual

Capture initial state and prepare controller internals.

Implements libstp::motion::Motion.

◆ update()

void libstp::motion::SplineMotion::update ( double dt)
overridevirtual

Advance the controller by one iteration using the loop delta in seconds.

Implements libstp::motion::Motion.


The documentation for this class was generated from the following file:
  • /home/runner/work/raccoon-lib/raccoon-lib/modules/libstp-motion/include/motion/spline_motion.hpp