Coder Social home page Coder Social logo

gym-chrono's Introduction

gym-chrono

QUICKSTART GUIDE

This repository consists of a set of gymnasium "environments" which are essentially wrappers around pychrono. In order to install gym-chrono, we must first install its dependecies

  1. pychrono
  2. gymnasium
  3. stable-baselines3[extra]

Downloading data files

Before you begin the installation process, you will need to download the data folder containing the simulation assets and place it in the right place:

  1. Download the data files here, unzip if necessary, you should obtain a folder named data.
  2. Copy the data to DIR_OF_REPO/gym-chrono/envs.

Adding Chrono data directory to path

Once the data folder has been downloaded and placed in the right folder, it needs to be added to path:
For Linux or Mac users:
Replace bashrc with the shell your using. Could be .zshrc.

  1. echo export CHRONO_DATA_DIR=<Downloaded data directory path>' >> ~/.bashrc
    Ex. If you have cloned the repository in home , then, echo export CHRONO_DATA_DIR=/home/user/gym-chrono/gym-chrono/envs/data/' >> ~/.bashrc
  2. source ~/.bashrc

For Windows users:
Link as reference: https://helpdeskgeek.com/how-to/create-custom-environment-variables-in-windows/

  1. Open the System Properties dialog, click on Advanced and then Environment Variables
  2. Under User variables, click New... and create a variable as described below
    Variable name: CHRONO_DATA_DIR
    Variable value: <chrono's data directory>
    Ex. Variable value: C:\ Users\ user\ chrono\ data\

Installing dependencies

Installing pychrono

  1. First you need to install pychrono from source. The Chrono source that needs to be cloned is linked here. Please use the feature/robot_model branch. We use this fork with this branch because it contains all the latest robot models that are not currently available in Chrono main.
  2. Once you have the source cloned, build pychrono from source using instructions found here. Enable modules Chrono::Sensor, Chrono::Irrlicht, Chrono::SynChrono, Chrono::Vehicle, Chrono::Python, Chrono::OPENMP and Chrono::Parsers. For each of these modules, please look at the official Chrono documentation.
  3. Make sure you add the appropriate numpy include directory (see linked instructions above)
  4. If you are not doing a system wide install of pychrono, make sure you add to PYTHONPATH the path to the installed python libraries (see linked instructions above)

Installing gymnasium

pip install gymnasium

Note

If you are using a conda environment, activate the conda environment and then use the same command above.

Installing stable-baselines3

pip install stable-baselines3[extra] 

Note

stable-baselines3 installs nupmy as a dependency, so it is recomended to remove this installation and install your own version of numpy. Additionally, pychrono requires numpy=1.24.0, and it must be installed with conda, so it is necessary to run pip uninstall numpy and conda install -c conda-forge numpy=1.24.0 to not get a pychrono.sensor error.

Rough Edges

Adding gym-chrono to path

Due to the lack of a pip installer for this package currently, you must add gym-chrono to PYTHONPATH:

 echo 'export PYTHONPATH=$PYTHONPATH:<path to gym-chrono>' >> ~/.bashrc

Replace ~/.bashrc with ~/.zshrc in case you are using zsh.
For Windows users, follow instructions from here.

Repository Structure

This repository is structured as follows:

  1. Within the gym-chrono folder is all that you need:
    • env: gymnasium environment wrapper to enable RL training using PyChrono simulation
    • test: testing scripts to visualize the training environment and debug it
    • train: python scripts to train the models for each example env with stable-baselines3
    • evaluate: python scripts to evaluate a trained model
  2. The playground folder contains scripts that do not use Chrono as a simulation engine. This folder is maintained just for experimentation
  3. The images folder consists of images used in the readme like the one below!

Here is a video of the example Gator environment on SCM deformable terrain with an 80 x 45 camera simulated with Chrono::Sensor

Gator demo

gym-chrono's People

Contributors

aaronyoung5 avatar benatti1991 avatar huzaifg avatar lliangthomas avatar stefancaldararu avatar thansen0 avatar zzhou292 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gym-chrono's Issues

