Framework for developing and operating simple Scan 'N Plan applications in which a robot:
- Executes a scan path with a depth camera
- Reconstructs the surface of the objects observed by the camera
- Plans a tool path on the reconstructed surface
- Plans robot motions to execute the tool path
- Executes the process path
- snp_application - Contains a GUI application
Qtwidget, behavior tree plugins, and behavior tree configuration files - snp_motion_execution - Contains files to simulate robotic motion
- snp_motion_planning - Contains a planning server based on
tesseractfor generating freespace and process motions; contains customtesseractinverse kinematics plugins, planning task plugins, and planner profiles - snp_msgs - Contains ROS message and service definitions generating tool paths and motion plans, and executing robot trajectories
- snp_scanning - Contains files to convert a YAML file into a robot scan path and to simulate
industrial_reconstruction - snp_tpp - Contains custom tool path planning GUI widgets and source code for the region of interest selection mesh modifier and SNP-specific raster tool path planner
-
Install the source dependencies after cloning this repository into a
colconworkspacecd <snp_workspace> vcs import --shallow --debug src < src/scan_n_plan_workshop/dependencies_tesseract.repos vcs import --shallow --debug src < src/scan_n_plan_workshop/dependencies.repos # Source the ROS distro before running rosdep source /opt/ros/<distro>/setup.bash rosdep install --from-paths src --ignore-src -r -y
Note: some
rosdepdependencies specified bytesseractmay be not resolved, but it is generally okay to ignore these if building with the command specified below.
Build the repository with the following command (including a few CMake arguments to ignore modules of tesseract that are not needed)
colcon build --cmake-args -DTESSERACT_BUILD_FCL=OFF -DBUILD_RENDERING=OFFThis repository provides a framework for operating a Scan 'N Plan application. Several complete Scan 'N Plan applications based on this repository can be found in the following repositories: