83 const VirtualRobot::SceneObjectSetPtr& obstacles,
84 const std::vector<VirtualRobot::RobotPtr>& articulatedObjects,
85 const std::vector<Room>& rooms,
87 const std::string& robotCollisonModelName,
99 static Eigen::MatrixXf
126 VirtualRobot::SceneObjectSetPtr filterObjectsForCostmap(
const Costmap3D&
costmap);
131 struct MapStructCommon
133 std::optional<float> maskOpt;
141 return maskOpt.has_value() and not maskOpt.value();
148 DistanceCalculator distanceCalculator;
151 struct MapStructRobot2D
158 std::optional<DebugOutput2D> debugOutput2D;
160 using MapFn = std::function<
float(
const MapStruct&)>;
161 using MapFnRobot2D = std::function<
float(
const MapStructRobot2D&)>;
162 void applyFnToCostmap(Costmap3D& costmap,
const MapFn& fn);
163 void applyFnToCostmap(Costmap3D& costmap,
const MapFnRobot2D& fn);
165 void initializeEmptyMask(Costmap3D& costmap);
168 const VirtualRobot::SceneObjectSetPtr obstacles;
169 VirtualRobot::SceneObjectSetPtr filteredObstacles;
170 const std::vector<VirtualRobot::RobotPtr> articulatedObjects;
171 std::vector<Room>
rooms;
172 const Costmap3D::Parameters parameters;
173 const std::string robotCollisionModelName;
175 const Costmap3DBuilderParams builderParameters;
177 Eigen::Isometry2f root_T_used_root_2d = Eigen::Isometry2f::Identity();
Costmap3DBuilder(const VirtualRobot::RobotPtr &robot, const VirtualRobot::SceneObjectSetPtr &obstacles, const std::vector< VirtualRobot::RobotPtr > &articulatedObjects, const std::vector< Room > &rooms, const Costmap3D::Parameters ¶meters, const std::string &robotCollisonModelName, const Costmap3DBuilderParams &builderParameters)