diff --git a/etc/doxygen/pages/5.Components.dox b/etc/doxygen/pages/5.Components.dox index 8d47f77d4e13b92b200861ad6a7f832a4935ba16..b076255b458833746ada7e9e9fc082d4b7f6ae26 100644 --- a/etc/doxygen/pages/5.Components.dox +++ b/etc/doxygen/pages/5.Components.dox @@ -7,4 +7,30 @@ Components are the main building blocks of ArmarX and offer services to other applications via Ice. Each component usually implements an interface through which it can be accessed. + +There are several types of special components: + +\li *Sensor-Actor Units* provide access to certain hardware modalities like sensors or actors. + +\li *Base Sensor-Actor Units* provide a base class for the implementation of Sensor-Actor Units, defining a common interface. + The ForceTorqueUnit itself for instance is a base class for unit implementations like ForceTorqueUnitSimulation or ForceTorqueUnitArmar4. + +\li *Simulated Sensor-Actor Units* are Sensor-Actor Units that do not connect to any hardware, but simulate sensors and actors. + +\li *Observers* monitor values published by Sensor-Actor Units and fire events based on installed conditions. + There has to be a specific observer implementation for each base unit. + + +\defgroup RobotAPI-SensorActorUnits-simulation Sensor-Actor Unit Simulations +\ingroup RobotAPI-Components +Basic simulation implementations of the interfaces that do not consider any physical laws. + +\defgroup RobotAPI-SensorActorUnits-observers Sensor-Actor Unit Observers +\ingroup RobotAPI-Components +Almost any Sensor-Actor Unit has an observer, that observes the sensor value of this unit and +provides datafields for the sensor data. All unit observers implement the \ref armarx::Observer interface. + +\defgroup RobotAPI-SensorActorUnits-util Utilities +\ingroup RobotAPI-Components +Utility and helper classes associated with Sensor-Actor Units. */ diff --git a/etc/doxygen/pages/SensorActorUnits.dox b/etc/doxygen/pages/SensorActorUnits.dox index 4cd152181b2de5ca262f1b345db4dd75c7904ccb..147a15e14db7f05b27f84d086403d1c3705a2aa5 100644 --- a/etc/doxygen/pages/SensorActorUnits.dox +++ b/etc/doxygen/pages/SensorActorUnits.dox @@ -1,29 +1,10 @@ /** - \defgroup RobotAPI-SensorActorUnits Sensor-Actor Unit - \ingroup RobotAPI-Components +\defgroup RobotAPI-SensorActorUnits Sensor-Actor Unit +\ingroup RobotAPI-Components - * @brief Sensor-Actor Units are Armarx \ref armarx::Component "Components" that communicate usually directly with their - * associated hardware and feed the topic for their connected \ref armarx::Observer. They always implement - * an Ice interface to be reachable via Ice. The Ice interface is always tailored to the hardware - * which they represent, PlatformUnitInterface, KinematicUnitInterface etc. - * +\brief Sensor-Actor Units are components that provide an interface to an associated hardware device. - @li Receive control data through Ice remote procedure calls (e.g. setTargetJointAngles(...)) @see armarx::KinematicUnit - @li Publish sensor data through Ice topics @see \ref RobotAPI-SensorActorUnits-observers, \ref Observers - - - \defgroup RobotAPI-SensorActorUnits-simulation Sensor-Actor Unit Simulations - \ingroup RobotAPI-Components - Basic simulation implementations of the interfaces that do not consider any physical laws. - - \defgroup RobotAPI-SensorActorUnits-observers Sensor-Actor Unit Observers - \ingroup RobotAPI-Components - Almost any Sensor-Actor Unit has an observer, that observes the sensor value of this unit and - provides datafields for the sensor data. All unit observers implement the \ref armarx::Observer interface. - - \defgroup RobotAPI-SensorActorUnits-util Utilities - \ingroup RobotAPI-Components - Utility and helper classes associated with Sensor-Actor Units. +Sensor-Actor Units implement a corresponding Ice interface which makes them accessible for other running components. */ diff --git a/source/RobotAPI/components/units/BusInspectionUnit.cpp b/source/RobotAPI/components/units/BusInspectionUnit.cpp index 1593dc07596745abdbd755a18d84bdcbfe5b0f9e..20506415423cfeba683533a9d2b4d267c5694e46 100644 --- a/source/RobotAPI/components/units/BusInspectionUnit.cpp +++ b/source/RobotAPI/components/units/BusInspectionUnit.cpp @@ -72,11 +72,6 @@ DeviceInformation BusInspectionUnit::getDeviceInformation(const std::string& dev return *(new DeviceInformation); } -//int BusInspectionUnit::performBasicOperation( BasicOperation& operation, const std::string &device, const Ice::Current& c) { - -// return 0; -//} - Ice::Int BusInspectionUnit::performDeviceOperation(BasicOperation operation, Ice::Int device, const Ice::Current& c) { return 0; diff --git a/source/RobotAPI/components/units/BusInspectionUnit.h b/source/RobotAPI/components/units/BusInspectionUnit.h index f89c39a730d751cb08bcce1d9ba4bc8efafef6f8..e0983a4c2b1f5a18f29d82bb89274de31e898f73 100644 --- a/source/RobotAPI/components/units/BusInspectionUnit.h +++ b/source/RobotAPI/components/units/BusInspectionUnit.h @@ -32,58 +32,64 @@ #include <RobotAPI/interface/hardware/BusInspectionInterface.h> -namespace armarx { - - class BusInspectionUnitPropertyDefinitions: +namespace armarx +{ + /** + * \class BusInspectionUnitPropertyDefinitions + * \brief + */ + class BusInspectionUnitPropertyDefinitions: public ComponentPropertyDefinitions - { - public: - BusInspectionUnitPropertyDefinitions(std::string prefix): - ComponentPropertyDefinitions(prefix) - { - - //defineRequiredProperty<std::string>("RobotNodeSetName","Robot node name"); - //defineRequiredProperty<std::string>("RobotFileName", "Robot file name, e.g. robot_model.xml"); - } - }; - -class BusInspectionUnit : - virtual public BusInspectionInterface, virtual public Component { - public: - // inherited from Component - virtual std::string getDefaultName() const { return "BusInspectionUnit"; } - virtual void onInitComponent(); - virtual void onConnectComponent(); - virtual void onExitComponent(); - - virtual void onInitBusInspectionUnit() = 0; - virtual void onConnectBusInspectionUnit() = 0; - virtual void onExitBusInspectionUnit() = 0; - - virtual BusNames getConfiguredBusses( const Ice::Current& c = ::Ice::Current()); - virtual BusInformation getBusInformation(const std::string &bus, const Ice::Current& c = ::Ice::Current()); - virtual DeviceNames getDevicesOnBus(const std::string &bus, const Ice::Current& c = ::Ice::Current()); - virtual DeviceInformation getDeviceInformation(const std::string &device, const Ice::Current& c = ::Ice::Current()); - - virtual Ice::Int performDeviceOperation(BasicOperation operation, Ice::Int device, const Ice::Current& c = ::Ice::Current()); - virtual Ice::Int performBusOperation(BasicOperation operation, const std::string &bus, const Ice::Current& c = ::Ice::Current()); - virtual bool isInRealTimeMode(const Ice::Current& c = ::Ice::Current()); - - //virtual int performBasicOperation(BasicOperation &operation, const std::string &device, const Ice::Current& c = ::Ice::Current()); - virtual std::string sendCommand(const std::string &command, Ice::Int device, const Ice::Current& c = ::Ice::Current()); - - - /** - * @see PropertyUser::createPropertyDefinitions() - */ - virtual PropertyDefinitionsPtr createPropertyDefinitions(); - - protected: - std::string channel; - BusInspectionInterfacePrx busInspectionValuePrx; // gets commands from hardware - + public: + BusInspectionUnitPropertyDefinitions(std::string prefix) : + ComponentPropertyDefinitions(prefix) + { + } }; + + /** + * \class BusInspectionUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Provides information about connected hardware devices. + * + * BusInspectionUnit is the base class of a unit that allows the introspection of a connected bus system. + */ + class BusInspectionUnit : + virtual public BusInspectionInterface, virtual public Component + { + public: + // inherited from Component + virtual std::string getDefaultName() const { return "BusInspectionUnit"; } + virtual void onInitComponent(); + virtual void onConnectComponent(); + virtual void onExitComponent(); + + virtual void onInitBusInspectionUnit() = 0; + virtual void onConnectBusInspectionUnit() = 0; + virtual void onExitBusInspectionUnit() = 0; + + virtual BusNames getConfiguredBusses( const Ice::Current& c = ::Ice::Current()); + virtual BusInformation getBusInformation(const std::string &bus, const Ice::Current& c = ::Ice::Current()); + virtual DeviceNames getDevicesOnBus(const std::string &bus, const Ice::Current& c = ::Ice::Current()); + virtual DeviceInformation getDeviceInformation(const std::string &device, const Ice::Current& c = ::Ice::Current()); + + virtual Ice::Int performDeviceOperation(BasicOperation operation, Ice::Int device, const Ice::Current& c = ::Ice::Current()); + virtual Ice::Int performBusOperation(BasicOperation operation, const std::string &bus, const Ice::Current& c = ::Ice::Current()); + virtual bool isInRealTimeMode(const Ice::Current& c = ::Ice::Current()); + + virtual std::string sendCommand(const std::string &command, Ice::Int device, const Ice::Current& c = ::Ice::Current()); + + /** + * \see PropertyUser::createPropertyDefinitions() + */ + virtual PropertyDefinitionsPtr createPropertyDefinitions(); + + protected: + std::string channel; + BusInspectionInterfacePrx busInspectionValuePrx; // gets commands from hardware + + }; } diff --git a/source/RobotAPI/components/units/ForceTorqueUnit.h b/source/RobotAPI/components/units/ForceTorqueUnit.h index c87a582e81b17632abdc593aef6b41df7b160662..b239859437bddfcc6538b61a8cf7460d7fb9ca2c 100644 --- a/source/RobotAPI/components/units/ForceTorqueUnit.h +++ b/source/RobotAPI/components/units/ForceTorqueUnit.h @@ -36,6 +36,10 @@ namespace armarx { + /** + * \class ForceTorqueUnitPropertyDefinitions + * \brief + */ class ForceTorqueUnitPropertyDefinitions : public ComponentPropertyDefinitions { public: @@ -51,8 +55,10 @@ namespace armarx }; /** - * @class ForceTorqueUnit - * @ingroup RobotAPI-SensorActorUnits + * \class ForceTorqueUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base unit for force/torque sensors. + * * The ForceTorqueUnit class is the base unit for force/torque sensors. * It implements the ForceTorqueUnit-interface and is responsible for distributing F/T sensor-values in ArmarX. * RobotAPI contains the ForceTorqueUnitSimulation class that does a very basic simulation of F/T-sensors. diff --git a/source/RobotAPI/components/units/HandUnit.h b/source/RobotAPI/components/units/HandUnit.h index 21a361db30077647635b53b0a2ecd3ea3498cfe0..db2c3d6b13bf837ee2158aec4f80561f387f8650 100644 --- a/source/RobotAPI/components/units/HandUnit.h +++ b/source/RobotAPI/components/units/HandUnit.h @@ -44,8 +44,8 @@ namespace VirtualRobot namespace armarx { /** - * @class HandUnitPropertyDefinitions - * @brief Defines all necessary properties for armarx::HandUnit + * \class HandUnitPropertyDefinitions + * \brief Defines all necessary properties for armarx::HandUnit */ class HandUnitPropertyDefinitions: public ComponentPropertyDefinitions @@ -61,9 +61,9 @@ namespace armarx /** - * @class HandUnit - * @brief This class defines an interface for providing high level access to robot hands - * @ingroup RobotAPI-SensorActorUnits + * \class HandUnit + * \brief Base unit for high-level access to robot hands. + * \ingroup RobotAPI-SensorActorUnits * * An instance of a HandUnit provides means to open, close, and preshape hands. * It uses the HandUnitListener Ice interface to report updates of its current state @@ -83,17 +83,17 @@ namespace armarx /** * Retrieve proxy for publishing State information and call * armarx::PlatformUnit::onInitPlatformUnit(). - * @see armarx::Component::onInitComponent() + * \see armarx::Component::onInitComponent() */ virtual void onInitComponent(); /** * Calls armarx::PlatformUnit::onStartPlatformUnit(). - * @see armarx::Component::onConnectComponent() + * \see armarx::Component::onConnectComponent() */ virtual void onConnectComponent(); /** * Calls armarx::PlatformUnit::onExitPlatformUnit(). - * @see armarx::Component::onExitComponent() + * \see armarx::Component::onExitComponent() */ virtual void onExitComponent(); @@ -110,23 +110,13 @@ namespace armarx */ virtual void onExitHandUnit() = 0; - /** - * Send command to the hand to open all fingers. - */ - //virtual void open(const Ice::Current& c = ::Ice::Current()); - - /** - * Send command to the hand to close all fingers. - */ - //virtual void close(const Ice::Current& c = ::Ice::Current()); - /** * Send command to the hand to form a specific shape position. The shapes are defined in the robot.xml file. */ void setShape(const std::string& shapeName, const Ice::Current& c = ::Ice::Current()); /** - * @return a list of strings for shape positions which can be used together with HandUnit::shape(). + * \return a list of strings for shape positions which can be used together with HandUnit::shape(). */ virtual SingleTypeVariantListBasePtr getShapeNames(const Ice::Current& c = ::Ice::Current()); @@ -137,7 +127,7 @@ namespace armarx void setJointAngles(const NameValueMap& targetJointAngles, const Ice::Current &); /** - * @see armarx::PropertyUser::createPropertyDefinitions() + * \see armarx::PropertyUser::createPropertyDefinitions() */ virtual PropertyDefinitionsPtr createPropertyDefinitions(); diff --git a/source/RobotAPI/components/units/HapticUnit.h b/source/RobotAPI/components/units/HapticUnit.h index c98b866b4f80fb57d08ca45c4130058c8c37502f..012825f072f4678855aa7aa078a5878c7af7eb19 100644 --- a/source/RobotAPI/components/units/HapticUnit.h +++ b/source/RobotAPI/components/units/HapticUnit.h @@ -35,6 +35,10 @@ namespace armarx { + /** + * \class HapticUnitPropertyDefinitions + * \brief + */ class HapticUnitPropertyDefinitions : public ComponentPropertyDefinitions { public: @@ -45,10 +49,10 @@ namespace armarx } }; - /*! - * @class HapticUnit - * @ingroup RobotAPI-SensorActorUnits - * \brief The HapticUnit class + /** + * \class HapticUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base unit for haptic sensors. */ class HapticUnit : virtual public HapticUnitInterface, diff --git a/source/RobotAPI/components/units/HeadIKUnit.h b/source/RobotAPI/components/units/HeadIKUnit.h index cd7385491822fcdc39fb150b81ae072efe9bb4b9..143150b61e98879b4985a995b0572ebb999644c8 100644 --- a/source/RobotAPI/components/units/HeadIKUnit.h +++ b/source/RobotAPI/components/units/HeadIKUnit.h @@ -36,8 +36,10 @@ namespace armarx { - - + /** + * \class HeadIKUnitPropertyDefinitions + * \brief + */ class HeadIKUnitPropertyDefinitions: public ComponentPropertyDefinitions { @@ -50,10 +52,10 @@ namespace armarx } }; - /*! - * @class HeadIKUnit - * @ingroup RobotAPI-SensorActorUnits - * @brief The HeadIKUnit class + /** + * \class HeadIKUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Unit for controlling a robot head via IK targets. */ class HeadIKUnit : virtual public Component, virtual public HeadIKUnitInterface { diff --git a/source/RobotAPI/components/units/InertialMeasurementUnit.h b/source/RobotAPI/components/units/InertialMeasurementUnit.h index 11463c13ac4e88026cd18b349d009d078f393ed4..4cd2861f7fe30d61b7778f809f3261abd8e29bfc 100644 --- a/source/RobotAPI/components/units/InertialMeasurementUnit.h +++ b/source/RobotAPI/components/units/InertialMeasurementUnit.h @@ -33,8 +33,8 @@ namespace armarx { /** - * @class InertialMeasurementUnitPropertyDefinitions - * @brief + * \class InertialMeasurementUnitPropertyDefinitions + * \brief */ class InertialMeasurementUnitPropertyDefinitions: public ComponentPropertyDefinitions @@ -48,11 +48,9 @@ namespace armarx }; /** - * @class InertialMeasurementUnit - * @ingroup RobotAPI-SensorActorUnits - * @brief A brief description - * - * Detailed Description + * \class InertialMeasurementUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base unit for %IMU sensors. */ class InertialMeasurementUnit : virtual public armarx::InertialMeasurementUnitInterface, @@ -60,7 +58,7 @@ namespace armarx { public: /** - * @see armarx::ManagedIceObject::getDefaultName() + * \see armarx::ManagedIceObject::getDefaultName() */ virtual std::string getDefaultName() const { @@ -70,28 +68,28 @@ namespace armarx protected: /** - * @see armarx::ManagedIceObject::onInitComponent() + * \see armarx::ManagedIceObject::onInitComponent() */ virtual void onInitComponent(); /** - * @see armarx::ManagedIceObject::onConnectComponent() + * \see armarx::ManagedIceObject::onConnectComponent() */ virtual void onConnectComponent(); /** - * @see armarx::ManagedIceObject::onDisconnectComponent() + * \see armarx::ManagedIceObject::onDisconnectComponent() */ virtual void onDisconnectComponent(); /** - * @see armarx::ManagedIceObject::onExitComponent() + * \see armarx::ManagedIceObject::onExitComponent() */ virtual void onExitComponent(); /** - * @see PropertyUser::createPropertyDefinitions() + * \see PropertyUser::createPropertyDefinitions() */ virtual PropertyDefinitionsPtr createPropertyDefinitions(); diff --git a/source/RobotAPI/components/units/KinematicUnit.h b/source/RobotAPI/components/units/KinematicUnit.h index af56852eef00bee23384f4f9602a1dfd1b43a2df..c39ddfe0caf601c3ed5dff88285964837f9fe634 100644 --- a/source/RobotAPI/components/units/KinematicUnit.h +++ b/source/RobotAPI/components/units/KinematicUnit.h @@ -38,8 +38,8 @@ namespace armarx { /** - * @class KinematicUnitPropertyDefinitions - * @brief + * \class KinematicUnitPropertyDefinitions + * \brief */ class KinematicUnitPropertyDefinitions: public ComponentPropertyDefinitions @@ -55,8 +55,9 @@ namespace armarx /** - * @class KinematicUnit - * @ingroup RobotAPI-SensorActorUnits + * \class KinematicUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base unit for kinematic sensors and actors. * * KinematicUnits are SensorActorUnits which provide sensory data in terms of joints angles, joint velocities and joint forces. * Further target joint angles and velocities can be controlled. @@ -89,7 +90,7 @@ namespace armarx /** - * @see PropertyUser::createPropertyDefinitions() + * \see PropertyUser::createPropertyDefinitions() */ virtual PropertyDefinitionsPtr createPropertyDefinitions(); diff --git a/source/RobotAPI/components/units/PlatformUnit.h b/source/RobotAPI/components/units/PlatformUnit.h index 60ecaf2fad195f4795050c90af5e2f84b9ae7bca..6252fe48e75e14493bbf3db9306134d78c2e508c 100644 --- a/source/RobotAPI/components/units/PlatformUnit.h +++ b/source/RobotAPI/components/units/PlatformUnit.h @@ -36,8 +36,8 @@ namespace armarx { /** - * @class PlatformUnitPropertyDefinitions - * @brief Defines all necessary properties for armarx::PlatformUnit + * \class PlatformUnitPropertyDefinitions + * \brief Defines all necessary properties for armarx::PlatformUnit */ class PlatformUnitPropertyDefinitions: public ComponentPropertyDefinitions @@ -52,13 +52,13 @@ namespace armarx /** - * @class PlatformUnit - * @brief This class defines an interface for providing high level access to robot platforms - * @ingroup RobotAPI-SensorActorUnits + * \class PlatformUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base unit for high-level access to robot platforms. * + * This class defines an interface for providing high level access to robot platforms * An instance of a PlatformUnit provides means to set target positions. * It uses the PlatformUnitListener Ice interface to report updates of its current state. - * */ class PlatformUnit : virtual public PlatformUnitInterface, @@ -74,35 +74,25 @@ namespace armarx /** * Retrieve proxy for publishing State information and call * armarx::PlatformUnit::onInitPlatformUnit(). - * @see armarx::Component::onInitComponent() + * \see armarx::Component::onInitComponent() */ virtual void onInitComponent(); /** * Calls armarx::PlatformUnit::onStartPlatformUnit(). - * @see armarx::Component::onConnectComponent() + * \see armarx::Component::onConnectComponent() */ virtual void onConnectComponent(); virtual void onDisconnectComponent(); /** * Calls armarx::PlatformUnit::onExitPlatformUnit(). - * @see armarx::Component::onExitComponent() + * \see armarx::Component::onExitComponent() */ virtual void onExitComponent(); - /** - * - */ virtual void onInitPlatformUnit() = 0; - /** - * - */ virtual void onStartPlatformUnit() = 0; - virtual void onStopPlatformUnit() {} - /** - * - */ virtual void onExitPlatformUnit() = 0; /** @@ -114,7 +104,7 @@ namespace armarx void stopPlatform(const Ice::Current &c = Ice::Current()){} /** - * @see armarx::PropertyUser::createPropertyDefinitions() + * \see armarx::PropertyUser::createPropertyDefinitions() */ virtual PropertyDefinitionsPtr createPropertyDefinitions(); diff --git a/source/RobotAPI/components/units/SensorActorUnit.h b/source/RobotAPI/components/units/SensorActorUnit.h index d839a4563690748b1a80c0165c55c88537701e8f..7180ec22424c9417620b862540acdfa9bf790b6c 100644 --- a/source/RobotAPI/components/units/SensorActorUnit.h +++ b/source/RobotAPI/components/units/SensorActorUnit.h @@ -33,9 +33,9 @@ namespace armarx { /** - * - * @ingroup RobotAPI-SensorActorUnits - * Base Class for all ArmarX SensorActorUnits. + * \class SensorActorUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Base Class for SensorActorUnits. * * SensorActorUnits are ArmarX component which provide an actor API and a sensor data stream. * The SensorActorUnit provides basic execution state handling and concurrent access handling. @@ -59,7 +59,7 @@ namespace armarx * * Assures that init is called only once and the calls subclass method onInit(). * - * @param c Ice context provided by the Ice framework + * \param c Ice context provided by the Ice framework */ virtual void init(const Ice::Current& c = ::Ice::Current()); @@ -71,7 +71,7 @@ namespace armarx * Start can be called if the unit is initialized and not started yet (stopped). * Calls subclass method inStart(). * - * @param c Ice context provided by the Ice framework + * \param c Ice context provided by the Ice framework */ virtual void start(const Ice::Current& c = ::Ice::Current()); @@ -83,29 +83,29 @@ namespace armarx * Stop can be called if the unit is started. * Calls subclass method onStop() * - * @param c Ice context provided by the Ice framework + * \param c Ice context provided by the Ice framework */ virtual void stop(const Ice::Current& c = ::Ice::Current()); /** * Retrieve current execution state * - * @param c Ice context provided by the Ice framework - * @return current execution state + * \param c Ice context provided by the Ice framework + * \return current execution state */ UnitExecutionState getExecutionState(const Ice::Current& c = ::Ice::Current()); /** * Request exclusive access to current unit. Throws ResourceUnavailableException on error. * - * @param c Ice context provided by the Ice framework + * \param c Ice context provided by the Ice framework */ virtual void request(const Ice::Current& c = ::Ice::Current()); /** * Release exclusive access to current unit. Throws ResourceUnavailableException on error. * - * @param c Ice context provided by the Ice framework + * \param c Ice context provided by the Ice framework */ virtual void release(const Ice::Current& c = ::Ice::Current()); diff --git a/source/RobotAPI/components/units/TCPControlUnit.h b/source/RobotAPI/components/units/TCPControlUnit.h index 13506f6401f77d8f4e97096f2db464b7fccdf424..030891c76bf6b8e02d928317e07a3f168d746a4f 100644 --- a/source/RobotAPI/components/units/TCPControlUnit.h +++ b/source/RobotAPI/components/units/TCPControlUnit.h @@ -33,9 +33,12 @@ #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h> #include <Core/interface/observers/ObserverInterface.h> -namespace armarx { - - +namespace armarx +{ + /** + * \class TCPControlUnitPropertyDefinitions + * \brief + */ class TCPControlUnitPropertyDefinitions: public ComponentPropertyDefinitions { @@ -55,9 +58,11 @@ namespace armarx { }; /** - * @class TCPControlUnit - * @ingroup RobotAPI-SensorActorUnits - * @brief This class implements the interface to control a node of a robot (e.g a TCP) + * \class TCPControlUnit + * \ingroup RobotAPI-SensorActorUnits + * \brief Unit for controlling a tool center point (TCP). + * + * This class implements the interface to control a node of a robot (e.g a TCP) * in cartesian coordinates in velocity control mode. It takes velocities in mm/s for * translations and rad/s for orientation. Several nodessets can be controlled simultaneously. * @@ -67,76 +72,72 @@ 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. + * + * \note After usage release() **must** be called to stop the recalcuation and setting of joint velocities. */ - class TCPControlUnit : virtual public Component, virtual public TCPControlUnitInterface - { public: TCPControlUnit(); - - - // TCPControlUnitInterface interface /** - * @brief Sets the cycle time with which the joint velocities are recalculated. - * @param milliseconds New cycle time. - * @param c Ice Context, leave blank. + * \brief Sets the cycle time with which the joint velocities are recalculated. + * \param milliseconds New cycle time. + * \param c Ice Context, leave blank. */ void setCycleTime(Ice::Int milliseconds, const Ice::Current &c = Ice::Current()); /** - * @brief Sets the cartesian velocity of a node in a nodeset for translation and/or orientation. + * \brief Sets the cartesian velocity of a node in a nodeset for translation and/or orientation. * It is best to provide the data in global coordinates. Otherwise the coordinates frame transformation is done in place * on the current robot state, which might not be the same as when the command was given. Additionally, execution inaccurracies * might propagate if local coordinate frames are used. - * @param nodeSetName Nodeset that should be used for moving the node, i.e. tcp - * @param tcpName Name of the VirtualRobot node that should be moved - * @param translationVelocity Target cartesian translation velocity in mm/s, but might not be reached. If NULL the translation is ommitted in the calculation. + * \param nodeSetName Nodeset that should be used for moving the node, i.e. tcp + * \param tcpName Name of the VirtualRobot node that should be moved + * \param translationVelocity Target cartesian translation velocity in mm/s, but might not be reached. If NULL the translation is ommitted in the calculation. * Thus the translation behaviour is undefined und the node/tcp position might change. - * @param orientationVelocityRPY Target cartesian orientation velocity in rad/s in roll-pitch-yaw, but might not be reached. If NULL the orientation is ommitted in the calculation. + * \param orientationVelocityRPY Target cartesian orientation velocity in rad/s in roll-pitch-yaw, but might not be reached. If NULL the orientation is ommitted in the calculation. * Thus the orientation behaviour is undefined und the node/tcp orientation might change. - * @param c Ice Context, leave blank. + * \param c Ice Context, leave blank. * - * @see request(), release() + * \see request(), release() */ void setTCPVelocity(const std::string &nodeSetName, const std::string &tcpName, const::armarx::FramedDirectionBasePtr &translationVelocity, const::armarx::FramedDirectionBasePtr &orientationVelocityRPY, const Ice::Current &c = Ice::Current()); // UnitExecutionManagementInterface interface /** - * @brief Does not do anything at the moment. - * @param c + * \brief Does not do anything at the moment. + * \param c */ void init(const Ice::Current &c = Ice::Current()); /** - * @brief Does not do anything at the moment. - * @param c + * \brief Does not do anything at the moment. + * \param c */ void start(const Ice::Current &c = Ice::Current()); /** - * @brief Does not do anything at the moment. - * @param c + * \brief Does not do anything at the moment. + * \param c */ void stop(const Ice::Current &c = Ice::Current()); UnitExecutionState getExecutionState(const Ice::Current &c = Ice::Current()); // UnitResourceManagementInterface interface /** - * @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. + * \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. + * \brief Releases and stops the recalculation and updating of joint velocities. * 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. + * \param c Ice Context, leave blank. */ void release(const Ice::Current &c = Ice::Current());