Hello,
I am trying for a while now to use some new planners that I developed in ompl_1.1.0 on Baxter with Moveit!. Note that the planners currently can plan only for a compound statement of SO2s. (They also require one more parameter in the constructor that I haven't find a way to fix yet)
Although I compiled everything successfully on indigo, following the wiki, and Moveit! seems to recognize my new planners the code of my planners is not executed. There is a very hacky step on the process - every time I change my code in ompl, I compile and then I manually copy the libompl.so* files from "omplapp-1.1.0-Source/build/Release/lib" to "/opt/ros/indigo/lib/x86_64-linux-gnu". I know, it is not a good idea, but it was the only solution I found in order to compile ompl with moveit.
For example the output from planning with baxter by launching rviz:
[ INFO] [1504031112.059653870, 215.020000000]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1504031112.063874364, 215.024000000]: No optimization objective specified, defaulting to PathLengthOptimizationObjective
[ INFO] [1504031112.063986068, 215.024000000]: Planner configuration 'both_arms[RRTConnectkPLUS]' will use planner 'geometric::RRTConnectPLUS'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1504031112.065471377, 215.025000000]: both_arms[RRTConnectkPLUS]: Starting planning with 1 states already in datastructure
[ INFO] [1504031112.065545440, 215.025000000]: both_arms[RRTConnectkPLUS]: Starting planning with 1 states already in datastructure
[ INFO] [1504031112.065609836, 215.025000000]: both_arms[RRTConnectkPLUS]: Starting planning with 1 states already in datastructure
[ INFO] [1504031112.065649846, 215.025000000]: both_arms[RRTConnectkPLUS]: Starting planning with 1 states already in datastructure
[ INFO] [1504031112.078397753, 215.038000000]: both_arms[RRTConnectkPLUS]: Created 4 states (2 start + 2 goal)
[ INFO] [1504031112.079526664, 215.039000000]: both_arms[RRTConnectkPLUS]: Created 5 states (2 start + 3 goal)
[ INFO] [1504031112.080515153, 215.040000000]: both_arms[RRTConnectkPLUS]: Created 5 states (2 start + 3 goal)
[ INFO] [1504031112.080826876, 215.040000000]: both_arms[RRTConnectkPLUS]: Created 5 states (2 start + 3 goal)
[ INFO] [1504031112.080965363, 215.040000000]: ParallelPlan::solve(): Solution found by one or more threads in 0.016339 seconds
As you can see Moveit! seems to use my new planner "geometric::RRTConnectPLUS" that uses a NEW sampler, currently planning for SO2s spaces. Even if that was impossible I tried to change the message printed from ompl in the function "ompl::base::PlannerStatus ompl::geometric::RRTConnectPLUS::solve" to something else:
OMPL_INFORM("%s: Starting planninGGGGGGGGGGGGGGGGGGGGGGGGGg with %d states already in datastructure", getName().c_str(), (int)(tStart_->size() + tGoal_->size()));
The message didn't change at all implying that there is different code executed instead of mine.
I can see only two different cases:
a)My code is not updated and Moveit! uses an outdated library.
b)Moveit! cannot even see my library and uses another one.
But for both cases, every time I copy the libompl.so* and I take care of the old versions. Also I have search the whole system and there is no other libompl* files other than the ones I use.
Does anyone have any idea on what is happening, or an alternative case that I haven't though yet?
I will really appreciate any help on the matter,
Marios.
P/S:I still need to extend the sampler in different spaces, but due to some theoretical analysis that still need to be done I would prefer to focus on the one Baxter uses and not generalize for all the possible spaces in OMPL. I would like to know how the joint space is formulated while planning in OMPL. The planning space is a Realvector or a compound statement of other spaces?