diff --git a/.gitignore b/.gitignore index 52fd6ce..7eaad6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,50 +1,2 @@ -build/ -bin/ -lib/ -msg_gen/ -srv_gen/ -msg/*Action.msg -msg/*ActionFeedback.msg -msg/*ActionGoal.msg -msg/*ActionResult.msg -msg/*Feedback.msg -msg/*Goal.msg -msg/*Result.msg -msg/_*.py - -# Generated by dynamic reconfigure -*.cfgc -/cfg/cpp/ -/cfg/*.py - -# Ignore generated docs -*.dox -*.wikidoc - -# eclipse stuff -.project -.cproject - -# qcreator stuff -CMakeLists.txt.user - -srv/_*.py -*.pcd -*.pyc -qtcreator-* -*.user - -/planning/cfg -/planning/docs -/planning/src - -*~ - -# Emacs -.#* - -# Catkin custom files -CATKIN_IGNORE - # Output meshes -bezier_library/meshes/*.stl +meshes/*.stl diff --git a/CMakeLists.txt b/CMakeLists.txt index 64f2cca..d609eae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ -cmake_minimum_required(VERSION 2.8.3) +cmake_minimum_required(VERSION 3.2) project(bezier) -add_definitions(-std=c++11 -Wall -Wextra) +add_compile_options(-Wall -Wextra) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) ## Find catkin macros and libraries find_package(catkin REQUIRED COMPONENTS @@ -26,7 +28,6 @@ endif() catkin_package( INCLUDE_DIRS include - ${PCL_INCLUDE_DIRS} LIBRARIES ${PROJECT_NAME} ${PROJECT_NAME}_painting @@ -54,7 +55,7 @@ add_definitions(${PCL_DEFINITIONS}) # Bezier library add_library( ${PROJECT_NAME} - src/${PROJECT_NAME}.cpp + src/${PROJECT_NAME}_library.cpp ) target_link_libraries( ${PROJECT_NAME} @@ -70,7 +71,7 @@ add_dependencies( # Bezier surfacing add_library( ${PROJECT_NAME}_surfacing - src/bezier_surfacing.cpp + src/surfacing.cpp ) target_link_libraries( ${PROJECT_NAME}_surfacing @@ -88,7 +89,7 @@ add_dependencies( # Bezier painting add_library( ${PROJECT_NAME}_painting - src/bezier_painting.cpp + src/painting.cpp ) target_link_libraries( ${PROJECT_NAME}_painting @@ -106,7 +107,7 @@ add_dependencies( # Tire machining add_library( ${PROJECT_NAME}_tire_machining - src/bezier_tire_machining.cpp + src/tire_machining.cpp ) target_link_libraries( ${PROJECT_NAME}_tire_machining @@ -137,14 +138,22 @@ install(TARGETS ) ## Mark cpp header files for installation -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +install( + DIRECTORY + include/${PROJECT_NAME}/ + DESTINATION + ${CATKIN_PACKAGE_INCLUDE_DESTINATION} ) ## Mark other files for installation (e.g. launch and bag files, etc.) -install(DIRECTORY meshes DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) +install( + DIRECTORY + meshes + DESTINATION + ${CATKIN_PACKAGE_SHARE_DESTINATION} +) add_custom_target( ${PROJECT_NAME}_doc - rosdoc_lite -o ${CATKIN_DEVEL_PREFIX}/doc/${PROJECT_NAME} ${CATKIN_DEVEL_PREFIX}/../src/bezier/${PROJECT_NAME} + rosdoc_lite -o ${CATKIN_DEVEL_PREFIX}/doc/${PROJECT_NAME} ${CATKIN_DEVEL_PREFIX}/../src/${PROJECT_NAME} ) diff --git a/README.md b/README.md index ea4b72b..a205c88 100644 --- a/README.md +++ b/README.md @@ -18,21 +18,28 @@ It is able to create rectilinear trajectories on complex surfaces (3D surfaces) Click the image to see a video of a Fanuc robot grinding thanks to the Bezier library. # Dependencies -This package has been tested with Ubuntu 16.04 and ROS Kinetic. +This package has been tested with Ubuntu 18.04 and ROS Melodic. -## VTK 7.1 +## VTK VTK 7.1 or higher is required in order to compile this project. -Here are quick steps to download, compile and install VTK 7.1: +Here are quick steps to download, compile and install VTK latest release: ```bash -mkdir -p $HOME/libraries/VTK-7.1/build_release -cd $HOME/libraries/VTK-7.1/ -wget http://www.vtk.org/files/release/7.1/VTK-7.1.1.zip -unzip VTK-7.1.1.zip -mv VTK-7.1.1 src +sudo apt install -y cmake libglew-dev libxt-dev libqt5x11extras5-dev qttools5-dev +mkdir -p $HOME/libraries/VTK-8.2.0/build_release +cd $HOME/libraries/VTK-8.2.0 +wget http://www.vtk.org/files/release/8.2/VTK-8.2.0.zip +unzip VTK-8.2.0.zip +mv VTK-8.2.0 src cd build_release -cmake ../src -DCMAKE_BUILD_TYPE=Release +cmake ../src \ +-DCMAKE_BUILD_TYPE=Release \ +-DVTK_Group_Imaging=ON \ +-DVTK_Group_Qt=ON \ +-DVTK_QT_VERSION=5 \ +-DVTK_Group_Rendering=ON \ +-DVTK_Group_Views=ON make -j4 ``` @@ -42,9 +49,6 @@ sudo make -j4 install sudo ldconfig ``` -## wstool -Install [wstool](wiki.ros.org/wstool). - ## rosdep Install, initialize and update [rosdep](http://wiki.ros.org/rosdep). @@ -52,16 +56,16 @@ Install, initialize and update [rosdep](http://wiki.ros.org/rosdep). Create a catkin workspace and clone the project: ```bash -mkdir -p catkin_workspace -cd catkin_workspace +mkdir -p catkin_workspace/src +cd catkin_workspace/src git clone https://github.com/ros-industrial-consortium/bezier.git -wstool init src bezier/bezier.rosinstall -mv bezier src +cd .. + ``` ## Resolve ROS dependencies ```bash -rosdep install --from-paths src --ignore-src --rosdistro kinetic -y +rosdep install --from-paths src --ignore-src --rosdistro melodic -y ``` ## Compile diff --git a/bezier.rosinstall b/bezier.rosinstall deleted file mode 100644 index 24fb5e8..0000000 --- a/bezier.rosinstall +++ /dev/null @@ -1,4 +0,0 @@ -- git: {local-name: rviz_visual_tools, uri: 'https://github.com/davetcoleman/rviz_visual_tools.git', - version: kinetic-devel} -- git: {local-name: fanuc, uri: 'https://github.com/ros-industrial/fanuc.git', - version: indigo-devel} diff --git a/doc/README.md b/doc/README.md index 145fe29..8ced998 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,11 +1,14 @@ -How to build the API documentation -=== +# How to build the API documentation + +Install rosdoc_lite: +``` +sudo apt install ros-$ROS_DISTRO-rosdoc-lite +``` + +Generate the API documentation: ```bash -cd $(catkin_workspace)/build -make bezier_library_doc +catkin_make bezier_doc ``` -List of classes inside Bezier -=== +# Documented classes of Bezier - [bezier_grinding_surfacing](README_bezier_grinding_surfacing.md) - diff --git a/doc/rosdoc.yaml b/doc/rosdoc.yaml index 956a263..21db01a 100644 --- a/doc/rosdoc.yaml +++ b/doc/rosdoc.yaml @@ -1,4 +1,4 @@ - builder: doxygen - name: bezier_library C++ API - output_dir: bezier_library_c++ + name: bezier C++ API + output_dir: bezier_c++ file_patterns: '*.c *.cpp *.h *.hpp' diff --git a/include/bezier_library/append_bezier_exception.hpp b/include/bezier/append_bezier_exception.hpp similarity index 85% rename from include/bezier_library/append_bezier_exception.hpp rename to include/bezier/append_bezier_exception.hpp index d81af8e..b6cb4f9 100644 --- a/include/bezier_library/append_bezier_exception.hpp +++ b/include/bezier/append_bezier_exception.hpp @@ -1,5 +1,5 @@ -#ifndef APPEND_BEZIER_EXCEPTION -#define APPEND_BEZIER_EXCEPTION +#ifndef APPEND_BEZIER_EXCEPTION_HPP +#define APPEND_BEZIER_EXCEPTION_HPP #include #include diff --git a/include/bezier_library/bezier_library.hpp b/include/bezier/bezier_library.hpp similarity index 99% rename from include/bezier_library/bezier_library.hpp rename to include/bezier/bezier_library.hpp index 04a1ed6..c28cdd9 100644 --- a/include/bezier_library/bezier_library.hpp +++ b/include/bezier/bezier_library.hpp @@ -37,7 +37,7 @@ #include #include #include -#include "error_observer.h" +#include // PCL #pragma GCC diagnostic push diff --git a/include/bezier_library/error_observer.h b/include/bezier/error_observer.hpp similarity index 97% rename from include/bezier_library/error_observer.h rename to include/bezier/error_observer.hpp index ca9eefb..d1ed11f 100644 --- a/include/bezier_library/error_observer.h +++ b/include/bezier/error_observer.hpp @@ -1,5 +1,5 @@ -#ifndef ErrorObserver_h -#define ErrorObserver_h +#ifndef ERROR_OBSERVER_HPP +#define ERROR_OBSERVER_HPP #include #include diff --git a/include/bezier_library/bezier_grinding_surfacing.hpp b/include/bezier/grinding_surfacing.hpp similarity index 97% rename from include/bezier_library/bezier_grinding_surfacing.hpp rename to include/bezier/grinding_surfacing.hpp index 8157320..7978b14 100644 --- a/include/bezier_library/bezier_grinding_surfacing.hpp +++ b/include/bezier/grinding_surfacing.hpp @@ -1,8 +1,8 @@ #ifndef BEZIER_GRINDING_SURFACING_HPP #define BEZIER_GRINDING_SURFACING_HPP -#include -#include +#include +#include #include #include diff --git a/include/bezier_library/bezier_painting.hpp b/include/bezier/painting.hpp similarity index 98% rename from include/bezier_library/bezier_painting.hpp rename to include/bezier/painting.hpp index 4b2a4f8..c412161 100644 --- a/include/bezier_library/bezier_painting.hpp +++ b/include/bezier/painting.hpp @@ -1,7 +1,7 @@ #ifndef BEZIER_PAINTING_HPP #define BEZIER_PAINTING_HPP -#include +#include #include #include diff --git a/include/bezier_library/bezier_params_observer.hpp b/include/bezier/params_observer.hpp similarity index 99% rename from include/bezier_library/bezier_params_observer.hpp rename to include/bezier/params_observer.hpp index 1e0e9b3..63f5ac0 100644 --- a/include/bezier_library/bezier_params_observer.hpp +++ b/include/bezier/params_observer.hpp @@ -1,7 +1,7 @@ #ifndef BEZIER_PARAMS_OBSERVER_HPP #define BEZIER_PARAMS_OBSERVER_HPP -#include +#include /** * Bezier parameters observer class diff --git a/include/bezier_library/bezier_tire_machining.hpp b/include/bezier/tire_machining.hpp similarity index 98% rename from include/bezier_library/bezier_tire_machining.hpp rename to include/bezier/tire_machining.hpp index 70c4901..44adfcf 100644 --- a/include/bezier_library/bezier_tire_machining.hpp +++ b/include/bezier/tire_machining.hpp @@ -1,7 +1,7 @@ #ifndef BEZIER_TIRE_MACHINING_HPP #define BEZIER_TIRE_MACHINING_HPP -#include +#include #include #include diff --git a/package.xml b/package.xml index 61d446a..f0acc65 100644 --- a/package.xml +++ b/package.xml @@ -3,7 +3,7 @@ bezier 0.0.3 Robot path planner for complex 6 DOF surfacing trajectories - Francois Lasson, Kévin Bolloré, Papa Libasse Sow - Institut Maupertuis + Francois Lasson, Kévin Bolloré, Papa Libasse Sow, Victor Lamoine - Institut Maupertuis Victor Lamoine BSD diff --git a/src/bezier_library.cpp b/src/bezier_library.cpp index 047fe18..448cc3d 100644 --- a/src/bezier_library.cpp +++ b/src/bezier_library.cpp @@ -1,4 +1,4 @@ -#include +#include Bezier::Bezier() { diff --git a/src/bezier_painting.cpp b/src/painting.cpp similarity index 99% rename from src/bezier_painting.cpp rename to src/painting.cpp index d4cce85..453938f 100644 --- a/src/bezier_painting.cpp +++ b/src/painting.cpp @@ -1,4 +1,4 @@ -#include "bezier_library/bezier_painting.hpp" +#include "bezier/painting.hpp" BezierPainting::BezierPainting(const std::string input_mesh, const double painting_cone_width, diff --git a/src/bezier_surfacing.cpp b/src/surfacing.cpp similarity index 98% rename from src/bezier_surfacing.cpp rename to src/surfacing.cpp index 5f6fda9..6319ab7 100644 --- a/src/bezier_surfacing.cpp +++ b/src/surfacing.cpp @@ -1,5 +1,5 @@ -#include "bezier_library/bezier_grinding_surfacing.hpp" -#include "bezier_library/bezier_params_observer.hpp" +#include "bezier/grinding_surfacing.hpp" +#include "bezier/params_observer.hpp" BezierGrindingSurfacing::BezierGrindingSurfacing(const std::string input_mesh, const double grinding_disk_machining_width, @@ -93,7 +93,7 @@ std::string BezierGrindingSurfacing::generateTrajectory(EigenSTL::vector_Isometr if (display_markers) { - std::string mesh_path(ros::package::getPath("bezier_library") + "/meshes/dilated_mesh.stl"); + std::string mesh_path(ros::package::getPath("bezier") + "/meshes/dilated_mesh.stl"); if (saveMesh(mesh_path, dilated_mesh)) { @@ -107,7 +107,7 @@ std::string BezierGrindingSurfacing::generateTrajectory(EigenSTL::vector_Isometr if (display_markers) { - std::string mesh_path(ros::package::getPath("bezier_library") + "/meshes/extrication_mesh.stl"); + std::string mesh_path(ros::package::getPath("bezier") + "/meshes/extrication_mesh.stl"); if (saveMesh(mesh_path, extrication_mesh)) { diff --git a/src/bezier_tire_machining.cpp b/src/tire_machining.cpp similarity index 99% rename from src/bezier_tire_machining.cpp rename to src/tire_machining.cpp index 887c113..8e69b03 100644 --- a/src/bezier_tire_machining.cpp +++ b/src/tire_machining.cpp @@ -1,4 +1,4 @@ -#include "bezier_library/bezier_tire_machining.hpp" +#include "bezier/tire_machining.hpp" #include #include