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
"
5
#include "
motion/motion_config.hpp
"
6
7
namespace
libstp::motion
8
{
15
struct
MotionContext
16
{
17
drive::Drive
&
drive
;
18
odometry::IOdometry
&
odometry
;
19
const
UnifiedMotionPidConfig
&
pid_config
;
20
};
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
51
MotionContext
ctx_
;
52
bool
started_
{
false
};
53
};
54
}
libstp::drive::Drive
Definition
drive.hpp:36
libstp::motion::Motion::started_
bool started_
Definition
motion.hpp:52
libstp::motion::Motion::start
virtual void start()=0
libstp::motion::Motion::~Motion
virtual ~Motion()=default
libstp::motion::Motion::drive
drive::Drive & drive()
Definition
motion.hpp:46
libstp::motion::Motion::odometry
const odometry::IOdometry & odometry() const
Definition
motion.hpp:49
libstp::motion::Motion::drive
const drive::Drive & drive() const
Definition
motion.hpp:47
libstp::motion::Motion::Motion
Motion(MotionContext ctx)
Definition
motion.hpp:35
libstp::motion::Motion::odometry
odometry::IOdometry & odometry()
Definition
motion.hpp:48
libstp::motion::Motion::isFinished
virtual bool isFinished() const =0
libstp::motion::Motion::update
virtual void update(double dt)=0
libstp::motion::Motion::ctx_
MotionContext ctx_
Definition
motion.hpp:51
drive.hpp
odometry.hpp
motion_config.hpp
libstp::motion
Definition
arc_motion.hpp:12
libstp::motion::MotionContext
Definition
motion.hpp:16
libstp::motion::MotionContext::odometry
odometry::IOdometry & odometry
Definition
motion.hpp:18
libstp::motion::MotionContext::drive
drive::Drive & drive
Definition
motion.hpp:17
libstp::motion::MotionContext::pid_config
const UnifiedMotionPidConfig & pid_config
Definition
motion.hpp:19
libstp::motion::UnifiedMotionPidConfig
Definition
motion_config.hpp:41
libstp::odometry::IOdometry
Definition
odometry.hpp:57
modules
libstp-motion
include
motion
motion.hpp
Generated by
1.15.0