ZeroTorqueOrVelocity.h
Go to the documentation of this file.
1#pragma once
2
3
4#include <VirtualRobot/VirtualRobot.h>
5
7
8#include <armarx/control/njoint_controller/joint_space/ControllerInterface.h>
9
10namespace armarx
11{
12 class ControlTarget1DoFActuatorZeroTorque;
13 class ControlTarget1DoFActuatorZeroVelocity;
14} // namespace armarx
15
17{
18
23
25
27 public NJointControllerWithTripleBuffer<NJointZeroTorqueOrVelocityControllerTarget>,
29 {
30 public:
31 using ConfigPtrT = NJointZeroTorqueOrVelocityControllerConfigPtr;
33 RobotUnitPtr prov,
34 const NJointZeroTorqueOrVelocityControllerConfigPtr& config,
36
37 // NJointControllerInterface interface
38 std::string getClassName(const Ice::Current&) const override;
39 // WidgetDescription::StringWidgetDictionary getFunctionDescriptions(const Ice::Current&) const override;
40 // void callDescribedFunction(const std::string& name, const StringVariantBaseMap& valueMap, const Ice::Current&) override;
41
42 // NJointController interface
43 void rtRun(const IceUtil::Time& sensorValuesTimestamp,
44 const IceUtil::Time& timeSinceLastIteration) override;
45 // void onPublish(const SensorAndControl&,
46 // const DebugDrawerInterfacePrx&,
47 // const DebugObserverInterfacePrx&) override;
50 const std::map<std::string, ConstControlDevicePtr>&,
51 const std::map<std::string, ConstSensorDevicePtr>&);
52
53 static NJointZeroTorqueOrVelocityControllerConfigPtr
55
56 protected:
57 void rtPreActivateController() override;
58 void rtPostDeactivateController() override;
59
60 std::vector<ControlTarget1DoFActuatorZeroTorque*> targetsTorque;
61 std::vector<ControlTarget1DoFActuatorZeroVelocity*> targetsVel;
62 float maxTorque = std::numeric_limits<float>::max();
63 float maxVelocity = std::numeric_limits<float>::max();
64 std::vector<bool> torqueControlled;
65
66 // NJointZeroTorqueOrVelocityControllerInterface interface
67 public:
68 void setControllerTarget(const Ice::FloatSeq&, const Ice::Current&) override;
69 };
70
71} // namespace armarx::control::njoint_controller::joint_space
#define TYPEDEF_PTRS_HANDLE(T)
NJointControllerWithTripleBuffer(const NJointZeroTorqueOrVelocityControllerTarget &initialCommands=NJointZeroTorqueOrVelocityControllerTarget())
static WidgetDescription::WidgetPtr GenerateConfigDescription(const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &, const std::map< std::string, ConstSensorDevicePtr > &)
NJointZeroTorqueOrVelocityController(RobotUnitPtr prov, const NJointZeroTorqueOrVelocityControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
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 NJointZeroTorqueOrVelocityControllerConfigPtr GenerateConfigFromVariants(const StringVariantBaseMap &values)
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