Platform | CI Status |
---|---|
Ubuntu Focal | |
Ubuntu Jammy | |
Lint (Clang-Format) |
This repository provides software for performing tool path planning on arbitrary mesh surfaces. We define tool path planning as the generation of an ordered set of waypoints for a robotic process (e.g., painting, sanding, inspection, routing, etc.) based on some input geometry. The idea is that the tool of the robot should traverse through this set of waypoints in order to accomplish the desired task.
We think of the tool path planning process as a pipeline consisting of 3 steps:
This project provides a GUI application for use of the provided tool path planning utilities. Load an arbitrary mesh, configure your desired tool path planning pipeline, and experiment with different types of planners and modifiers. The generated tool path can then be saved to a YAML file for use in other applications.
This repository provides three key abstract interfaces to facilitate the tool path planning pipeline:
MeshModifier
ToolPathPlanner
RasterPlanner
EdgePlanner
ToolPathModifier
See the noether_tpp
documentation for more details on the architecture of the package.
Custom behavior can be added by providing a class that overrides one of the interface classes.
See the implementations in the mesh_modifiers
, tool_path_planners
, and tool_path_modifiers
for reference.
See the noether_gui
documentation for more details on how to a GUI plugin for a custom implementation of one of the interfaces.
Nominally, this project is ROS-independent, but it is convenient to use the ROS dependency management and build tools to build the repository.
Clone the repository into a workspace, download the dependencies, and build the workspace.
cd <ws>
vcs import src < dependencies.repos
rosdep install --from-paths src -iry
<colcon/catkin> build