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
#include "
HandGroupStatechartContext.h
"
27
28
#include <
RobotAPI/libraries/core/remoterobot/RemoteRobot.h
>
29
#include <
RobotAPI/libraries/core/Pose.h
>
30
31
using namespace
armarx
;
32
using namespace
HandGroup;
33
34
// DO NOT EDIT NEXT LINE
35
GetIndexToThumbDistanceRightHand::SubClassRegistry
GetIndexToThumbDistanceRightHand::Registry
(GetIndexToThumbDistanceRightHand::GetName(), &
GetIndexToThumbDistanceRightHand::CreateInstance
);
36
37
38
39
GetIndexToThumbDistanceRightHand::GetIndexToThumbDistanceRightHand
(
const
XMLStateConstructorParams
& stateData) :
40
XMLStateTemplate
<
GetIndexToThumbDistanceRightHand
>(stateData), GetIndexToThumbDistanceRightHandGeneratedBase<
GetIndexToThumbDistanceRightHand
>(stateData)
41
{
42
}
43
44
void
GetIndexToThumbDistanceRightHand::onEnter
()
45
{
46
HandGroupStatechartContext
* context = getContext<HandGroupStatechartContext>();
47
VirtualRobot::RobotNodePtr indexRFingertipPtr = context->
getRobot
()->getRobotNode(
"Index R Fingertip"
);
48
VirtualRobot::RobotNodePtr thumbRFingertipPtr = context->
getRobot
()->getRobotNode(
"Thumb R Fingertip"
);
49
50
// object: distance = 95
51
// open: distance = 155
52
// close (empty) distance = 27
53
54
Eigen::Vector3f indexRFingertipPos = indexRFingertipPtr->getGlobalPose().block<3, 1>(0, 3);
55
Eigen::Vector3f thumbRFingertipPos = thumbRFingertipPtr->getGlobalPose().block<3, 1>(0, 3);
56
float
distance
= (indexRFingertipPos - thumbRFingertipPos).
norm
();
57
out.setDistance(
distance
);
58
emitDone();
59
}
60
61
void
GetIndexToThumbDistanceRightHand::run
()
62
{
63
// put your user code for the execution-phase here
64
// runs in seperate thread, thus can do complex operations
65
// should check constantly whether isRunningTaskStopped() returns true
66
67
// uncomment this if you need a continous run function. Make sure to use sleep or use blocking wait to reduce cpu load.
68
// while (!isRunningTaskStopped()) // stop run function if returning true
69
// {
70
// // do your calculations
71
// }
72
73
}
74
75
void
GetIndexToThumbDistanceRightHand::onBreak
()
76
{
77
// put your user code for the breaking point here
78
// execution time should be short (<100ms)
79
}
80
81
void
GetIndexToThumbDistanceRightHand::onExit
()
82
{
83
// put your user code for the exit point here
84
// execution time should be short (<100ms)
85
86
}
87
88
89
// DO NOT EDIT NEXT FUNCTION
90
XMLStateFactoryBasePtr
GetIndexToThumbDistanceRightHand::CreateInstance
(
XMLStateConstructorParams
stateData)
91
{
92
return
XMLStateFactoryBasePtr
(
new
GetIndexToThumbDistanceRightHand
(stateData));
93
}
94
armarx::HandGroup::GetIndexToThumbDistanceRightHand::CreateInstance
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
Definition:
GetIndexToThumbDistanceRightHand.cpp:90
RemoteRobot.h
armarx::HandGroup::HandGroupStatechartContext
Definition:
HandGroupStatechartContext.h:63
Pose.h
armarx::XMLStateConstructorParams
Definition:
XMLState.h:50
armarx::HandGroup::HandGroupStatechartContext::getRobot
const VirtualRobot::RobotPtr getRobot()
Definition:
HandGroupStatechartContext.h:76
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onBreak
void onBreak() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:75
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:137
GetIndexToThumbDistanceRightHand.h
armarx::HandGroup::GetIndexToThumbDistanceRightHand::run
void run() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:61
armarx::HandGroup::GetIndexToThumbDistanceRightHand::GetIndexToThumbDistanceRightHand
GetIndexToThumbDistanceRightHand(const XMLStateConstructorParams &stateData)
Definition:
GetIndexToThumbDistanceRightHand.cpp:39
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onExit
void onExit() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:81
armarx::XMLStateFactoryBasePtr
IceInternal::Handle< XMLStateFactoryBase > XMLStateFactoryBasePtr
Definition:
XMLState.h:65
armarx::HandGroup::GetIndexToThumbDistanceRightHand::onEnter
void onEnter() override
Definition:
GetIndexToThumbDistanceRightHand.cpp:44
distance
double distance(const Point &a, const Point &b)
Definition:
point.hpp:88
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition:
ArmarXTimeserver.cpp:28
armarx::HandGroup::GetIndexToThumbDistanceRightHand
Definition:
GetIndexToThumbDistanceRightHand.h:31
norm
double norm(const Point &a)
Definition:
point.hpp:94
RobotSkillTemplates
statecharts
HandGroup
GetIndexToThumbDistanceRightHand.cpp
Generated on Sat Oct 12 2024 09:14:13 for armarx_documentation by
1.8.17