From 88445e1aa6aea332f114aa2a9623186665cb37c0 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sat, 25 May 2019 20:57:00 -0700 Subject: [PATCH] Fix multiple CI issues --- .ci/before_install.sh | 4 +- ...tall_linux.sh => before_install_catkin.sh} | 0 .ci/docker/env.list | 10 +- .ci/docker/ubuntu-disco | 21 +++++ .ci/docker/ubuntu-trusty | 13 +++ .ci/install.sh | 6 +- ...stall_linux.sh => install_linux_catkin.sh} | 2 +- .ci/install_linux_cmake.sh | 87 +++++++++++++++++ .ci/script.sh | 8 +- .ci/{script_linux.sh => script_catkin.sh} | 0 .ci/{script_macos.sh => script_cmake.sh} | 2 +- .travis.yml | 94 ++++++++++++++++--- CMakeLists.txt | 2 +- .../dart/InverseKinematicsSampleable.cpp | 6 +- 14 files changed, 228 insertions(+), 27 deletions(-) rename .ci/{before_install_linux.sh => before_install_catkin.sh} (100%) create mode 100644 .ci/docker/ubuntu-disco create mode 100644 .ci/docker/ubuntu-trusty rename .ci/{install_linux.sh => install_linux_catkin.sh} (84%) create mode 100755 .ci/install_linux_cmake.sh rename .ci/{script_linux.sh => script_catkin.sh} (100%) rename .ci/{script_macos.sh => script_cmake.sh} (74%) diff --git a/.ci/before_install.sh b/.ci/before_install.sh index 58b1036aa7..022d3c1538 100755 --- a/.ci/before_install.sh +++ b/.ci/before_install.sh @@ -2,6 +2,6 @@ set -ex -if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - . "${TRAVIS_BUILD_DIR}/.ci/before_install_linux.sh"; +if [ "${USE_CATKIN}" = "ON" ]; then + . "${TRAVIS_BUILD_DIR}/.ci/before_install_catkin.sh"; fi diff --git a/.ci/before_install_linux.sh b/.ci/before_install_catkin.sh similarity index 100% rename from .ci/before_install_linux.sh rename to .ci/before_install_catkin.sh diff --git a/.ci/docker/env.list b/.ci/docker/env.list index cdc7d4505f..10e4f60a75 100644 --- a/.ci/docker/env.list +++ b/.ci/docker/env.list @@ -2,10 +2,16 @@ TRAVIS TRAVIS_PULL_REQUEST TRAVIS_OS_NAME TRAVIS_BUILD_DIR +TRAVIS_REPO_SLUG +CODECOV_TOKEN +DISTRIBUTION +GITHUB_TOKEN +REPOSITORY + +BUILD_AIKIDOPY BUILD_NAME BUILD_TYPE CATKIN_CONFIG_OPTIONS -DISTRIBUTION -REPOSITORY SUDO +USE_CATKIN diff --git a/.ci/docker/ubuntu-disco b/.ci/docker/ubuntu-disco new file mode 100644 index 0000000000..77d8536d74 --- /dev/null +++ b/.ci/docker/ubuntu-disco @@ -0,0 +1,21 @@ +FROM ubuntu:disco + +# Workaround to suppress "Warning: apt-key output should not be parsed (stdout is not a terminal)" +ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 + +RUN apt-get update -qq + +# To run dpkg without interactive dialogue +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get install -y \ + build-essential \ + cmake \ + curl \ + git \ + lsb-release \ + pkg-config \ + python \ + software-properties-common \ + sudo \ + tzdata diff --git a/.ci/docker/ubuntu-trusty b/.ci/docker/ubuntu-trusty new file mode 100644 index 0000000000..cf13da52c1 --- /dev/null +++ b/.ci/docker/ubuntu-trusty @@ -0,0 +1,13 @@ +FROM ubuntu:trusty + +RUN apt-get update -qq +RUN apt-get install -y \ + build-essential \ + cmake \ + curl \ + git \ + lsb-release \ + pkg-config \ + python \ + software-properties-common \ + sudo diff --git a/.ci/install.sh b/.ci/install.sh index 6a24c4e7b0..0d5f4f4fad 100755 --- a/.ci/install.sh +++ b/.ci/install.sh @@ -3,7 +3,11 @@ set -ex if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - . "${TRAVIS_BUILD_DIR}/.ci/install_linux.sh" + if [ "${USE_CATKIN}" = "ON" ]; then + . "${TRAVIS_BUILD_DIR}/.ci/install_linux_catkin.sh" + else + . "${TRAVIS_BUILD_DIR}/.ci/install_linux_cmake.sh" + fi elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then . "${TRAVIS_BUILD_DIR}/.ci/install_macos.sh" fi diff --git a/.ci/install_linux.sh b/.ci/install_linux_catkin.sh similarity index 84% rename from .ci/install_linux.sh rename to .ci/install_linux_catkin.sh index fa5fb96357..8851e1d9b9 100755 --- a/.ci/install_linux.sh +++ b/.ci/install_linux_catkin.sh @@ -7,5 +7,5 @@ cp -r "${TRAVIS_BUILD_DIR}" src ./scripts/internal-distro.py --workspace=src distribution.yml --repository "${REPOSITORY}" ${REQUIRED_ONLY} if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then - sudo apt-get install clang-format-3.8 + sudo apt-get install -y clang-format-3.8 fi diff --git a/.ci/install_linux_cmake.sh b/.ci/install_linux_cmake.sh new file mode 100755 index 0000000000..a0fb28791f --- /dev/null +++ b/.ci/install_linux_cmake.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +set -ex + +$SUDO apt-get -qq update +$SUDO apt-get -y install lsb-release software-properties-common +if [ $(lsb_release -sc) = "trusty" ]; then + $SUDO apt-add-repository -y ppa:libccd-debs/ppa + $SUDO apt-add-repository -y ppa:fcl-debs/ppa +fi +$SUDO apt-add-repository -y ppa:dartsim/ppa +$SUDO apt-get -qq update + +# Build tools +$SUDO apt-get -y install \ + sudo \ + build-essential \ + cmake \ + pkg-config \ + curl \ + git +if [ $COMPILER = clang ]; then + $SUDO apt-get -qq -y install clang +fi + +# Required dependencies +$SUDO apt-get -y install \ + libboost-filesystem-dev \ + libdart6-all-dev \ + libompl-dev + +# Optional dependencies +$SUDO apt-get -y install \ + libtinyxml2-dev \ + libyaml-cpp-dev + +if [ "$BUILD_AIKIDOPY" = "ON" ]; then + $SUDO apt-get -y install python3-dev python3-numpy + $SUDO apt-get -y install python3-pip -y + $SUDO pip3 install pytest -U + + if [ $(lsb_release -sc) = "trusty" ]; then + git clone https://github.com/pybind/pybind11 -b 'v2.2.4' --single-branch --depth 1 + cd pybind11 + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF + make -j4 + $SUDO make install + cd ../.. + elif [ $(lsb_release -sc) = "xenial" ]; then + git clone https://github.com/pybind/pybind11 -b 'v2.2.4' --single-branch --depth 1 + cd pybind11 + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF + make -j4 + $SUDO make install + cd ../.. + elif [ $(lsb_release -sc) = "bionic" ]; then + git clone https://github.com/pybind/pybind11 -b 'v2.2.4' --single-branch --depth 1 + cd pybind11 + mkdir build + cd build + cmake .. -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF + make -j4 + $SUDO make install + cd ../.. + elif [ $(lsb_release -sc) = "cosmic" ]; then + $SUDO apt-get -y install pybind11-dev python3 libpython3-dev python3-pytest \ + python3-distutils + elif [ $(lsb_release -sc) = "disco" ]; then + $SUDO apt-get -y install pybind11-dev python3 libpython3-dev python3-pytest \ + python3-distutils + else + echo -e "$(lsb_release -sc) is not supported." + exit 1 + fi +fi + +if [ $BUILD_DOCS = "ON" ]; then + $SUDO apt-get -qq -y install doxygen +fi + +if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then + sudo apt-get install -y clang-format-3.8 +fi diff --git a/.ci/script.sh b/.ci/script.sh index 2704078e05..1815691d6f 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -2,8 +2,8 @@ set -ex -if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - . "${TRAVIS_BUILD_DIR}/.ci/script_linux.sh" -elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then - . "${TRAVIS_BUILD_DIR}/.ci/script_macos.sh" +if [ "${USE_CATKIN}" = "ON" ]; then + . "${TRAVIS_BUILD_DIR}/.ci/script_catkin.sh" +else + . "${TRAVIS_BUILD_DIR}/.ci/script_cmake.sh" fi diff --git a/.ci/script_linux.sh b/.ci/script_catkin.sh similarity index 100% rename from .ci/script_linux.sh rename to .ci/script_catkin.sh diff --git a/.ci/script_macos.sh b/.ci/script_cmake.sh similarity index 74% rename from .ci/script_macos.sh rename to .ci/script_cmake.sh index 6e1b1a7bff..199a633b82 100755 --- a/.ci/script_macos.sh +++ b/.ci/script_cmake.sh @@ -2,7 +2,7 @@ set -ex -unset -f cd; # Disable rvm ovveride of cd (see https://github.com/travis-ci/travis-ci/issues/8703) +unset -f cd; # Disable rvm override of cd (see https://github.com/travis-ci/travis-ci/issues/8703) mkdir build cd build diff --git a/.travis.yml b/.travis.yml index e33077b166..958b11dbe3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,68 +21,134 @@ matrix: - os: linux compiler: gcc env: - - BUILD_NAME=TRUSTY_RELEASE + - BUILD_NAME=TRUSTY_CATKIN_RELEASE + - DOCKER_FILE="ubuntu-trusty" - REQUIRED_ONLY=--required-only - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + - os: linux compiler: gcc env: - - BUILD_NAME=TRUSTY_FULL_DEBUG + - BUILD_NAME=TRUSTY_CATKIN_FULL_DEBUG + - DOCKER_FILE="ubuntu-trusty" - BUILD_TYPE=Debug - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + - os: linux compiler: gcc env: - - BUILD_NAME=TRUSTY_FULL_RELEASE + - BUILD_NAME=TRUSTY_CATKIN_FULL_RELEASE + - DOCKER_FILE="ubuntu-trusty" - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + - os: linux env: - - BUILD_NAME=XENIAL_FULL_RELEASE + - BUILD_NAME=XENIAL_CATKIN_FULL_RELEASE - DOCKER_FILE="ubuntu-xenial" - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON services: docker + - os: linux env: - - BUILD_NAME=BIONIC_FULL_RELEASE + - BUILD_NAME=BIONIC_CATKIN_FULL_RELEASE - DOCKER_FILE="ubuntu-bionic" - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + + - os: linux + env: + - BUILD_NAME=BIONIC_CMAKE_RELEASE + - DOCKER_FILE="ubuntu-bionic" + - BUILD_TYPE=Release + - USE_CATKIN=OFF services: docker + + - os: linux + env: + - BUILD_NAME=DISCO_CMAKE_RELEASE + - DOCKER_FILE="ubuntu-disco" + - BUILD_TYPE=Release + - USE_CATKIN=OFF + services: docker + - os: osx osx_image: xcode9.3 compiler: clang env: - - BUILD_NAME=XCODE93_RELEASE + - BUILD_NAME=XCODE93_CMAKE_RELEASE - BUILD_TYPE=Release + - USE_CATKIN=OFF + - os: linux compiler: gcc env: - BUILD_NAME=DOCS + - DOCKER_FILE="ubuntu-bionic" - BUILD_TYPE=Release + - USE_CATKIN=ON + services: docker + allow_failures: - os: linux + compiler: gcc env: - - BUILD_NAME=XENIAL_FULL_RELEASE - - DOCKER_FILE="ubuntu-xenial" + - BUILD_NAME=TRUSTY_CATKIN_RELEASE + - DOCKER_FILE="ubuntu-trusty" + - REQUIRED_ONLY=--required-only - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON services: docker + - os: linux + compiler: gcc env: - - BUILD_NAME=BIONIC_FULL_RELEASE - - DOCKER_FILE="ubuntu-bionic" + - BUILD_NAME=TRUSTY_CATKIN_FULL_DEBUG + - DOCKER_FILE="ubuntu-trusty" + - BUILD_TYPE=Debug + - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + + - os: linux + compiler: gcc + env: + - BUILD_NAME=TRUSTY_CATKIN_FULL_RELEASE + - DOCKER_FILE="ubuntu-trusty" - BUILD_TYPE=Release - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON services: docker - - os: osx - osx_image: xcode9.3 - compiler: clang + + - os: linux + env: + - BUILD_NAME=XENIAL_CATKIN_FULL_RELEASE + - DOCKER_FILE="ubuntu-xenial" + - BUILD_TYPE=Release + - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker + + - os: linux env: - - BUILD_NAME=XCODE93_RELEASE + - BUILD_NAME=BIONIC_CATKIN_FULL_RELEASE + - DOCKER_FILE="ubuntu-bionic" - BUILD_TYPE=Release + - CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON" + - USE_CATKIN=ON + services: docker before_install: - if [ -n "$DOCKER_FILE" ]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f5bfea3b0..bf4d381444 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ include(ClangFormat) find_package(Boost REQUIRED COMPONENTS filesystem) -find_package(DART 6.8.2 REQUIRED +find_package(DART 6.6.2 REQUIRED COMPONENTS optimizer-nlopt utils OPTIONAL_COMPONENTS utils-urdf # for 'perception' target CONFIG diff --git a/src/constraint/dart/InverseKinematicsSampleable.cpp b/src/constraint/dart/InverseKinematicsSampleable.cpp index aed63eaaa6..3d0f730853 100644 --- a/src/constraint/dart/InverseKinematicsSampleable.cpp +++ b/src/constraint/dart/InverseKinematicsSampleable.cpp @@ -220,8 +220,12 @@ bool IkSampleGenerator::sample(statespace::StateSpace::State* _state) mInverseKinematics->getTarget()->setTransform(poseState.getIsometry()); - // Run the IK solver. If an exact solution is computed, apply it to the skeleton. + // Run the IK solver. If an exact solution is computed, apply it to the skeleton. +#if DART_VERSION_AT_LEAST(6, 8, 0) if (mInverseKinematics->solveAndApply(true)) +#else + if (mInverseKinematics->solve(true)) +#endif { mMetaSkeletonStateSpace->getState(mMetaSkeleton.get(), outputState); return true;