Add good docstrings

So people can understand what to do, and so that we can make this a pip package

gdown quota

the data folder is large, and so when setting up the container, the gymchrono.sh script fails because gdown reaches a quota limit. See #8 for more details. Should we store the data somewhere else?

Pip and Conda Package support

I love this idea of connect Project Chrono to Gym. However, I am having a difficult time compiling the PyChrono module. Could you create a pip package for the correct version of Chrono with its necessary modules? I am aware there is a conda release, but I don't think it was compiled with the correct Chrono modules. Maybe you can also create Gym-Chrono conda release as well?

Also creating a pip package might make this usable on Google's CoLab.

Memory leak in offroad_gator.py?

Hello,

I noticed that if I use vehicle models with the ChronoBaseEnv(), there is a memory leak in the vectorized environments. I have noticed this for the offroad_gator.py and an env I created using the hmmwv vehicle. The individual environments keep growing their memory usage. It seems as if some environment resources are not being released at env.reset(). The other env models such as cobra_wpts.py dont seem to leak memory, however. Is this a known issue? Does anyone have thoughts about debugging this? Maybe something to do with the gym.Env.close() implemention?

I am using top utility to monitor the memory usage and the /usr/bin/python3 -c from multiprocessing.forkserver ... nodes are the ones that grow in memory usage until the system runs out of memory and crashes. An example of where I monitor this (in this case, just re-ran cobra_wpts_train.py to reproduce results) :

