diff --git a/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt b/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt index 867170f06d57371fee6e25cda2f28ea4dffdda79..f369dd0247620277b719e59891bbff9c88d13e6e 100644 --- a/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt +++ b/source/RobotAPI/components/ObjectPoseObserver/CMakeLists.txt @@ -5,6 +5,7 @@ set(COMPONENT_LIBS ArmarXCore ArmarXCoreInterfaces ArmarXGuiComponentPlugins RobotAPIArmarXObjects RobotAPIComponentPlugins + ArViz ${PROJECT_NAME}Interfaces ) diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp index 773d52d34b432f01c214533d445bb71c440de10c..76fb10b2309054fc190e0e4d646ab8b5312c93a5 100644 --- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp +++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp @@ -382,26 +382,23 @@ namespace armarx const armarx::ObjectID id = objectPose.objectID; std::string key = id.str(); - std::optional<ObjectInfo> objectInfo = objectFinder.findObject(id); - Eigen::Matrix4f pose = visu.inGlobalFrame ? objectPose.objectPoseGlobal : objectPose.objectPoseRobot; - - if (objectInfo) { - viz::Object object = viz::Object(key) - .file(objectInfo->package(), objectInfo->simoxXML().relativePath) - .pose(pose); + viz::Object object = viz::Object(key).pose(pose); + if (std::optional<ObjectInfo> objectInfo = objectFinder.findObject(id)) + { + object.file(objectInfo->package(), objectInfo->simoxXML().relativePath); + } + else + { + object.fileByObjectFinder(id); + } if (visu.alpha < 1) { object.overrideColor(simox::Color::white().with_alpha(visu.alpha)); } - layer.add(object); } - else - { - ARMARX_WARNING << "Cannot visualize object '" << key << "'."; - } if (visu.oobbs && objectPose.localOOBB) {