swri-robotics / toolpath_offline_planning

GUI tools for generating tool paths from mesh models offline
27 stars 18 forks source link

Plugin Interface(s) #19

Open marip8 opened 4 years ago

marip8 commented 4 years ago

In order to make this repository and GUI more modular, we should consider defining plugin(s) for the creation and saving of tool paths. Some initial thoughts for this would be:

  1. A top-level GUI (likely an Rviz panel to start) capable of loading some number of plugins and displaying their widgets in an organized fashion
  2. A plugin with methods for showing a GUI and generating a tool path:
    • std::vector<geometry_msgs::PoseArray> createPath() = 0;
    • QWidget* getWidget() = 0;
    • std::string getName() = 0;
  3. A plugin with the ability to save data from the loaded tool path generators in a specific way
    • bool save(const std::map<std::string, std::vector<geometry_msgs::PoseArray>>&) = 0;

At present, the implementations of the tool path generators would be a raster path generator using noether, a generator of single "stroke" paths using a click-and-point method, and a generator of "multi-stroke" paths using a click-and-point method.

Implementations of the save plugin might be serializing the files to binary and saving to file, or saving the files to a database