GetIndexToThumbDistanceRightHand.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of ArmarX.
3
*
4
* Copyright (C) 2014-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5
*
6
* ArmarX is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*
10
* ArmarX is distributed in the hope that it will be useful, but
11
* WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*
18
* @package RobotSkillTemplates::HandGroup
19
* @author Simon Ottenhaus ( simon dot ottenhaus at kit dot edu )
20
* @date 2015
21
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22
* GNU General Public License
23
*/
24
25
#include "
GetIndexToThumbDistanceRightHand.h
"
26
27
#include <
RobotAPI/libraries/core/Pose.h
>
28
#include <
RobotAPI/libraries/core/remoterobot/RemoteRobot.h
>
29
30
#include "
HandGroupStatechartContext.h
"
31
32
using namespace
armarx
;
33
using namespace
HandGroup;
34
35
// DO NOT EDIT NEXT LINE
36
GetIndexToThumbDistanceRightHand::SubClassRegistry
37
GetIndexToThumbDistanceRightHand::Registry
(GetIndexToThumbDistanceRightHand::GetName(),
38
&
GetIndexToThumbDistanceRightHand::CreateInstance
);
39
40
GetIndexToThumbDistanceRightHand::GetIndexToThumbDistanceRightHand
(
41
const
XMLStateConstructorParams
& stateData) :
42
XMLStateTemplate
<
GetIndexToThumbDistanceRightHand
>(stateData),
43
GetIndexToThumbDistanceRightHandGeneratedBase<
GetIndexToThumbDistanceRightHand
>(stateData)
44
{
45
}
46
47
void
48
GetIndexToThumbDistanceRightHand::onEnter
()
49
{
50
HandGroupStatechartContext
* context = getContext<HandGroupStatechartContext>();
51
VirtualRobot::RobotNodePtr indexRFingertipPtr =
52
context->
getRobot
()->getRobotNode(
"Index R Fingertip"
);
53
VirtualRobot::RobotNodePtr thumbRFingertipPtr =
54
context->
getRobot
()->getRobotNode(
"Thumb R Fingertip"
);
55
56
// object: distance = 95
57
// open: distance = 155
58
// close (empty) distance = 27
59
60
Eigen::Vector3f indexRFingertipPos = indexRFingertipPtr->getGlobalPose().block<3, 1>(0, 3);
61
Eigen::Vector3f thumbRFingertipPos = thumbRFingertipPtr->getGlobalPose().block<3, 1>(0, 3);
62
float
distance
= (indexRFingertipPos - thumbRFingertipPos).
norm
();
63
out.setDistance(
distance
);
64
emitDone();
65
}
66
67
void
68
GetIndexToThumbDistanceRightHand::run
()
69
{
70
// put your user code for the execution-phase here
71
// runs in seperate thread, thus can do complex operations
72
// should check constantly whether isRunningTaskStopped() returns true
73
74
// uncomment this if you need a continous run function. Make sure to use sleep or use blocking wait to reduce cpu load.
75
// while (!isRunningTaskStopped()) // stop run function if returning true
76
// {
77
// // do your calculations
78
// }
79
}
80
81
void
82
GetIndexToThumbDistanceRightHand::onBreak
()
83
{
84
// put your user code for the breaking point here
85
// execution time should be short (<100ms)
86
}
87
88
void
89
GetIndexToThumbDistanceRightHand::onExit
()
90
{
91
// put your user code for the exit point here
92
// execution time should be short (<100ms)
93
}
94
95
// DO NOT EDIT NEXT FUNCTION
96
XMLStateFactoryBasePtr
97
GetIndexToThumbDistanceRightHand::CreateInstance
(
XMLStateConstructorParams
stateData)
98
{
99
return
XMLStateFactoryBasePtr
(
new
GetIndexToThumbDistanceRightHand
(stateData));
100
}
armarx::HandGroup::GetIndexToThumbDistanceRightHand::CreateInstance
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
Definition:
GetIndexToThumbDistanceRightHand.cpp:97
RemoteRobot.h
armarx::HandGroup::HandGroupStatechartContext
Definition:
HandGroupStatechartContext.h:69
Pose.h
armarx::XMLStateConstructorParams
Definition:
XMLState.h:49
armarx::HandGroup::HandGroupStatechartContext::getRobot
const VirtualRobot::RobotPtr getRobot()
Definition:
HandGroupStatechartContext.h:84
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onBreak
void onBreak() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:82
armarx::XMLStateFactoryBasePtr
IceInternal::Handle< XMLStateFactoryBase > XMLStateFactoryBasePtr
Definition:
XMLState.h:64
armarx::HandGroup::GetIndexToThumbDistanceRightHand::Registry
static SubClassRegistry Registry
Definition:
GetIndexToThumbDistanceRightHand.h:45
HandGroupStatechartContext.h
IceInternal::Handle
Definition:
forward_declarations.h:8
armarx::XMLStateTemplate
Class for legacy to stay compatible with old statecharts.
Definition:
XMLState.h:146
GetIndexToThumbDistanceRightHand.h
armarx::HandGroup::GetIndexToThumbDistanceRightHand::run
void run() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:68
armarx::HandGroup::GetIndexToThumbDistanceRightHand::GetIndexToThumbDistanceRightHand
GetIndexToThumbDistanceRightHand(const XMLStateConstructorParams &stateData)
Definition:
GetIndexToThumbDistanceRightHand.cpp:40
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onExit
void onExit() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:89
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onEnter
void onEnter() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:48
distance
double distance(const Point &a, const Point &b)
Definition:
point.hpp:95
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition:
ArmarXTimeserver.cpp:27
armarx::HandGroup::GetIndexToThumbDistanceRightHand
Definition:
GetIndexToThumbDistanceRightHand.h:31
norm
double norm(const Point &a)
Definition:
point.hpp:102
RobotSkillTemplates
statecharts
HandGroup
GetIndexToThumbDistanceRightHand.cpp
Generated on Sat Mar 29 2025 09:17:33 for armarx_documentation by
1.8.17