HumanPoseWriter.h
Go to the documentation of this file.
1#pragma once
2
3
4#include <mutex>
5#include <optional>
6#include <string>
7
9
13
14#include <VisionX/libraries/armem_human/aron/HumanPose.aron.generated.h>
15#include <VisionX/libraries/armem_human/server/HumanMemoryServerInterface.h>
17
19{
20
22 {
23 public:
25
26 Writer();
27
28 ~Writer() override;
29
31 void connect(armem::client::MemoryNameSystem& memoryNameSystem);
32
33 std::string
34 propertyPrefix() const override
35 {
36 return "mem.human.pose.";
37 };
38
39 Properties
40 defaultProperties() const override
41 {
42 return Properties{.memoryName = "Human", .coreSegmentName = "Pose", .providerName = ""};
43 };
44
45 // FIXME remove provider, add to c'tor
46 bool commitHumanPose(const HumanPose& humanPose,
47 const std::string& provider,
48 const armem::Time& referencedTime);
49
50 bool commitHumanPoses(const std::vector<HumanPose>& humanPoses,
51 const std::string& provider,
52 const armem::Time& referencedTime);
53
54 bool commitHumanPoseInCameraFrame(const HumanPose& humanPose,
55 const std::string& provider,
56 const armem::Time& referencedTime);
57
58 /**
59 * @brief Calls a dedicated interface of the human memory in order to resolve keypoints
60 * in several frames given the detection in the camera frame.
61 * @param humanPose
62 * @param provider
63 * @return
64 */
65 bool commitHumanPosesInCameraFrame(const std::vector<HumanPose>& humanPoses,
66 const std::string& provider,
67 const armem::Time& referencedTime);
68
69 private:
70 armem::human::HumanMemoryServerInterfacePrx humanMemory;
71 };
72
73} // namespace armarx::armem::human::client
The memory name system (MNS) client.
bool commitHumanPose(const HumanPose &humanPose, const std::string &provider, const armem::Time &referencedTime)
void connect(armem::client::MemoryNameSystem &memoryNameSystem)
std::string propertyPrefix() const override
bool commitHumanPosesInCameraFrame(const std::vector< HumanPose > &humanPoses, const std::string &provider, const armem::Time &referencedTime)
Calls a dedicated interface of the human memory in order to resolve keypoints in several frames given...
bool commitHumanPoseInCameraFrame(const HumanPose &humanPose, const std::string &provider, const armem::Time &referencedTime)
bool commitHumanPoses(const std::vector< HumanPose > &humanPoses, const std::string &provider, const armem::Time &referencedTime)
Properties defaultProperties() const override
void registerPropertyDefinitions(armarx::PropertyDefinitionsPtr &def)
armarx::core::time::DateTime Time
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.