Skip to content

Commit

Permalink
Merge pull request #68 from marip8/update/ci
Browse files Browse the repository at this point in the history
Removed dependency on Qt ADS repo and Gazebo
  • Loading branch information
marip8 authored Sep 22, 2023
2 parents 2c8da41 + 49c777c commit be4f117
Show file tree
Hide file tree
Showing 8 changed files with 142 additions and 103 deletions.
6 changes: 0 additions & 6 deletions .add-gazebo-ppa

This file was deleted.

39 changes: 19 additions & 20 deletions .github/workflows/clang_tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,13 @@ on:
jobs:
industrial_ci:
name: ClangTidy
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [humble]
env:
CI_NAME: Clang-Tidy
OS_NAME: ubuntu
OS_CODE_NAME: jammy
ROS_DISTRO: humble
ROS_REPO: main
BEFORE_INIT: './.add-gazebo-ppa'
UPSTREAM_WORKSPACE: 'dependencies_unstable.repos'
ROSDEP_SKIP_KEYS: "catkin taskflow orocos_kdl fcl gz-common5 gz-math7 gz-rendering7"
ADDITIONAL_DEBS: "clang-tidy libgz-common5-dev libgz-math7-dev libgz-rendering7-dev"
DOCKER_IMAGE: "ros:humble"
CCACHE_DIR: "/home/runner/work/tesseract_ros/tesseract_ros/Clang-Tidy/.ccache"
NOT_TEST_BUILD: true
UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug"
TARGET_CMAKE_ARGS: "-DTESSERACT_ENABLE_CLANG_TIDY=ON -DTESSERACT_ENABLE_TESTING=ON"
CXXFLAGS: "-std=c++17"
CCACHE_DIR: ${{ github.workspace }}/${{ matrix.distro }}/.ccache
steps:
- uses: actions/checkout@v1

Expand All @@ -52,10 +42,19 @@ jobs:
continue-on-error: true
uses: actions/cache@v1.1.0
with:
path: ${{ env.CI_NAME }}/.ccache
key: ${{ env.CI_NAME }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
path: ${{ matrix.distro }}/.ccache
key: ${{ matrix.distro }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ env.CI_NAME }}-ccache-
${{ matrix.distro }}-ccache-
- uses: 'ros-industrial/industrial_ci@master'
env: ${{env}}
env:
ROS_DISTRO: humble
ROS_REPO: main
UPSTREAM_WORKSPACE: 'dependencies.repos'
ROSDEP_SKIP_KEYS: "catkin taskflow orocos_kdl fcl gz-common5 gz-math7 gz-rendering7 qt_advanced_docking"
ADDITIONAL_DEBS: "clang-tidy"
NOT_TEST_BUILD: true
UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release -DBUILD_RENDERING=OFF -DBUILD_STUDIO=OFF"
TARGET_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug -DTESSERACT_ENABLE_CLANG_TIDY=ON -DTESSERACT_ENABLE_TESTING=ON"
CXXFLAGS: "-std=c++17"
21 changes: 8 additions & 13 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ jobs:
matrix:
distro: [foxy, humble, rolling]
env:
CI_NAME: ${{ matrix.distro }}-Build
CCACHE_DIR: "/home/runner/work/tesseract_ros2/tesseract_ros2/${{ matrix.distro }}-Build/.ccache"
CCACHE_DIR: ${{ github.workspace }}/${{ matrix.distro }}/.ccache
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
PUSH_DOCKER_IMAGE: ${{ github.ref == 'refs/heads/master' || github.event_name == 'release' }}
Expand All @@ -49,10 +48,10 @@ jobs:
continue-on-error: true
uses: actions/cache@v1.1.0
with:
path: ${{ env.CI_NAME }}/.ccache
key: ${{ env.CI_NAME }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
path: ${{ env.CCACHE_DIR }}
key: ${{ matrix.distro }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ env.CI_NAME }}-ccache-
${{ env.matrix.distro }}-ccache-
- name: Login to Github container registry
uses: docker/login-action@v1
Expand Down Expand Up @@ -85,19 +84,15 @@ jobs:
- uses: 'ros-industrial/industrial_ci@master'
env:
OS_NAME: ubuntu
ROS_DISTRO: ${{ matrix.distro }}
ROS_REPO: main
BEFORE_INIT: './.add-gazebo-ppa'
UPSTREAM_WORKSPACE: 'dependencies_unstable.repos'
ROSDEP_SKIP_KEYS: "catkin taskflow fcl gz-common5 gz-math7 gz-rendering7"
ADDITIONAL_DEBS: "libgz-common5-dev libgz-math7-dev libgz-rendering7-dev"
DOCKER_IMAGE: "ros:${{ matrix.distro }}"
UPSTREAM_WORKSPACE: 'dependencies.repos'
ROSDEP_SKIP_KEYS: "catkin taskflow fcl gz-common5 gz-math7 gz-rendering7 qt_advanced_docking"
PARALLEL_TESTS: false
NOT_TEST_BUILD: true
PREFIX: ${{ github.repository }}_
UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release"
TARGET_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug"
UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release -DBUILD_RENDERING=OFF -DBUILD_STUDIO=OFF"
TARGET_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}"
BEFORE_RUN_TARGET_TEST_EMBED: "source /root/target_ws/install/local_setup.bash"
AFTER_SCRIPT: 'rm -r $BASEDIR/${PREFIX}upstream_ws/build $BASEDIR/${PREFIX}target_ws/build'
DOCKER_COMMIT: ${{ steps.meta.outputs.tags }}
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/unstable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Unstable

