KnownGraspProviderSegment.h
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4#include <optional>
5
7
12#include <RobotAPI/libraries/armem_grasping/aron/KnownGraspCandidate.aron.generated.h>
13
15{
17 {
19
20 public:
22
23 void init() override;
24
25 private:
26 void loadMemory();
27 std::optional<arondto::KnownGraspInfo> knownGraspInfoFromObjectInfo(const ObjectInfo&);
28
29 struct GraspFileInfo
30 {
31 PackageFileLocation fileLocInfo;
32 ObjectID objectId;
33
34 static GraspFileInfo FromObjectInfo(const ObjectInfo& objectInfo)
35 {
36 const std::string objectClassName = objectInfo.className();
37 PackageFileLocation fileLocInfo = objectInfo.file(".xml", "_Grasps");
38
39 return GraspFileInfo{.fileLocInfo = fileLocInfo, .objectId = objectInfo.id()};
40 }
41 };
42
43 std::optional<arondto::KnownGraspInfo>
44 knownGraspInfoFromFile(const GraspFileInfo& graspFileInfo);
45
46 void installFileWatcher();
47
49
50 public:
51 static const constexpr char* CORE_SEGMENT_NAME = "KnownGraspCandidate";
52 static const constexpr char* PROVIDER_SEGMENT_NAME = "PriorKnowledgeData";
53
54 private:
55 static const constexpr char* PREPOSE_SUFFIX = "_Prepose";
56 static const constexpr char* GRASP_OPTIONAL_SUFFIX = "_Grasp";
57 };
58} // namespace armarx::armem::grasping::segment
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
Definition ObjectID.h:11
Accessor for the object files.
Definition ObjectInfo.h:37
std::string className() const
PackageFileLocation file(const std::string &extension, const std::string &suffix="", bool fixDataPath=false) const
ObjectID id() const
Return "dataset/name".
IceUtil::Handle< RunningTask< T > > pointer_type
Shared pointer type for convenience.
KnownGraspProviderSegment(armem::server::MemoryToIceAdapter &iceMemory)
Helps connecting a Memory server to the Ice interface.