From: Mark M. <mm...@ri...> - 2020-02-21 15:08:14
|
Hi Peter, One possibility is to create a new wrapper state space that augments your existing state space as follows. It defines a new StateType that adds a new member variable representing cost-to-come to the StateType of the underlying state space. It might still be a bit tricky to make sure that distance and interpolation are defined correctly. Ideally, this would work without having to change the implementation of any of the planners, and you just modify your state validity checker to reject states whose cost-to-come exceeds some threshold. If you care primarily about time-optimality, another option is to create a CompoundStateSpace composed of your current state space (with weight 1) and a TimeStateSpace (with weight 0). The weights make sure that the time doesn’t affect the distance. As before, the planners don’t change and you just modify your state validity checker to reject states whose time component exceeds some threshold. Best, Mark > On Feb 19, 2020, at 4:21 PM, Peter Mitrano <mit...@gm...> wrote: > > Hi Mark & others, > > I'm hoping someone can give me advice on how to implement constraint checking on an entire trajectory. Right now I'm using the control::RRT, and propagateWhileValid only checks constraints on a state-by-state basis. However, I want something that is conceptually like hard "max path length" constraint. Specifically, a constraint check that gets in all the states and actions from the root of the tree until the proposed new node, and checks based on that. It's not as simple as accumulating some variable as I propogate -- I need the actual state itself. > > Looking at the RRT code, I feel like I just want to write something to replace propogateWhileValid, which uses Motion throughout instead of State, since Motion has a pointer to parent. Does this make sense? > > Thanks > -Peter > _______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users |