From: Boris L. <la...@in...> - 2011-03-24 15:47:05
|
sorry, forgot to cc the list... -------- Original Message -------- Subject: Re: [ompl-users] Planners return colliding paths Date: Thu, 24 Mar 2011 16:36:29 +0100 From: Boris Lau <la...@in...> To: is...@gm... Hi Ioan, thank you very much for your quick reply. My understanding of the resolution is this: I can simply choose to map the grid space coordinates to the continuous space 1:1. Therefore, I use 0 and the width/height (whatever is bigger) of the map as manifold bounds. Then I need a maximum stepsize of 1 cell, therefore 1/extent. And indeed, when I print out which cells are checked for collisions, they are indeed either adjacent, or the algorithm is jumping somewhere else. > Could it be possible this distance is less than 1, but the cells are not > adjacent? I think that's a no. But I tried it anyway, 0.5/extent, same results. > Let me know if this does not work, and some pictures of the erratic > paths may be helpful. Here are pictures of RRT and KPIECE1 paths. Each step in the path is one picture, frame by frame: http://www.informatik.uni-freiburg.de/~lau/generated_paths.zip As you can see, the RRT returns a very sparse but valid path, and the KPIECE1 does something weird. The only thing I change is using either ss.setPlanner((ompl::base::PlannerPtr)(new og::RRT(si))); or ss.setPlanner((ompl::base::PlannerPtr)(new og::KPIECE1(si))); The rest is as in the simple setup example. Do I need to setup a projection thing myself? > cell dimensions for the default projections are of appropriate size > (some tuning may be required). > > std::vector<double> dims(3); > dims[0] = 1; > dims[1] = 2; > dims[2] = 0.1; > ss.getStateManifold()->getDefaultProjection()->setCellDimensions(dims); When I use these lines I get an error: terminate called after throwing an instance of 'ompl::Exception' what(): Number of dimensions in projection space does not match number of cell dimensions So, I tried the same with just 2 dims, no error, but same results as before. > Instead of this: > > ss.setPlanner((const ompl::base::PlannerPtr)new og::RRT(si)); > do this: > ss.setPlanner(ompl::base::PlannerPtr(new og::RRT(si))); I did, no difference. Valgrind is completely happy. Thanks again for your help. And by the way, my colleague Christoph Sprunk says hi, you've met at the BRICS labor camp. Best, Boris -- Boris Lau Albert-Ludwigs-University Freiburg Institute of Computer Science, Autonomous Intelligent Systems Group Georges-Koehler-Allee 079, D-79110 Freiburg, Germany Building 079, Room 1005 Phone: +49 761 203-8012 | Mobile: +49 174 9436758 http://www.informatik.uni-freiburg.de/~lau |