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
67 Eigen::Vector3f mean_position;
68 armarx::Keypoint3DMap keypoints;
72 struct HumanApproximation
75 std::map<std::string, std::pair<IceUtil::Time, Eigen::Vector2f>> transformed_keypoints;
90 void setEnabled(
bool enable,
const Ice::Current& = Ice::emptyCurrent)
override;
91 void enable(
const Ice::Current& = Ice::emptyCurrent)
override;
92 void disable(
const Ice::Current& = Ice::emptyCurrent)
override;
93 void report3DKeypoints(
const armarx::HumanPose3DMap& kpml,
long timestamp,
const Ice::Current& = Ice::emptyCurrent)
override;
112 find_closest_human(
const std::vector<armarx::Keypoint3DMap>& kpml,
const IceUtil::Time& time);
115 approximate_human(
const OpenPoseResult& human);
124 int m_onlyUseFirstNResults;
126 unsigned int m_warn_distance;
128 float m_human_confidence_filter_value;
129 float m_min_velocity_treshold;
132 unsigned int m_pose_buffer_fillctr = 0;
133 unsigned int m_pose_buffer_index = 0;
138 HumanApproximation last_human_approximation;
143 std::mutex m_human_mutex;
144 std::mutex m_enabled_mutex;