38 #include <Ice/Current.h>
46 #include <RobotComponents/interface/components/ObstacleDetection/HumanObstacleDetectionInterface.h>
49 #include <RobotAPI/interface/components/ObstacleAvoidance/DynamicObstacleManagerInterface.h>
56 virtual public armarx::HumanObstacleDetectionInterface
66 Eigen::Vector3f mean_position;
67 armarx::Keypoint3DMap keypoints;
71 struct HumanApproximation
74 std::map<std::string, std::pair<IceUtil::Time, Eigen::Vector2f>> transformed_keypoints;
88 void setEnabled(
bool enable,
const Ice::Current& = Ice::emptyCurrent)
override;
89 void enable(
const Ice::Current& = Ice::emptyCurrent)
override;
90 void disable(
const Ice::Current& = Ice::emptyCurrent)
override;
93 const Ice::Current& = Ice::emptyCurrent)
override;
109 OpenPoseResult find_closest_human(
const std::vector<armarx::Keypoint3DMap>& kpml,
112 HumanApproximation approximate_human(
const OpenPoseResult& human);
119 int m_onlyUseFirstNResults;
121 unsigned int m_warn_distance;
123 float m_human_confidence_filter_value;
124 float m_min_velocity_treshold;
127 unsigned int m_pose_buffer_fillctr = 0;
128 unsigned int m_pose_buffer_index = 0;
133 HumanApproximation last_human_approximation;
138 std::mutex m_human_mutex;
139 std::mutex m_enabled_mutex;