Plan a Robot Path

In this exercise, we will pass our trajectory to the Descartes planner in order to plan a robot path.

Locate Exercise Source File

  • Go to the main application source file located in plan_and_run/src/plan_and_run_node.cpp.
  • In the main program, locate the function call to application.planPath().
  • Go to the source file for that function located in the plan_and_run/src/tasks/plan_path.cpp. Alternatively, in Eclipse you can click in any part of the function and press “F2” to bring up that file.
  • Comment out the first line containing the ROS_ERROR_STREAM( ... entry so that the function does not quit immediately.

Complete Code

  • Observe the use of the AxialSymmetricPt::getClosestJointPose() in order to get the joint values of the robot that is closest to an arbitrary joint pose. Furthermore, this step allows us to select a single joint pose for the start and end rather than multiple valid joint configurations.
  • Call the DensePlanner::planPath() method in order to compute a motion plan.
  • When planning succeeds, use the DensePlanner::getPath() method in order to retrieve the path from the planner and save it into the output_path variable.
  • Find comment block that starts with /*  Fill Code: and complete as described.
  • Replace every instance of [ COMPLETE HERE ] accordingly.

Build Code and Run

  • cd into your catkin workspace and run catkin build
  • Then run the application launch file:
roslaunch plan_and_run demo_run.launch