orwell
0.0.0
VelocityController.hpp
1
/*
2
Copyright (c) Tobias Löw
3
Written by Tobias Löw <https://tobiloew.ch>
4
5
This file is part of orwell.
6
7
gafro is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License version 3 as
9
published by the Free Software Foundation.
10
11
gafro is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with gafro. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#pragma once
21
22
#include <atomic>
23
#include <memory>
24
//
25
#include <orwell/Controller.hpp>
26
#include <orwell/ReferenceController.hpp>
27
#include <orwell/RobotState.hpp>
28
29
namespace
orwell
30
{
37
template
<
int
dof>
38
class
VelocityController
:
public
Controller
<dof>,
39
public
sackmesser::FactoryClass<VelocityController<dof>, const sackmesser::Interface::Ptr &, const std::string &>
40
{
41
public
:
49
VelocityController
(
const
sackmesser::Interface::Ptr &interface,
const
std::string &name);
50
55
virtual
~VelocityController
() =
default
;
56
62
virtual
typename
RobotState<dof>::Vector
computeCommand
() = 0;
63
65
using
Ptr
= std::shared_ptr<VelocityController>;
66
67
private
:
68
};
69
70
template
<
int
dof,
class
Reference>
71
using
VelocityReferenceController
=
ReferenceController<Reference, VelocityController<dof>
>;
72
73
}
// namespace orwell
74
75
#include <orwell/velocity/VelocityController.hxx>
orwell::Controller
base class for controller implementation
Definition
Controller.hpp:42
orwell::ReferenceController
base implementation of a Controller tracking a given Reference
Definition
ReferenceController.hpp:36
orwell::RobotState::Vector
Eigen::Vector< double, dof > Vector
typedef
Definition
RobotState.hpp:38
orwell::VelocityController
Controller using velocity commands.
Definition
VelocityController.hpp:40
orwell::VelocityController::computeCommand
virtual RobotState< dof >::Vector computeCommand()=0
will be invoked when calling ControllergetControlCommand
orwell::VelocityController::Ptr
std::shared_ptr< VelocityController > Ptr
typedef
Definition
VelocityController.hpp:65
src
orwell
velocity
VelocityController.hpp
Generated by
1.11.0