NaturalIKTest.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package RobotAPI::ArmarXObjects::NaturalIKTest
17  * @author Simon Ottenhaus ( simon dot ottenhaus at kit dot edu )
18  * @date 2020
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #pragma once
24 
25 
27 #include <ArmarXCore/interface/observers/ObserverInterface.h>
28 
30 //#include <RobotAPI/libraries/core/visualization/DebugDrawerTopic.h>
31 #include <Eigen/Dense>
32 
35 
36 namespace armarx
37 {
38  /**
39  * @class NaturalIKTestPropertyDefinitions
40  * @brief
41  */
43  {
44  public:
46  };
47 
48  /**
49  * @defgroup Component-NaturalIKTest NaturalIKTest
50  * @ingroup RobotAPI-Components
51  * A description of the component NaturalIKTest.
52  *
53  * @class NaturalIKTest
54  * @ingroup Component-NaturalIKTest
55  * @brief Brief description of class NaturalIKTest.
56  *
57  * Detailed description of class NaturalIKTest.
58  */
59  class NaturalIKTest :
60  virtual public armarx::Component,
61  virtual public RemoteGuiComponentPluginUser
62  {
63  public:
65  {
66  Eigen::Vector3f target;
67  Eigen::Vector3f targetRotation;
68  float scale = 1.3f;
69  float minElbZ;
70  std::atomic_bool setOri;
72  };
73 
74  struct GuiParams
75  {
78  std::atomic_bool targetValid = false;
79  Eigen::Vector3f err_R = Eigen::Vector3f::Zero(), err_L = Eigen::Vector3f::Zero();
80 
81  std::atomic_bool useCompositeIK;
82  };
83 
84  /// @see armarx::ManagedIceObject::getDefaultName()
85  virtual std::string getDefaultName() const override;
86 
87 
90 
91  protected:
92  /// @see armarx::ManagedIceObject::onInitComponent()
93  virtual void onInitComponent() override;
94 
95  /// @see armarx::ManagedIceObject::onConnectComponent()
96  virtual void onConnectComponent() override;
97 
98  /// @see armarx::ManagedIceObject::onDisconnectComponent()
99  virtual void onDisconnectComponent() override;
100 
101  /// @see armarx::ManagedIceObject::onExitComponent()
102  virtual void onExitComponent() override;
103 
104  /// @see PropertyUser::createPropertyDefinitions()
106 
107  void vizTaskRun();
108  void testTaskRun();
111 
112 
113  private:
114  // Private methods and member variables go here.
115 
116  /// Debug observer. Used to visualize e.g. time series.
117  armarx::DebugObserverInterfacePrx debugObserver;
118  /// Debug drawer. Used for 3D visualization.
119  //armarx::DebugDrawerTopic debugDrawer;
120 
123  GuiParams p;
124  };
125 } // namespace armarx
NaturalDiffIK.h
armarx::NaturalIK::Parameters
Definition: NaturalIK.h:55
armarx::NaturalIKTest::createPropertyDefinitions
virtual armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: NaturalIKTest.cpp:1015
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
armarx::NaturalIKTestPropertyDefinitions
Definition: NaturalIKTest.h:42
armarx::NaturalIKTest::onExitComponent
virtual void onExitComponent() override
Definition: NaturalIKTest.cpp:1010
armarx::NaturalIKTest
Brief description of class NaturalIKTest.
Definition: NaturalIKTest.h:59
armarx::PropertyDefinitionContainer::prefix
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Definition: PropertyDefinitionContainer.h:345
armarx::NaturalIKTest::mirrorPose
Eigen::Matrix4f mirrorPose(Eigen::Matrix4f oldPose)
Definition: NaturalIKTest.cpp:976
armarx::NaturalIKTest::GuiParams::targetValid
std::atomic_bool targetValid
Definition: NaturalIKTest.h:78
armarx::NaturalIKTest::onDisconnectComponent
virtual void onDisconnectComponent() override
Definition: NaturalIKTest.cpp:99
armarx::NaturalIKTest::GuiSideParams::ikparams
NaturalIK::Parameters ikparams
Definition: NaturalIKTest.h:71
armarx::NaturalIKTest::GuiSideParams::minElbZ
float minElbZ
Definition: NaturalIKTest.h:69
armarx::NaturalIKTest::mirrorOri
Eigen::Quaternionf mirrorOri(Eigen::Quaternionf oriOld)
Definition: NaturalIKTest.cpp:997
armarx::NaturalIKTest::testTaskRun
void testTaskRun()
Definition: NaturalIKTest.cpp:324
armarx::NaturalIKTest::GuiParams::err_L
Eigen::Vector3f err_L
Definition: NaturalIKTest.h:79
armarx::RemoteGui::TabProxy
Definition: WidgetProxy.h:17
armarx::NaturalIKTest::GuiParams
Definition: NaturalIKTest.h:74
armarx::NaturalIKTest::GuiSideParams::scale
float scale
Definition: NaturalIKTest.h:68
armarx::NaturalIKTest::GuiSideParams::setOri
std::atomic_bool setOri
Definition: NaturalIKTest.h:70
armarx::NaturalIKTest::GuiSideParams::targetRotation
Eigen::Vector3f targetRotation
Definition: NaturalIKTest.h:67
armarx::NaturalIKTest::GuiSideParams
Definition: NaturalIKTest.h:64
armarx::NaturalIKTest::GuiParams::err_R
Eigen::Vector3f err_R
Definition: NaturalIKTest.h:79
armarx::NaturalIKTest::GuiParams::p_R
GuiSideParams p_R
Definition: NaturalIKTest.h:76
armarx::RemoteGuiComponentPluginUser
Definition: RemoteGuiComponentPlugin.h:221
armarx::NaturalIKTest::vizTaskRun
void vizTaskRun()
Definition: NaturalIKTest.cpp:623
armarx::NaturalIKTest::onConnectComponent
virtual void onConnectComponent() override
Definition: NaturalIKTest.cpp:83
armarx::NaturalIKTest::GuiParams::p_L
GuiSideParams p_L
Definition: NaturalIKTest.h:77
Component.h
armarx::Component
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Definition: Component.h:91
armarx::NaturalIKTest::buildGui
RemoteGui::WidgetPtr buildGui()
Definition: NaturalIKTest.cpp:106
armarx::WidgetDescription::WidgetPtr
::IceInternal::Handle<::armarx::WidgetDescription::Widget > WidgetPtr
Definition: NJointControllerBase.h:67
armarx::NaturalIKTest::getDefaultName
virtual std::string getDefaultName() const override
Definition: NaturalIKTest.cpp:64
armarx::NaturalIKTest::GuiSideParams::target
Eigen::Vector3f target
Definition: NaturalIKTest.h:66
armarx::NaturalIKTest::onInitComponent
virtual void onInitComponent() override
Definition: NaturalIKTest.cpp:70
armarx::ComponentPropertyDefinitions
Default component property definition container.
Definition: Component.h:69
armarx::Quaternion< float, 0 >
IceUtil::Handle< class PropertyDefinitionContainer >
IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface >
armarx::NaturalIKTest::processGui
void processGui(RemoteGui::TabProxy &prx)
Definition: NaturalIKTest.cpp:185
armarx::NaturalIKTestPropertyDefinitions::NaturalIKTestPropertyDefinitions
NaturalIKTestPropertyDefinitions(std::string prefix)
Definition: NaturalIKTest.cpp:49
armarx::NaturalIKTest::GuiParams::useCompositeIK
std::atomic_bool useCompositeIK
Definition: NaturalIKTest.h:81
RemoteGuiComponentPlugin.h
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
NaturalIK.h