|
From: Mark M. <mm...@ri...> - 2015-09-24 01:48:06
|
Puttichai, I don’t think you are doing anything wrong. You could try changing some of the other KPIECE1 parameters or use some other control-based planners. Mark > On Sep 23, 2015, at 2:34 AM, Puttichai Lertkultanon <l.p...@gm...> wrote: > > Hi Mark, > > Thank you very much for your response. > I have reimplemented all the things in C++ and it does help a lot. > For the case of 2 to 6 DOFs, average running times (50 runs) were 0.138486, 0.929931, 5.91538, 17.1691, and 68.2369, respectively. > However, I still wonder if this can be improved further when using KPIECE. I think that 70 s. is still too long for planning very simple motions for a 6-DOF robot. > By the way, the projection I used was the robot's end-effector position and a norm of joint velocities (4D). > To select cell size and propagation step size, I planned motions for the first two joints using difference combinations of cell size and propagation step size and select the pair that performed best. > > Is this order of running time normal for KPIECE for this kind of problems? > I even suspect that my implementation has got something wrong. > > Do you have any further suggestion to improve the KPIECE's performance? > Thank you so much. > > > Regards, > > Puttichai > > > On Tue, Sep 15, 2015 at 11:46 PM, Mark Moll <mm...@ri...> wrote: > Hi Puttichai, > > The best thing you can do to speed up KPIECE is to rewrite your code in C++. If you use the python bindings a lot of data tends to be copied back and forth. For low-level code that gets called a lot (like a statePropagator) this has a huge impact. > > The next best thing you can do is to implement a control sampler that samples controls more intelligently. There are several control-based samplers (RRT, PDST, EST, SyclopRRT) that can use a steering function if you provide one (derive from SteeredControlSampler). > > Mark > > > > > On Sep 15, 2015, at 1:05 AM, Puttichai Lertkultanon <l.p...@gm...> wrote: > > > > Hi, > > > > I'm currently working on kinodynamic motion planning using KPIECE. > > My current goal is to plan a simple motion of a 6-DOF manipulator moving from (0, 0, 0, 0, 0, 0) to (1, 1, 1, 1, 1, 1) under velcity and acceleration bounds with no other obstacle in the environment. I'm writing Python code and I modified the code from ompl/tests/control/test_control.py. > > > > For the statePropagator I employ the following simple rules: > > > > qnext = q + step*qd + 0.5*step*step*qdd > > qdnext = qd + step*qdd > > > > where qdd is my control input (joint acceleration), q and qd represent joint value and velocity, step is the propagation step size. > > > > First, I started with planning for only the first two DOFs of the robot. I set the threshold to be 0.1. With that, the best cell size and propagation step size were both 0.05. The avarage running time was around 0.4 s. However, the running time increased to ~1min and ~3min when moving to 3 and 4 DOFs, respectively. The success rate of planning (within 5 min) was dropped to below 50% for the case of 4 DOFs. Furthermore, when planning for 5 and 6 DOFs, the planner did not find any solution in 10 min. > > > > I have also tried changing goal bias to 0.8 (instead of using the default value 0.05). In case of 4 DOFs it helped improve success rate to a little bit above 50% (max running time allowed was 5 min), However, it did not help in the case of 5 and 6 DOFs. > > > > Do you have any suggestion on how I can improve the performance of KPIECE? > > Thank you. > > > > > > Regards, > > > > Puttichai > > ------------------------------------------------------------------------------ > > _______________________________________________ > > ompl-users mailing list > > omp...@li... > > https://lists.sourceforge.net/lists/listinfo/ompl-users > > |