Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add HDE profile to superbuild #231

Merged
merged 27 commits into from
Aug 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
17ec3e8
Add HDE profile to ReadMe
kouroshD Jun 3, 2019
b7fa3e9
Update README.md
kouroshD Jun 3, 2019
41c7a5b
Add HDE option to super-build
kouroshD Jun 3, 2019
d247817
supdate HDE option to superbuild
kouroshD Jun 3, 2019
2685f86
Update README.md
kouroshD Jun 3, 2019
d9de7e8
Update README.md
kouroshD Jun 3, 2019
dbcf017
Update HDE Maintainer
kouroshD Jun 3, 2019
438afb6
add the dependency of HDE to wearable
kouroshD Jun 3, 2019
f6a2a91
update wearables git address
kouroshD Jun 4, 2019
9672361
add human-gazebo repo
kouroshD Jul 29, 2019
b2fe192
fix the dependencies of human-gazebo
kouroshD Jul 29, 2019
f1eae2d
fix the problems with windows installation
kouroshD Jul 31, 2019
0d1a88d
update README
kouroshD Aug 1, 2019
0dbd25d
Update README.md
kouroshD Aug 3, 2019
7f2e75e
Update cmake/Buildforcetorque-yarp-devices.cmake
kouroshD Aug 3, 2019
3d8f17a
Update cmake/Buildforcetorque-yarp-devices.cmake
kouroshD Aug 3, 2019
fd5653d
Update README.md
kouroshD Aug 3, 2019
b79e25d
Update cmake/Buildhuman-gazebo.cmake
kouroshD Aug 6, 2019
2aa56fc
modify human-dynamics-estimation dependencies
kouroshD Aug 6, 2019
34e3b7e
Update cmake/Buildhuman-dynamics-estimation.cmake
kouroshD Aug 6, 2019
96f3c36
Update cmake/Buildhuman-dynamics-estimation.cmake
kouroshD Aug 6, 2019
e7ff49a
update the dependencies of wearables repo
kouroshD Aug 6, 2019
338dce5
Update CMakeLists.txt
kouroshD Aug 7, 2019
6282d9e
Update README.md
kouroshD Aug 9, 2019
544c834
Update README.md
kouroshD Aug 9, 2019
cac76a3
update the dependencies of human-dynamics profile.
kouroshD Aug 19, 2019
9982607
Update README.md
kouroshD Aug 19, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,12 @@ option(ROBOTOLOGY_ENABLE_CORE "Enable compilation of core software libraries." T
option(ROBOTOLOGY_ENABLE_DYNAMICS "Enable compilation of software for balancing and walking." FALSE)
option(ROBOTOLOGY_ENABLE_TELEOPERATION "Enable compilation of software for teleoperation." FALSE)
option(ROBOTOLOGY_ENABLE_ICUB_HEAD "Enable compilation of software necessary on the system running in the head of the iCub robot." FALSE)
option(ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS "Enable compilation of software for human dynamics estimation." FALSE)
include(CMakeDependentOption)
cmake_dependent_option(ROBOTOLOGY_USES_CFW2CAN "Enable compilation of software that runs on the head of the iCub and depends on CFW2CAN." FALSE "ROBOTOLOGY_ENABLE_ICUB_HEAD" FALSE)

cmake_dependent_option(ROBOTOLOGY_USES_CFW2CAN "Enable compilation of software that runs on the head of the iCub and depends on CFW2CAN." FALSE "ROBOTOLOGY_ENABLE_ICUB_HEAD" FALSE)
cmake_dependent_option(ROBOTOLOGY_USES_ESDCAN "Enable compilation of software that runs on the head of the iCub and depends on ESDCAN." FALSE "ROBOTOLOGY_ENABLE_ICUB_HEAD" FALSE)
cmake_dependent_option(ROBOTOLOGY_USES_XSENS_MVN_SDK "Enable compilation of software that runs on the wearable producer machine and depends on Xsens MVN SDK." FALSE "ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS" FALSE)

# Mark as advanced all the profiles that do not have a mantainer
option(ROBOTOLOGY_ENABLE_GRASPING "Enable compilation of software for grasping." FALSE)
Expand Down Expand Up @@ -150,6 +153,16 @@ if(ROBOTOLOGY_ENABLE_TELEOPERATION)
find_or_build_package(walking-teleoperation)
endif()

# Human Dynamics Estimation
if(ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS)
find_or_build_package(forcetorque-yarp-devices)
find_or_build_package(wearables)
if(NOT WIN32)
find_or_build_package(human-dynamics-estimation)
endif()
find_or_build_package(human-gazebo)
endif()

# Grasping
if(ROBOTOLOGY_ENABLE_GRASPING)
find_or_build_package(icub-grasp-demo)
Expand All @@ -167,7 +180,9 @@ endif()
if(ROBOTOLOGY_ENABLE_ICUB_HEAD)
find_or_build_package(icub-firmware-shared)
find_or_build_package(ICUB)
find_or_build_package(xsensmt-yarp-driver)
if((NOT WIN32) AND (NOT APPLE))
find_or_build_package(xsensmt-yarp-driver)
endif()
endif()

# R1 Robot
Expand Down
49 changes: 48 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,16 @@ Table of Contents
* [Dynamics profile](#dynamics)
* [iCub Head profile](#icub-head)
* [Teleoperation profile](#teleoperation)
* [Human Dynamics profile](#human-dynamics)
* [Dependencies-specific documentation](#dependencies-specific-documentation)
* [Gazebo simulator](#gazebo)
* [MATLAB](#matlab)
* [Octave](#octave)
* [Python](#python)
* [Oculus](#oculus)
* [Cyberith](#cyberith)
* [Xsens](#xsens)
* [FTShoes/FTSkShoes](#shoes)
* [FAQs](#faqs)
* [Mantainers](#mantainers)

Expand Down Expand Up @@ -62,6 +65,7 @@ Note that any dependencies of the included packages that is not available in the
| `ROBOTOLOGY_ENABLE_DYNAMICS` | The robotology software packages related to balancing, walking and force control. | [`iDynTree`](https://github.com/robotology/idyntree), [`blockfactory`](https://github.com/robotology/blockfactory), [`wb-Toolbox`](https://github.com/robotology/wb-Toolbox), [`whole-body-controllers`](https://github.com/robotology/whole-body-controllers), [`walking-controllers`](https://github.com/robotology/walking-controllers). [`icub-gazebo-wholebody`](https://github.com/robotology-playground/icub-gazebo-wholebody) if the `ROBOTOLOGY_USES_GAZEBO` option is enabled. | `OFF` | [Documentation on Dynamics profile.](#dynamics) |
| `ROBOTOLOGY_ENABLE_ICUB_HEAD` | The robotology software packages needed on the system that is running on the head of the iCub robot, or in general to communicate directly with iCub low-level devices. | [`icub-firmware`](https://github.com/robotology/icub-firmware), [`icub-firmware-shared`](https://github.com/robotology/icub-firmware-shared). Furthermore, several additional devices are compiled in `YARP` and `ICUB` if this option is enabled. | `OFF` | [Documentation on iCub Head profile.](#icub-head) |
| `ROBOTOLOGY_ENABLE_TELEOPERATION` | The robotology software packages related to teleoperation. | [`walking-teleoperation`](https://github.com/robotology/walking-teleoperation). To use Oculus or Cyberith Omnidirectional Treadmill enable `ROBOTOLOGY_USES_OCULUS_SDK` and `ROBOTOLOGY_USES_CYBERITH_SDK` options. | `OFF` | [Documentation on teleoperation profile.](#teleoperation) |
| `ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS` | The robotology software packages related to human dynamics estimation. | [`human-dynamics-estimation`](https://github.com/robotology/human-dynamics-estimation), [`wearables`](https://github.com/robotology/wearables), [`forcetorque-yarp-devices`](https://github.com/robotology/forcetorque-yarp-devices). For options check the profile documentation. | `OFF` | [Documentation on human dynamics profile.](#human-dynamics) |

If any of the packages required by the selected profiles is already available in the system (i.e. it can be found by the [`find_package` CMake command](https://cmake.org/cmake/help/v3.5/command/find_package.html) ), it will be neither downloaded, nor compiled, nor installed. In `robotology-superbuild`, this check is done by the [`find_or_build_package` YCM command](http://robotology.github.io/ycm/gh-pages/git-master/module/FindOrBuildPackage.html) in the main [`CMakeLists.txt`](https://github.com/robotology/robotology-superbuild/blob/db0f68300439ccced8497db4c321cd63416cf1c0/CMakeLists.txt#L108) of the superbuild.

Expand All @@ -78,6 +82,8 @@ The dependencies CMake options specify if the packages dependending on something
| `ROBOTOLOGY_USES_OCULUS_SDK` | Include software and plugins that depend on [Oculus](https://www.oculus.com/). | `OFF` | [Documentation on Oculus dependency.](#oculus) |
| `ROBOTOLOGY_USES_CYBERITH_SDK` | Include software and plugins that depend on [Cyberith](https://www.cyberith.com/). | `OFF` | [Documentation on Cyberith dependency.](#cyberith) |
| `ROBOTOLOGY_USES_CFW2CAN` | Include software and plugins that depend on [CFW2 CAN custom board](http://wiki.icub.org/wiki/CFW_card). | `OFF` | No specific documentation is available for this option, as it is just used with the [iCub Head profile](#icub-head), in which the related documentation can be found. |
| `ROBOTOLOGY_USES_ESDCAN` | Include software and plugins that depend on [Esd Can bus](http://wiki.icub.org/wiki/Esd_Can_Bus). | `OFF` | [Documentation on FTShoes/FTSkShoes dependency](#shoes) |
| `ROBOTOLOGY_USES_XSENS_MVN_SDK` | Include software and plugins that depend on [Xsens MVN SDK](https://www.xsens.com/products/). | `OFF` | [Documentation on Xsens MVN dependency](#xsens) |


Installation
Expand Down Expand Up @@ -293,6 +299,9 @@ These installers will set automatically all the enviroment variables necessary t
If you want to enable a [profile](#profile-cmake-options) or a [dependency](#dependencies-cmake-options) specific CMake option, you may need to install additional system dependencies following the dependency-specific documentation:
* [`ROBOTOLOGY_USES_OCULUS_SDK`](#oculus)
* [`ROBOTOLOGY_USES_CYBERITH_SDK`](#cyberith)
* [`ROBOTOLOGY_USES_XSENS_MVN_SDK`](#xsens)
* [`ROBOTOLOGY_USES_ESDCAN`](#shoes)


### Superbuild
If you didn't already configured your git, you have to set your name and email to sign your commits:
Expand Down Expand Up @@ -360,6 +369,8 @@ Software installed by the following [profile](#profile-cmake-options) or [depend
* [`ROBOTOLOGY_USES_OCTAVE`](#octave)
* [`ROBOTOLOGY_USES_OCULUS_SDK`](#oculus)
* [`ROBOTOLOGY_USES_CYBERITH_SDK`](#cyberith)
* [`ROBOTOLOGY_USES_XSENS_MVN_SDK`](#xsens)
* [`ROBOTOLOGY_USES_ESDCAN`](#shoes)

**If you have problems in Windows in launching executables or using libraries installed by superbuild, it is possible that due to some existing software on your machine your executables are not loading the correct `dll` for some of the dependencies. This is the so-called [DLL Hell](https://en.wikipedia.org/wiki/DLL_Hell#Causes), and for example it can happen if you are using the [Anaconda](https://www.anaconda.com/) Python distribution on your Windows installation. To troubleshoot this kind of problems, you can open the library or executable that is not working correctly using the [`Dependencies`](https://github.com/lucasg/Dependencies) software. This software will show you which DLL your executable or library is loading. If you have any issue of this kind and need help, feel free to [open an issue in our issue tracker](https://github.com/robotology/robotology-superbuild/issues/new).**

Expand Down Expand Up @@ -503,6 +514,16 @@ In this scenario, we use both [Oculus](#oculus) and [cyberith treadmill](#cyberi
### Configuration
The steps necessary to install the system dependencies of the Teleoperation profile are provided in operating system-specific installation documentation, and no additional system dependency is required.


## Human Dynamics
This profile is enabled by the `ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS` CMake option.

### System Dependencies
To run a human dynamics estimation scenario, we need a Windows machine to install the Xsens suit SDK for getting the sensory information of the human motions from [Xsens](https://www.xsens.com/) and [ESD USB CAN driver](https://esd.eu/en/products/can-usb2) to get the FTShoes/FTSkShoes sensory information. Refer to [Xsens](#xsens) and [FTShoes/FTSkShoes](#shoes) for more information about the dependencies.

### Configuration
The steps necessary to install the system dependencies of the Human Dynamics profile are provided in operating system-specific installation documentation, and no additional system dependency is required.

Dependencies-specific documentation
===================================

Expand Down Expand Up @@ -636,6 +657,31 @@ To check and install the Cyberith SDK, please follow the steps for Cyberith SDK
### Configuration
To configure the Cyberith SDK please follow the steps for Cyberith SDK mentioned in [here](https://github.com/robotology/walking-teleoperation/blob/master/docs/Dependencies.md).

## Xsens
Support for `ROBOTOLOGY_USES_XSENS_MVN_SDK` option is only enabled when the `ROBOTOLOGY_ENABLE_HUMAN_DYNAMICS` CMake option is set to ON.

**Warning: at the moment the Xsens MVN SDK does not support macOS and Linux, so this option is only supported
on Windows.**

### System Dependencies
To check and install the Xsens MVN SDK, please follow the steps for Xsens MVN SDK mentioned in [here](https://github.com/robotology/human-dynamics-estimation/wiki/Set-up-Machine-for-running-HDE#xsens-only-for-windows).

### Configuration
To configure the Xsens MVN SDK please follow the steps for Xsens MVN SDK mentioned in [here](https://github.com/robotology/human-dynamics-estimation/wiki/Set-up-Machine-for-running-HDE#xsens-only-for-windows).

## Shoes
Support for FTShoes/FTSkShoes depends on operating system.
- For Windows the support is provided by`ROBOTOLOGY_USES_ESDCAN` option (shoes force/torque sensors) is only enabled when the `ROBOTOLOGY_ENABLE_ICUB_HEAD` CMake option is set to ON.
- For Linux OS enable the `socketCan` option in [`ICUB`](https://github.com/robotology/icub-main) (not tested).
- This option does not support in macOS.


### System Dependencies
To get the information from FTShoes/FTSkShoes, check and install the ESD USB CAN driver, please follow the steps for USB-CAN2 driver mentioned in [here](https://github.com/robotology/human-dynamics-estimation/wiki/Set-up-Machine-for-running-HDE#usb-can-2) (Windows OS).

### Configuration
To configure the FTShoes/FTSkShoes please follow the steps for USB-CAN2 mentioned in [here](https://github.com/robotology/human-dynamics-estimation/wiki/Set-up-Machine-for-running-HDE#usb-can-2) (Windows OS).

FAQs
====

Expand Down Expand Up @@ -671,8 +717,9 @@ The `robotology-superbuild` is based on [YCM](https://github.com/robotology/ycm)
Mantainers
==========

| Profile | Mantainer |
| Profile | Maintainer |
|:--------:|:-----------------------------:|
| Core | Silvio Traversaro [@traversaro](https://github.com/traversaro) |
| Dynamics | Silvio Traversaro [@traversaro](https://github.com/traversaro) |
| Teleoperation | Kourosh Darvish [@kouroshD](https://github.com/kouroshD) |
| Human Dynamics | Yeshasvi Tirupachuri [@Yeshasvitvs](https://github.com/Yeshasvitvs) |
1 change: 1 addition & 0 deletions cmake/BuildICUB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ ycm_ep_helper(ICUB TYPE GIT
-DENABLE_icubmod_canBusSkin:BOOL=${ROBOTOLOGY_ENABLE_ICUB_HEAD}
-DENABLE_icubmod_canBusVirtualAnalogSensor:BOOL=${ROBOTOLOGY_ENABLE_ICUB_HEAD}
-DENABLE_icubmod_cfw2can:BOOL=${ROBOTOLOGY_USES_CFW2CAN}
-DENABLE_icubmod_ecan:BOOL=${ROBOTOLOGY_USES_ESDCAN}
-DENABLE_icubmod_embObjFTsensor:BOOL=${ROBOTOLOGY_ENABLE_ICUB_HEAD}
-DENABLE_icubmod_embObjIMU:BOOL=${ROBOTOLOGY_ENABLE_ICUB_HEAD}
-DENABLE_icubmod_embObjInertials:BOOL=${ROBOTOLOGY_ENABLE_ICUB_HEAD}
Expand Down
17 changes: 17 additions & 0 deletions cmake/Buildforcetorque-yarp-devices.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright (C) 2019 iCub Facility, Istituto Italiano di Tecnologia
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT

include(YCMEPHelper)
include(FindOrBuildPackage)

find_or_build_package(YARP QUIET)

ycm_ep_helper(forcetorque-yarp-devices TYPE GIT
STYLE GITHUB
REPOSITORY robotology/forcetorque-yarp-devices.git
TAG master
COMPONENT iCub
FOLDER robotology
DEPENDS YARP
CMAKE_CACHE_ARGS -DENABLE_ftshoe:BOOL=ON)

23 changes: 23 additions & 0 deletions cmake/Buildhuman-dynamics-estimation.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright (C) 2018 iCub Facility, Istituto Italiano di Tecnologia
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT

include(YCMEPHelper)
include(FindOrBuildPackage)

find_or_build_package(YARP QUIET)
find_or_build_package(iDynTree QUIET)
find_or_build_package(wearables QUIET)
find_or_build_package(osqp QUIET)
find_or_build_package(OsqpEigen QUIET)

ycm_ep_helper(human-dynamics-estimation TYPE GIT
STYLE GITHUB
REPOSITORY robotology/human-dynamics-estimation.git
TAG master
COMPONENT human_dynamics
FOLDER robotology
DEPENDS iDynTree
YARP
wearables
osqp
OsqpEigen)
12 changes: 12 additions & 0 deletions cmake/Buildhuman-gazebo.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright (C) 2019 iCub Facility, Istituto Italiano di Tecnologia
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT

include(YCMEPHelper)
include(FindOrBuildPackage)

ycm_ep_helper(human-gazebo TYPE GIT
STYLE GITHUB
REPOSITORY robotology/human-gazebo.git
TAG master
COMPONENT human_dynamics
FOLDER robotology)
23 changes: 23 additions & 0 deletions cmake/Buildwearables.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright (C) 2018 iCub Facility, Istituto Italiano di Tecnologia
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT

include(YCMEPHelper)
include(FindOrBuildPackage)

find_or_build_package(YARP QUIET)
find_or_build_package(iDynTree QUIET)

set(WEARABLES_CMAKE_ARGS "")
if(WIN32)
list(APPEND WEARABLES_CMAKE_ARGS -DXSENS_MVN_USE_SDK:BOOL=${ROBOTOLOGY_USES_XSENS_MVN_SDK} )
endif()

ycm_ep_helper(wearables TYPE GIT
STYLE GITHUB
REPOSITORY robotology/wearables.git
TAG master
COMPONENT human_dynamics
FOLDER robotology
DEPENDS YARP
iDynTree
CMAKE_ARGS ${WEARABLES_CMAKE_ARGS})