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 
18 namespace 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 
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 
69 
70 
71  void toIce(data::ProvidedObjectPose& ice, const ProvidedObjectPose& pose);
72  data::ProvidedObjectPose toIce(const ProvidedObjectPose& pose);
73 
76 
77 
78 } // namespace armarx::objpose
armarx::objpose::ProvidedObjectPose::fromIce
void fromIce(const data::ProvidedObjectPose &ice)
Definition: ProvidedObjectPose.cpp:24
armarx::ObjectID
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
Definition: ObjectID.h:10
armarx::objpose::ProvidedObjectPose::objectID
armarx::ObjectID objectID
The object ID, i.e. dataset, class name and instance name.
Definition: ProvidedObjectPose.h:44
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
DateTime.h
armarx::objpose::fromIce
void fromIce(const Box &box, simox::OrientedBox< float > &oobb)
armarx::objpose::ProvidedObjectPose::objectPoseFrame
std::string objectPoseFrame
Definition: ProvidedObjectPose.h:47
armarx::objpose::ProvidedObjectPose::toIce
data::ProvidedObjectPose toIce() const
Definition: ProvidedObjectPose.cpp:44
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:570
armarx::objpose::ProvidedObjectPose::objectPoseGaussian
std::optional< PoseManifoldGaussian > objectPoseGaussian
Definition: ProvidedObjectPose.h:48
armarx::objpose
Definition: objpose.h:6
ObjectID.h
armarx::objpose::ProvidedObjectPose::providerName
std::string providerName
Name of the providing component.
Definition: ProvidedObjectPose.h:37
armarx::objpose::ProvidedObjectPose::ProvidedObjectPose
ProvidedObjectPose()
Definition: ProvidedObjectPose.cpp:14
PoseManifoldGaussian.h
armarx::objpose::ProvidedObjectPoseSeq
std::vector< ProvidedObjectPose > ProvidedObjectPoseSeq
Definition: forward_declarations.h:25
armarx::objpose::ProvidedObjectPose
An object pose provided by an ObjectPoseProvider.
Definition: ProvidedObjectPose.h:24
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::objpose::toIce
objpose::AABB toIce(const simox::AxisAlignedBoundingBox &aabb)
Definition: ice_conversions.cpp:103
forward_declarations.h
armarx::objpose::ProvidedObjectPose::objectType
ObjectType objectType
Known or unknown object.
Definition: ProvidedObjectPose.h:39
armarx::objpose::ProvidedObjectPose::isStatic
bool isStatic
Whether object is static. Static objects don't decay.
Definition: ProvidedObjectPose.h:41
armarx::objpose::ProvidedObjectPose::objectJointValues
std::map< std::string, float > objectJointValues
The object's joint values if it is articulated.
Definition: ProvidedObjectPose.h:51
armarx::objpose::ProvidedObjectPose::localOOBB
std::optional< simox::OrientedBoxf > localOOBB
Object bounding box in object's local coordinate frame.
Definition: ProvidedObjectPose.h:61
armarx::objpose::ProvidedObjectPose::confidence
float confidence
Confidence in [0, 1] (1 = full, 0 = none).
Definition: ProvidedObjectPose.h:55
armarx::objpose::ProvidedObjectPose::timestamp
DateTime timestamp
Source timestamp.
Definition: ProvidedObjectPose.h:57
armarx::objpose::ProvidedObjectPose::objectPose
Eigen::Matrix4f objectPose
Definition: ProvidedObjectPose.h:46
armarx::core::time::DateTime::Invalid
static DateTime Invalid()
Definition: DateTime.cpp:57