Skip to content

Commit cb3e9fd

Browse files
Saurav AgarwalSaurav Agarwal
authored andcommitted
Bug fix: parameter reading
1 parent a286e4d commit cb3e9fd

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

cppsrc/core/include/CoverageControl/parameters.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class Parameters {
180180
ParseParameters();
181181
}
182182

183-
void PrintParameters();
183+
void PrintParameters() const;
184184

185185
private:
186186
void ParseParameters();

cppsrc/core/src/coverage_system.cpp

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ CoverageSystem::CoverageSystem(Parameters const &params,
4848
int const num_robots)
4949
: params_{params}, world_idf_{WorldIDF(params_)} {
5050
// Generate Bivariate Normal Distribution from random numbers
51+
params_.PrintParameters();
5152
std::srand(
5253
std::time(nullptr)); // use current time as seed for random generator
5354
gen_ = std::mt19937(
@@ -58,11 +59,23 @@ CoverageSystem::CoverageSystem(Parameters const &params,
5859
params_.pMaxSigma);
5960
std::uniform_real_distribution<> distrib_peak(params_.pMinPeak,
6061
params_.pMaxPeak);
62+
6163
for (int i = 0; i < num_gaussians; ++i) {
6264
Point2 mean(distrib_pts_(gen_), distrib_pts_(gen_));
63-
double sigma(distrib_var(gen_));
64-
double scale(distrib_peak(gen_));
65-
scale = 2 * M_PI * sigma * sigma * scale;
65+
double sigma = 1.0;
66+
if (params_.pMinSigma == params_.pMaxSigma) {
67+
sigma = params_.pMinSigma;
68+
} else {
69+
sigma = distrib_var(gen_);
70+
}
71+
double scale = 1.0;
72+
if (params_.pMinPeak == params_.pMaxPeak) {
73+
scale = params_.pMinPeak;
74+
} else {
75+
scale = distrib_peak(gen_);
76+
}
77+
// double scale(distrib_peak(gen_));
78+
scale = 2.0 * M_PI * sigma * sigma * scale;
6679
BivariateNormalDistribution dist(mean, sigma, scale);
6780
world_idf_.AddNormalDistribution(dist);
6881
}
@@ -73,7 +86,13 @@ CoverageSystem::CoverageSystem(Parameters const &params,
7386
params_.pWorldMapSize * params_.pResolution, polygons);
7487

7588
for (auto &poly : polygons) {
76-
double importance = distrib_peak(gen_) * 0.5;
89+
// double importance = distrib_peak(gen_) * 0.5;
90+
double importance = 0.5;
91+
if (params_.pMinPeak == params_.pMaxPeak) {
92+
importance = params_.pMinPeak;
93+
} else {
94+
importance = distrib_peak(gen_);
95+
}
7796
PolygonFeature poly_feature(poly, importance);
7897
world_idf_.AddUniformDistributionPolygon(poly_feature);
7998
}

cppsrc/core/src/parameters.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void Parameters::ParseParameters() {
9292
std::cout << "PlotScale (default): " << pPlotScale << std::endl;
9393
}
9494

95-
auto toml_EnvironmentMaps = toml_config["Environment.Maps"];
95+
auto toml_EnvironmentMaps = toml_config["Environment"]["Maps"];
9696

9797
if (toml_EnvironmentMaps) {
9898
auto toml_Resolution = toml_EnvironmentMaps["Resolution"].value<double>();
@@ -115,7 +115,7 @@ void Parameters::ParseParameters() {
115115
}
116116

117117
auto toml_EnvironmentMapsUpdateSettings =
118-
toml_config["Environment.Maps.UpdateSettings"];
118+
toml_EnvironmentMaps["UpdateSettings"];
119119

120120
if (toml_EnvironmentMapsUpdateSettings) {
121121
auto toml_UpdateRobotMap =
@@ -143,7 +143,7 @@ void Parameters::ParseParameters() {
143143
}
144144
}
145145

146-
auto toml_EnvironmentIDF = toml_config["Environment.IDF"];
146+
auto toml_EnvironmentIDF = toml_config["Environment"]["IDF"];
147147

148148
if (toml_EnvironmentIDF) {
149149
auto toml_TruncationBND =
@@ -218,9 +218,9 @@ void Parameters::ParseParameters() {
218218

219219
if (toml_RobotModel["AddNoise"]) {
220220
auto toml_AddNoisePositions =
221-
toml_RobotModel["AddNoise.AddNoisePositions"].value<bool>();
221+
toml_RobotModel["AddNoise"]["AddNoisePositions"].value<bool>();
222222
auto toml_PositionsNoiseSigma =
223-
toml_RobotModel["AddNoise.PositionsNoiseSigma"].value<double>();
223+
toml_RobotModel["AddNoise"]["PositionsNoiseSigma"].value<double>();
224224
if (toml_AddNoisePositions) {
225225
pAddNoisePositions = toml_AddNoisePositions.value();
226226
}
@@ -242,9 +242,9 @@ void Parameters::ParseParameters() {
242242
}
243243

244244
auto toml_LloydMaxIterations =
245-
toml_Algorithm["Global-CVT.LloydMaxIterations"].value<int>();
245+
toml_Algorithm["Global-CVT"]["LloydMaxIterations"].value<int>();
246246
auto toml_LloydNumTries =
247-
toml_Algorithm["Global-CVT.LloydNumTries"].value<int>();
247+
toml_Algorithm["Global-CVT"]["LloydNumTries"].value<int>();
248248
if (toml_LloydMaxIterations) {
249249
pLloydMaxIterations = toml_LloydMaxIterations.value();
250250
}
@@ -253,14 +253,14 @@ void Parameters::ParseParameters() {
253253
}
254254

255255
auto toml_NumFrontiers =
256-
toml_Algorithm["Exploration.NumFrontiers"].value<int>();
256+
toml_Algorithm["Exploration"]["NumFrontiers"].value<int>();
257257
if (toml_NumFrontiers) {
258258
pNumFeatures = toml_NumFrontiers.value();
259259
}
260260
}
261261
}
262262

263-
void Parameters::PrintParameters() {
263+
void Parameters::PrintParameters() const {
264264
std::cout << "NumRobots: " << pNumRobots << std::endl;
265265
std::cout << "NumFeatures: " << pNumFeatures << std::endl;
266266
std::cout << "NumPolygons: " << pNumPolygons << std::endl;

0 commit comments

Comments
 (0)