intel / ad-rss-lib

Library implementing the Responsibility Sensitive Safety model (RSS) for Autonomous Vehicles
https://intel.github.io/ad-rss-lib/
GNU Lesser General Public License v2.1
336 stars 138 forks source link

Carla-RSS "Build" process #121

Closed chenhengwei1999 closed 2 years ago

chenhengwei1999 commented 2 years ago

I'm compiling and installing RSS library according to Carla official website (https://carla.readthedocs.io/en/latest/adv_rss/). When I successfully compiled ad-rss-lib with colcon, I don't know how to build rss with Carla in the Carla official website (https://carla.readthedocs.io/en/latest/adv_rss/ ---> "Build" part, As shown in the picture below).

image

The reason is that I can't find the ".rss" suffix file required by build (As shown in the picture above, such as "LibCarla.client.rss, PythonAPI.rss").

I try to find these files in the installation directory of Carla and ad-rss-lib build directory (As shown in the picture below). But I still can't find these files.

image

Maybe this question is a little naive. Please forgive the question raised by a novice. Thanks!

berndgassmann commented 2 years ago

Hi, no worries. When integrated with CARLA you don't compile ad-rss-lib by doing anything manually from your end within ad-rss-lib. So you don't call colcon yourself, the build system of CARLA is doing that for you. The build commands above from the CARLA documentation refer to the adapted build commands to build CARLA including RSS support. So if you have a look at https://carla.readthedocs.io/en/latest/build_linux/ then you will see that instead of make package for integration of RSS with CARLA you just call make package.rss Then the build is taking care of downloading ad-rss-lib and integrating it into the CARLA build.

But if you don't want to change anything in the code you might be happy to just download and use the precompiled version with RSS integrated _CARLA_0.9.13RSS.tar.gz from here: https://github.com/carla-simulator/carla/releases/tag/0.9.13

Then you don't have to compile anything on your own and can just make use of RSS integrated into CARLA.

chenhengwei1999 commented 2 years ago

Hi, no worries. When integrated with CARLA you don't compile ad-rss-lib by doing anything manually from your end within ad-rss-lib. So you don't call colcon yourself, the build system of CARLA is doing that for you. The build commands above from the CARLA documentation refer to the adapted build commands to build CARLA including RSS support. So if you have a look at https://carla.readthedocs.io/en/latest/build_linux/ then you will see that instead of make package for integration of RSS with CARLA you just call make package.rss Then the build is taking care of downloading ad-rss-lib and integrating it into the CARLA build.

But if you don't want to change anything in the code you might be happy to just download and use the precompiled version with RSS integrated _CARLA_0.9.13RSS.tar.gz from here: https://github.com/carla-simulator/carla/releases/tag/0.9.13

Then you don't have to compile anything on your own and can just make use of RSS integrated into CARLA.

Thank you very much for your reply. I tried to use the precompiled version RSS directly, but I was executing the command "python examples/rss/manual control rss.py" in the terminal, the following error occurred:


image

Then I checked whether the Carla package was installed correctly in the current conda environment, the Carla package has been installed (As shown in the figure below).


image

In addition, I have also checked whether to import RSS package into Carla according to the tutorial on the official website(As shown in the figure below).This command has been executed.

image

However, the ad Library in Carla cannot be imported. Excuse me, what else do I need to check to successfully run RSS in Carla? Thanks in advance.

berndgassmann commented 2 years ago

When compiled together with CARLA, RSS is directly compiled into the CARLA python egg/whl files. It is not using the standalone RSS python library which you can build on your own with ad-rss-lib sources. Having said that, I would expect that the version of carla python package your conda environment has installed most probably is not the one delivered with the precompiled tarball. Especially the RSS variant is not available via pypi. You have to uninstall the carla python package previously installed via pypi. And then either set the PYTHONPATH variable to the respective egg file, or install the egg or whl file delivered with the tarball under PythonAPI/carla/dist/ directly. See also https://carla.readthedocs.io/en/latest/start_quickstart/#carla-0912 Then the correct interface should be available and the import statement should work fine.

You are using CARLA 0.9.12. Be aware that this bugfix PR https://github.com/carla-simulator/carla/pull/4604 fixing some issues with changed threading behavior of 0.9.12 was integrated in 0.9.13 version. So I would recommend to use 0.9.13 of CARLA.

chenhengwei1999 commented 2 years ago

When compiled together with CARLA, RSS is directly compiled into the CARLA python egg/whl files. It is not using the standalone RSS python library which you can build on your own with ad-rss-lib sources. Having said that, I would expect that the version of carla python package your conda environment has installed most probably is not the one delivered with the precompiled tarball. Especially the RSS variant is not available via pypi. You have to uninstall the carla python package previously installed via pypi. And then either set the PYTHONPATH variable to the respective egg file, or install the egg or whl file delivered with the tarball under PythonAPI/carla/dist/ directly. See also https://carla.readthedocs.io/en/latest/start_quickstart/#carla-0912 Then the correct interface should be available and the import statement should work fine.

You are using CARLA 0.9.12. Be aware that this bugfix PR carla-simulator/carla#4604 fixing some issues with changed threading behavior of 0.9.12 was integrated in 0.9.13 version. So I would recommend to use 0.9.13 of CARLA.

Thank you very much for your advice, which is very warm for novices.@berndgassmann

I have found the problem, that is, version 0.9.12 Carla needs to be used egg file to enable the carla library. I mistakenly thought that version 0.9.12 belongs to the 0.9.12 + mentioned on the official website (https://carla.readthedocs.io/en/0.9.13/start_quickstart/).

By the way, I'd like to make some suggestions for the official website tutorial (maybe it's just my understanding). When 0.9.12 + is mentioned on the official website, it can be specially noted, that is, 0.9.12 is not included. My advice may be naive, but it would be great if it helped your team.

Thank you again for your patient reply.

berndgassmann commented 2 years ago

It's not because of Carla 0.9.12 that requires the egg file and not the pypi version, it's actually the special RSS built variant that requires to use the egg/whl from the tarball.

Great that it is now working for you.