diff --git a/etc/doxygen/pages/API-RobotAPI.dox b/etc/doxygen/pages/API-RobotAPI.dox new file mode 100644 index 0000000000000000000000000000000000000000..d53a5dcaa2bfe2b98308903d75e65dfb9611d1f6 --- /dev/null +++ b/etc/doxygen/pages/API-RobotAPI.dox @@ -0,0 +1,5 @@ +/** + + \defgroup api-robotapi RobotAPI + +*/ diff --git a/etc/doxygen/pages/RobotAPI-API-1-overview.dox b/etc/doxygen/pages/RobotAPI-API-1-overview.dox new file mode 100644 index 0000000000000000000000000000000000000000..117fdce24debf5c68ea96dd9748b1f2650492d18 --- /dev/null +++ b/etc/doxygen/pages/RobotAPI-API-1-overview.dox @@ -0,0 +1,19 @@ + /*! + * \defgroup robotapi-overview Overview + * \ingroup api-robotapi + * + * The ArmarX project RobotAPI is based on the ArmarXCore Framework. + * + * \par Components + * RobotAPI provides the following components + * - armarx::ComponentX: ComponentX description + * + * Each component can provide several properties which are set on command line or via a configuration file. + * See \ref componentproperties for an overview of properties. + * + * \par Applications + * - armarx::ApplicationY: Description of ApplicationY + * + * \par interface Interface Documentation + * Documentation of interfaces available in ArmarXCore is available on the \ref slicedocumentation "Slice Documentation" page. + */ diff --git a/etc/doxygen/pages/RobotAPI-API-2-units.dox b/etc/doxygen/pages/RobotAPI-API-2-units.dox new file mode 100644 index 0000000000000000000000000000000000000000..d410231304b51af867fd039c7c1f45d19f01e88e --- /dev/null +++ b/etc/doxygen/pages/RobotAPI-API-2-units.dox @@ -0,0 +1,12 @@ +/** + \defgroup SensorActorUnits Sensor-Actor Units + \ingroup api-robotapi + + Sensor-Actor units + + @li provide resource management (e.g. exclusive access) @see KinematicUnit + @li receive control data through Ice remote procedure calls (e.g. setTargetJointAngles(...)) @see KinematicUnit + @li publish sensor data through Ice topics @see KinematicUnitListener + */ + +*/ diff --git a/etc/doxygen/pages/RobotAPI-API-3-states.dox b/etc/doxygen/pages/RobotAPI-API-3-states.dox new file mode 100644 index 0000000000000000000000000000000000000000..472220c5aede76504cdbfcb73fba892a7bc5f2c9 --- /dev/null +++ b/etc/doxygen/pages/RobotAPI-API-3-states.dox @@ -0,0 +1,6 @@ +/** + + \defgroup robotapi-states States + \ingroup api-robotapi + +*/ diff --git a/etc/doxygen/pages/remoterobot.dox b/etc/doxygen/pages/RobotAPI-API-4-remoterobot.dox similarity index 98% rename from etc/doxygen/pages/remoterobot.dox rename to etc/doxygen/pages/RobotAPI-API-4-remoterobot.dox index 5e15af3fee7ee48ec7615f42decc5eca6b178ccc..bab878d25656793fefe58f80188f2632f802cd13 100644 --- a/etc/doxygen/pages/remoterobot.dox +++ b/etc/doxygen/pages/RobotAPI-API-4-remoterobot.dox @@ -1,5 +1,6 @@ /** -\page remoterobot Robot State and Remote Robot +\defgroup remoterobot Robot State and Remote Robot +\ingroup api-robotapi \section remoterobot-start Starting a RobotStateComponent diff --git a/etc/doxygen/pages/mainpage.dox b/etc/doxygen/pages/mainpage.dox index 00ccb60fd48bc4ca6e74b079be15bc5419c5f4fd..9559ec2b9c25fa60e68225c9edf5fa6cdadeb010 100644 --- a/etc/doxygen/pages/mainpage.dox +++ b/etc/doxygen/pages/mainpage.dox @@ -1,21 +1,6 @@ /*! \mainpage - * - * \section purpose Purpose - * - * HumanoidRobotAPI is based on the ArmarXCore Framework. - * - * \section overview Overview - * - * \par Components - * HumanoidRobotAPI provides the following components - * - armarx::ComponentX: ComponentX description - * - * Each component can provide several properties which are set on command line or via a configuration file. - * See \ref componentproperties for an overview of properties. - * - * \par Applications - * - armarx::ApplicationY: Description of ApplicationY - * - * \par interface Interface Documentation - * Documentation of interfaces available in ArmarXCore is available on the \ref slicedocumentation "Slice Documentation" page. + +- \subpage robotapi-overview +- \subpage remoterobot + */ diff --git a/etc/doxygen/pages/motioncontrol.dox b/etc/doxygen/pages/motioncontrol.dox new file mode 100644 index 0000000000000000000000000000000000000000..981916a8e14dc0796a672386d2d48f0673d1af03 --- /dev/null +++ b/etc/doxygen/pages/motioncontrol.dox @@ -0,0 +1,76 @@ +/** + \defgroup MotionControl ArmarX MotionControl + \ingroup robotapi-states + + \section Overview Overview of the implemented functionality in MotionControl + All functionality is implemented with State to provide a convenient interface + for the non-instant move functions (States receive events when desired targets + are reached).<br/> + The following functionality is available in the MotionControl: + - Direct kinematics: move joints to a desired configuration (armarx::MotionControl::MoveJoints) + - Velocity control: set the desired velocities for joints (armarx::MotionControl::MoveJointsVelocityControl) + - Inverse kinematics: move the TCP of a kinematic chain to a desired pose (armarx::MotionControl::MoveTCPPoseIK) + - Trajectory: move the TCP of a kinematic chain along a trajectory defined by a list of poses (armarx::MotionControl::MoveTCPTrajectory) + - Stop: stop all motion of the robot (armarx::MotionControl::StopRobot) + + \section HowTo How to use the states + To use one of the MotionControl states, you have to make it a substate of your own state (see ArmarXCore::Statechart). To set its parameters, + map them from you own state to it. The standard configuration is set in file ${ArmarX_Home}/data/HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml. + + Two kinds of kinematic entities are controlled using the MotionControl: single joints and kinematic chains. A kinematic chain is a list of joints + that usually belong to a part of the robot, e.g. an arm. The joints and the kinematic chains are all defined in the xml files that describe the + kinematic model of the robot (e.g. ${ArmarX_Home/data/ArmarIV/RobotModel/ArmarIV.xml and the files for the subparts). Look in these files to find out the name of + the joint or kinematic chain you want to move. + + \subsection UsingMoveJoints Using armarx::MotionControl::MoveJoints + This state moves the specified joints to the desired configuration. + Input parameters: + - jointNames: the names of the joints to be moved + - targetJointValues: the desired joint values + - targetTolerance: tolerance defining how precisely the joint position has to be reached + - timeoutInMs: a timeout after which the attempt to move is aborted + Output parameters: + - jointDistancesToTargets: the distance of each joint to the desired configuration + + \subsection UsingMoveJointsVelocityControl Using armarx::MotionControl::MoveJointsVelocityControl + This state moves the specified joints with the desired velocity. + Input parameters: + - jointNames: the names of the joints to be moved + - targetJointVelocities: the desired joint velocities + - targetJointVelocityTolerance: tolerance defining how precisely the joint velocity has to be reached + - timeoutInMs: a timeout after which the attempt is aborted + Output parameters: + - jointVelocitiesDistancesToTargets: the difference between the desired and actual joint velocities + + \subsection UsingMoveTCPPoseIK Using armarx::MotionControl::MoveTCPPoseIK + Moves the TCP of the specified kinematic chain to the desired pose if possible. + Input parameters: + - kinematicChainName: the name of the kinematic chain that is used + - targetTCPPosition: the target position for the TCP + - targetTCPOrientation: the target orientation + - targetPositionDistanceTolerance: tolerance for the position to decide if the motion was successfull + - targetOrientationDistanceTolerance: tolerance for the orientation to decide if the motion was successfull + - ikWithOrientation: Consider orientation for IK computation. if false, the rotation of the TCP is not considered. + - timeoutInMs: a timeout after which the motion is aborted + Output parameters: + - TCPDistanceToTarget: kartesian distance between TCP and target position + - TCPOrientationDistanceToTarget: the difference between desired and actual orientation of the TCP + + \subsection UsingMoveTCPTrajectory Using armarx::MotionControl::MoveTCPTrajectory + Moves the TCP of the specified kinematic chain along the defined poses. + Input parameters: + - kinematicChainName: the name of the kinematic chain that is used + - targetTCPPositions: the list of target positions for the TCP + - targetTCPOrientations: the list of target orientations + - targetPositionDistanceTolerance: tolerance for the position to decide if the motion was successfull + - targetOrientationDistanceTolerance: tolerance for the orientation to decide if the motion was successfull + - ikWithOrientation: Consider orientation for IK computation. if false, the rotation of the TCP is not considered. + - timeoutInMs: a timeout after which the motion is aborted + Output parameters: + - TCPDistanceToTarget: kartesian distance between TCP and target position + - TCPOrientationDistanceToTarget: the difference between desired and actual orientation of the TCP + + \subsection UsingStopRobot Using armarx::MotionControl::StopRobot + Stops all motion of the robot. No parameters. + +*/ diff --git a/etc/doxygen/pages/slicedocumentation.dox b/etc/doxygen/pages/slicedocumentation.dox index c1912da15693a7d8d0d2fae347c84d9e741953c3..f1c1b1f8a4fe5fb41765d3e069d0f279d9b3c784 100644 --- a/etc/doxygen/pages/slicedocumentation.dox +++ b/etc/doxygen/pages/slicedocumentation.dox @@ -1,4 +1,5 @@ /** - \page slicedocumentation HumanoidRobotAPI: Slice Documentation + \page slicedocumentation Slice Documentation + \ingroup api-robotapi <a href="slice/index.html"> Slice Documentation </a> */ diff --git a/source/RobotAPI/motioncontrol/MotionControl.h b/source/RobotAPI/motioncontrol/MotionControl.h index 2dd72eb8871821a377bdd31d104fa242d82edc1a..3a5789f67eb8c3600e02e091018925c3a179deaa 100644 --- a/source/RobotAPI/motioncontrol/MotionControl.h +++ b/source/RobotAPI/motioncontrol/MotionControl.h @@ -9,80 +9,6 @@ namespace armarx namespace MotionControl { -/** - \defgroup MotionControl ArmarX MotionControl - \section Overview Overview of the implemented functionality in MotionControl - All functionality is implemented with State to provide a convenient interface - for the non-instant move functions (States receive events when desired targets - are reached).<br/> - The following functionality is available in the MotionControl: - - Direct kinematics: move joints to a desired configuration (armarx::MotionControl::MoveJoints) - - Velocity control: set the desired velocities for joints (armarx::MotionControl::MoveJointsVelocityControl) - - Inverse kinematics: move the TCP of a kinematic chain to a desired pose (armarx::MotionControl::MoveTCPPoseIK) - - Trajectory: move the TCP of a kinematic chain along a trajectory defined by a list of poses (armarx::MotionControl::MoveTCPTrajectory) - - Stop: stop all motion of the robot (armarx::MotionControl::StopRobot) - - \section HowTo How to use the states - To use one of the MotionControl states, you have to make it a substate of your own state (see ArmarXCore::Statechart). To set its parameters, - map them from you own state to it. The standard configuration is set in file ${ArmarX_Home}/data/HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml. - - Two kinds of kinematic entities are controlled using the MotionControl: single joints and kinematic chains. A kinematic chain is a list of joints - that usually belong to a part of the robot, e.g. an arm. The joints and the kinematic chains are all defined in the xml files that describe the - kinematic model of the robot (e.g. ${ArmarX_Home/data/ArmarIV/RobotModel/ArmarIV.xml and the files for the subparts). Look in these files to find out the name of - the joint or kinematic chain you want to move. - - \subsection UsingMoveJoints Using armarx::MotionControl::MoveJoints - This state moves the specified joints to the desired configuration. - Input parameters: - - jointNames: the names of the joints to be moved - - targetJointValues: the desired joint values - - targetTolerance: tolerance defining how precisely the joint position has to be reached - - timeoutInMs: a timeout after which the attempt to move is aborted - Output parameters: - - jointDistancesToTargets: the distance of each joint to the desired configuration - - \subsection UsingMoveJointsVelocityControl Using armarx::MotionControl::MoveJointsVelocityControl - This state moves the specified joints with the desired velocity. - Input parameters: - - jointNames: the names of the joints to be moved - - targetJointVelocities: the desired joint velocities - - targetJointVelocityTolerance: tolerance defining how precisely the joint velocity has to be reached - - timeoutInMs: a timeout after which the attempt is aborted - Output parameters: - - jointVelocitiesDistancesToTargets: the difference between the desired and actual joint velocities - - \subsection UsingMoveTCPPoseIK Using armarx::MotionControl::MoveTCPPoseIK - Moves the TCP of the specified kinematic chain to the desired pose if possible. - Input parameters: - - kinematicChainName: the name of the kinematic chain that is used - - targetTCPPosition: the target position for the TCP - - targetTCPOrientation: the target orientation - - targetPositionDistanceTolerance: tolerance for the position to decide if the motion was successfull - - targetOrientationDistanceTolerance: tolerance for the orientation to decide if the motion was successfull - - ikWithOrientation: Consider orientation for IK computation. if false, the rotation of the TCP is not considered. - - timeoutInMs: a timeout after which the motion is aborted - Output parameters: - - TCPDistanceToTarget: kartesian distance between TCP and target position - - TCPOrientationDistanceToTarget: the difference between desired and actual orientation of the TCP - - \subsection UsingMoveTCPTrajectory Using armarx::MotionControl::MoveTCPTrajectory - Moves the TCP of the specified kinematic chain along the defined poses. - Input parameters: - - kinematicChainName: the name of the kinematic chain that is used - - targetTCPPositions: the list of target positions for the TCP - - targetTCPOrientations: the list of target orientations - - targetPositionDistanceTolerance: tolerance for the position to decide if the motion was successfull - - targetOrientationDistanceTolerance: tolerance for the orientation to decide if the motion was successfull - - ikWithOrientation: Consider orientation for IK computation. if false, the rotation of the TCP is not considered. - - timeoutInMs: a timeout after which the motion is aborted - Output parameters: - - TCPDistanceToTarget: kartesian distance between TCP and target position - - TCPOrientationDistanceToTarget: the difference between desired and actual orientation of the TCP - - \subsection UsingStopRobot Using armarx::MotionControl::StopRobot - Stops all motion of the robot. No parameters. - -*/ /** * \class MotionControlHandler diff --git a/source/RobotAPI/units/SensorActorUnit.h b/source/RobotAPI/units/SensorActorUnit.h index 1436072d6240c27c54328a52b09af612263197d9..ee4dcaff9d5e3ebc9784d577cd661b97fc8fe270 100644 --- a/source/RobotAPI/units/SensorActorUnit.h +++ b/source/RobotAPI/units/SensorActorUnit.h @@ -29,15 +29,6 @@ #include <Core/core/exceptions/Exception.h> #include <RobotAPI/interface/units/UnitInterface.h> -/** - @defgroup SensorActorUnits ArmarX Sensor-Actor Units - - Sensor-Actor units - - @li provide resource management (e.g. exclusive access) @see KinematicUnit - @li receive control data through Ice remote procedure calls (e.g. setTargetJointAngles(...)) @see KinematicUnit - @li publish sensor data through Ice topics @see KinematicUnitListener - */ namespace armarx {