ProvidedObjectPose.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <optional>
5#include <vector>
6
7#include <Eigen/Core>
8
9#include <SimoxUtility/shapes/OrientedBox.h>
10
12
13#include <RobotAPI/interface/objectpose/object_pose_types.h>
17
18namespace armarx::objpose
19{
20
21 /**
22 * @brief An object pose provided by an ObjectPoseProvider.
23 */
25 {
26 public:
28 ProvidedObjectPose(const data::ProvidedObjectPose& ice);
29
30 void fromIce(const data::ProvidedObjectPose& ice);
31
32 data::ProvidedObjectPose toIce() const;
33 void toIce(data::ProvidedObjectPose& ice) const;
34
35 public:
36 /// Name of the providing component.
37 std::string providerName;
38 /// Known or unknown object.
39 ObjectType objectType = AnyObject;
40 /// Whether object is static. Static objects don't decay.
41 bool isStatic = false;
42
43 /// The object ID, i.e. dataset, class name and instance name.
45
46 Eigen::Matrix4f objectPose = Eigen::Matrix4f::Identity();
47 std::string objectPoseFrame;
48 std::optional<PoseManifoldGaussian> objectPoseGaussian;
49
50 /// The object's joint values if it is articulated.
51 std::map<std::string, float> objectJointValues;
52
53
54 /// Confidence in [0, 1] (1 = full, 0 = none).
55 float confidence = 0;
56 /// Source timestamp.
58
59 /// Object bounding box in object's local coordinate frame.
60 /// @see oobbRobot(), oobbGlobal()
61 std::optional<simox::OrientedBoxf> localOOBB;
62 };
63
64 void fromIce(const data::ProvidedObjectPose& ice, ProvidedObjectPose& pose);
65 ProvidedObjectPose fromIce(const data::ProvidedObjectPose& ice);
66
67 void fromIce(const data::ProvidedObjectPoseSeq& ice, ProvidedObjectPoseSeq& poses);
68 ProvidedObjectPoseSeq fromIce(const data::ProvidedObjectPoseSeq& ice);
69
70
71 void toIce(data::ProvidedObjectPose& ice, const ProvidedObjectPose& pose);
72 data::ProvidedObjectPose toIce(const ProvidedObjectPose& pose);
73
74 void toIce(data::ProvidedObjectPoseSeq& ice, const ProvidedObjectPoseSeq& poses);
75 data::ProvidedObjectPoseSeq toIce(const ProvidedObjectPoseSeq& poses);
76
77
78} // namespace armarx::objpose
static DateTime Invalid()
Definition DateTime.cpp:57
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
Definition ObjectID.h:11
Represents a point in time.
Definition DateTime.h:25
An object pose provided by an ObjectPoseProvider.
float confidence
Confidence in [0, 1] (1 = full, 0 = none).
armarx::ObjectID objectID
The object ID, i.e. dataset, class name and instance name.
std::string providerName
Name of the providing component.
bool isStatic
Whether object is static. Static objects don't decay.
DateTime timestamp
Source timestamp.
ObjectType objectType
Known or unknown object.
std::map< std::string, float > objectJointValues
The object's joint values if it is articulated.
void fromIce(const data::ProvidedObjectPose &ice)
std::optional< simox::OrientedBoxf > localOOBB
Object bounding box in object's local coordinate frame.
data::ProvidedObjectPose toIce() const
std::optional< PoseManifoldGaussian > objectPoseGaussian
void fromIce(const Box &box, simox::OrientedBox< float > &oobb)
std::vector< ProvidedObjectPose > ProvidedObjectPoseSeq
objpose::AABB toIce(const simox::AxisAlignedBoundingBox &aabb)