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

[python/viewer] Fix exception for negative sleep time. #622

Merged
merged 5 commits into from
Aug 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:

env:
TORCH_VERSION: "2.0.1+cpu"
CMAKE_CXX_FLAGS: "-march=x86-64-v3 -mtune=generic"
CMAKE_CXX_FLAGS: "-DEIGEN_MAX_CPP_VER=11 -march=x86-64-v3 -mtune=generic"

#####################################################################################

Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ jobs:

env:
TORCH_VERSION: "2.0.1"
CMAKE_CXX_FLAGS: "-DEIGEN_MPL2_ONLY -DEIGEN_MAX_CPP_VER=11"
BUILD_TYPE: "Release"
MACOSX_DEPLOYMENT_TARGET: "10.15"
OSX_ARCHITECTURES: "x86_64;arm64"
Expand Down Expand Up @@ -73,12 +74,14 @@ jobs:
export LD_LIBRARY_PATH="$InstallDir/lib/:/usr/local/lib"
cmake "$RootDir" -DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="$InstallDir" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DBOOST_ROOT="$InstallDir" -DBoost_INCLUDE_DIR="$InstallDir/include" \
-DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_NO_BOOST_CMAKE=TRUE \
-DBoost_USE_STATIC_LIBS=ON -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" \
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON -DBUILD_PYTHON_INTERFACE=ON \
-DINSTALL_GYM_JIMINY=ON -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON \
-DBUILD_PYTHON_INTERFACE=ON -DINSTALL_GYM_JIMINY=ON \
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
make -j2

# Bundle the boost python dependencies with jiminy
Expand Down Expand Up @@ -137,7 +140,7 @@ jobs:
cd "$RootDir/core/examples/external_project/build"
cmake "$RootDir/core/examples/external_project/" -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_PREFIX_PATH="$InstallDir" -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" \
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
make install

"$InstallDir/bin/pip_double_pendulum"
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/manylinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

env:
BUILD_TYPE: "Release"
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS: "-DEIGEN_MPL2_ONLY -DEIGEN_MAX_CPP_VER=11"

#####################################################################################

Expand Down Expand Up @@ -72,7 +72,8 @@ jobs:
-DBOOST_ROOT="$InstallDir" -DBoost_INCLUDE_DIR="$InstallDir/include" \
-DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_NO_BOOST_CMAKE=TRUE \
-DBoost_USE_STATIC_LIBS=ON -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" \
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON -DBUILD_PYTHON_INTERFACE=ON -DINSTALL_GYM_JIMINY=ON \
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON \
-DBUILD_PYTHON_INTERFACE=ON -DINSTALL_GYM_JIMINY=ON \
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make -j2

Expand Down Expand Up @@ -184,8 +185,8 @@ jobs:
mkdir -p "$RootDir/core/examples/external_project/build"
cd "$RootDir/core/examples/external_project/build"
cmake "$RootDir/core/examples/external_project/" -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_PREFIX_PATH="$InstallDir" -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" \
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
-DCMAKE_PREFIX_PATH="$InstallDir" -DCMAKE_VERBOSE_MAKEFILE=ON \
-DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
make install

"$InstallDir/bin/pip_double_pendulum"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
TORCH_VERSION: "2.0.1+cpu"
BUILD_TYPE: "Release"
GENERATOR: "Visual Studio 17 2022"
CMAKE_CXX_FLAGS: "/d2ReducedOptimizeHugeFunctions /fp:contract /arch:AVX2"
CMAKE_CXX_FLAGS: "-DEIGEN_MPL2_ONLY -DEIGEN_MAX_CPP_VER=11 /d2ReducedOptimizeHugeFunctions /fp:contract /arch:AVX2"