top - 11:17:39 up 18:46,  1 user,  load average: 18.79, 16.91, 15.91
Tasks: 1366 total,   6 running, 1360 sleeping,   0 stopped,   0 zombie
%Cpu(s): 15.7 us,  0.0 sy,  0.0 ni, 84.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 515580.9 total, 488939.0 free,  15644.0 used,  10997.9 buff/cache
MiB Swap:   2048.0 total,   1606.5 free,    441.5 used. 496004.3 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                                                                                                        
  81225 cra       20   0 1645756   1.5g  15624 S   0.0   0.3   0:26.70 /home/cra/.vscode/extensions/ms-vscode.cpptools-1.19.9-linux-x64/bin/cpptools                                                                                                                                                                                                                  
  66581 cra       20   0   21.1g   1.2g 402612 S   0.3   0.2  25:33.27 python3 cobra_wpts_train.py                                                                                                                                                                                                                                                                    
  69302 cra       20   0 1125.8g 718384  63300 S   0.0   0.1   7:03.47 /snap/code/155/usr/share/code/code /home/cra/.vscode/extensions/ms-python.vscode-pylance-2024.4.1/dist/server.bundle.js --cancellationReceive=file:bc412ecaf76652112fa93809a8f24e90483ce3ef52 --node-ipc --clientProcessId=68584                                                               
  84540 cra       20   0 4117136 591932 321480 S   0.3   0.1   0:37.34 /usr/lib/firefox/firefox -new-window                                                                                                                                                                                                                                                           
  68457 cra       20   0 1136.1g 550088 105772 S   0.0   0.1  12:15.34 /snap/code/155/usr/share/code/code --type=renderer --crashpad-handler-pid=68425 --enable-crash-reporter=c6aaa28c-db04-43a0-a4e3-9668ea18dfb3,no_channel --user-data-dir=/home/cra/.config/Code --standard-schemes=vscode-webview,vscode-file --secure-schemes=vscode-webview,vscode-file --co+ 
  66660 cra       20   0 5590972 534512 234492 S  77.9   0.1 207:05.27 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66658 cra       20   0 5590212 533708 234344 S  89.4   0.1 209:01.33 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66671 cra       20   0 5590656 533524 233924 S  87.5   0.1 203:24.93 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66652 cra       20   0 5590448 533512 233764 S  91.7   0.1 219:50.28 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66683 cra       20   0 5591232 533460 234220 R  87.5   0.1 204:19.76 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66664 cra       20   0 5590984 533380 233356 S  68.6   0.1 205:28.67 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66657 cra       20   0 5590208 533320 233960 S  92.7   0.1 208:44.55 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66649 cra       20   0 5591316 533312 232844 R  95.0   0.1 223:04.27 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66670 cra       20   0 5591084 533012 232884 S  78.9   0.1 204:00.27 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66659 cra       20   0 5590056 532832 233632 S  77.6   0.1 208:21.62 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66663 cra       20   0 5589696 532388 233960 S  72.3   0.1 206:55.54 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66653 cra       20   0 5589676 532336 234452 S  93.7   0.1 220:54.75 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66666 cra       20   0 5590196 532204 232860 S  86.5   0.1 204:40.95 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66651 cra       20   0 5590044 532104 232916 S  91.1   0.1 219:27.75 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66655 cra       20   0 5589284 531272 233912 R  80.5   0.1 217:58.57 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66662 cra       20   0 5588768 531052 233708 S  90.8   0.1 206:56.47 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66668 cra       20   0 5589972 530908 231796 S  69.3   0.1 204:51.29 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66656 cra       20   0 5590052 530280 231084 S  93.1   0.1 212:47.25 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66667 cra       20   0 5588568 530136 233784 S  67.3   0.1 203:21.30 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66661 cra       20   0 5588812 529720 233124 R  86.8   0.1 206:36.71 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66654 cra       20   0 5588412 529376 233188 S  80.2   0.1 218:59.53 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66669 cra       20   0 5590308 528620 229164 S  79.5   0.1 204:37.67 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66665 cra       20   0 5588840 527992 230576 S  76.6   0.1 204:15.16 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
  66650 cra       20   0 5585680 526760 233088 R  92.7   0.1 221:35.81 /usr/bin/python3 -c from multiprocessing.forkserver import main; main(52, 54, ['__main__'], **{'sys_path': ['/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono/gym_chrono/train', '/home/cra/chrono-ws/gym-chrono', '/home/cra/chrono-ws/chrono_build/bin', '+ 
   3793 cra       20   0 4637840 379480  98272 S   1.7   0.1   8:24.79 /usr/bin/gnome-shell 

My training and system info:

- OS: Linux-5.15.0-101-generic-x86_64-with-glibc2.29 # 111~20.04.1-Ubuntu SMP Mon Mar 11 15:44:43 UTC 2024
- Python: 3.8.10
- Stable-Baselines3: 2.2.1
- PyTorch: 2.2.1+cu121
- GPU Enabled: True
- Numpy: 1.24.0
- Cloudpickle: 3.0.0
- Gymnasium: 0.29.1

Thanks.

URDF and Parsers module building

Hi,
I am trying to use gym-chrono in Linux cra-Lambda-Vector 5.15.0-100-generic #110~20.04.1-Ubuntu SMP Tue Feb 13 14:25:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux, using the feature/robot_model (https://github.com/zzhou292/chrono/tree/feature/robot_model) branch of chrono. I am able to build Chrono with moudules: Chrono::Sensor, Chrono::Irrlicht, Chrono::SynChrono, Chrono::Vehicle, Chrono::Python, Chrono::OPENMP and Chrono::Parsers.

1 Building URDF:

This is not related to my question directly, but needs fixing on this branch I believe.

  1. The lines (https://github.com/zzhou292/chrono/blob/e35a82779325d30d45b7f7941334d72b1968b972/src/chrono_parsers/ChParserURDF.cpp#L42) needs to be cleaned.
  2. The buildURDF.sh file in this branch is not the same as official branch. That causes cmake config failure for urdf packages. So I used the one from the official branch (https://github.com/projectchrono/chrono/blob/main/contrib/build-scripts/urdf/buildURDF.sh) to use tinyxml2 and urdfdom fork from Radu's repo. This builds ok, allows the above Chrono modules to build.

2 Optix Engine Load issue:

When I try to run gym-chrono/gym_chrono/train/off_road_gator_train.py, it cannot init the Optix Engine. I get the folllowing error:

cra@cra-Lambda-Vector:~/chrono-ws/gym-chrono/gym_chrono/train$ python3 off_road_gator_train.py
Logging to gator_logs/
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
Traceback (most recent call last):
  File "off_road_gator_train.py", line 106, in <module>
    env = make_vec_env(env_id=make_env(0), n_envs=num_cpu,
  File "/home/cra/.local/lib/python3.8/site-packages/stable_baselines3/common/env_util.py", line 125, in make_vec_env
    vec_env = vec_env_cls([make_env(i + start_index) for i in range(n_envs)], **vec_env_kwargs)
  File "/home/cra/.local/lib/python3.8/site-packages/stable_baselines3/common/vec_env/subproc_vec_env.py", line 119, in __init__
    observation_space, action_space = self.remotes[0].recv()
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 414, in _recv_bytes
    buf = self._recv(4)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 379, in _recv
    chunk = read(handle, remaining)
ConnectionResetError: [Errno 104] Connection reset by peer

The sensor demos in chrono_build/bin do not run either.

cra@cra-Lambda-Vector:~/chrono-ws/chrono_build/bin$ ./demo_SEN_Gator
Copyright (c) 2017 projectchrono.org
Chrono version: 8.0.0

Irrlicht Engine version 1.8.4
Linux 5.15.0-100-generic #110~20.04.1-Ubuntu SMP Tue Feb 13 14:25:03 UTC 2024 x86_64
Using plain X visual
This driver is not available in Linux. Try OpenGL or Software renderer.
Cannot use default video driver - fall back to OpenGL
Irrlicht Engine version 1.8.4
Linux 5.15.0-100-generic #110~20.04.1-Ubuntu SMP Tue Feb 13 14:25:03 UTC 2024 x86_64
Using renderer: OpenGL 3.1
llvmpipe (LLVM 12.0.0, 256 bits): Mesa/X.org
OpenGL driver version is 1.2 or better.
GLSL version: 1.4
Loaded texture: /home/cra/chrono-ws/chrono_build/data/skybox/sky_lf.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/skybox/sky_up.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/skybox/sky_dn.jpg
PNG warning: iCCP: known incorrect sRGB profile
Loaded texture: /home/cra/chrono-ws/chrono_build/data/logo_chronoengine_alpha.png
Loaded texture: /home/cra/chrono-ws/chrono_build/data/fonts/arial80.bmp
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Lidar_Generator_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Lidar_Generator_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Server_Mount_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Server_Mount_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chassis_F_Bed_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chassis_F_Bed_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chairs_Dash_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chairs_Dash_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chassis_R_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Gator_Texture_Gator_Chassis_R_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Wheel_F_Gator_Wheels_AlbedoTransparency.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/gator/Textures/Wheel_F_Gator_Wheels_Normal.jpg
Loaded texture: /home/cra/chrono-ws/chrono_build/data/vehicle/terrain/textures/grass.jpg
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79
cra@cra-Lambda-Vector:~/chrono-ws/chrono_build/bin$ ./demo_SEN_buildtest 
Copyright (c) 2019 projectchrono.org
Chrono version: 8.0.0

sensor manager being made
Failed to create a ChOptixEngine, with error:
OPTIX_ERROR_LIBRARY_NOT_FOUND: Library not found at /home/cra/chrono-ws/chrono/src/chrono_sensor/optix/ChOptixEngine.cpp:79

Not sure what the issue is, since the Chrono modules build successfully. Attaching my cMake output here.
cmake_configuration_output.txt

Any input is appreciated!

================================================

EDIT:
The 2nd issue (Optix Engine Load issue) is fixed for me. I just had a mismatch in the nvidia driver library that it pulls in at runtime. I had to ensure that the Cuda version I compiled the Optix7.7 with, matches the Cuda version compatible with the nvidia-driver I have installed.

Prakhar

Add Dockerfile

Add dockerfile so users don't have to build chrono / gymchrono on their own (because they have to build from Jason's branch).

Data folder path mixes up

The data folder that the users are asked to download seems to be incomplete - does not include vehicle meshes. Also adding the Chrono data directory in the readme implies that the Chrono data directory is being used for all the simulation assets. That also needs to be updated

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.