|
Mimics the behaviour of the VirtualRobot::Robot class while redirecting everything to an Ice proxy. More...
#include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
Public Member Functions | |
VirtualRobot::RobotPtr | createLocalClone () |
Clones the structure of this remote robot to a local instance. More... | |
Eigen::Matrix4f | getGlobalPose () const override |
std::string | getName () const override |
VirtualRobot::RobotNodePtr | getRobotNode (const std::string &robotNodeName) const override |
void | getRobotNodes (std::vector< VirtualRobot::RobotNodePtr > &storeNodes, bool clearVector=true) const override |
VirtualRobot::RobotNodeSetPtr | getRobotNodeSet (const std::string &nodeSetName) const override |
void | getRobotNodeSets (std::vector< VirtualRobot::RobotNodeSetPtr > &storeNodeSet) const override |
VirtualRobot::RobotNodePtr | getRootNode () const override |
float | getScaling () |
SharedRobotInterfacePrx | getSharedRobot () const |
Use this method to share the robot instance over Ice. More... | |
bool | hasRobotNode (const std::string &robotNodeName) const override |
bool | hasRobotNode (VirtualRobot::RobotNodePtr) const override |
bool | hasRobotNodeSet (const std::string &name) const override |
RemoteRobot (SharedRobotInterfacePrx robot) | |
~RemoteRobot () override | |
Static Public Member Functions | |
static VirtualRobot::RobotPtr | createLocalClone (RobotStateComponentInterfacePrx robotStatePrx, const std::string &filename=std::string(), const Ice::StringSeq packages=Ice::StringSeq(), VirtualRobot::RobotIO::RobotDescription loadMode=VirtualRobot::RobotIO::eFull) |
static VirtualRobot::RobotPtr | createLocalClone (SharedRobotInterfacePrx sharedRobotPrx, std::string filename=std::string(), float scaling=1.0f, const Ice::StringSeq packages=Ice::StringSeq(), VirtualRobot::RobotIO::RobotDescription loadMode=VirtualRobot::RobotIO::eFull) |
static VirtualRobot::RobotPtr | createLocalCloneFromFile (RobotStateComponentInterfacePrx robotStatePrx, VirtualRobot::RobotIO::RobotDescription loadMode=VirtualRobot::RobotIO::eFull) |
This is a convenience function for createLocalClone, which automatically gets the filename from the RobotStateComponent, loads robot from the file and syncs it once. More... | |
static bool | synchronizeLocalClone (VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStatePrx) |
static bool | synchronizeLocalClone (VirtualRobot::RobotPtr robot, SharedRobotInterfacePrx sharedRobotPrx) |
static bool | synchronizeLocalCloneToState (VirtualRobot::RobotPtr robot, RobotStateConfig const &state) |
static bool | synchronizeLocalCloneToTimestamp (VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStatePrx, Ice::Long timestamp) |
Synchronizes a local robot to a robot state at timestamp. More... | |
Protected Member Functions | |
VirtualRobot::RobotNodePtr | createLocalNode (SharedRobotNodeInterfacePrx remoteNode, std::vector< VirtualRobot::RobotNodePtr > &allNodes, std::map< VirtualRobot::RobotNodePtr, std::vector< std::string >> &childrenMap, VirtualRobot::RobotPtr robo) |
void | deregisterRobotNode (VirtualRobot::RobotNodePtr node) override |
Not implemented yet. More... | |
void | deregisterRobotNodeSet (VirtualRobot::RobotNodeSetPtr nodeSet) override |
Not implemented yet. More... | |
VirtualRobot::EndEffectorPtr | getEndEffector (const std::string &endEffectorName) const override |
Not implemented yet. More... | |
void | getEndEffectors (std::vector< VirtualRobot::EndEffectorPtr > &storeEEF) const override |
Not implemented yet. More... | |
bool | hasEndEffector (const std::string &endEffectorName) const override |
Not implemented yet. More... | |
void | registerEndEffector (VirtualRobot::EndEffectorPtr endEffector) override |
Not implemented yet. More... | |
void | registerRobotNode (VirtualRobot::RobotNodePtr node) override |
Not implemented yet. More... | |
void | registerRobotNodeSet (VirtualRobot::RobotNodeSetPtr nodeSet) override |
Not implemented yet. More... | |
void | setGlobalPose (const Eigen::Matrix4f &globalPose, bool applyValues=true) override |
Sets the global pose of the robot. More... | |
void | setRootNode (VirtualRobot::RobotNodePtr node) override |
Not implemented yet. More... | |
Static Protected Member Functions | |
static VirtualRobot::RobotNodePtr | createRemoteRobotNode (SharedRobotNodeInterfacePrx, VirtualRobot::RobotPtr) |
Protected Attributes | |
std::map< std::string, VirtualRobot::RobotNodePtr > | _cachedNodes |
SharedRobotInterfacePrx | _robot |
VirtualRobot::RobotNodePtr | _root |
Static Protected Attributes | |
static std::recursive_mutex | m |
Mimics the behaviour of the VirtualRobot::Robot class while redirecting everything to an Ice proxy.
For a description of the members please refer to the Simox documentation (VirtualRobot::Robot). Note that not the complete interface has been made available yet. These functions are marked as protected.
Definition at line 144 of file RemoteRobot.h.
RemoteRobot | ( | SharedRobotInterfacePrx | robot | ) |
|
override |
Definition at line 68 of file RemoteRobot.cpp.
VirtualRobot::RobotPtr createLocalClone | ( | ) |
Clones the structure of this remote robot to a local instance.
Definition at line 381 of file RemoteRobot.cpp.
|
static |
Creates a local robot that is synchronized once but not updated any more. You can use the synchronizeLocalClone method to update the joint values. Note that only the kinematic structure is cloned, but the visualization files, collision models, end effectors, etc are not copied. This means you can use this model for kinematic computations (e.g. coordinate transformations) but not for advanced features like collision detection. In order to get a fully featured robot model you can pass a filename to VirtualRobot::Robot, but then you need to make sure that the loaded model is identical to the model of the remote robot (otherwise errors will occur). In the packages parameter you can pass in ArmarX packages, in which the robot file model might be in. The loadMode specifies in which mode the model should be loaded. Refer to simox for more information (only matters if filename was passed in).
Definition at line 422 of file RemoteRobot.cpp.
|
static |
|
static |
This is a convenience function for createLocalClone, which automatically gets the filename from the RobotStateComponent, loads robot from the file and syncs it once.
robotStatePrx | Proxy to the RobotStateComponent |
loadMode | The loadMode specifies in which mode the model should be loaded. Refer to simox for more information. |
Definition at line 512 of file RemoteRobot.cpp.
|
protected |
|
staticprotected |
|
overrideprotected |
Not implemented yet.
Definition at line 640 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 650 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 619 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 625 of file RemoteRobot.cpp.
|
override |
Definition at line 193 of file RemoteRobot.cpp.
|
override |
|
override |
Definition at line 133 of file RemoteRobot.cpp.
|
override |
|
override |
|
override |
|
override |
float getScaling | ( | ) |
Definition at line 200 of file RemoteRobot.cpp.
SharedRobotInterfacePrx getSharedRobot | ( | ) | const |
Use this method to share the robot instance over Ice.
Definition at line 206 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 613 of file RemoteRobot.cpp.
|
override |
Definition at line 96 of file RemoteRobot.cpp.
|
override |
|
override |
Definition at line 167 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 655 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 635 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 645 of file RemoteRobot.cpp.
|
overrideprotected |
Sets the global pose of the robot.
globalPose | new global pose |
applyValues | No effect. Will be always applied. |
Definition at line 660 of file RemoteRobot.cpp.
|
overrideprotected |
Not implemented yet.
Definition at line 630 of file RemoteRobot.cpp.
|
static |
Use this method to synchronize (i.e. copy the joint values) from the remote robot to the local clone. The local clone must have the identical structure as the remote robot model, otherwise an error will be reported. This is the fastest way to get update a local robot.
Definition at line 522 of file RemoteRobot.cpp.
|
static |
|
static |
Definition at line 579 of file RemoteRobot.cpp.
|
static |
Synchronizes a local robot to a robot state at timestamp.
robot | Local robot that should be updated |
robotStatePrx | Proxy to the RobotStateComponent |
timestamp | Timestamp to which the local robot should be sychronized. Must be in range of the state history of the RobotStateComponent. |
Definition at line 566 of file RemoteRobot.cpp.
|
mutableprotected |
Definition at line 282 of file RemoteRobot.h.
|
protected |
Definition at line 281 of file RemoteRobot.h.
|
mutableprotected |
Definition at line 283 of file RemoteRobot.h.
|
staticprotected |
Definition at line 285 of file RemoteRobot.h.