basical questions about the SBPL?

asked 2015-03-04 03:28:29 -0500

jxl gravatar image

updated 2015-03-04 05:20:13 -0500


I am learning SBPL.I have a gridmap constructed by Build a map with SLAM,when i learned the SBPL Tutorials, i found the environments part of the sbpl can represent the actual environment as a graph by pre-computed motion primitives .

It uses the stateID(1,2,3...) to represent the state variable(x1,y1,theta1;x2,y2,theta2;...), just like the figure1.png. Every state have some Actions(namely the motions) ,the number of Actions depend on the numberofprimsperangle variable ,by which one state is connected with its successor states . for example , if the numberofprimsperangle variable is 4 including forward ,backward ,left-turn-forward and right-turn-forward,whether the ActionID is 4 or other number ?

I think a state can have many successors and can only have one predecessor ,one ActionID connects one state and its one successor,but when i look at the sbpl/blob/master/src/include/sbpl/utils/mdp.h,in the source file,there are three objects :Class CMDP, Class CMDPSTATE and Class CMDPACTION.

In the CMDPSTATE-line 89 ,there is a " std::vector<int> predsID "data member not a " int predID"data member , in the CMDPACTION-line 44 there are "std::vector <int>SuccsID", "std::vector <int>Costs" and "std::vector <float>SuccsProb" ,not "int SuccID ", "int Cost "and "float Succprob".
How to understand one state can have many predecessors and one Action can connect many successors?

In advance thank you for your replay

edit retag flag offensive close merge delete