strategy:
matrix:
Expand Down
13 changes: 11 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ include(${CMAKE_SOURCE_DIR}/build_tools/cmake/buildPythonWheel.cmake)
# Set the compilation flags.
# Not using `add_compile_options` because it does not propagate to external projects.
set(CMAKE_CXX_FLAGS "$ENV{CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
string(REGEX MATCHALL "-DEIGEN_[A-Z0-9_]+=?[0-9]*( |$)" EIGEN_DEFINITIONS "${CMAKE_CXX_FLAGS}")
list(REMOVE_DUPLICATES EIGEN_DEFINITIONS)
list(TRANSFORM EIGEN_DEFINITIONS REPLACE "^-D" "")
if(EIGEN_DEFINITIONS)
message(STATUS "Eigen preprocessor directives: ${EIGEN_DEFINITIONS}")
endif()
if(MSVC)
string(REGEX MATCH "/arch:[A-Za-z_0-9/-]*" CMAKE_CXX_ARCH "${CMAKE_CXX_FLAGS}")
string(REGEX MATCH "/arch:[a-zA-Z0-9_\-]*" CMAKE_CXX_ARCH "${CMAKE_CXX_FLAGS}")
if(CMAKE_CXX_ARCH MATCHES "AVX[0-9]+")
# Eigen<3.4 relies on __FMA__ definition to detect if FMA is available,
# which is not set automatically by MSVC.
Expand All @@ -52,12 +58,15 @@ if(MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG /O2 /Ob3")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} /DEBUG:FULL /Zi")
else()
string(REGEX MATCH "-march=[A-Za-z_0-9/-]*" CMAKE_CXX_ARCH "${CMAKE_CXX_FLAGS}")
string(REGEX MATCH "-march=[a-zA-Z0-9_\-]*" CMAKE_CXX_ARCH "${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -fno-omit-frame-pointer")
set(CMAKE_LINKER_FLAGS_DEBUG "-fno-omit-frame-pointer")
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 -Wfatal-errors -Werror")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g -fno-omit-frame-pointer -fno-sanitize-recover")
endif()
if(CMAKE_CXX_ARCH)
message(STATUS "Instruction sets: ${CMAKE_CXX_ARCH}")
endif()

# Sub-projects
add_subdirectory(soup)
Expand Down
42 changes: 23 additions & 19 deletions build_tools/build_install_deps_unix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ if [ ! -d "$RootDir/boost" ]; then
fi
cd "$RootDir/boost"
git reset --hard
git fetch --all || true
git checkout --force "boost-1.76.0"
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --jobs 8
Expand All @@ -89,6 +90,7 @@ if [ ! -d "$RootDir/eigen3" ]; then
fi
cd "$RootDir/eigen3"
git reset --hard
git fetch --all || true
git checkout --force "3.4.0"

### Checkout eigenpy and its submodules
Expand All @@ -97,7 +99,7 @@ if [ ! -d "$RootDir/eigenpy" ]; then
fi
cd "$RootDir/eigenpy"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "v2.9.2"
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --jobs 8
Expand All @@ -109,7 +111,7 @@ if [ ! -d "$RootDir/tinyxml" ]; then
fi
cd "$RootDir/tinyxml"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "master"
git apply --reject --whitespace=fix "$RootDir/build_tools/patch_deps_unix/tinyxml.patch"

Expand All @@ -119,7 +121,7 @@ if [ ! -d "$RootDir/console_bridge" ]; then
fi
cd "$RootDir/console_bridge"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "0.3.2"

### Checkout urdfdom_headers
Expand All @@ -128,17 +130,17 @@ if [ ! -d "$RootDir/urdfdom_headers" ]; then
fi
cd "$RootDir/urdfdom_headers"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "1.0.4"

### Checkout urdfdom, then apply some patches (generated using `git diff --submodule=diff`)
if [ ! -d "$RootDir/urdfdom" ]; then
git clone https://github.com/ros/urdfdom.git "$RootDir/urdfdom"
fi
cd "$RootDir/urdfdom"
git checkout --force "1.0.3"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "1.0.3"
git apply --reject --whitespace=fix "$RootDir/build_tools/patch_deps_unix/urdfdom.patch"

### Checkout assimp
Expand All @@ -147,7 +149,7 @@ if [ ! -d "$RootDir/assimp" ]; then
fi
cd "$RootDir/assimp"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "v5.2.5"

