84 objpose::provider::RequestObjectsOutput
85 requestObjects(
const objpose::provider::RequestObjectsInput& input,
86 const Ice::Current& )
override;
111 Eigen::Matrix4f globalPose = Eigen::Matrix4f::Identity();
113 std::optional<simox::OrientedBoxf> localOOBB;
116 bool alwaysVisible =
false;
119 void detectionTaskRun();
122 void detectAndReport();
125 const armarx::RobotVisuData* findRobot(
const armarx::SceneVisuData& sceneData)
const;
128 std::vector<SceneObject> collectSceneObjects(
const armarx::SceneVisuData& sceneData);
136 std::optional<simox::OrientedBoxf> getLocalOOBB(
const armarx::ObjectID& objectID);
139 std::optional<fake_object_detector::Frustum>
140 buildFrustum(
const armarx::RobotVisuData& robot)
const;
143 std::vector<fake_object_detector::Box>
144 collectRobotBoxes(
const armarx::RobotVisuData& robotData);
149 bool isVisible(
const SceneObject&
object,
151 const std::vector<fake_object_detector::Box>& occluders)
const;
156 void removeExpiredRequests(
const DateTime& time);
160 static const std::string defaultName;
162 SimulatorInterfacePrx simulatorPrx;
168 std::map<std::string, std::optional<simox::OrientedBoxf>> oobbCache;
172 std::string robotModelName;
173 bool robotModelLoadFailed =
false;
175 mutable std::mutex activeRequestsMutex;
177 std::map<std::string, armarx::DateTime> activeRequests;
180 std::set<std::string> warnedMissingOOBB;
181 bool warnedMissingCameraNode =
false;
184 std::set<std::string> alwaysVisibleDatasets;
188 std::int64_t updateFrequency = 10;
190 std::string detectionMode =
"FieldOfView";
194 std::string robotName;
195 std::string cameraFrame =
"DepthCameraSim";
197 float horizontalFovDeg = 90.0F;
198 float verticalFovDeg = 60.0F;
199 float minDistance = 20.0F;
200 float maxDistance = 5000.0F;
201 std::string cameraForwardAxis =
"+Z";
204 std::string cameraUpAxis =
"+X";
205 bool requireFullyInFov =
false;
207 int frontFaceSampleGrid = 3;
208 float minVisibleFraction = 0.5F;
209 bool occlusionByObjects =
true;
210 bool occlusionByRobot =
true;
211 float rayEpsilon = 1.0F;
213 float fallbackOobbSize = 100.0F;
214 float confidence = 1.0F;
215 std::string ignoredObjects;
216 std::string alwaysVisibleDatasets;
217 bool requestedObjectsOnly =
false;
220 Properties properties;
223 std::set<std::string> ignoredObjects;
226 Eigen::Vector3f cameraForwardLocal = Eigen::Vector3f::UnitZ();
227 Eigen::Vector3f cameraUpLocal = -Eigen::Vector3f::UnitY();