Skip to content
This repository was archived by the owner on Mar 16, 2024. It is now read-only.

Commit f3e0df8

Browse files
committed
finish randomBiasState
1 parent e5a6eab commit f3e0df8

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

src/rrt/2dplane/PlaneStateSpace.hpp

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,17 @@ class PlaneStateSpace : public StateSpace<POINT_CLASS> {
3333
*/
3434
POINT_CLASS randomBiasState(const POINT_CLASS& goalState, float goalBias) const {
3535
// Generates random value based on goalBias
36-
float logitX = logit(goalBias, (float) rand() / RAND_MAX);
37-
float logitY = logit(goalBias, (float) rand() / RAND_MAX);
36+
float logitX = logit(goalBias / 3 + .67, (float) rand() / RAND_MAX);
37+
float logitY = logit(goalBias / 3 + .67, (float) rand() / RAND_MAX);
3838
float offsetY = 0;
3939
float offsetX = 0;
4040

4141
// Scale X value based on distance from border
42-
if (logitX > 0) {
43-
offsetX = (width() - goalState.x()) * logitX;
44-
} else if (logitX < 0) {
45-
offsetX = goalState.x() * logitX;
46-
}
42+
offsetX = std::max(goalState.x(), width() - goalState.x()) * logitX;
4743

4844
// Scale Y value based on distance from border
49-
if (logitY > 0) {
50-
offsetY = (height() - goalState.y()) * logitY;
51-
} else if (logitY < 0) {
52-
offsetY = goalState.y() * logitY;
53-
}
54-
45+
offsetY = std::max(goalState.y(), height() - goalState.y()) * logitY;
46+
5547
int randX = goalState.x() + offsetX;
5648
int randY = goalState.y() + offsetY;
5749
return POINT_CLASS(randX, randY);

src/rrt/Tree.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,11 +241,13 @@ class Tree {
241241
float r =
242242
rand() /
243243
(float)RAND_MAX; // r is between 0 and one since we normalize it
244-
if (r < goalBias() + waypointBias() && _waypoints.size() > 0) {
244+
if (r < goalBias()) {
245+
return extend(goalState());
246+
} else if (r < goalBias() + waypointBias() && _waypoints.size() > 0) {
245247
const T& waypoint = _waypoints[rand() % _waypoints.size()];
246248
return extend(waypoint);
247249
} else {
248-
return extend(_stateSpace->randomBiasState(goalState(), goalBias()));
250+
return extend(_stateSpace->randomState());
249251
}
250252
}
251253

0 commit comments

Comments
 (0)