orwell 0.0.0
TorqueController.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 <sackmesser/Configurations.hpp>
26//
27#include <orwell/Controller.hpp>
28#include <orwell/ReferenceController.hpp>
29#include <orwell/RobotState.hpp>
30
31namespace orwell
32{
39 template <int dof>
40 class TorqueController : public Controller<dof>,
41 public sackmesser::FactoryClass<TorqueController<dof>, const sackmesser::Interface::Ptr &, const std::string &>
42 {
43 public:
51 TorqueController(const sackmesser::Interface::Ptr &interface, const std::string &name);
52
57 virtual ~TorqueController() = default;
58
59 public:
61 using Ptr = std::shared_ptr<TorqueController>;
62
63 protected:
64 };
65
66 template <int dof, class Reference>
68
69} // namespace orwell
70
71#include <orwell/torque/TorqueController.hxx>
base class for controller implementation
base implementation of a Controller tracking a given Reference
Controller using torque commands.
std::shared_ptr< TorqueController > Ptr
typedef