### Checkout hpp-fcl
Expand All @@ -157,7 +159,7 @@ if [ ! -d "$RootDir/hpp-fcl" ]; then
fi
cd "$RootDir/hpp-fcl"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "v2.3.0"
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --jobs 8
Expand All @@ -172,7 +174,7 @@ if [ ! -d "$RootDir/pinocchio" ]; then
fi
cd "$RootDir/pinocchio"
git reset --hard
git fetch --all
git fetch --all || true
git checkout --force "v2.6.17"
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --jobs 8
Expand Down Expand Up @@ -245,7 +247,7 @@ mkdir -p "$RootDir/boost/build"

mkdir -p "$RootDir/eigen3/build"
cd "$RootDir/eigen3/build"
cmake "$RootDir/eigen3" -Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
cmake "$RootDir/eigen3" -Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DBUILD_TESTING=OFF -DEIGEN_BUILD_PKGCONFIG=ON
make install -j2

Expand All @@ -254,7 +256,7 @@ make install -j2
mkdir -p "$RootDir/eigenpy/build"
cd "$RootDir/eigenpy/build"
cmake "$RootDir/eigenpy" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_PREFIX_PATH="$InstallDir" -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
Expand All @@ -272,7 +274,7 @@ make install -j2
mkdir -p "$RootDir/tinyxml/build"
cd "$RootDir/tinyxml/build"
cmake "$RootDir/tinyxml" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
Expand All @@ -286,7 +288,7 @@ make install -j2
mkdir -p "$RootDir/console_bridge/build"
cd "$RootDir/console_bridge/build"
cmake "$RootDir/console_bridge" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
Expand All @@ -306,7 +308,7 @@ make install -j2
mkdir -p "$RootDir/urdfdom/build"
cd "$RootDir/urdfdom/build"
cmake "$RootDir/urdfdom" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="$InstallDir" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
Expand All @@ -316,16 +318,18 @@ make install -j2

###################################### Build and install assimp ########################################

# C flag 'HAVE_HIDDEN' must be specified to hide internal symbols of zlib that may not be exposed at
# runtime causing undefined symbol error when loading hpp-fcl shared library.
mkdir -p "$RootDir/assimp/build"
cd "$RootDir/assimp/build"
cmake "$RootDir/assimp" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_ZLIB=ON -DASSIMP_BUILD_TESTS=OFF \
-DASSIMP_BUILD_SAMPLES=OFF -DBUILD_DOCS=OFF \
-DCMAKE_C_FLAGS="${CMAKE_CXX_FLAGS}" -DCMAKE_CXX_FLAGS_RELEASE_INIT="" \
-DCMAKE_C_FLAGS="${CMAKE_CXX_FLAGS} -DHAVE_HIDDEN" -DCMAKE_CXX_FLAGS_RELEASE_INIT="" \
-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-strict-overflow -Wno-tautological-compare $(
) -Wno-array-compare -Wno-unknown-warning-option -Wno-unknown-warning" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make install -j2
Expand All @@ -335,7 +339,7 @@ make install -j2
mkdir -p "$RootDir/hpp-fcl/third-parties/qhull/build"
cd "$RootDir/hpp-fcl/third-parties/qhull/build"
cmake "$RootDir/hpp-fcl/third-parties/qhull" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
Expand All @@ -346,7 +350,7 @@ make install -j2
mkdir -p "$RootDir/hpp-fcl/build"
cd "$RootDir/hpp-fcl/build"
cmake "$RootDir/hpp-fcl" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_PREFIX_PATH="$InstallDir" -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
Expand All @@ -368,7 +372,7 @@ make install -j2
mkdir -p "$RootDir/pinocchio/build"
cd "$RootDir/pinocchio/build"
cmake "$RootDir/pinocchio" \
-Wno-dev -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-Wno-dev -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX="$InstallDir" \
-DCMAKE_PREFIX_PATH="$InstallDir" -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
-DCMAKE_OSX_ARCHITECTURES="${OSX_ARCHITECTURES}" -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
Expand Down