Skip to content

Commit

Permalink
Merge master into develop (#203)
Browse files Browse the repository at this point in the history
* Add automatic nightly sanity check (#192)

* Add automatic nightly check

* fix

* Add badge

* remove conditions

* Remove develop badge

* restore name

* Fix nightly check (#193)

* Fix nightly check

* fix test

* upgrade scikit-learn to 0.22 (#198)

* upgrade scikit-learn to 0.22

0.21.3 causes warnings with the current numpy version. Upgrading it fixes it.

* add changelog

Co-authored-by: ad-daniel <daniel.dias@epfl.ch>

* bug fixed (#196)

Co-authored-by: Negar <negar.heidari@eng.au.dk>
Co-authored-by: ad-daniel <44834743+ad-daniel@users.noreply.github.com>

* Fix copyright dates and double-check rights owner (action required) (#199)

* Fix dates

* undo wrong change

* Fix Tampere

* Automatic test of pip and docker (#200)

* Test pip installation

* Trigger

* Fix

* Minor

* Updated wheel test

* Added libopenblas install

* Temporary test disable

* Temporary test disable

* Added libsndfile1 dependency

* Restored disabled test

* New wheel building pipeline

* Update build_wheel.sh

* Added libboost-dev dep

* Update installation.md

* Switch to sdist

* sdist workflow

* Update tests_suite.yml

* Added numpy include dirs

* Disabled two 3d detection tests

* Disabled three 3d detection tests

* Disabled five 3d detection tests

* Disabled all 3d detection tests

* Disabled model download - 3d test

* Disabled everything?

* Removed imports from 3d object detection test

* Import test

* Import test

* Import test

* Import test

* Import test

* Import test

* Restored test

* Disabled object detection 3d test

* Refactor workflow

* disable temporarely

* Fix docker mobile manipulation

* Re-enable test

* add badge

* Fix changelog

* remove test install reference

* Restored pip installation

Co-authored-by: Nikolaos Passalis <passalis@users.noreply.github.com>
Co-authored-by: Nikolaos <passalis@csd.auth.gr>

Co-authored-by: Pavlos Tosidis <35866477+Pavlos-Tosidis@users.noreply.github.com>
Co-authored-by: Negar Heidari <36771997+negarhdr@users.noreply.github.com>
Co-authored-by: Negar <negar.heidari@eng.au.dk>
Co-authored-by: Nikolaos Passalis <passalis@users.noreply.github.com>
Co-authored-by: Nikolaos <passalis@csd.auth.gr>
  • Loading branch information
6 people authored Jan 25, 2022
1 parent 83989cd commit ddfa801
Show file tree
Hide file tree
Showing 462 changed files with 768 additions and 493 deletions.
103 changes: 103 additions & 0 deletions .github/workflows/test_packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Test Packages
# This workflow tests the latest (third-party hosted) available builds

on:
pull_request:
types: [opened, reopened, synchronize, labeled, unlabeled]
schedule:
- cron: '0 23 * * *'

defaults:
run:
shell: bash


jobs:
cleanup-runs:
if: ${{ contains(github.event.pull_request.labels.*.name, 'test packages') || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
test-wheel:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test packages') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-20.04]
package:
- engine
- utils
- perception/activity_recognition
- perception/compressive_learning
- perception/face_recognition
- perception/heart_anomaly_detection
- perception/multimodal_human_centric
- perception/object_tracking_2d
- perception/pose_estimation
- perception/speech_recognition
- perception/skeleton_based_action_recognition
- perception/semantic_segmentation
- perception/object_detection_2d
- perception/facial_expression_recognition
# - perception/object_detection_3d
# - control/mobile_manipulation
# - simulation/human_model_generation
# - control/single_demo_grasp
# - perception/object_tracking_3d
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test Wheel
run: |
export DISABLE_BCOLZ_AVX2=true
sudo apt -y install python3.8-venv libfreetype6-dev git build-essential cmake python3-dev wget libopenblas-dev libsndfile1 libboost-dev python3-dev
python3 -m venv venv
source venv/bin/activate
wget https://raw.githubusercontent.com/opendr-eu/opendr/master/dependencies/pip_requirements.txt
cat pip_requirements.txt | xargs -n 1 -L 1 pip install
# Test new package
pip install opendr-toolkit
python -m unittest discover -s tests/sources/tools/${{ matrix.package }}
test-docker:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test packages') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-20.04]
package:
- engine
- utils
- perception/activity_recognition
- perception/compressive_learning
- perception/face_recognition
- perception/heart_anomaly_detection
- perception/multimodal_human_centric
- perception/object_tracking_2d
- perception/pose_estimation
- perception/speech_recognition
- perception/skeleton_based_action_recognition
- perception/semantic_segmentation
- perception/object_detection_2d
- perception/facial_expression_recognition
- perception/object_detection_3d
- control/mobile_manipulation
- simulation/human_model_generation
- control/single_demo_grasp
#- perception/object_tracking_3d
runs-on: ${{ matrix.os }}
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test Docker
run: |
docker run --name toolkit -i opendr/opendr-toolkit:cpu_latest bash
docker start toolkit
docker exec -i toolkit bash -c "source bin/activate.sh && source tests/sources/tools/control/mobile_manipulation/run_ros.sh && python -m unittest discover -s tests/sources/tools/${{ matrix.package }}"
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
name: Test Sources
name: Test Suite (master)

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
schedule:
- cron: '0 23 * * *'

defaults:
run:
shell: bash

jobs:
cleanup-runs:
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') || contains(github.event.pull_request.labels.*.name, 'test tools') }}
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') || contains(github.event.pull_request.labels.*.name, 'test tools') || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
test-sources:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') }}
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-18.04, ubuntu-20.04, macos-10.15]
Expand Down Expand Up @@ -50,7 +52,7 @@ jobs:
python -m unittest discover -s tests
test-tools:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test tools') }}
if: ${{ contains(github.event.pull_request.labels.*.name, 'test tools') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-20.04]
Expand All @@ -71,7 +73,7 @@ jobs:
- control/mobile_manipulation
- perception/object_detection_2d
- simulation/human_model_generation
- perception/facial_expression_recognition/landmark_based_facial_expression_recognition
- perception/facial_expression_recognition
- control/single_demo_grasp
# - perception/object_tracking_3d
include:
Expand All @@ -88,7 +90,6 @@ jobs:
with:
python-version: 3.8
- name: Test Tools
if: ${{ contains(github.event.pull_request.labels.*.name, 'test tools') }}
run: |
${{ matrix.DEPENDENCIES_INSTALLATION }}
export OPENDR_HOME=$PWD
Expand All @@ -105,3 +106,4 @@ jobs:
source tests/sources/tools/control/mobile_manipulation/run_ros.sh
python -m unittest discover -s tests/sources/tools/${{ matrix.package }}
fi
108 changes: 108 additions & 0 deletions .github/workflows/tests_suite_develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Test Suite (develop)

on:
schedule:
- cron: '0 23 * * *'

defaults:
run:
shell: bash

jobs:
cleanup-runs:
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') || contains(github.event.pull_request.labels.*.name, 'test tools') || github.event_name == 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: rokroskar/workflow-run-cleanup-action@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
test-sources:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test sources') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-18.04, ubuntu-20.04, macos-10.15]
include:
- os: ubuntu-18.04
DEPENDENCIES_INSTALLATION: "sudo apt -y install clang-format-10 cppcheck"
- os: ubuntu-20.04
DEPENDENCIES_INSTALLATION: "sudo apt -y install clang-format-10 cppcheck"
- os: macos-10.15
DEPENDENCIES_INSTALLATION: "brew install clang-format cppcheck"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
if: matrix.os == 'ubuntu-20.04' || github.event.pull_request.draft == false
with:
submodules: true
ref: develop
- name: Set up Python 3.8
if: matrix.os == 'ubuntu-20.04' || github.event.pull_request.draft == false
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test Sources
if: matrix.os == 'ubuntu-20.04' || github.event.pull_request.draft == false
run: |
${{ matrix.DEPENDENCIES_INSTALLATION }}
export OPENDR_HOME=$PWD
export OPENDR_DEVICE=cpu
pip install -r tests/requirements.txt
python -m unittest discover -s tests
test-tools:
needs: cleanup-runs
if: ${{ contains(github.event.pull_request.labels.*.name, 'test tools') || github.event_name == 'schedule' }}
strategy:
matrix:
os: [ubuntu-20.04]
package:
- engine
- utils
- perception/activity_recognition
- perception/compressive_learning
- perception/face_recognition
- perception/heart_anomaly_detection
- perception/multimodal_human_centric
- perception/object_tracking_2d
- perception/object_detection_3d
- perception/pose_estimation
- perception/speech_recognition
- perception/skeleton_based_action_recognition
- perception/semantic_segmentation
- control/mobile_manipulation
- perception/object_detection_2d
- simulation/human_model_generation
- perception/facial_expression_recognition
- control/single_demo_grasp
# - perception/object_tracking_3d
include:
- os: ubuntu-20.04
DEPENDENCIES_INSTALLATION: "sudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" > /etc/apt/sources.list.d/ros-latest.list' \
&& curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
submodules: true
ref: develop
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Test Tools
run: |
${{ matrix.DEPENDENCIES_INSTALLATION }}
export OPENDR_HOME=$PWD
export OPENDR_DEVICE=cpu
export PYTHONPATH=$OPENDR_HOME/src:$PYTHONPATH
export DISABLE_BCOLZ_AVX2=true
export ROS_DISTRO=noetic
make install_compilation_dependencies
make install_runtime_dependencies
pip install -r tests/sources/requirements.txt
if [ ${{ matrix.package }} = "ctests" ]; then
make ctests
else
source tests/sources/tools/control/mobile_manipulation/run_ros.sh
python -m unittest discover -s tests/sources/tools/${{ matrix.package }}
fi
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# OpenDR Toolkit Change Log

## Version 1.X
Released on XX, XXth, 2022.

- New Features:
- None.
- Enhancements:
- None.
- Bug Fixes:
- Updated wheel building pipeline to include missing files and removed unnecessary dependencies ([#200](https://github.com/opendr-eu/opendr/pull/200)).
- Dependency Updates:
- `heart anomaly detection`: upgraded scikit-learn runtime dependency from 0.21.3 to 0.22 ([#198](https://github.com/opendr-eu/opendr/pull/198)).


## Version 1.0
Released on December 31th, 2021.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
recursive-include src/opendr *
include requirements.txt
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,30 @@ ______________________________________________________________________
<p align="center">
<a href="https://www.opendr.eu/">Website</a> •
<a href="#about">About</a> •
<a href="docs/reference/installation.md">Installation</a> •
<a href="docs/reference/installation.md">Installation</a> •
<a href="#using-opendr-toolkit">Using OpenDR toolkit</a> •
<a href="projects">Examples</a> •
<a href="#roadmap">Roadmap</a> •
<a href="#roadmap">Roadmap</a> •
<a href="CHANGELOG.md">Changelog</a> •
<a href="LICENSE">License</a>
</p>

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

[![Test Suite (master)](https://github.com/opendr-eu/opendr/actions/workflows/tests_suite.yml/badge.svg)](https://github.com/opendr-eu/opendr/actions/workflows/tests_suite.yml)
[![Test Packages](https://github.com/opendr-eu/opendr/actions/workflows/test_packages.yml/badge.svg)](https://github.com/opendr-eu/opendr/actions/workflows/test_packages.yml)
</div>

## About

The aim of [OpenDR Project](https://opendr.eu) is to develop a **modular, open** and **non-proprietary toolkit** for core **robotic functionalities** by harnessing **deep learning** to provide advanced perception and cognition capabilities, meeting in this way the general requirements of robotics applications in the applications areas of healthcare, agri-food and agile production.
OpenDR provides the means to link the **robotics applications to software libraries** (deep learning frameworks, e.g., [PyTorch](https://pytorch.org/) and [Tensorflow](https://www.tensorflow.org/)) to the **operating environment ([ROS](https://www.ros.org/))**.
The aim of [OpenDR Project](https://opendr.eu) is to develop a **modular, open** and **non-proprietary toolkit** for core **robotic functionalities** by harnessing **deep learning** to provide advanced perception and cognition capabilities, meeting in this way the general requirements of robotics applications in the applications areas of healthcare, agri-food and agile production.
OpenDR provides the means to link the **robotics applications to software libraries** (deep learning frameworks, e.g., [PyTorch](https://pytorch.org/) and [Tensorflow](https://www.tensorflow.org/)) to the **operating environment ([ROS](https://www.ros.org/))**.
OpenDR focuses on the **AI and Cognition core technology** in order to provide tools that make robotic systems cognitive, giving them the ability to:
1. interact with people and environments by developing deep learning methods for **human centric and environment active perception and cognition**,
2. **learn and categorize** by developing deep learning **tools for training and inference in common robotics settings**, and
2. **learn and categorize** by developing deep learning **tools for training and inference in common robotics settings**, and
3. **make decisions and derive knowledge** by developing deep learning tools for cognitive robot action and decision making.

As a result, the developed OpenDR toolkit will also enable cooperative human-robot interaction as well as the development of cognitive mechatronics where sensing and actuation are closely coupled with cognitive systems thus contributing to another two core technologies beyond AI and Cognition.
OpenDR aims to develop, train, deploy and evaluate deep learning models that improve the technical capabilities of the core technologies beyond the current state of the art.
As a result, the developed OpenDR toolkit will also enable cooperative human-robot interaction as well as the development of cognitive mechatronics where sensing and actuation are closely coupled with cognitive systems thus contributing to another two core technologies beyond AI and Cognition.
OpenDR aims to develop, train, deploy and evaluate deep learning models that improve the technical capabilities of the core technologies beyond the current state of the art.

## Installing OpenDR Toolkit

Expand All @@ -42,7 +44,7 @@ You can find detailed installation instruction in the [documentation](docs/refer

## Using OpenDR toolkit
OpenDR provides an intuitive and easy to use **[Python interface](src/opendr)**, a **[C API](src/c_api) for performance critical application**, a wealth of **[usage examples and supporting tools](projects)**, as well as **ready-to-use [ROS nodes](projects/opendr_ws)**.
OpenDR is built to support [Webots Open Source Robot Simulator](https://cyberbotics.com/), while it also extensively follows industry standards, such as [ONNX model format](https://onnx.ai/) and [OpenAI Gym Interface](https://gym.openai.com/).
OpenDR is built to support [Webots Open Source Robot Simulator](https://cyberbotics.com/), while it also extensively follows industry standards, such as [ONNX model format](https://onnx.ai/) and [OpenAI Gym Interface](https://gym.openai.com/).
You can find detailed documentation in OpenDR [wiki](https://github.com/tasostefas/opendr_internal/wiki), as well as in the [tools index](docs/reference/index.md).

## Roadmap
Expand All @@ -52,7 +54,7 @@ OpenDR has the following roadmap:
- **v3.0 (2023)**: Active perception-enabled deep learning tools for improved robotic perception

## How to contribute
Please follow the instructions provided in the [wiki](https://github.com/tasostefas/opendr_internal/wiki).
Please follow the instructions provided in the [wiki](https://github.com/tasostefas/opendr_internal/wiki).


## Acknowledgments
Expand Down
19 changes: 19 additions & 0 deletions bin/build_wheel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

# Build all OpenDR dependecies
./bin/install.sh

# Activate OpenDR
source ./bin/activate.sh

# Prepare requirements.txt for wheel distributions
pip3 freeze > requirements.txt

# Remove detectron and git repositories (installation not supported through PyPI)
sed -i '/detectron2/d' requirements.txt
sed -i '/git/d' requirements.txt
sed -i '/pkg_resources/d' requirements.txt
sed -i '/auditwheel/d' requirements.txt

# Build binary wheel and repair it
python3 setup.py sdist
8 changes: 0 additions & 8 deletions bin/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,5 @@ make install_compilation_dependencies
make install_runtime_dependencies
make libopendr

# Prepare requirements.txt for wheel distributions
pip3 freeze > requirements.txt

# Remove detectron, since it was installed from git repo
sed -i '/detectron2/d' requirements.txt
sed -i '/git/d' requirements.txt
python3 setup.py bdist_wheel

deactivate

2 changes: 1 addition & 1 deletion dependencies/parse_dependencies.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3

# Copyright 2020-2021 OpenDR European Project
# Copyright 2020-2022 OpenDR European Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
Loading

0 comments on commit ddfa801

Please sign in to comment.