27#include <VirtualRobot/VirtualRobot.h>
28#include <VirtualRobot/XML/RobotIO.h>
32#include <RobotAPI/interface/core/RobotState.h>
55 using ComponentPlugin::ComponentPlugin;
63 bool hasRobot(
const std::string&
id)
const;
67 const VirtualRobot::RobotNodeSetPtr& rns = {},
68 const VirtualRobot::RobotNodePtr& node = {});
71 const std::string& rnsName,
72 const std::string& nodeName =
"");
74 VirtualRobot::RobotIO::RobotDescription loadMode,
75 const std::string& rnsName =
"",
76 const std::string& nodeName =
"");
78 const std::string& filename,
79 const Ice::StringSeq packages,
80 VirtualRobot::RobotIO::RobotDescription loadMode,
81 const std::string& rnsName =
"",
82 const std::string& nodeName =
"");
87 const std::string& rnsName,
88 const std::string& nodeName);
95 const std::string& to,
103 const RobotStateConfig& state)
const;
117 const Eigen::Matrix4f& targetPose,
121 const std::vector<Eigen::Matrix4f>&
targets,
122 const Eigen::VectorXf& initialJV,
137 VirtualRobot::RobotNodeSetPtr
rns;
138 VirtualRobot::RobotNodePtr
node;
145 const Eigen::VectorXf& initialJV,
151 static constexpr auto _propertyName =
"RemoteStateComponentName";
152 std::string _robotStateComponentName;
154 mutable std::recursive_mutex _robotsMutex;
155 std::map<std::string, RobotData> _robots;
157 bool _deactivated =
false;
184 bool hasRobot(
const std::string&
id)
const;
188 const VirtualRobot::RobotNodeSetPtr& rns = {},
189 const VirtualRobot::RobotNodePtr& node = {});
192 const std::string& rnsName,
193 const std::string& nodeName =
"");
195 VirtualRobot::RobotIO::RobotDescription loadMode,
196 const std::string& rnsName =
"",
197 const std::string& nodeName =
"");
199 const std::string& filename,
200 const Ice::StringSeq packages,
201 VirtualRobot::RobotIO::RobotDescription loadMode,
202 const std::string& rnsName =
"",
203 const std::string& nodeName =
"");
205 template <
class... Ts>
213 return addRobot(
id, std::forward<Ts>(ts)...);
217 RobotStateComponentPlugin::RobotData
getRobotData(
const std::string&
id)
const;
219 const std::string& rnsName,
220 const std::string& nodeName);
229 const RobotStateConfig& state)
const;
235 const RobotStateConfig& state)
const;
244 const Eigen::Matrix4f& targetPose,
246 SimpleDiffIK::Reachability
248 const std::vector<Eigen::Matrix4f> targets,
249 const Eigen::VectorXf& initialJV,
250 const SimpleDiffIK::Parameters& params = {});
ManagedIceObject(ManagedIceObject const &other)
SimpleDiffIK::Result calculateRobotDiffIK(const std::string &id, const Eigen::Matrix4f &targetPose, const SimpleDiffIK::Parameters ¶ms={})
void setRobotRNSAndNode(const std::string &id, const std::string &rnsName, const std::string &nodeName)
RobotStateComponentPlugin::RobotData getRobotData(const std::string &id) const
RobotStateComponentPluginUser()
VirtualRobot::RobotPtr addOrGetRobot(const std::string &id, Ts &&... ts)
bool synchronizeLocalClone(const VirtualRobot::RobotPtr &robot) const
const RobotStateComponentPlugin & getRobotStateComponentPlugin() const
armarx::plugins::RobotStateComponentPlugin RobotStateComponentPlugin
SimpleDiffIK::Reachability calculateRobotReachability(const std::string &id, const std::vector< Eigen::Matrix4f > targets, const Eigen::VectorXf &initialJV, const SimpleDiffIK::Parameters ¶ms={})
VirtualRobot::RobotPtr addRobot(const std::string &id, const VirtualRobot::RobotPtr &robot, const VirtualRobot::RobotNodeSetPtr &rns={}, const VirtualRobot::RobotNodePtr &node={})
const RobotStateComponentInterfacePrx & getRobotStateComponent() const
VirtualRobot::RobotPtr getRobot(const std::string &id) const
bool hasRobot(const std::string &id) const
RobotNameHelperPtr getRobotNameHelper() const
Brief description of class RobotAPIComponentPlugins.
Eigen::Matrix4f transformFromTo(const std::string &from, const std::string &to, const VirtualRobot::RobotPtr &rob)
void setRobotStateComponentName(const std::string &name)
void postOnDisconnectComponent() override
void setRobotRNSAndNode(const std::string &id, const std::string &rnsName, const std::string &nodeName)
RobotData getRobotData(const std::string &id) const
void preOnInitComponent() override
void preOnConnectComponent() override
bool synchronizeLocalClone(const VirtualRobot::RobotPtr &robot) const
void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
VirtualRobot::RobotPtr addRobot(const std::string &id, const VirtualRobot::RobotPtr &robot, const VirtualRobot::RobotNodeSetPtr &rns={}, const VirtualRobot::RobotNodePtr &node={})
const RobotStateComponentInterfacePrx & getRobotStateComponent() const
VirtualRobot::RobotPtr getRobot(const std::string &id) const
SimpleDiffIK::Reachability calculateRobotReachability(const std::string &id, const std::vector< Eigen::Matrix4f > &targets, const Eigen::VectorXf &initialJV, const SimpleDiffIK::Parameters ¶ms={}) const
SimpleDiffIK::Result calculateRobotDiffIK(const std::string &id, const Eigen::Matrix4f &targetPose, const SimpleDiffIK::Parameters ¶ms={}) const
const std::string & getRobotStateComponentName() const
bool hasRobot(const std::string &id) const
void setRobotStateComponent(const RobotStateComponentInterfacePrx &rsc)
RobotNameHelperPtr getRobotNameHelper() const
Brief description of class targets.
std::shared_ptr< class Robot > RobotPtr
This file is part of ArmarX.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
::IceInternal::ProxyHandle<::IceProxy::armarx::RobotStateComponentInterface > RobotStateComponentInterfacePrx
std::shared_ptr< class RobotNameHelper > RobotNameHelperPtr
SimpleDiffIK::Reachability calculateRobotReachability(const std::vector< Eigen::Matrix4f > &targets, const Eigen::VectorXf &initialJV, const SimpleDiffIK::Parameters ¶ms={}) const
VirtualRobot::RobotPtr robot
VirtualRobot::RobotNodeSetPtr rns
VirtualRobot::RobotNodePtr node
SimpleDiffIK::Result calculateRobotDiffIK(const Eigen::Matrix4f &targetPose, const SimpleDiffIK::Parameters ¶ms={}) const