I have implemented a random world generation function at SearchSpace class. Also moved the sanity checks, because they were producing errors when O is None.
Since current implementation only supports rectangles, cubes and etc. (hyperrectangles in general) the world generation code is specialized. There are some constraints in it. None of the sides of a hyperrectangle cannot be higher than 0.1 of the total span in that particular dimensions and cannot be lower than 2.0 units. In some cases, this hardcoded constraint could result in an infinite loop. But it is very easy to put a timeout logic into the loop and use the obstacles sampled thus far.
As the rationale, I believe this is a handy bench-marking tool especially in a research setting. Also for the probabilistic accuracy it can provide a metric for the general case. One might want to try the algorithm without hard-coding the obstacles and stress in highly cluttered environments.
Hi there,
I have implemented a random world generation function at SearchSpace class. Also moved the sanity checks, because they were producing errors when O is None.
Since current implementation only supports rectangles, cubes and etc. (hyperrectangles in general) the world generation code is specialized. There are some constraints in it. None of the sides of a hyperrectangle cannot be higher than 0.1 of the total span in that particular dimensions and cannot be lower than 2.0 units. In some cases, this hardcoded constraint could result in an infinite loop. But it is very easy to put a timeout logic into the loop and use the obstacles sampled thus far.
As the rationale, I believe this is a handy bench-marking tool especially in a research setting. Also for the probabilistic accuracy it can provide a metric for the general case. One might want to try the algorithm without hard-coding the obstacles and stress in highly cluttered environments.