choreo_process_planning.h
Go to the documentation of this file.
1 #ifndef CHOREO_PROCESS_PLANNING_H
2 #define CHOREO_PROCESS_PLANNING_H
3 
4 // service
5 #include <choreo_msgs/ProcessPlanning.h>
6 #include <choreo_msgs/MoveToTargetPose.h>
7 
8 // msg
9 #include <choreo_msgs/ElementCandidatePoses.h>
10 #include <moveit_msgs/CollisionObject.h>
11 
12 // robot model
13 #include <descartes_core/robot_model.h>
14 #include <pluginlib/class_loader.h>
15 
16 /*
17  * This class wraps Descartes planning methods and provides functionality for configuration
18  * and for planning for choreo support and spatial element printing paths.
19  *
20  * The general plannning approach is:
21  *
22  */
24 {
25 
27 {
28  public:
29  ProcessPlanningManager(const std::string& world_frame,
30  const std::string& hotend_group, const std::string& hotend_tcp, const std::string& hotend_base,
31  const std::string& robot_model_plugin);
32 
33  // srv serving function for general process planning
34  // deliver request to specific planning server according to input assembly type
35  bool handleProcessPlanning(choreo_msgs::ProcessPlanning::Request& req,
36  choreo_msgs::ProcessPlanning::Response& res);
37 
38  // srv serving function for spatial extrusion
39  bool handlePrintPlanning(choreo_msgs::ProcessPlanning::Request& req,
40  choreo_msgs::ProcessPlanning::Response& res);
41 
42  // srv serving function for picknplace
44  choreo_msgs::ProcessPlanning::Request& req,
45  choreo_msgs::ProcessPlanning::Response& res);
46 
47  // srv serving function for single-query move pose to pose
49  choreo_msgs::MoveToTargetPose::Request& req,
50  choreo_msgs::MoveToTargetPose::Response& res);
51 
52  private:
53  // TODO: rename this! should be sth like descartes_model_
54  // descartes robot model
55  descartes_core::RobotModelPtr hotend_model_;
56 
57  // moveit robot model
58  moveit::core::RobotModelConstPtr moveit_model_;
59 
60  pluginlib::ClassLoader<descartes_core::RobotModel> plugin_loader_; // kept around so code doesn't get unloaded
61 
62  std::string hotend_group_name_;
63  std::string world_frame_;
64 
65  // planning scene service client
68 };
69 }
70 
71 #endif
bool handleProcessPlanning(choreo_msgs::ProcessPlanning::Request &req, choreo_msgs::ProcessPlanning::Response &res)
pluginlib::ClassLoader< descartes_core::RobotModel > plugin_loader_
ProcessPlanningManager(const std::string &world_frame, const std::string &hotend_group, const std::string &hotend_tcp, const std::string &hotend_base, const std::string &robot_model_plugin)
res
bool handlePrintPlanning(choreo_msgs::ProcessPlanning::Request &req, choreo_msgs::ProcessPlanning::Response &res)
bool handleMoveToTargetPosePlanAndExecution(choreo_msgs::MoveToTargetPose::Request &req, choreo_msgs::MoveToTargetPose::Response &res)
bool handlePickNPlacePlanning(choreo_msgs::ProcessPlanning::Request &req, choreo_msgs::ProcessPlanning::Response &res)


choreo_process_planning
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 03:59:02