Platform | CI Status |
---|---|
Linux (Focal) | |
Windows | |
Lint (Clang-Format) | |
Lint (CMake-Format) | |
Lint (Clang-Tidy) | |
Lint (CodeCov) |
The planning framework (Tesseract) was designed to be light weight, limiting the number of dependencies, mainly only using standard libraries like, eigen, boost, orocos and to the packages below. The core packages are ROS agnostic and have full python support.
A self contained Tesseract Python package is available on PyPI for Windows 10+, Ubuntu 20.04, and Ubuntu 22.04. This package contains Tesseract, Tesseract Planning, and all dependencies in the single package. Packages are available for Python 3.7 - 3.10.
To install on Windows:
python -m pip install tesseract-robotics tesseract-robotics-viewer
To install on Ubuntu 20.04 and Ubuntu 22.04:
sudo apt install python3-pip python3-numpy
# The supplied version of pip on Ubuntu 20.04 is too old for manylinux_2_31, upgrade pip
python3 -m pip install -U pip
python3 -m pip install --user tesseract_robotics tesseract_robotics_viewer
How to create:
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
ffmpeg -i gource.mp4 -r 10 -vf "scale=800:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" tesseract_evolution.gif
It common to leverage docker to develop for different distributions of Ubuntu, so a docker compose file has been provided to simplify this process for Tesseract development.
Initial setup, you must create directories for the different distributions to save Qt Creator configs so they persist.
mkdir ~/.config/QtProjectDocker
mkdir ~/.config/QtProjectDocker/focal
mkdir ~/.config/QtProjectDocker/noetic
mkdir ~/.config/QtProjectDocker/jammy
Now you can start the development docker. Replace focal with what ubuntu distro you want to develope with.
cd <path to tesseract repo>/docker
USER_ID=$(id -u) GROUP_ID=$(id -g) UBUNTU_TAG=focal docker compose -f docker-compose-dev.yaml up --build --remove-orphans
Warning: These packages are under heavy development and are subject to change.
See issue #66
1) Clone repository into your workspace 2) Clone the repositories in the dependencies.repos 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: For noetic tesseract_ext is not required. Install the following dependencies: libbullet-dev, libbullet-extras-dev and ros-noetic-fcl. Taskflow can be install using the PPA below.
NOTE: To speed up clean build you may want to add tesseract_ext to an extended workspace.
NOTE: Install TaskFlow from ROS-Industrial PPA.
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.
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
.
Tesseract packages use ctest because it is ROS agnostic, so to run the test call catkin test --no-deps tesseract_collision tesseract_common tesseract_environment tesseract_geometry tesseract_kinematics tesseract_scene_graph tesseract_urdf tesseract_command_language
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.
.. NOTE: You can replace LCOV above with GCOV or GCOVR.
This package leverages boost serialization. When adding new classes which may be inherited from and then serialized as the base type it is imported to add the following macros for the base type and all derived types.
BOOST_SERIALIZATION_ASSUME_ABSTRACT(tesseract_common::JointLimits)
BOOST_CLASS_EXPORT_KEY(tesseract_common::JointLimits)
BOOST_CLASS_EXPORT_IMPLEMENT(tesseract_common::JointLimits)
The following process will generate a Debian or NuGet package leveraging cmake and cpack based on the OS.
The package should be located in the current directory.
cd <workspace directory>
catkin build -DCMAKE_BUILD_TYPE=Release -DTESSERACT_PACKAGE=ON
./src/tesseract/.run-cpack
.. NOTE: You can add a prefix to the package name by setting -DTESSERACT_PACKAGE_PREFIX="ros-noetic-".
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.
Documentation and tutorials for Tesseract are located at https://github.com/tesseract-robotics/tesseract_docs.git