libstp
Robotics library for Botball
Loading...
Searching...
No Matches
motion.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "drive/drive.hpp"
4#include "hal/odometry.hpp"
6
7namespace libstp::motion
8{
21
32 class Motion
33 {
34 public:
35 explicit Motion(MotionContext ctx) : ctx_(ctx) {}
36 virtual ~Motion() = default;
37
39 virtual void start() = 0;
41 virtual void update(double dt) = 0;
43 [[nodiscard]] virtual bool isFinished() const = 0;
44
45 protected:
46 [[nodiscard]] drive::Drive& drive() { return ctx_.drive; }
47 [[nodiscard]] const drive::Drive& drive() const { return ctx_.drive; }
48 [[nodiscard]] odometry::IOdometry& odometry() { return ctx_.odometry; }
49 [[nodiscard]] const odometry::IOdometry& odometry() const { return ctx_.odometry; }
50
52 bool started_{false};
53 };
54}
virtual void start()=0
virtual ~Motion()=default
drive::Drive & drive()
Definition motion.hpp:46
const odometry::IOdometry & odometry() const
Definition motion.hpp:49
const drive::Drive & drive() const
Definition motion.hpp:47
Motion(MotionContext ctx)
Definition motion.hpp:35
odometry::IOdometry & odometry()
Definition motion.hpp:48
virtual bool isFinished() const =0
virtual void update(double dt)=0
MotionContext ctx_
Definition motion.hpp:51
odometry::IOdometry & odometry
Definition motion.hpp:18
const UnifiedMotionPidConfig & pid_config
Definition motion.hpp:19