Skip to content

Commit

Permalink
Merge pull request #144 from robotology/stream_desired_values
Browse files Browse the repository at this point in the history
  • Loading branch information
S-Dafarra authored Sep 13, 2024
2 parents 82d3dd9 + 18606f6 commit 95ed1a6
Show file tree
Hide file tree
Showing 38 changed files with 525 additions and 1,080 deletions.
193 changes: 45 additions & 148 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,194 +17,91 @@ jobs:
matrix:
build_type: [Release]
os: [ubuntu-latest, windows-latest, macOS-latest]
fail-fast: false


steps:
- uses: actions/checkout@master

# Print environment variables to simplify development and debugging
- name: Environment Variables
shell: bash
run: env
- uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Miniforge3
miniforge-version: latest
channels: conda-forge,robostack-staging,robotology
channel-priority: true

# ============
# DEPENDENCIES
# ============

# Remove apt repos that are known to break from time to time
# See https://github.com/actions/virtual-environments/issues/323
- name: Remove broken apt repos [Ubuntu]
if: matrix.os == 'ubuntu-latest'
- name: Dependencies
shell: bash -l {0}
run: |
for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done
- name: Dependencies [Windows]
if: matrix.os == 'windows-latest'
# Workaround for https://github.com/conda-incubator/setup-miniconda/issues/186
conda config --remove channels defaults
# Compilation related dependencies
conda install cmake compilers make ninja pkg-config
# Actual dependencies
conda install yarp ycm-cmake-modules icub-main eigen idyntree bipedal-locomotion-framework human-dynamics-estimation wearables
- name: Linux-only Dependencies [Linux]
if: contains(matrix.os, 'ubuntu')
shell: bash -l {0}
run: |
git clone https://github.com/robotology-dependencies/robotology-vcpkg-binary-ports C:/robotology-vcpkg-binary-ports
vcpkg.exe --overlay-ports=C:/robotology-vcpkg-binary-ports install --triplet x64-windows ace libxml2 eigen3 ipopt-binary catch2
conda install mesa-libgl-devel-cos7-x86_64
- name: Dependencies [macOS]
if: matrix.os == 'macOS-latest'
- name: Windows-only Dependencies [Windows]
if: contains(matrix.os, 'windows')
shell: bash -l {0}
run: |
brew install ace boost eigen swig qt5 orocos-kdl catch2
conda install vs2019_win-64
- name: Dependencies [Ubuntu]
if: matrix.os == 'ubuntu-latest'
- name: Windows-workarounds [Windows]
if: contains(matrix.os, 'windows')
shell: cmd /C CALL {0}
run: |
sudo apt-get update
sudo apt-get install git build-essential cmake libace-dev coinor-libipopt-dev libboost-system-dev libboost-filesystem-dev \
libboost-thread-dev liborocos-kdl-dev libeigen3-dev swig qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev \
libxml2-dev liburdfdom-dev libtinyxml-dev liburdfdom-dev liboctave-dev python3-dev valgrind
- name: Source-based Dependencies [Windows]
if: matrix.os == 'windows-latest'
shell: bash
:: Due to this https://github.com/conda-forge/icub-models-feedstock/issues/18
:: pcl is removed as a workaround for https://github.com/ami-iit/bipedal-locomotion-framework/pull/695#issuecomment-1632208836
:: pcl can be re-added once we have a ros humble build compatible with PCL 1.13.0
:: pybind11 constrained as workaround for https://github.com/conda-forge/pybind11-feedstock/issues/95
conda install "pybind11<2.12.0"
conda remove icub-models pcl
- name: Print used environment
shell: bash -l {0}
run: |
# YCM
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/ycm
cd ycm
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target INSTALL
# YARP
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/yarp
cd yarp
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target INSTALL
# Workaround for https://github.com/robotology-dependencies/robotology-vcpkg-binary-ports/issues/3
export IPOPT_DIR=${VCPKG_INSTALLATION_ROOT}/installed/x64-windows
# iDynTree
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/iDynTree
cd iDynTree
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
# icub-main
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/icub-main.git
cd icub-main && mkdir -p build && cd build
cmake -A x64 -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DENABLE_icubmod_cartesiancontrollerserver=ON -DENABLE_icubmod_cartesiancontrollerclient=ON -DENABLE_icubmod_gazecontrollerclient=ON ..
cmake --build . --config ${{ matrix.build_type }} --target install
# wearables
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/wearables.git
cd wearables
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DXSENS_MVN_USE_SDK:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
- name: Source-based Dependencies [Ubuntu/macOS]
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest'
shell: bash
run: |
# YCM
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/ycm
cd ycm
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
# YARP
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/yarp
cd yarp
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
# iDynTree
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/iDynTree
cd iDynTree
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
# icub-main
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/icub-main.git
cd icub-main && mkdir -p build && cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DENABLE_icubmod_cartesiancontrollerserver=ON -DENABLE_icubmod_cartesiancontrollerclient=ON -DENABLE_icubmod_gazecontrollerclient=ON ..
cmake --build . --config ${{ matrix.build_type }} --target install
# wearables
cd ${GITHUB_WORKSPACE}
git clone https://github.com/robotology/wearables.git
cd wearables
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake --build . --config ${{ matrix.build_type }} --target install
conda list
env
# ===================
# CMAKE-BASED PROJECT
# ===================

