Easy-install on Ubuntu 18+¶
Jiminy¶
Dependencies installation¶
There is no requirement to install jiminy_py
on linux if one does not want to build it.
Install Jiminy Python package¶
The project is available on PyPi and therefore can be install easily using pip>=20.3
.
python3 -m pip install --prefer-binary jiminy-py[meshcat,plot]
Gym Jiminy¶
Dependencies installation¶
Pytorch>=1.13 with GPU support dependencies¶
Nowadays, it is straightforward to install CUDA. You are responsible for doing so since it depends on the OS.
Once done, Pytorch
can be installed following the official “getting started” instructions: https://pytorch.org/get-started/locally/
(optional) stable_baselines3¶
Installing the Python packages stable_baselines3==2.0
is required to run some of the provided examples, though it is not required to use gym_jiminy.
python3 -m pip install stable-baselines3==2.0
(optional) tianshou¶
Installing the Python packages tianshou==0.3.0
is required to run some of the provided examples, though it is not required to use gym_jiminy.
python3 -m pip install tianshou==0.3.0
Install Gym Jiminy learning Python package¶
python -m pip install --prefer-binary gym-jiminy[all]
Building from source¶
Excluding dependencies on Ubuntu 18+¶
First, one must install the pre-compiled libraries of the dependencies. Most of them are available on robotpkg
APT repository. Just run the bash script to install them automatically for Ubuntu 18 and upward. It should be straightforward to adapt it to any other distribution for which robotpkg
is available. Note that if you plan to use a virtual environment (venv
, pyenv
, …), you must install the Python dependencies manually using pip
, i.e. "wheel", "numpy>=1.24,<2.0"
.
sudo env "PATH=$PATH" ./build_tools/easy_install_deps_ubuntu.sh
You are now ready to build and install Jiminy itself.
RootDir=".... The location of jiminy repository ...."
BUILD_TYPE="Release"
InstallDir="$RootDir/install"
mkdir "$RootDir/build" "$InstallDir"
cd "$RootDir/build"
cmake "$RootDir" -DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="/opt/openrobots/" \
-DPYTHON_EXECUTABLE="$(python3 -c 'import sys; sys.stdout.write(sys.executable)')" \
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON -DBUILD_PYTHON_INTERFACE=ON \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make install -j2
Including dependencies on Unix-based OS¶
Prerequisites (must be adapted to package managers other than apt
)¶
sudo apt install -y gnupg curl wget build-essential cmake doxygen graphviz
python -m pip install "wheel", "numpy>=1.24,<2.0"
Jiminy dependencies build and install¶
Just run the bash script already available.
BUILD_TYPE="Release" ./build_tools/build_install_deps_unix.sh
Build Procedure¶
RootDir=".... The location of jiminy repository ...."
PythonExe=".... Your Python executable, for instance $(which python3) ...."
BuildType="Release"
InstallDir="$RootDir/install"
unset Boost_ROOT
mkdir "$RootDir/build"
cd "$RootDir/build"
cmake "$RootDir" -DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="$InstallDir" \
-DBOOST_ROOT="$InstallDir" -DBoost_INCLUDE_DIR="$InstallDir/include" \
-DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_NO_BOOST_CMAKE=TRUE \
-DBoost_USE_STATIC_LIBS=OFF -DPYTHON_EXECUTABLE="$PythonExe" \
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON -DBUILD_PYTHON_INTERFACE=ON \
-DCMAKE_BUILD_TYPE="$BuildType"
make install -j2
Including dependencies on Windows 10+¶
Prerequisites¶
You have to preinstall by yourself the (free) MSVC 2019+ toolchain.
Then, install setuptools
, wheel
and numpy
.
python -m pip install setuptools wheel "numpy>=1.24,<2.0"
Jiminy dependencies build and install¶
Now you can simply run the powershell script already available.
$env:BUILD_TYPE = "Release"
& './build_tools/build_install_deps_windows.ps1'
Build Procedure¶
You are finally ready to build Jiminy itself.
$RootDir = ".... The location of jiminy repository ...."
$env:BUILD_TYPE = "Release"
$RootDir = $RootDir -replace '\\', '/'
$InstallDir = "$RootDir/install"
if (Test-Path env:Boost_ROOT) {
Remove-Item env:Boost_ROOT
}
if (-not (Test-Path -PathType Container $RootDir/build)) {
New-Item -ItemType "directory" -Force -Path "$RootDir/build"
}
Set-Location -Path $RootDir/build
cmake "$RootDir" -G "Visual Studio 17 2022" -DCMAKE_GENERATOR_PLATFORM=x64 `
-DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" `
-DCMAKE_INSTALL_PREFIX="$InstallDir" -DCMAKE_PREFIX_PATH="$InstallDir" `
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DCMAKE_VERBOSE_MAKEFILE=ON `
-DBOOST_ROOT="$InstallDir" -DBoost_INCLUDE_DIR="$InstallDir/include" `
-DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_NO_BOOST_CMAKE=TRUE -DBoost_USE_STATIC_LIBS=ON `
-DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON -DBUILD_PYTHON_INTERFACE=ON ``
-DCMAKE_CXX_FLAGS="${env:CMAKE_CXX_FLAGS} $(
) -DBOOST_ALL_NO_LIB -DBOOST_LIB_DIAGNOSTIC -DBOOST_CORE_USE_GENERIC_CMATH $(
) -DEIGENPY_STATIC -DURDFDOM_STATIC -DHPP_FCL_STATIC -DPINOCCHIO_STATIC"
cmake --build . --target ALL_BUILD --config "${env:BUILD_TYPE}" --parallel 2
if (-not (Test-Path -PathType Container "$RootDir/build/pypi/jiminy_py/src/jiminy_py")) {
New-Item -ItemType "directory" -Force -Path "$RootDir/build/pypi/jiminy_py/src/jiminy_py/core"
}
Copy-Item -Force -Recurse -Path "$InstallDir/lib/site-packages/*" `
-Destination "$RootDir/build/pypi/jiminy_py/src/jiminy_py/core"
cmake --build . --target INSTALL --config "${env:BUILD_TYPE}"