Skip to content
Snippets Groups Projects
Commit 8301f00e authored by Mirko Waechter's avatar Mirko Waechter
Browse files

docu

parent c9d8b1b3
No related branches found
No related tags found
No related merge requests found
......@@ -59,38 +59,31 @@ namespace armarx
* @class RobotStateComponent
* @ingroup Components
* The RobotStateComponent creates an internal robot representation from
* a VirtualRobot XML file.
* a VirtualRobot (see [Simox](http://simox.sourceforge.net/)) XML file.
* Upon request, an Ice proxy to a shared instance of this internal robot
* can be acquired through a call to RobotStateComponent::getSynchronizedRobot().
* Additionally it is possible to retrieve a proxy for robot snapshot with
* RobotStateComponent::getRobotSnapshot().
* While the synchronized robot will constantly update its internal state
* the robot snapshot is a clone of the original robot an won't update its
* configuration over time.
* See \ref remoterobot for more details and the usage of this component.
* the robot snapshot is a clone of the original robot and won't update its
* configuration over time. This is useful, if several components need
* to calculate on the same values.
* See \ref armarx::RemoteRobot "RemoteRobot" for more details and the usage of this component.
*/
class ARMARXCOMPONENT_IMPORT_EXPORT RobotStateComponent :
virtual public Component,
virtual public RobotStateComponentInterface
{
public:
// inherited from KinematicUnitInterface
void reportControlModeChanged(const NameControlModeMap& jointModes, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointAngles(const NameValueMap& jointAngles, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointVelocities(const NameValueMap& jointVelocities, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointTorques(const NameValueMap& jointTorques, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointAccelerations(const NameValueMap& jointAccelerations, bool aValueChanged, const Ice::Current& c);
void reportJointCurrents(const NameValueMap& jointCurrents, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointMotorTemperatures(const NameValueMap& jointMotorTemperatures, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointStatuses(const NameStatusMap& jointStatuses, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
/**
* \return SharedRobotInterface proxy to the internal synchronized robot (gets created upon first call)
* \return SharedRobotInterface proxy to the internal synchronized robot.
*/
virtual SharedRobotInterfacePrx getSynchronizedRobot(const Ice::Current&) const;
/**
* \return clone of the internal synchronized robot
* \return Clone of the internal synchronized robot.
*/
virtual SharedRobotInterfacePrx getRobotSnapshot(const std::string & time, const Ice::Current&);
......@@ -99,6 +92,10 @@ namespace armarx
*/
virtual std::string getRobotFilename(const Ice::Current&) const;
/**
*
* \return The name of this robot instance.
*/
virtual std::string getRobotName(const Ice::Current &) const;
/**
......@@ -127,6 +124,16 @@ namespace armarx
* Calls unref() on RobotStateComponent::_synchronizedPrx.
*/
virtual ~RobotStateComponent();
// inherited from KinematicUnitInterface
void reportControlModeChanged(const NameControlModeMap& jointModes, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointAngles(const NameValueMap& jointAngles, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointVelocities(const NameValueMap& jointVelocities, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointTorques(const NameValueMap& jointTorques, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointAccelerations(const NameValueMap& jointAccelerations, bool aValueChanged, const Ice::Current& c);
void reportJointCurrents(const NameValueMap& jointCurrents, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointMotorTemperatures(const NameValueMap& jointMotorTemperatures, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
void reportJointStatuses(const NameStatusMap& jointStatuses, bool aValueChanged, const Ice::Current& c = ::Ice::Current());
private:
SharedRobotInterfacePrx _synchronizedPrx;
SharedRobotServantPtr _sharedRobotServant;
......
......@@ -67,7 +67,7 @@ namespace armarx {
* updates the joint velocities. To set another cycle time use setCycleTime().
* To set the velocity for a node use setTCPVelocity. Calling setTCPVelocity again with another nodeset
* will add this nodeset to the list of currently controlled TCPs.
* @node After usage release() must be called to stop the recalcuation and setting of joint velocities.
* @node After usage release() **must** be called to stop the recalcuation and setting of joint velocities.
*/
class TCPControlUnit :
......@@ -127,14 +127,15 @@ namespace armarx {
// UnitResourceManagementInterface interface
/**
* @brief Triggers the calculation loop for using cartesian velocity. Call once before setting a tcp velocity, with SetTCPVelocity.
* @brief Triggers the calculation loop for using cartesian velocity. Call once before/after setting a tcp velocity with SetTCPVelocity.
* @param c Ice Context, leave blank.
*/
void request(const Ice::Current &c = Ice::Current());
/**
* @brief Releases and stops the recalculation and updating of joint velocities.
* Call always when finished with cartesian control.
* Call always when finished with cartesian control. The target velocity values of
* all node set will be deleted in this function.
* @param c Ice Context, leave blank.
*/
void release(const Ice::Current &c = Ice::Current());
......
......@@ -163,6 +163,10 @@ namespace armarx
virtual VirtualRobot::RobotNodeSetPtr getRobotNodeSet(const std::string &nodeSetName);
virtual void getRobotNodeSets(std::vector<VirtualRobot::RobotNodeSetPtr> &storeNodeSet);
/**
*
* @return Global pose of the robot
*/
virtual Eigen::Matrix4f getGlobalPose();
......@@ -215,7 +219,11 @@ namespace armarx
virtual void deregisterRobotNodeSet(VirtualRobot::RobotNodeSetPtr nodeSet);
/// Not implemented yet
virtual void registerEndEffector(VirtualRobot::EndEffectorPtr endEffector);
/// Not implemented yet
/**
* @brief Sets the global pose of the robot.
* @param globalPose new global pose
* @param applyValues No effect. Will be always applied.
*/
virtual void setGlobalPose(const Eigen::Matrix4f &globalPose, bool applyValues = true);
VirtualRobot::RobotNodePtr createLocalNode(SharedRobotNodeInterfacePrx remoteNode, std::vector<VirtualRobot::RobotNodePtr> &allNodes, std::map<VirtualRobot::RobotNodePtr, std::vector<std::string> > &childrenMap, VirtualRobot::RobotPtr robo);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment