Go to the documentation of this file.
29 #include <RobotAPI/interface/units/ForceTorqueUnit.h>
30 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
45 defineRequiredProperty<std::string>(
"ForceTorqueTopicName",
46 "Name of the ForceTorqueUnit Topic");
47 defineOptionalProperty<bool>(
48 "VisualizeForce",
true,
"Visualize the force with an arrow in the debug drawer");
49 defineOptionalProperty<int>(
50 "RobotUpdateFrequency", 50,
"Update frequency of the local robot");
51 defineOptionalProperty<int>(
"VisualizeForceUpdateFrequency",
53 "Frequency with which the force is visualized");
54 defineOptionalProperty<float>(
55 "ForceVisualizerFactor",
57 "Factor by which the forces are scaled to fit into 0..1 (only for visulization) ");
58 defineOptionalProperty<float>(
59 "MaxExpectedTorqueValue",
61 "The torque visualization circle reaches the full circle at this value");
62 defineOptionalProperty<float>(
63 "TorqueVisuDeadZone", 1,
"Torques below this threshold are not visualized.");
64 defineOptionalProperty<float>(
65 "MaxForceArrowLength", 150,
"Length of the force visu arrow in mm");
66 defineOptionalProperty<std::string>(
67 "RobotStateComponentName",
68 "RobotStateComponent",
69 "Name of the RobotStateComponent that should be used");
70 defineOptionalProperty<std::string>(
71 "SensorRobotNodeMapping",
73 "Triplets of sensor node name, target frame robot node name and optional channel "
74 "name: Sensor values are also reported in the frame of the robot node: e. g. "
75 "SensorName:RobotNodeName[:ChannelName],SensorName2:RobotNodeName2[:ChannelName2]");
89 virtual public ForceTorqueUnitObserverInterface
100 return "ForceTorqueUnitObserver";
110 const FramedDirectionBasePtr& forces,
111 const FramedDirectionBasePtr& torques,
112 const Ice::Current&)
override;
122 std::mutex dataMutex;
123 std::string topicName;
130 std::multimap<std::string, std::pair<std::string, std::string>> sensorRobotNodeMapping;
132 void offerValue(
const std::string& nodeName,
133 const std::string& type,
134 const FramedDirectionBasePtr&
value,
141 const Ice::Current&)
override;
144 const Ice::Current&)
override;
146 const Ice::Current&)
override;
149 const std::string& frame);
151 const std::string& frame);
void onConnectObserver() override
Framework hook.
Baseclass for all ArmarX Observers.
PropertyDefinitionsPtr createPropertyDefinitions() override
void onInitObserver() override
Framework hook.
Observer monitoring Force/Torque values.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
std::string getDefaultName() const override
Retrieve default name of component.
DatafieldRefBasePtr getForceDatafield(const std::string &nodeName, const Ice::Current &) override
std::shared_ptr< Value > value()
void onDisconnectComponent() override
Hook for subclass.
DataFieldIdentifierPtr getTorqueDatafieldId(const std::string &nodeName, const std::string &frame)
void reportSensorValues(const std::string &sensorNodeName, const FramedDirectionBasePtr &forces, const FramedDirectionBasePtr &torques, const Ice::Current &) override
void setTopicName(std::string topicName)
DataFieldIdentifierPtr getForceDatafieldId(const std::string &nodeName, const std::string &frame)
void onExitObserver() override
Framework hook.
DatafieldRefBasePtr createNulledDatafield(const DatafieldRefBasePtr &forceTorqueDatafieldRef, const Ice::Current &) override
ForceTorqueObserverPropertyDefinitions(std::string prefix)
void visualizerFunction()
This file offers overloads of toIce() and fromIce() functions for STL container types.
DatafieldRefBasePtr getTorqueDatafield(const std::string &nodeName, const Ice::Current &) override
std::shared_ptr< class Robot > RobotPtr