OMPL Plannification
Path planning with OMPL
Hello_World.cpp
Go to the documentation of this file.
1 
8 #include <iostream>
9 
10 #include "../OMPL_Planner/OMPL_Planner.hpp"
11 
12 int main(int argc, char **argv)
13 {
14  int planningDimension = 2, solvingTime = 5;
15  std::string plannerName, mapFile;
16  std::vector<double> start, goal, planning_bounds_x_, planning_bounds_y_, planning_bounds_z_;
17 
18  planning_bounds_x_.resize(2);
19  planning_bounds_y_.resize(2);
20  planning_bounds_z_.resize(2);
21 
22  cout<<"Path planning with OMPL version "<<OMPL_VERSION<<"\n";
23  cout<<"Choose a dimension for planning 2D or 3D (default :"<<planningDimension<<") : ";
24  cin >> planningDimension;
25 
26  start.resize(planningDimension);
27  goal.resize(planningDimension);
28 
29  cout<<"Choose a planner (available planner : CForest, RRTstar) : ";
30  cin >> plannerName;
31 
32  OMPL_Planner planner(planningDimension);
33 
34  planning_bounds_x_[0]=-15;
35  planning_bounds_x_[1]=15;
36  planning_bounds_y_[0]=-15;
37  planning_bounds_y_[1]=15;
38  planning_bounds_z_[0]=-15;
39  planning_bounds_z_[1]=15;
40 
41  if (planningDimension == 3)
42  planner.setPlanningBounds(planning_bounds_x_, planning_bounds_y_, planning_bounds_z_);
43  else
44  planner.setPlanningBounds(planning_bounds_x_, planning_bounds_y_);
45 
46  planner.setPlanningDepth();
47 
48  planner.setPlanner(plannerName);
49 
50  cout<<"Enter direction to the Octomap file (.bt file usually) : ";
51  cin>> mapFile;
52  planner.setStateChecker(mapFile,0.5,0.5,0.5);
53 
54  cout<<"\n Planner initialization done !\n";
55 
56  start[2]=0;
57  goal[2]=0;
58 
59  cout<<"Choose a start position (expecting "<< planningDimension <<" values) : ";
60  if(planningDimension==2)
61  cin>> start[0] >> start[1];
62  else
63  cin>> start[0] >> start[1] >> start[2];
64 
65  cout<<"Choose a goal position (expecting "<< planningDimension <<" values) : ";
66  if(planningDimension==2)
67  cin>> goal[0] >> goal[1];
68  else
69  cin>> goal[0] >> goal[1] >> goal[2];
70 
71  planner.setStartGoal(start,goal);
72 
73  cout<<"Choose solving time (default :"<<solvingTime<<") : ";
74  cin>> solvingTime;
75 
76  //cout<<"Searching path from "<<start[0]<<" / "<<start[1]<<" / "<<start[2]<<" to "<<goal[0]<<" / "<<goal[1]<<" / "<<goal[2]<<"\n";
77 
78  if(planner.findPath(solvingTime))
79  {
80  og::PathGeometric path = planner.getPath();
81  path.print(cout);
82  }
83  else
84  cout<<"\n No path found\n";
85 
86  cout<<"Thanks for using this awsome Hello World !\n";
87 
88  return 0;
89 }
90 
91 
93 
Class for planner for 2D and 3D planning.