- name: Configure [Windows]
# Use bash also on Windows (otherwise cd, mkdir, ... do not work)
if: matrix.os == 'windows-latest'
shell: bash
shell: bash -l {0}
run: |
mkdir -p build
cd build
cmake -A x64 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install \
cmake -G"Visual Studio 17 2022" \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
- name: Configure [Ubuntu/macOS]
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest'
shell: bash
shell: bash -l {0}
run: |
mkdir -p build
cd build
cmake -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install ..
- name: Build
shell: bash
shell: bash -l {0}
run: |
cd build
# Attempt of fix for using YARP idl generators (that link ACE) in Windows
# See https://github.com/robotology/idyntree/issues/569
export PATH=$PATH:${GITHUB_WORKSPACE}/install/bin:${VCPKG_ROBOTOLOGY_ROOT}/installed/x64-windows/bin
cmake --build . --config ${{ matrix.build_type }}
- name: Install
shell: bash
shell: bash -l {0}
run: |
cd build
cmake --build . --config ${{ matrix.build_type }} --target install
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,6 @@ compile_commands.json
CMakeLists.txt.user
.vscode/

# Visual studio
.vs/*
CMakeSettings.json
7 changes: 6 additions & 1 deletion app/robots/ergoCubGazeboV1/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name HapticGloveRetargeting
robot ergocubSim
samplingTime 0.01
enableMoveRobot 1
enableLogger 0
enableLogger 1
useLeftHand 1
useRightHand 1
isMandatory 0
Expand All @@ -26,6 +26,11 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold -1.0

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
7 changes: 6 additions & 1 deletion app/robots/ergoCubSN000/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name HapticGloveRetargeting
robot ergocub
samplingTime 0.1
enableMoveRobot 1
enableLogger 0
enableLogger 1
useLeftHand 1
useRightHand 1
isMandatory 0
Expand All @@ -26,6 +26,11 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold -1.0

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
7 changes: 6 additions & 1 deletion app/robots/ergoCubSN001/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name HapticGloveRetargeting
robot ergocub
samplingTime 0.1
enableMoveRobot 1
enableLogger 0
enableLogger 1
useLeftHand 1
useRightHand 1
isMandatory 0
Expand All @@ -26,6 +26,11 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold -1.0

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
7 changes: 6 additions & 1 deletion app/robots/ergoCubSN002/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name HapticGloveRetargeting
robot ergocub
samplingTime 0.1
enableMoveRobot 1
enableLogger 0
enableLogger 1
useLeftHand 1
useRightHand 1
isMandatory 0
Expand All @@ -26,6 +26,11 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold -1.0

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
4 changes: 4 additions & 0 deletions app/robots/iCubErzelli02/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold 0.0001

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
Expand Down
1 change: 0 additions & 1 deletion app/robots/iCubErzelli02/oculusConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ useXsens 0
useiFeel 1
useOpenXr 1
useSenseGlove 0
enableLogger 0
enableMoveRobot 1
# the following value is a threshold used to update the teleoperation frame position
# when the human rotates inside the virtualizer
Expand Down
4 changes: 4 additions & 0 deletions app/robots/iCubGazeboV2_5/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold 0.0001

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
Expand Down
1 change: 0 additions & 1 deletion app/robots/iCubGazeboV2_5/oculusConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ robot icubSim
useXsens 0
useiFeel 1
useSenseGlove 0
enableLogger 0
enableMoveRobot 1
# the following value is a threshold used to update the teleoperation frame position
# when the human rotates inside the virtualizer
Expand Down
5 changes: 5 additions & 0 deletions app/robots/iCubGazeboV3/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ waitingDurationTime 5.0
# threshold in which an skin is considered as working fine [no units]
tactileWorkingThreshold 0.0001

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
5 changes: 5 additions & 0 deletions app/robots/iCubGenova04/hapticGloveConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ tactileWorkingThreshold 0.0001
# threshold in which an skin data is considered updated [no units]
tactileUpdateThreshold 0.0001

[LOGGER]
remote "/logger"
logHumanData true
logKalmanFilterData false

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersHapticRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersHapticRetargetingParams.ini"]
Loading

0 comments on commit 95ed1a6

Please sign in to comment.