ReachOutToHumanPose.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 RobotSkillTemplates::HandOverGroup
17  * @author Mirko Waechter ( mirko dot waechter at kit dot edu )
18  * @date 2018
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #ifndef _ARMARX_XMLUSERCODE_RobotSkillTemplates_HandOverGroup_ReachOutToHumanPose_H
24 #define _ARMARX_XMLUSERCODE_RobotSkillTemplates_HandOverGroup_ReachOutToHumanPose_H
25 
26 #include <Eigen/Core>
27 
28 #include <RobotSkillTemplates/statecharts/HandOverGroup/ReachOutToHumanPose.generated.h>
29 
30 namespace armarx::HandOverGroup
31 {
32  class ReachOutToHumanPose : public ReachOutToHumanPoseGeneratedBase<ReachOutToHumanPose>
33  {
34  public:
37  ReachOutToHumanPoseGeneratedBase<ReachOutToHumanPose>(stateData)
38  {
39  }
40 
41  // inherited from StateBase
42  void onEnter() override;
43  void run() override;
44  // void onBreak() override;
45  void onExit() override;
46 
47  Eigen::VectorXf calculateCentroid(const armarx::Keypoint3DMap& keypointMap);
48  armarx::Keypoint3DMap
49  getClosestPerson(const std::vector<armarx::Keypoint3DMap>& trackingData);
50  bool isKeypointValid(const armarx::Keypoint3D& point) const;
51 
52  // static functions for AbstractFactory Method
54  static SubClassRegistry Registry;
55 
56  // DO NOT INSERT ANY CLASS MEMBERS,
57  // use stateparameters instead,
58  // if classmember are neccessary nonetheless, reset them in onEnter
59  Eigen::VectorXf calculateMedian(const armarx::Keypoint3DMap& keypointMap);
60  Eigen::Vector3f getHeadIKTarget(const armarx::Keypoint3DMap& keypointMap);
61  };
62 } // namespace armarx::HandOverGroup
63 
64 #endif
armarx::HandOverGroup::ReachOutToHumanPose::isKeypointValid
bool isKeypointValid(const armarx::Keypoint3D &point) const
Definition: ReachOutToHumanPose.cpp:740
armarx::HandOverGroup::ReachOutToHumanPose::ReachOutToHumanPose
ReachOutToHumanPose(const XMLStateConstructorParams &stateData)
Definition: ReachOutToHumanPose.h:35
armarx::XMLStateConstructorParams
Definition: XMLState.h:49
armarx::HandOverGroup::ReachOutToHumanPose::calculateMedian
Eigen::VectorXf calculateMedian(const armarx::Keypoint3DMap &keypointMap)
Definition: ReachOutToHumanPose.cpp:677
armarx::HandOverGroup
Definition: HandOverGroupRemoteStateOfferer.h:31
IceInternal::Handle
Definition: forward_declarations.h:8
armarx::XMLStateTemplate
Class for legacy to stay compatible with old statecharts.
Definition: XMLState.h:146
armarx::HandOverGroup::ReachOutToHumanPose::CreateInstance
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
Definition: ReachOutToHumanPose.cpp:753
armarx::HandOverGroup::ReachOutToHumanPose::getClosestPerson
armarx::Keypoint3DMap getClosestPerson(const std::vector< armarx::Keypoint3DMap > &trackingData)
Definition: ReachOutToHumanPose.cpp:719
armarx::HandOverGroup::ReachOutToHumanPose::onExit
void onExit() override
Definition: ReachOutToHumanPose.cpp:607
armarx::HandOverGroup::ReachOutToHumanPose::onEnter
void onEnter() override
Definition: ReachOutToHumanPose.cpp:60
armarx::HandOverGroup::ReachOutToHumanPose::getHeadIKTarget
Eigen::Vector3f getHeadIKTarget(const armarx::Keypoint3DMap &keypointMap)
Definition: ReachOutToHumanPose.cpp:626
armarx::HandOverGroup::ReachOutToHumanPose::calculateCentroid
Eigen::VectorXf calculateCentroid(const armarx::Keypoint3DMap &keypointMap)
Definition: ReachOutToHumanPose.cpp:704
armarx::HandOverGroup::ReachOutToHumanPose::Registry
static SubClassRegistry Registry
Definition: ReachOutToHumanPose.h:54
armarx::HandOverGroup::ReachOutToHumanPose::run
void run() override
Definition: ReachOutToHumanPose.cpp:69
armarx::HandOverGroup::ReachOutToHumanPose
Definition: ReachOutToHumanPose.h:32