ZeroTorque.h
Go to the documentation of this file.
1#pragma once
2
3
4#include <VirtualRobot/VirtualRobot.h>
5
7#include <RobotAPI/interface/units/RobotUnit/NjointZeroTorqueController.h>
8
9namespace armarx
10{
11 class ControlTarget1DoFActuatorZeroTorque;
12}
13
15{
16
18 {
19 Ice::FloatSeq targetTorques;
20 };
21
23
25 public NJointControllerWithTripleBuffer<NJointZeroTorqueControllerTarget>,
26 public NJointZeroTorqueControllerInterface
27 {
28 public:
29 using ConfigPtrT = NJointZeroTorqueControllerConfigPtr;
31 const NJointZeroTorqueControllerConfigPtr& config,
33
34 // NJointControllerInterface interface
35 std::string getClassName(const Ice::Current&) const override;
36 // WidgetDescription::StringWidgetDictionary getFunctionDescriptions(const Ice::Current&) const override;
37 // void callDescribedFunction(const std::string& name, const StringVariantBaseMap& valueMap, const Ice::Current&) override;
38
39 // NJointController interface
40 void rtRun(const IceUtil::Time& sensorValuesTimestamp,
41 const IceUtil::Time& timeSinceLastIteration) override;
44 const std::map<std::string, ConstControlDevicePtr>&,
45 const std::map<std::string, ConstSensorDevicePtr>&);
46
47 static NJointZeroTorqueControllerConfigPtr
49
50 protected:
51 void rtPreActivateController() override;
52 void rtPostDeactivateController() override;
53
54 std::vector<ControlTarget1DoFActuatorZeroTorque*> targets;
55 float maxTorque = std::numeric_limits<float>::max();
56
57 // NJointZeroTorqueControllerInterface interface
58 public:
59 void setControllerTarget(const Ice::FloatSeq&, const Ice::Current&) override;
60 };
61
62} // namespace armarx::control::njoint_controller::joint_space
#define TYPEDEF_PTRS_HANDLE(T)
NJointControllerWithTripleBuffer(const NJointZeroTorqueControllerTarget &initialCommands=NJointZeroTorqueControllerTarget())
NJointZeroTorqueController(RobotUnitPtr prov, const NJointZeroTorqueControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
static WidgetDescription::WidgetPtr GenerateConfigDescription(const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &, const std::map< std::string, ConstSensorDevicePtr > &)
void setControllerTarget(const Ice::FloatSeq &, const Ice::Current &) override
std::vector< ControlTarget1DoFActuatorZeroTorque * > targets
Definition ZeroTorque.h:54
void rtPostDeactivateController() override
This function is called after the controller is deactivated.
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
TODO make protected and use attorneys.
static NJointZeroTorqueControllerConfigPtr GenerateConfigFromVariants(const StringVariantBaseMap &values)
std::string getClassName(const Ice::Current &) const override
void rtPreActivateController() override
This function is called before the controller is activated.
std::shared_ptr< class Robot > RobotPtr
Definition Bus.h:19
::IceInternal::Handle<::armarx::WidgetDescription::Widget > WidgetPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::map< std::string, VariantBasePtr > StringVariantBaseMap
IceUtil::Handle< class RobotUnit > RobotUnitPtr
Definition FTSensor.h:34