on:
push:
branches:
- master
pull_request:
schedule:
- cron: '0 5 * * 6'
workflow_dispatch:
release:
types:
- released

jobs:
industrial_ci:
name: ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [humble]
env:
CCACHE_DIR: ${{ github.workspace }}/${{ matrix.distro }}/.ccache
steps:
- uses: actions/checkout@v1

- name: Free Disk Space
continue-on-error: true
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
continue-on-error: true
uses: actions/cache@v1.1.0
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ matrix.distro }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ env.matrix.distro }}-ccache-
- uses: 'ros-industrial/industrial_ci@master'
env:
ROS_DISTRO: ${{ matrix.distro }}
ROS_REPO: main
UPSTREAM_WORKSPACE: 'dependencies_unstable.repos'
ROSDEP_SKIP_KEYS: "catkin taskflow fcl gz-common5 gz-math7 gz-rendering7 qt_advanced_docking"
PARALLEL_TESTS: false
NOT_TEST_BUILD: true
PREFIX: ${{ github.repository }}_
UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release -DBUILD_RENDERING=OFF -DBUILD_STUDIO=OFF"
TARGET_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release"
BEFORE_RUN_TARGET_TEST_EMBED: "source /root/target_ws/install/local_setup.bash"
75 changes: 37 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,59 @@

