OMPL Plannification
Path planning with OMPL
ROS_Planning_Node.cpp
1 
9 #include "ROS_OMPL_Planner.hpp"
10 
11 int main(int argc, char *argv[])
12 {
13  ros::init(argc, argv, "offline_planner_with_services_R2");
14  ros::NodeHandle node_handler_;
15  ROS_INFO("%s: using OMPL version %s", ros::this_node::getName().c_str(), OMPL_VERSION);
16  ompl::msg::setLogLevel(ompl::msg::LOG_NONE);
17 
18  std::string planning_dimension;
19  node_handler_.getParam("planning_dimension", planning_dimension);
20 
21 
22  if(planning_dimension.compare("2D")==0) //2D planning
23  {
24  //Initialization planner
25  ROS_OMPL_Planner planner(2);
26 
27  ros::Rate loop_rate(10);
28  while (ros::ok())
29  {
30  if(! planner.getObstacleFlag()) //Constantly check while the path is valid
31  {
32  planner.updatePath();
33  }
34  ros::spinOnce();
35  loop_rate.sleep();
36  }
37  }
38  else //3D planning
39  {
40  //Initialization planner
41  ROS_OMPL_Planner planner(3);
42 
43  ros::Rate loop_rate(10);
44  while (ros::ok())
45  {
46  if(! planner.getObstacleFlag()) //Constantly check while the path is valid
47  {
48  planner.updatePath();
49  }
50  ros::spinOnce();
51  loop_rate.sleep();
52  }
53  }
54 
55  return 0;
56 }
ROS implementation class for OMPL_Planner.