96 const VirtualRobot::SceneObjectSetPtr& obstacles,
97 const std::vector<VirtualRobot::RobotPtr>& articulatedObjects,
98 const std::vector<Room>& rooms,
100 const std::string& robotCollisonModelName,
114#if COSTMAP_BUILDER_SIMOX_CONTROL
115 struct CollisionSetupSC
117 std::unique_ptr<simox::control::robot::RobotInterface> robot;
118 std::unique_ptr<simox::control::environment::CollisionRobot<hpp::fcl::OBBRSS>>
128 std::vector<std::unique_ptr<hpp::fcl::CollisionObject>> obstacleColObjects;
129 std::unique_ptr<hpp::fcl::BroadPhaseCollisionManager> obstacleCollisionManager;
132 struct CollisionSetupSC
137 struct CollisionSetupSx
140 VirtualRobot::CollisionModelPtr robotCollisionModel;
141 VirtualRobot::SceneObjectSetPtr filteredObstacles;
144 using CollisionSetup = std::variant<std::monostate, CollisionSetupSC, CollisionSetupSx>;
147 const CollisionSetup& collisionSetupVariant);
149 void fillGridCosts(Costmap& costmap);
150 void extendGridCosts(Costmap& costmap);
154 void applyFnToCostmap(Costmap& costmap,
155 const std::function<
float(
const CollisionSetup& collisionSetup,
156 const std::optional<float>,
160 VirtualRobot::SceneObjectSetPtr filterObjectsForCostmap(
const Costmap& costmap);
162#if COSTMAP_BUILDER_SIMOX_CONTROL
163 using SharedObstacleColObjects = std::vector<std::shared_ptr<hpp::fcl::CollisionObject>>;
173 SharedObstacleColObjects buildSharedObstacleCollisionObjects()
const;
176 void initializeEmptyMask(Costmap& costmap);
179 const VirtualRobot::SceneObjectSetPtr obstacles;
180 const std::vector<VirtualRobot::RobotPtr> articulatedObjects;
181 std::vector<Room>
rooms;
182 const Costmap::Parameters parameters;
183 const std::string robotCollisionModelName;
185 const CostmapBuilderParams builderParameters;
CostmapBuilder(const VirtualRobot::RobotPtr &robot, const VirtualRobot::SceneObjectSetPtr &obstacles, const std::vector< VirtualRobot::RobotPtr > &articulatedObjects, const std::vector< Room > &rooms, const Costmap::Parameters ¶meters, const std::string &robotCollisonModelName, const CostmapBuilderParams &builderParameters)