# Chrono main page: https://api.projectchrono.org/development/index.html github: https://github.com/projectchrono/chrono/tree/develop/data/vehicle pychrono: https://api.projectchrono.org/development/pychrono_introduction.html ## Install ### docker (必要なら) ``` xhost +local:docker sudo docker run -itd --gpus all --name test -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw --device /dev/dri nvidia/opengl:base-ubuntu20.04 /bin/bash --login sudo docker exec -it test /bin/bash apt-get update apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev git apt-get install -y mesa-utils ``` #### check opengl by command 'glxgears' ``` root@ea0852980383:/# glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. X connection to unix:1 broken (explicit kill or server shutdown). root@ea0852980383:/# ``` ### Anaconda ``` cd ~ wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh bash Anaconda3-2021.05-Linux-x86_64.sh ``` ### Conda ``` ~/anaconda3/bin/conda init bash ``` ここでTerminalを閉じる Docker の場合は exit して再ログイン #### # check GUI ```python import matplotlib.pyplot as plt import numpy as np plt.plot([0,1,2], np.random.rand(3)) plt.show() ``` ``` conda deactivate which conda # /root/anaconda3/condabin/conda conda create --name test python=3.8 conda activate test which python # こうなっていることを確認 /root/anaconda3/envs/test/bin/python ``` ### Pychrono https://api.projectchrono.org/development/pychrono_installation.html ``` conda install -c projectchrono/label/develop pychrono ``` ### other libraries libirrlicht1.8 ``` apt-get install libirrlicht1.8 ``` opencascade ``` wget https://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/Sisyphus/x86_64/RPMS.classic/libopencascade-7.5.3-alt2.x86_64.rpm apt-get install alien alien libopencascade-7.5.3-alt2.x86_64.rpm dpkg -i libopencascade_7.5.3-1_amd64.deb ls /usr/lib64 | grep libTKBRep.so.7 # libTKBRep.so.7 <- これが無いって怒られた # libTKBRep.so.7.5.3 export PATH=/usr/lib64:$PATH export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH ``` gcc 最新入れる ``` apt-get update apt update apt install software-properties-common add-apt-repository ppa:ubuntu-toolchain-r/test apt update apt-get install gcc-11 --only-upgrade libstdc++6 ``` 確認 ``` root@408866dc21f5:~# strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_3.4.26 GLIBCXX_3.4.27 GLIBCXX_3.4.28 GLIBCXX_3.4.29 GLIBCXX_DEBUG_MESSAGE_LENGTH root@408866dc21f5:~# /lib/x86_64-linux-gnu/libc.so.6 GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.2) stable release version 2.31. Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 9.3.0. libc ABIs: UNIQUE IFUNC ABSOLUTE For bug reporting instructions, please see: <https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>. ``` こうすると ``` (test) root@ea0852980383:~/chrono/src/demos/python# python cascade/demo_CAS_cascade.py ``` これ怒られる ``` ImportError: /root/anaconda3/envs/test/lib/python3.8/site-packages/pychrono/../../../libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/libTKBRep.so.7) ``` なのでこうする ``` cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /root/anaconda3/envs/test/lib/python3.8/site-packages/pychrono/../../../libstdc++.so.6 ``` 次はこう怒られる ``` ImportError: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib64/libTKernel.so.7) ``` ## Demo https://api.projectchrono.org/development/tutorial_table_of_content_pychrono.html ### Git clone ``` cd ~ pwd # /root git clone https://github.com/projectchrono/chrono.git ``` ### Other pip install ``` which pip # /root/anaconda3/envs/test/bin/pip pip install numpy matplotlib ``` ### Exec demo file ``` cd /root/chrono/src/demos/python python core/demo_CH_coords.py ... ``` たまに PATHが通ってなくて怒られる ↓が無いって言われる ``` ../../../../../../share/chrono/data/_template_POV.pov ``` これは↓でできる ``` cd ../../../../../../ ln -s /root share ```