17 #include <armarx/navigation/algorithms/aron/Costmap.aron.generated.h>
18 #include <armarx/navigation/algorithms/aron/Room.aron.generated.h>
19 #include <armarx/navigation/algorithms/aron/ShortestPathFasterAlgorithmParams.aron.generated.h>
35 toAron(
const std::optional<Costmap::Mask>& mask)
37 if (not mask.has_value())
49 Costmap::Mask::value_type>(nav);
57 dto.cellSize =
bo.params().cellSize;
58 dto.robotRadius =
bo.params().robotRadius;
62 const Eigen::Isometry2f origin =
63 bo.origin() * Eigen::Translation2f{
bo.getLocalSceneBounds().min};
66 auto arn = dto.toAron();
67 arn->setElementCopy(
"mask",
toAron(
bo.getMask()));
68 arn->setElementCopy(
"grid",
toAron(
bo.getGrid()));
76 const auto aronDto = armem::tryCast<algorithms::arondto::Costmap>(entityInstance);
78 const auto& dto = *aronDto;
83 .
binaryGrid =
false, .cellSize = dto.cellSize, .robotRadius = dto.robotRadius};
86 const auto gridNavigator =
92 aron::converter::AronEigenConverter::ConvertToDynamicMatrix<Costmap::Grid::value_type>(
96 std::optional<Costmap::Mask> mask;
98 if (
const auto maskNavigator =
102 Costmap::Mask::value_type>(*maskNavigator);
106 .
min = Eigen::Vector2f::Zero(),
107 .max = Eigen::Vector2f{grid.rows() * dto.cellSize, grid.cols() * dto.cellSize}};
111 return {grid, parameters, sceneBounds, mask, origin};
115 toAron(arondto::ShortestPathFasterAlgorithmParams& dto,
118 dto.obstacleDistanceCosts =
bo.obstacleDistanceCosts;
119 dto.obstacleMaxDistance =
bo.obstacleMaxDistance;
120 dto.obstacleDistanceWeight =
bo.obstacleDistanceWeight;
121 dto.obstacleCostExponent =
bo.obstacleCostExponent;
125 fromAron(
const arondto::ShortestPathFasterAlgorithmParams& dto,
128 bo.obstacleDistanceCosts = dto.obstacleDistanceCosts;
129 bo.obstacleMaxDistance = dto.obstacleMaxDistance;
130 bo.obstacleDistanceWeight = dto.obstacleDistanceWeight;
131 bo.obstacleCostExponent = dto.obstacleCostExponent;
137 dto.height =
bo.height;
139 dto.zFloor =
bo.zFloor;
146 bo.height = dto.height;
148 bo.zFloor = dto.zFloor;