Platform | CI Status
---------------------|:---------
Linux (Focal) | [![Build Status](https://github.com/tesseract-robotics/tesseract_ros2/workflows/Focal-Build/badge.svg)](https://github.com/tesseract-robotics/tesseract_ros2/actions)
Linux (Jammy) | [![Build Status](https://github.com/tesseract-robotics/tesseract_ros2/workflows/Jammy-Build/badge.svg)](https://github.com/tesseract-robotics/tesseract_ros2/actions)
Ubuntu | [![Build Status](https://github.com/tesseract-robotics/tesseract_ros2/workflows/Ubuntu/badge.svg)](https://github.com/tesseract-robotics/tesseract_ros2/actions)
Lint (Clang-Format) | [![Build Status](https://github.com/tesseract-robotics/tesseract_ros2/workflows/Clang-Format/badge.svg)](https://github.com/tesseract-robotics/tesseract_ros2/actions)
Lint (Clang Tidy) | [![Build Status](https://github.com/tesseract-robotics/tesseract_ros2/workflows/Clang-Tidy/badge.svg)](https://github.com/tesseract-robotics/tesseract_ros2/actions)

### Supported ROS Distros
| Distro | Support |
| :--- | :---: |
| ROS Foxy | ✓ |
| ROS Humble | ✓ |

[![Github Issues](https://img.shields.io/github/issues/ros-industrial-consortium/tesseract_ros.svg)](http://github.com/ros-industrial-consortium/tesseract_ros/issues)

[![license - apache 2.0](https://img.shields.io/:license-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)
[![license - bsd 2 clause](https://img.shields.io/:license-BSD%202--Clause-blue.svg)](https://opensource.org/licenses/BSD-2-Clause)

[![support level: consortium](https://img.shields.io/badge/support%20level-consortium-brightgreen.png)](http://rosindustrial.org/news/2016/10/7/better-supporting-a-growing-ros-industrial-software-platform)

## Tesseract ROS Packages

* **tesseract_ros_examples** – This package contains ROS examples using tesseract and tesseract_ros for motion planning and collision checking.
* **tesseract_rosutils** – This package contains the utilities like converting from ROS message types to native Tesseract types and the reverse.
* **tesseract_msgs** – This package contains the ROS message types used by Tesseract ROS.
* **tesseract_rviz** – This package contains the ROS visualization plugins for Rviz to visualize Tesseract. All of the features have been composed in libraries to enable to the ability to create custom displays quickly.
* **tesseract_monitoring** – This package contains different types of environment monitors. It currently contains a contact monitor and environment monitor. The contact monitor will monitor the active environment state and publish contact information. This is useful if the robot is being controlled outside of ROS, but you want to make sure it does not collide with objects in the environment. The second is the environment monitor, which is the main environment which facilitates requests to add, remove, disable and enable collision objects, while publishing its current state to keep other ROS nodes updated with the latest environment.
* **tesseract_planning_server** - This package contains a planning server supporting asynchronous execution of multiple planning requests.

## TODO's

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


See [issue #66](https://github.com/ros-industrial-consortium/tesseract/issues/66)

## Install Instructions

Clone this repository and the packages in the dependencies.rosinstall into your workspace. Build using [catkin_tools](https://catkin-tools.readthedocs.io/en/latest/) or something similar

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

## Tesseract Examples
### Online Planning Example
This example demonstrates using TrajOpt to plan in an "online" manner. Use the joint state publisher gui to change the location of the collision obstacle or the target and watch it dynamically plan. Adjust the box_size parameter for faster adaption.
### `tesseract_ros_examples`
This package contains ROS examples using tesseract and tesseract_ros for motion planning and collision checking.

```roslaunch tesseract_ros_examples online_planning_example.launch```
### `tesseract_rosutils`
This package contains the utilities like converting from ROS message types to native Tesseract types and the reverse.

![Online Planning Example](gh_pages/_static/examples/online_planning_example.gif)
### `tesseract_msgs`
This package contains the ROS message types used by Tesseract ROS.

## Building with Clang-Tidy Enabled
### `tesseract_rviz`
This package contains the ROS visualization plugins for Rviz to visualize Tesseract.
All of the features have been composed in libraries to enable to the ability to create custom displays quickly.

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.
### `tesseract_monitoring`
This package contains different types of environment monitors.
It currently contains a contact monitor and environment monitor.
The contact monitor will monitor the active environment state and publish contact information.
This is useful if the robot is being controlled outside of ROS, but you want to make sure it does not collide with objects in the environment.
The second is the environment monitor, which is the main environment which facilitates requests to add, remove, disable and enable collision objects, while publishing its current state to keep other ROS nodes updated with the latest environment.

## Running Tesseract ROS Tests
### `tesseract_planning_server`
This package contains a planning server supporting asynchronous execution of multiple planning requests.

Tesseract ROS Packages use the typical method so pass catkin argument `run_tests` when wanting to run these tests.
## Build
- Create a `colcon` workspace and clone this repository into its `src` directory

## Build Branch Sphinx Documentation
- Add the dependencies
```bash
cd <colcon_ws>
vcs import < src/tesseract_ros2/dependencies.repos
rosdep install --from-paths src -iry
```

```
cd gh_pages
sphinx-build . output
```
Now open gh_pages/output/index.rst and remove *output* directory before commiting changes.
- Build
```bash
colcon build --symlink-install --cmake-args -DTESSERACT_BUILD_FCL=OFF -DBUILD_RENDERING=OFF -DBUILD_STUDIO=OFF
```
14 changes: 5 additions & 9 deletions dependencies.repos
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,27 @@ repositories:
ros_industrial_cmake_boilerplate:
type: git
url: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git
version: 0.4.7
version: 0.5.4
tesseract:
type: git
url: https://github.com/tesseract-robotics/tesseract.git
version: 0.18.1
version: 0.18.2
trajopt:
type: git
url: https://github.com/tesseract-robotics/trajopt.git
version: 0.6.0
tesseract_planning:
type: git
url: https://github.com/tesseract-robotics/tesseract_planning.git
version: 0.18.3
version: 0.18.5
tesseract_qt:
type: git
url: https://github.com/tesseract-robotics/tesseract_qt.git
version: 0.18.1
version: 0.18.4
descartes_light:
type: git
url: https://github.com/swri-robotics/descartes_light.git
version: fbb74eb
version: 0.3.2
opw_kinematics:
type: git
url: https://github.com/Jmeyer1292/opw_kinematics.git
Expand All @@ -35,10 +35,6 @@ repositories:
type: git
url: https://github.com/taskflow/taskflow.git
version: v3.4.0
Qt-Advanced-Docking-System:
type: git
url: https://github.com/Levi-Armstrong/Qt-Advanced-Docking-System.git
version: ros
fcl:
type: git
url: https://github.com/flexible-collision-library/fcl.git
Expand Down
4 changes: 0 additions & 4 deletions dependencies_unstable.repos
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ repositories:
type: git
url: https://github.com/taskflow/taskflow.git
version: v3.4.0
Qt-Advanced-Docking-System:
type: git
url: https://github.com/Levi-Armstrong/Qt-Advanced-Docking-System.git
version: ros
fcl:
type: git
url: https://github.com/flexible-collision-library/fcl.git
Expand Down
22 changes: 9 additions & 13 deletions dependencies_with_ext.repos
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,27 @@ repositories:
ros_industrial_cmake_boilerplate:
type: git
url: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git
version: 0.4.7
tesseract_ext:
type: git
url: https://github.com/tesseract-robotics/tesseract_ext.git
version: master
version: 0.5.4
tesseract:
type: git
url: https://github.com/tesseract-robotics/tesseract.git
version: 0.18.1
version: 0.18.2
trajopt:
type: git
url: https://github.com/tesseract-robotics/trajopt.git
version: 0.6.0
tesseract_planning:
type: git
url: https://github.com/tesseract-robotics/tesseract_planning.git
version: 0.18.3
version: 0.18.5
tesseract_qt:
type: git
url: https://github.com/tesseract-robotics/tesseract_qt.git
version: 0.18.1
version: 0.18.4
descartes_light:
type: git
url: https://github.com/swri-robotics/descartes_light.git
version: fbb74eb
version: 0.3.2
opw_kinematics:
type: git
url: https://github.com/Jmeyer1292/opw_kinematics.git
Expand All @@ -39,11 +35,11 @@ repositories:
type: git
url: https://github.com/taskflow/taskflow.git
version: v3.4.0
Qt-Advanced-Docking-System:
type: git
url: https://github.com/Levi-Armstrong/Qt-Advanced-Docking-System.git
version: ros
fcl:
type: git
url: https://github.com/flexible-collision-library/fcl.git
version: 0.7.0
tesseract_ext:
type: git
url: https://github.com/tesseract-robotics/tesseract_ext.git
version: master

0 comments on commit be4f117

Please sign in to comment.