Skip to content
Snippets Groups Projects
Commit 123d5153 authored by Mirko Wächter's avatar Mirko Wächter
Browse files
parents e994cb02 f1a05966
No related branches found
No related tags found
No related merge requests found
Showing
with 80 additions and 16 deletions
etc/doxygen/images/HandUnitGUI.png

24.6 KiB

etc/doxygen/images/KinematicUnitGUI.png

121 KiB

etc/doxygen/images/PlatformUnitGUI.png

38.4 KiB

etc/doxygen/images/Plotter.png

29.5 KiB

etc/doxygen/images/RobotViewerGUI.png

55.9 KiB

/**
* \defgroup ArmarXGuiPlugins-RobotAPI RobotAPI GUI plugins
* \ingroup ArmarXGuiPlugins
*/
\ No newline at end of file
......@@ -5,6 +5,7 @@
#include <Core/observers/checks/ConditionCheckInRange.h>
#include <Core/observers/checks/ConditionCheckLarger.h>
#include <Core/observers/checks/ConditionCheckSmaller.h>
#include <Core/observers/checks/ConditionCheckEqualsWithTolerance.h>
#include <RobotAPI/libraries/core/checks/ConditionCheckMagnitudeChecks.h>
#include <RobotAPI/libraries/core/observerfilters/OffsetFilter.h>
#include <Core/observers/variant/DatafieldRef.h>
......@@ -44,6 +45,7 @@ void ForceTorqueObserver::onInitObserver()
offerConditionCheck("equals", new ConditionCheckEquals());
offerConditionCheck("smaller", new ConditionCheckSmaller());
offerConditionCheck("magnitudeinrange", new ConditionCheckMagnitudeInRange());
offerConditionCheck("approx", new ConditionCheckEqualsWithTolerance());
offerConditionCheck("magnitudelarger", new ConditionCheckMagnitudeLarger());
offerConditionCheck("magnitudesmaller", new ConditionCheckMagnitudeSmaller());
......
......@@ -36,6 +36,7 @@
#include <VirtualRobot/XML/RobotIO.h>
#include <VirtualRobot/RobotNodeSet.h>
#include <VirtualRobot/Nodes/RobotNode.h>
#include <Core/observers/checks/ConditionCheckEqualsWithTolerance.h>
using namespace armarx;
......@@ -51,6 +52,7 @@ void KinematicUnitObserver::onInitObserver()
offerConditionCheck("updated", new ConditionCheckUpdated());
offerConditionCheck("equals", new ConditionCheckEquals());
offerConditionCheck("inrange", new ConditionCheckInRange());
offerConditionCheck("approx", new ConditionCheckEqualsWithTolerance());
offerConditionCheck("larger", new ConditionCheckLarger());
offerConditionCheck("smaller", new ConditionCheckSmaller());
......
......@@ -31,6 +31,7 @@
#include <Core/observers/checks/ConditionCheckLarger.h>
#include <Core/observers/checks/ConditionCheckSmaller.h>
#include <Core/observers/checks/ConditionCheckValid.h>
#include <Core/observers/checks/ConditionCheckEqualsWithTolerance.h>
using namespace armarx;
......@@ -49,6 +50,7 @@ void PlatformUnitObserver::onInitObserver()
offerConditionCheck("updated", new ConditionCheckUpdated());
offerConditionCheck("equals", new ConditionCheckEquals());
offerConditionCheck("inrange", new ConditionCheckInRange());
offerConditionCheck("approx", new ConditionCheckEqualsWithTolerance());
offerConditionCheck("larger", new ConditionCheckLarger());
offerConditionCheck("smaller", new ConditionCheckSmaller());
......
......@@ -46,8 +46,18 @@ namespace armarx
/**
\class HandUnitGuiPlugin
\brief With this plugin the HandUnit can be controlled.
\ingroup ArmarXGuiPlugins
\image html HandUnitGUI.png
When you add the widget to the Gui, you need to specify the following parameters:
Parameter Name | Example Value | Required? | Description
:---------------- | :-------------: | :-------------- |:--------------------
Proxy | LeftHandUnit | Yes | The hand unit you want to control.
You can either select a preshape from the drop-down-menu on top or set each
joint individually.
\ingroup ArmarXGuiPlugins-RobotAPI
\see HandUnitWidget
*/
class HandUnitGuiPlugin :
......
......@@ -49,7 +49,7 @@ namespace armarx
/**
\class HapticUnitGuiPlugin
\brief With this plugin the HapticUnit can be controlled.
\ingroup ArmarXGuiPlugins
\ingroup ArmarXGuiPlugins-RobotAPI
\see HapticUnitWidget
*/
......
......@@ -67,12 +67,27 @@ namespace armarx
class KinematicUnitConfigDialog;
/**
\class KinematicUnitGuiPlugin
\brief This plugin provides a generic widget showing position and velocity of all joints. Optionally a 3d robot model can be visualized.
\ingroup ArmarXGuiPlugins
\see KinematicUnitWidget
*/
\class KinematicUnitGuiPlugin
\brief This plugin provides a generic widget showing position and velocity of all joints. Optionally a 3d robot model can be visualized.
\image html KinematicUnitGUI.png
When you add the widget to the Gui, you need to specify the following parameters:
Parameter Name | Example Value | Required? | Description
:---------------- | :-------------: | :-------------- |:--------------------
Robot model filepath | $ArmarX_Core/Armar3/data/Armar3/robotmodel/ArmarIII.xml | Yes | The robot model to use. This needs to be the same model the kinematic unit is using.
Robot nodeset name | Robot | Yes | ?
Kinematic unit name - Proxy | Armar3KinematicUnit | Yes | The kinematic unit you wish to observe/control.
RobotState Topic Name | RobotState | ? | ?
This plugin allows you to both observe and control a kinematic unit. All joints are listed in
the table in the center of the widget. The 3D viewer shows the current state of the robot.
On the top you can select the joint you wish to control and the control mode. You can control
a joint with the slider below.
\see KinematicUnitWidget
\ingroup ArmarXGuiPlugins-RobotAPI
*/
class KinematicUnitGuiPlugin :
public ArmarXGuiPlugin
{
......
......@@ -48,14 +48,22 @@ namespace armarx
/**
\class PlatformUnitGuiPlugin
\brief With this plugin the PlatformUnit can be controlled.
\ingroup ArmarXGuiPlugins
\ingroup ArmarXGuiPlugins-RobotAPI
\see PlatformUnitWidget
\image html PlatformUnitGuiPlugin_widgetpng.png "The plugin's ui." width=300px
\image html PlatformUnitGUI.png "The plugin's ui." width=300px
-# The current position and rotation, fields to enter a new target and a button to set the platform in motion.
-# A joystick like control widget to move the platform. It has two speed level. The platform does not rotate to move in a direction. Up moves the platform forward.
-# A joystick like control widget to move the platform. The platform does not rotate to move in a direction. Up moves the platform forward.
-# A joystick like control widget to rotate the platform.
-# Be careful to set a maximum velocity before using the joysticks.
When you add the widget to the Gui, you need to specify the following parameters:
Parameter Name | Example Value | Required? | Description
:---------------- | :-------------: | :-------------- |:--------------------
PlatformUnit - Proxy | PlatformUnit | Yes | The name of the platform unit.
Platform | Platform | Yes | The name of the platform.
*/
class PlatformUnitGuiPlugin :
public ArmarXGuiPlugin
......
......@@ -60,8 +60,15 @@ namespace armarx
\brief This plugin provides a generic widget showing a 3D model of the robot. The robot is articulated and moved according to the corresponding RemoteRobot.
Further, DebugDrawer methods are available.
\ingroup ArmarXGuiPlugins
\image html RobotViewerGUI.png
When you add the widget to the Gui, you need to specify the following parameters:
Parameter Name | Example Value | Required? | Description
:---------------- | :-------------: | :-------------- |:--------------------
Proxy | RobotStateComponent | Yes | The name of the robot state component.
\ingroup ArmarXGuiPlugins-RobotAPI
\see RobotViewerWidget
*/
class RobotViewerGuiPlugin :
......
......@@ -32,8 +32,12 @@
namespace armarx
{
/**
* @brief The MdiPlugin class
* @ingroup ArmarXGuiPlugins
* @brief The SensorActorWidgetPlugin offers the widgets Plotter and TCPMover.
* @ingroup ArmarXGuiPlugins-RobotAPI
*
* The plotter widget allows the user to plot any sensor channel:
* \image Plotter.png
* A sensor channel can be selected for plotting by clicking the wrench button at the bottom.
*
* @see ArmarXPlotter
*/
......
......@@ -48,6 +48,11 @@ namespace armarx {
FramedPose(other)
{
this->referenceRobot = referenceRobot;
if(referenceRobot)
{
//ARMARX_WARNING_S << "Calling referenceRobot->ref() in cctor of LinkedPose";
referenceRobot->ref();
}
}
......@@ -56,7 +61,7 @@ namespace armarx {
FramedPose(m, v, s, referenceRobot->getName())
{
referenceRobot->ref();
this->referenceRobot = referenceRobot;
this->referenceRobot = referenceRobot;
}
LinkedPose::LinkedPose(const Eigen::Matrix4f& m, const std::string& s, const SharedRobotInterfacePrx& referenceRobot) :
......@@ -189,6 +194,11 @@ namespace armarx {
FramedVector3(source)
{
referenceRobot = source.referenceRobot;
if(referenceRobot)
{
//ARMARX_WARNING_S << "Calling referenceRobot->ref() in cctor of LinkedPose";
referenceRobot->ref();
}
}
LinkedVector3::LinkedVector3(const Eigen::Vector3f &v, const std::string &frame, const SharedRobotInterfacePrx &referenceRobot) :
......
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