Skip to content

Contains packages related to motion and process planning for the Tesseract Motion Planning Environment

Notifications You must be signed in to change notification settings

Levi-Armstrong/tesseract_planning

 
 

Repository files navigation

Tesseract Planning

codecov

Python

Platform CI Status
Linux (Focal) Build Status
Linux (Bionic) Build Status
Windows Build Status
Lint (Clang-Format) Build Status
Lint (Clang-Tidy) Build Status
Lint (CodeCov) Build Status

Github Issues

license - apache 2.0 license - bsd 2 clause

support level: consortium

This include packages related to both motion and process planning for the Tesseract Motion Planning Environment.

Tesseract Setup Wizard and Visualization Tools

Tesseract Planning Packages

  • tesseract_motion_planners – This package contains a common interface for Planners and includes implementation for OMPL, TrajOpt, TrajOpt IFOPT and Descartes.
  • tesseract_process_managers – This package contains a common interface for Process Planning and includes implementation for a wide variaty of process found industrial automation like painting, griding, welding, pick and place and more.
  • tesseract_time_parameterization – This package contains a time parameterization algorithms and includes iteritive spline.

Related Repositories

Documentation

Evolution

Tesseract Evolution Video

How to create:

  • Create Video: gource -1280x720 -seconds-per-day 0.2 --auto-skip-seconds 0.2 --disable-bloom -background d0d3d4 --hide filenames,mouse,progress -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4
  • Create Gif: ffmpeg -i gource.mp4 -r 10 -vf "scale=800:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" tesseract_evolution.gif

TODO's

Warning: These packages are under heavy development and are subject to change.

See issue #66

Build Instructions

  1. Clone repository into your workspace
  2. Clone the repositories in the dependencies.rosinstall file using wstool or some other method (e.g. manually git cloning them)
  3. Build the workspace using catkin tools, colcon, or a similar tool

NOTE: To speed up clean build you may want to add tesseract_ext to an extended workspace.

NOTE: Install TaskFlow from ROS-Industrial PPA.

Building with Clang-Tidy Enabled

Must pass the -DTESSERACT_ENABLE_CLANG_TIDY=ON to cmake when building. This is automatically enabled if cmake argument -DTESSERACT_ENABLE_TESTING_ALL=ON is passed.

Building Tests

Must pass the -DTESSERACT_ENABLE_TESTING=ON to cmake when wanting to build tests. This is automatically enabled if cmake argument -DTESSERACT_ENABLE_TESTING_ALL=ON is passed.

NOTE: If you are building using catkin tools, use catkin build --force-cmake -DTESSERACT_ENABLE_TESTING=ON.

Running Tests

Tesseract packages use ctest because it is ROS agnostic, so to run the test call catkin test --no-deps tesseract_motion_planners tesseract_process_managers tesseract_time_parameterization

Building Code Coverage

Must pass the -DTESSERACT_ENABLE_CODE_COVERAGE=ON to cmake when wanting to build code coverage. The code coverage report is located in each individuals build directory inside a ccov/all-merged folder. Open the index.html file to see the packages code coverage report.

NOTE: Must be a clean build when generating a code coverage report. Also must build in debug.

Exclude Code From Code Coverage

  • LCOV_EXCL_LINE
    • Lines containing this marker will be excluded.
  • LCOV_EXCL_START
    • Marks the beginning of an excluded section. The current line is part of this section.
  • LCOV_EXCL_STOP
    • Marks the end of an excluded section. The current line not part of this section.

.. NOTE: You can replace LCOV above with GCOV or GCOVR.

Quality Tools Leverage

Tesseract currently leverages Compiler Warnigs, Clang Tidy and Code Coverage. All warnings produced by Compiler and Clang Tidy are treated as errors during CI builds.

  • Compiler
    • Wall
    • Wextra
    • Wconversion
    • Wsign-conversion
    • Wno-sign-compare
    • Wnon-virtual-dtor
  • Clang Tidy
    • clang-analyzer-*
    • bugprone-*
    • cppcoreguidelines-avoid-goto
    • cppcoreguidelines-c-copy-assignment-signature
    • cppcoreguidelines-interfaces-global-init
    • cppcoreguidelines-narrowing-conversions
    • cppcoreguidelines-no-malloc
    • cppcoreguidelines-slicing
    • cppcoreguidelines-special-member-functions
    • misc-*,-misc-non-private-member-variables-in-classes
    • modernize-*,-modernize-use-trailing-return-type,-modernize-use-nodiscard
    • performance-*
    • readability-avoid-const-params-in-decls
    • readability-container-size-empty
    • readability-delete-null-pointer
    • readability-deleted-default
    • readability-else-after-return
    • readability-function-size
    • readability-identifier-naming
    • readability-inconsistent-declaration-parameter-name
    • readability-misleading-indentation
    • readability-misplaced-array-index
    • readability-non-const-parameter
    • readability-redundant-*
    • readability-simplify-*
    • readability-static-*
    • readability-string-compare
    • readability-uniqueptr-delete-release
    • readability-rary-objects

Build Branch Sphinx Documentation

cd gh_pages
sphinx-build . output

Now open gh_pages/output/index.rst and remove output directory before commiting changes.

Debugging Windows Build

About

Contains packages related to motion and process planning for the Tesseract Motion Planning Environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.0%
  • CMake 3.2%
  • HTML 1.4%
  • Python 0.3%
  • CSS 0.1%
  • Makefile 0.0%