27#include <Ice/Object.h>
29#include <SimoxUtility/math/convert/mat3f_to_quat.h>
30#include <SimoxUtility/math/convert/mat4f_to_pos.h>
31#include <SimoxUtility/math/convert/mat4f_to_quat.h>
32#include <SimoxUtility/math/convert/pos_quat_to_mat4f.h>
33#include <VirtualRobot/VirtualRobot.h>
35#include <ArmarXCore/interface/core/UserException.h>
36#include <ArmarXCore/interface/observers/ObserverInterface.h>
37#include <ArmarXCore/interface/serialization/Eigen/Eigen_fdi.h>
41#include <RobotAPI/interface/units/RobotUnit/NJointController.h>
48#include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
52 template <
typename NJo
intTaskspaceController>
57 const armarx::NJointControllerConfigPtr& config,
68 return "NJointZeroMQTaskspaceUnknownController";
79 void setPublishIPAddress(const
std::
string& ipAddress);
82 zmq::context_t context;
85 std::mutex publishSocketMutex_;
86 std::atomic<
bool> publishSocketBound_{
false};
89 std::chrono::steady_clock::time_point time_last_packet;
NJointTaskspaceController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
NJointZeroMQTaskspaceController(const armarx::RobotUnitPtr &robotUnit, const armarx::NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &robot)
std::string getClassName(const Ice::Current &=Ice::emptyCurrent) const final
void onPublishDeactivation(const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
void additionalTask() final
std::shared_ptr< class Robot > RobotPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceUtil::Handle< class RobotUnit > RobotUnitPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx
detail::ControlThreadOutputBufferEntry SensorAndControl