From 657d31cb06f8ed47ac5d8bd737e82237cc428869 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Tue, 29 Jun 2021 15:33:48 +0200 Subject: [PATCH] Add isStatic to ObjectPose --- source/RobotAPI/interface/objectpose/object_pose_types.ice | 4 ++++ source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp | 3 +++ source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h | 6 ++++++ source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml | 4 ++++ .../libraries/ArmarXObjects/aron_conversions/objpose.cpp | 4 ++-- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/source/RobotAPI/interface/objectpose/object_pose_types.ice b/source/RobotAPI/interface/objectpose/object_pose_types.ice index 385da35e3..eb23d767e 100644 --- a/source/RobotAPI/interface/objectpose/object_pose_types.ice +++ b/source/RobotAPI/interface/objectpose/object_pose_types.ice @@ -64,6 +64,8 @@ module armarx string providerName; /// Known or unknown object. ObjectTypeEnum objectType = AnyObject; + /// Whether object is static. Static objects don't decay. + bool isStatic = false; /// The object ID, i.e. dataset and name. armarx::data::ObjectID objectID; @@ -92,6 +94,8 @@ module armarx string providerName; /// Known or unknown object. ObjectTypeEnum objectType = AnyObject; + /// Whether object is static. Static objects don't decay. + bool isStatic = false; /// The object ID, i.e. dataset and name. armarx::data::ObjectID objectID; diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp index 171da9c1a..b37f432ef 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp +++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp @@ -29,6 +29,7 @@ namespace armarx::objpose { providerName = ice.providerName; objectType = ice.objectType; + isStatic = ice.isStatic; armarx::fromIce(ice.objectID, objectID); objectPoseRobot = ::armarx::fromIce(ice.objectPoseRobot); @@ -58,6 +59,7 @@ namespace armarx::objpose { ice.providerName = providerName; ice.objectType = objectType; + ice.isStatic = isStatic; armarx::toIce(ice.objectID, objectID); ice.objectPoseRobot = new Pose(objectPoseRobot); @@ -80,6 +82,7 @@ namespace armarx::objpose { providerName = provided.providerName; objectType = provided.objectType; + isStatic = provided.isStatic; armarx::fromIce(provided.objectID, objectID); objectPoseOriginal = ::armarx::fromIce(provided.objectPose); diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h index 023d6351f..754c1a1b1 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h +++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h @@ -1,6 +1,9 @@ #pragma once #include <optional> +#include <map> +#include <vector> + #include <Eigen/Core> @@ -47,6 +50,8 @@ namespace armarx::objpose std::string providerName; /// Known or unknown object. ObjectTypeEnum objectType = AnyObject; + /// Whether object is static. Static objects don't decay. + bool isStatic = false; /// The object ID, i.e. dataset, class name and instance name. armarx::ObjectID objectID; @@ -90,6 +95,7 @@ namespace armarx::objpose void updateAttached(VirtualRobot::RobotPtr agent); }; using ObjectPoseSeq = std::vector<ObjectPose>; + using ObjectPoseMap = std::map<ObjectID, ObjectPose>; void fromIce(const data::ObjectAttachmentInfo& ice, ObjectAttachmentInfo& attachment); diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml index e9701dc24..cc1a3a046 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml +++ b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml @@ -38,6 +38,10 @@ ARON DTO of armarx::objpose::ObjectPose. <armarx::objpose::arondto::ObjectType /> </ObjectChild> + <ObjectChild key='isStatic'> + <bool /> + </ObjectChild> + <ObjectChild key='objectID'> <armarx::arondto::ObjectID /> </ObjectChild> diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp b/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp index 77880a524..26f07a947 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp +++ b/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp @@ -61,8 +61,8 @@ void armarx::objpose::toAron(arondto::ObjectType& dto, const ObjectTypeEnum& bo) void armarx::objpose::fromAron(const arondto::ObjectPose& dto, ObjectPose& bo) { bo.providerName = dto.providerName; - fromAron(dto.objectType, bo.objectType); + bo.isStatic = dto.isStatic; fromAron(dto.objectID, bo.objectID); bo.objectPoseRobot = dto.objectPoseRobot; @@ -102,8 +102,8 @@ void armarx::objpose::fromAron(const arondto::ObjectPose& dto, ObjectPose& bo) void armarx::objpose::toAron(arondto::ObjectPose& dto, const ObjectPose& bo) { dto.providerName = bo.providerName; - toAron(dto.objectType, bo.objectType); + dto.isStatic = bo.isStatic; toAron(dto.objectID, bo.objectID); dto.objectPoseRobot = bo.objectPoseRobot; -- GitLab