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
29namespace 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
63
65 using Ptr = std::shared_ptr<VelocityController>;
66
67 private:
68 };
69
70 template <int dof, class Reference>
72
73} // namespace orwell
74
75#include <orwell/velocity/VelocityController.hxx>
base class for controller implementation
base implementation of a Controller tracking a given Reference
Eigen::Vector< double, dof > Vector
typedef
Controller using velocity commands.
virtual RobotState< dof >::Vector computeCommand()=0
will be invoked when calling ControllergetControlCommand
std::shared_ptr< VelocityController > Ptr
typedef