|
From: Guilherme A. S. P. <gpe...@uf...> - 2018-04-06 14:38:05
|
Hi all, I'm using OMPL to plan the movement of a robot in an environment with obstacles. The robot is a manipulator of 5 DOF, all revolute joints, on a non-holonomic mobile base. The joints have limited values (-PI/2 to PI/2). I'd like to use the kinodynamic planners from the library, in special the RRT. So, based on HybridSystemPlanning.cpp example, I've modeled the problem as follows: the state space was considered as a compound space, like in the example. It has both SE(2) and R(5) sub spaces. The collision avoidance was done in isStateValid function and the states propagation was done in the propagate function. The algorithm is "working" so far, what means that the returned path is in the free configuration space, and normally it ends closer to the goal state than the initial state. However, the elapsed time is too large in my opinion (about 30 seconds in some cases), and it ends normally far from the goal state. I have two hypotheses about this: maybe the default function isSatisfied and the default functions of sampling are not good for my problem. I thus have some questions: Does isSatisfied default function take care of the topology of a compound space in order to define a metric of distance to goal? Does the default sampling function polarizs to somewhere or it is always uniform sampling? Searching at the internet, I was able to find examples of people who used OMPL and got excellent results in therms of performance, even for much more complicated problems, with more than fifteen DOF using complicated compound spaces. They spend like one or two seconds in the planning. The HybridSystemPlanning.cpp example is very quickly as well, spending less than four seconds in almost all the cases. Therefore, I think I can improve the performance of my algorithm someway, maybe tuning some parameter. I'm trying to tune the parameters PropagationStepSize and MinMaxControlDuration to improve the performance. Is there any other parameter that I should look as well? I'm using the RRT planner, but maybe other planner is better. Except RRT, is there other kinodynamic planner that doesn't use projections or other specific function to work? And the last question: I'd like to finish the algorithm when a Lyapunov function (that is function of the configuration) is lower than a threshold, what means the planner do not need to arrive at the goal state. I have searched in internet and I found two possible solutions, use a terminate condition, or use the goal region class. In my case, I think the terminate condition would be better, but I could not find any example of how to implement it. Can you tell me how I implement a termination condition? Thanks a lot, Guilherme -- Prof. Guilherme A. S. Pereira Departamento de Engenharia Elétrica Universidade Federal de Minas Gerais Tel: +55 31 3409-6687 http://www.ppgee.ufmg.br/~gpereira |