87 const VirtualRobot::SceneObjectSetPtr& obstacles,
88 const std::vector<VirtualRobot::RobotPtr>& articulatedObjects,
89 const std::vector<Room>& rooms,
91 const std::string& robotCollisonModelName,
105#if COSTMAP_BUILDER_SIMOX_CONTROL
106 struct CollisionSetupSC
108 std::unique_ptr<simox::control::robot::RobotInterface> robot;
109 std::unique_ptr<simox::control::environment::CollisionRobot<hpp::fcl::OBBRSS>>
112 std::unique_ptr<simox::control::environment::CollisionRobot<hpp::fcl::OBBRSS>>>
114 std::unique_ptr<hpp::fcl::BroadPhaseCollisionManager> obstacleCollisionManager;
117 std::vector<std::unique_ptr<simox::control::robot::RobotInterface>> scObstacles;
120 struct CollisionSetupSC
125 struct CollisionSetupSx
128 VirtualRobot::CollisionModelPtr robotCollisionModel;
129 VirtualRobot::SceneObjectSetPtr filteredObstacles;
132 using CollisionSetup = std::variant<std::monostate, CollisionSetupSC, CollisionSetupSx>;
135 const CollisionSetup& collisionSetupVariant);
137 void fillGridCosts(Costmap& costmap);
138 void extendGridCosts(Costmap& costmap);
142 void applyFnToCostmap(Costmap& costmap,
143 const std::function<
float(
const CollisionSetup& collisionSetup,
144 const std::optional<float>,
148 VirtualRobot::SceneObjectSetPtr filterObjectsForCostmap(
const Costmap& costmap);
150 void initializeEmptyMask(Costmap& costmap);
153 const VirtualRobot::SceneObjectSetPtr obstacles;
154 const std::vector<VirtualRobot::RobotPtr> articulatedObjects;
155 std::vector<Room>
rooms;
156 const Costmap::Parameters parameters;
157 const std::string robotCollisionModelName;
159 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)