ROS-Industrial Special Project: 6D tool path planner
Pierre Étienne Bézier September 1, 1910 – November 25, 1999; was a French engineer and one of the founders of the fields of solid, geometric and physical modeling as well as in the field of representing curves, especially in CAD/CAM systems. As an engineer at Renault, he became a leader in the transformation of design and manufacturing, through mathematics and computing tools, into computer-aided design and three-dimensional modeling. Bézier patented and popularized, but did not invent the Bézier curves and Bézier surfaces that are now used in most computer-aided design and computer graphics systems.
This project has been developed by the Institut Maupertuis, a French research institute that is working on robotic industrial processes. This project goal is to create an automatic grinding path generator for 6-axis robots working on diverse/random meshes.
Bezier planner generates robot poses (3D trajectories) in harmony with a grinding process. It is able to create rectilinear trajectories on complicated surfaces (3D surfaces) and to dilate them in all directions in order to grind defects with a pass principle.
Directory | Description |
---|---|
bezier |
Meta-package |
bezier_application |
Example usage of the bezier_library for grinding operations on a Fanuc R-1000iA robot |
bezier_library |
Library containing several path planning algorithms |
- Robot Operating System
industrial-core
fanuc
rviz_visual_tools
Visualization Toolkit
version7.0
or laterPoint Cloud Library
version1.8.0
or later.⚠️ PCL has to be compiled against the same VTK version that is used for this packageRviz Visual Tools
C++11
is required
This package has been tested with Ubuntu 14.04 and ROS Indigo.
In bezier_library
folder, there is some classes which needed to be explain:
bezier_library.cpp
, abstract class, documented herebezier_grinding_surfacing.cpp
, which inherits frombezier_library.cpp
, documented here
Build using wstool and catkin_tools
Install wstool in order manage the repos inside the workspace
sudo apt-get install python-wstool
mkdir catkin_workspace
mkdir -p catkin_workspace/src
cd catkin_workspace/src
wstool init .
wstool merge https://github.com/ros-industrial-consortium/bezier/raw/indigo-devel/bezier.rosinstall
wstool update
rosdep install --from-paths . --ignore-src
cd ..
catkin build
If you have troubles with rviz_visual_tools
not finding Eigen, please revert this commit rviz_visual_tools/commit/425d208b2719cafeae3e4f3ccdd6b44853400a32 in the rviz_visual_tools
clone.
Launch
Source the devel/setup.bash
file and launch:
roslaunch bezier_application fanuc_m20ia.launch surfacing_mode:=true mesh_cad:=plane/plane_defect.ply
In this example, bezier_application
will be launched with plane_defect.ply
as the CAD mesh and the grinding will be done in surface mode, meaning that we only pass on the surface of the mesh to smooth it.
roslaunch bezier_application fanuc_m20ia.launch mesh_cad:=plane/plane.ply mesh_defect:=plane/plane_defect.ply
In this example, bezier_application
will be launched with plane.ply
as the CAD mesh and plane_defect.ply
as defect mesh.
Others examples of meshes are available in:
$(catkin_workspace)/src/bezier/bezier_application/meshes