From: Mark M. <mm...@ri...> - 2019-01-28 14:47:19
|
Hi Dan, My recommendation would be to create a ompl::control::StatePropagator whose propagate function simply ignores the duration: given a state, a control (e.g., jump direction), it would find the first point along the parabolic trajectory that collides with an obstacle. If you plan to use numerical integration, you should also check out the ompl::control::ODESolver class. You can then use any of the planners in the ompl::control namespace (ompl::control::RRT, ompl::control::EST, ompl::control::PDST, ompl::control::KPIECE1, ompl::control::SST, …). Look at these demos: Rigid body planning with controls <http://ompl.kavrakilab.org/RigidBodyPlanningWithControls_8cpp_source.html> [Python version] <http://ompl.kavrakilab.org/RigidBodyPlanningWithControls_8py_source.html> Rigid body planning with ODESolver and controls. <http://ompl.kavrakilab.org/RigidBodyPlanningWithODESolverAndControls_8cpp_source.html> [Python version] <http://ompl.kavrakilab.org/RigidBodyPlanningWithODESolverAndControls_8py_source.html> Best, Mark > On Jan 27, 2019, at 8:43 PM, Dan R <ni...@gm...> wrote: > > Hello, > > I am interested in running a PRM planner on a 3d space that consists of various platforms which a point mass can jump between. Each edge between states is defined as a parabolic trajectory (a jump basically). Would I create a custom MotionValidator class which basically moves the object along the trajectory between states and do collision detection in there? > > Also since this space is discontinuous (you can't stop in the middle of a jump) which planners do I need to avoid? I know some algorithms attempt to only travel some percentage of an edge and create new states along the way. But this wouldn't be possible in a discontinuous space like this. > > Thanks, I'm a beginner. > > Dan |