Merge branch 'marcel/ue5/rename' into ue5-dev
This commit is contained in:
commit
5966d00496
|
@ -1,67 +1,9 @@
|
|||
.vs/
|
||||
.vscode/
|
||||
|
||||
.cache/
|
||||
__pycache__/
|
||||
|
||||
Build/
|
||||
out/
|
||||
|
||||
Dist/
|
||||
Doxygen/
|
||||
Deprecated/PythonClient/dist/
|
||||
TrafficManager/build/
|
||||
Util/Build/
|
||||
Dependencies/
|
||||
Install/
|
||||
Plugins/
|
||||
|
||||
!Unreal/CarlaUE4/Plugins
|
||||
Unreal/CarlaUE4/Plugins/Streetmap
|
||||
Unreal/CarlaUE4/Plugins/HoudiniEngine
|
||||
|
||||
/ExportedMaps
|
||||
/Import/*
|
||||
!/Import/README.md
|
||||
|
||||
*.VC.db
|
||||
*.VC.opendb
|
||||
|
||||
*.o
|
||||
*.a
|
||||
*.so
|
||||
*.lib
|
||||
|
||||
*.pyd
|
||||
*.whl
|
||||
*.egg
|
||||
|
||||
*.egg-info
|
||||
*.kdev4
|
||||
*.log
|
||||
*.pb.cc
|
||||
*.pb.h
|
||||
*.pid
|
||||
*.pri
|
||||
*.pro
|
||||
*.py[cod]
|
||||
*.sln
|
||||
*.stackdump
|
||||
*.sublime-workspace
|
||||
*.workspace
|
||||
|
||||
*CodeCompletionFolders.txt
|
||||
*CodeLitePreProcessor.txt
|
||||
.aria2c.input
|
||||
.codelite
|
||||
.gdb_history
|
||||
.gtest
|
||||
.idea
|
||||
.tags*
|
||||
__pycache__/
|
||||
_benchmarks_results/
|
||||
_images*
|
||||
_out*
|
||||
_site
|
||||
core
|
||||
profiler.csv
|
||||
ArgsSync.json
|
||||
Dist/
|
||||
out/
|
|
@ -349,7 +349,7 @@
|
|||
|
||||
## CARLA 0.9.7
|
||||
|
||||
* Upgraded parameters of Unreal/CarlaUE4/Config/DefaultInput.ini to prevent mouse freeze
|
||||
* Upgraded parameters of Unreal/CarlaUnreal/Config/DefaultInput.ini to prevent mouse freeze
|
||||
* Add build variant with AD RSS library integration with RSS sensor and result visualisation
|
||||
* Support for OpenGL and Vulkan in docker + headless mode
|
||||
* Added new sensor: Inertial measurement unit (IMU)
|
||||
|
|
|
@ -1,26 +1,69 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
include (FetchContent)
|
||||
include (ExternalProject)
|
||||
|
||||
set (CARLA_DEPENDENCIES_PENDING)
|
||||
|
||||
macro (carla_dependency_add NAME TAG ARCHIVE_URL GIT_URL)
|
||||
if (PREFER_CLONE)
|
||||
message ("Cloning ${NAME}...")
|
||||
FetchContent_Declare(
|
||||
${NAME}
|
||||
GIT_REPOSITORY ${GIT_URL}
|
||||
GIT_TAG ${TAG}
|
||||
GIT_SUBMODULES_RECURSE ON
|
||||
GIT_SHALLOW ON
|
||||
GIT_PROGRESS ON
|
||||
OVERRIDE_FIND_PACKAGE
|
||||
${ARGN}
|
||||
)
|
||||
list (APPEND CARLA_DEPENDENCIES_PENDING ${NAME})
|
||||
else ()
|
||||
message ("Downloading ${NAME}...")
|
||||
FetchContent_Declare(
|
||||
${NAME}
|
||||
URL ${ARCHIVE_URL}
|
||||
OVERRIDE_FIND_PACKAGE
|
||||
${ARGN}
|
||||
)
|
||||
list (APPEND CARLA_DEPENDENCIES_PENDING ${NAME})
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (carla_dependencies_make_available)
|
||||
FetchContent_MakeAvailable (
|
||||
${CARLA_DEPENDENCIES_PENDING})
|
||||
set (CARLA_DEPENDENCIES_PENDING)
|
||||
endmacro ()
|
||||
|
||||
macro (carla_fetchcontent_option NAME VALUE)
|
||||
set (${NAME} ${VALUE} CACHE INTERNAL "")
|
||||
endmacro ()
|
||||
|
||||
|
||||
|
||||
# These checks may be incomplete:
|
||||
# ==== SQLITE3 ====
|
||||
|
||||
if (LINUX)
|
||||
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package (Threads REQUIRED)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
set (CARLA_DEPENDENCIES_INSTALL_PATH)
|
||||
set (THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package (Threads REQUIRED)
|
||||
|
||||
string (REPLACE "." "" CARLA_SQLITE_TAG ${CARLA_SQLITE_VERSION})
|
||||
|
||||
FetchContent_Declare (
|
||||
carla_dependency_add (
|
||||
sqlite3
|
||||
URL https://www.sqlite.org/2024/sqlite-amalgamation-${CARLA_SQLITE_TAG}.zip
|
||||
${CARLA_SQLITE_TAG}
|
||||
https://www.sqlite.org/2024/sqlite-amalgamation-${CARLA_SQLITE_TAG}.zip
|
||||
""
|
||||
)
|
||||
FetchContent_MakeAvailable (sqlite3)
|
||||
carla_dependencies_make_available ()
|
||||
|
||||
add_library (
|
||||
libsqlite3 STATIC
|
||||
|
@ -43,200 +86,144 @@ target_link_libraries (
|
|||
libsqlite3
|
||||
)
|
||||
|
||||
# ==== ZLIB ====
|
||||
|
||||
|
||||
set (CARLA_DEPENDENCIES)
|
||||
|
||||
macro (carla_dependency_add NAME URL TAG)
|
||||
message ("Fetching ${NAME}...")
|
||||
FetchContent_Declare(
|
||||
${NAME}
|
||||
GIT_SUBMODULES_RECURSE ON
|
||||
GIT_SHALLOW ON
|
||||
GIT_PROGRESS ON
|
||||
GIT_REPOSITORY ${URL}
|
||||
GIT_TAG ${TAG}
|
||||
OVERRIDE_FIND_PACKAGE
|
||||
)
|
||||
list (APPEND CARLA_DEPENDENCIES ${NAME})
|
||||
endmacro ()
|
||||
|
||||
macro (carla_dependencies_make_available)
|
||||
FetchContent_MakeAvailable (
|
||||
${CARLA_DEPENDENCIES})
|
||||
set (CARLA_DEPENDENCIES)
|
||||
endmacro ()
|
||||
|
||||
macro (carla_fetchcontent_option NAME VALUE)
|
||||
set (${NAME} ${VALUE} CACHE INTERNAL "")
|
||||
endmacro ()
|
||||
|
||||
|
||||
|
||||
set (ZLIB_BUILD_EXAMPLES OFF)
|
||||
carla_fetchcontent_option (ZLIB_BUILD_EXAMPLES OFF)
|
||||
carla_dependency_add (
|
||||
zlib
|
||||
https://github.com/madler/zlib.git
|
||||
${CARLA_ZLIB_TAG}
|
||||
https://github.com/madler/zlib/archive/refs/tags/${CARLA_ZLIB_TAG}.zip
|
||||
https://github.com/madler/zlib.git
|
||||
)
|
||||
carla_dependencies_make_available ()
|
||||
include_directories (${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) # HACK
|
||||
include_directories (${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) # @TODO HACK
|
||||
|
||||
set (PNG_TESTS OFF)
|
||||
set (PNG_SHARED OFF)
|
||||
set (PNG_TOOLS OFF)
|
||||
set (PNG_BUILD_ZLIB ON)
|
||||
# ==== LIBPNG ====
|
||||
|
||||
carla_fetchcontent_option (PNG_TESTS OFF)
|
||||
carla_fetchcontent_option (PNG_SHARED OFF)
|
||||
carla_fetchcontent_option (PNG_TOOLS OFF)
|
||||
carla_fetchcontent_option (PNG_BUILD_ZLIB ON)
|
||||
if (WIN32)
|
||||
set (ZLIB_LIBRARY ${zlib_BINARY_DIR}/zlibstatic${CARLA_DEBUG_AFFIX}.lib)
|
||||
carla_fetchcontent_option (ZLIB_LIBRARY ${zlib_BINARY_DIR}/zlibstatic${CARLA_DEBUG_AFFIX}.lib)
|
||||
else ()
|
||||
set (ZLIB_LIBRARY ${zlib_BINARY_DIR}/libz.a)
|
||||
carla_fetchcontent_option (ZLIB_LIBRARY ${zlib_BINARY_DIR}/libz.a)
|
||||
endif ()
|
||||
set (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
|
||||
set (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
||||
carla_fetchcontent_option (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
|
||||
carla_fetchcontent_option (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
||||
carla_dependency_add (
|
||||
libpng
|
||||
https://github.com/glennrp/libpng.git
|
||||
${CARLA_LIBPNG_TAG}
|
||||
https://github.com/pnggroup/libpng/archive/refs/tags/${CARLA_LIBPNG_TAG}.zip
|
||||
https://github.com/glennrp/libpng.git
|
||||
)
|
||||
carla_dependencies_make_available ()
|
||||
include_directories (${libpng_SOURCE_DIR} ${libpng_BINARY_DIR}) # HACK
|
||||
include_directories (${libpng_SOURCE_DIR} ${libpng_BINARY_DIR}) # @TODO HACK
|
||||
|
||||
|
||||
|
||||
if (BUILD_PYTHON_API)
|
||||
set (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API})
|
||||
endif ()
|
||||
# ==== BOOST ====
|
||||
|
||||
carla_dependency_add (
|
||||
carla_fetchcontent_option (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API})
|
||||
carla_fetchcontent_option (BOOST_ENABLE_MPI OFF)
|
||||
carla_fetchcontent_option (BOOST_LOCALE_WITH_ICU OFF)
|
||||
carla_fetchcontent_option (BOOST_LOCALE_WITH_ICONV OFF)
|
||||
carla_fetchcontent_option (BOOST_EXCLUDE_LIBRARIES "iostreams;locale;fiber;log")
|
||||
carla_dependency_add(
|
||||
boost
|
||||
https://github.com/boostorg/boost.git
|
||||
${CARLA_BOOST_TAG}
|
||||
https://github.com/boostorg/boost/releases/download/${CARLA_BOOST_TAG}/${CARLA_BOOST_TAG}.zip
|
||||
https://github.com/boostorg/boost.git
|
||||
)
|
||||
|
||||
set (EIGEN_BUILD_PKGCONFIG OFF)
|
||||
set (BUILD_TESTING OFF)
|
||||
set (EIGEN_BUILD_DOC OFF)
|
||||
# ==== EIGEN ====
|
||||
|
||||
carla_fetchcontent_option (EIGEN_BUILD_PKGCONFIG OFF)
|
||||
carla_fetchcontent_option (BUILD_TESTING OFF)
|
||||
carla_fetchcontent_option (EIGEN_BUILD_DOC OFF)
|
||||
carla_dependency_add (
|
||||
eigen
|
||||
https://gitlab.com/libeigen/eigen.git
|
||||
${CARLA_EIGEN_TAG}
|
||||
https://gitlab.com/libeigen/eigen/-/archive/${CARLA_EIGEN_TAG}/eigen-${CARLA_EIGEN_TAG}.tar.gz
|
||||
https://gitlab.com/libeigen/eigen.git
|
||||
)
|
||||
|
||||
# ==== RPCLIB ====
|
||||
|
||||
carla_dependency_add (
|
||||
rpclib
|
||||
https://github.com/carla-simulator/rpclib.git
|
||||
${CARLA_RPCLIB_TAG}
|
||||
https://github.com/carla-simulator/rpclib/archive/refs/heads/${CARLA_RPCLIB_TAG}.zip
|
||||
https://github.com/carla-simulator/rpclib.git
|
||||
)
|
||||
|
||||
# ==== RECAST ====
|
||||
|
||||
carla_fetchcontent_option (RECASTNAVIGATION_BUILDER OFF)
|
||||
carla_dependency_add (
|
||||
recastnavigation
|
||||
https://github.com/carla-simulator/recastnavigation.git
|
||||
${CARLA_RECAST_TAG}
|
||||
https://github.com/carla-simulator/recastnavigation/archive/refs/heads/${CARLA_RECAST_TAG}.zip
|
||||
https://github.com/carla-simulator/recastnavigation.git
|
||||
)
|
||||
|
||||
# ==== PROJ ====
|
||||
|
||||
if (ENABLE_OSM2ODR)
|
||||
set (BUILD_TESTING OFF)
|
||||
set (ENABLE_TIFF OFF)
|
||||
set (ENABLE_CURL OFF)
|
||||
carla_fetchcontent_option (BUILD_TESTING OFF)
|
||||
carla_fetchcontent_option (ENABLE_TIFF OFF)
|
||||
carla_fetchcontent_option (ENABLE_CURL OFF)
|
||||
carla_dependency_add (
|
||||
proj
|
||||
https://github.com/OSGeo/PROJ/archive/refs/tags/${CARLA_PROJ_TAG}.zip
|
||||
https://github.com/OSGeo/PROJ.git
|
||||
${CARLA_PROJ_TAG}
|
||||
)
|
||||
endif ()
|
||||
|
||||
# ==== XERCESC ====
|
||||
|
||||
if (ENABLE_OSM2ODR)
|
||||
carla_dependency_add (
|
||||
xercesc
|
||||
https://github.com/apache/xerces-c/archive/refs/tags/${CARLA_XERCESC_TAG}.zip
|
||||
https://github.com/apache/xerces-c.git
|
||||
${CARLA_XERCESC_TAG}
|
||||
)
|
||||
endif ()
|
||||
|
||||
# ==== LUNASVG ====
|
||||
|
||||
if (BUILD_OSM_WORLD_RENDERER)
|
||||
carla_dependency_add (
|
||||
lunasvg
|
||||
https://github.com/sammycage/lunasvg/archive/refs/tags/${CARLA_LUNASVG_TAG}.zip
|
||||
https://github.com/sammycage/lunasvg.git
|
||||
${CARLA_LUNASVG_TAG}
|
||||
)
|
||||
endif ()
|
||||
|
||||
# ==== LIBOSMSCOUT ====
|
||||
|
||||
if (BUILD_OSM_WORLD_RENDERER)
|
||||
carla_dependency_add (
|
||||
libosmscout
|
||||
https://github.com/Framstag/libosmscout/archive/refs/tags/${CARLA_LIBOSMSCOUT_TAG}.zip
|
||||
https://github.com/Framstag/libosmscout.git
|
||||
${CARLA_LIBOSMSCOUT_TAG}
|
||||
)
|
||||
endif ()
|
||||
|
||||
# carla_dependency_add (
|
||||
# gtest
|
||||
# https://github.com/google/googletest.git
|
||||
# ${CARLA_GTEST_TAG}
|
||||
# )
|
||||
# ==== STREETMAP ====
|
||||
|
||||
if (BUILD_CARLA_UE)
|
||||
carla_dependency_add (
|
||||
StreetMap
|
||||
https://github.com/carla-simulator/StreetMap.git
|
||||
https://github.com/carla-simulator/StreetMap/archive/refs/heads/${CARLA_STREETMAP_TAG}.zip
|
||||
${CARLA_STREETMAP_TAG}
|
||||
DOWNLOAD_DIR ${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal/Plugins
|
||||
)
|
||||
endif ()
|
||||
|
||||
carla_dependencies_make_available ()
|
||||
|
||||
#[[
|
||||
|
||||
ExternalProject_Add (
|
||||
recastnavigation
|
||||
GIT_REPOSITORY https://github.com/carla-simulator/recastnavigation.git
|
||||
GIT_TAG ${CARLA_RECAST_TAG}
|
||||
)
|
||||
|
||||
ExternalProject_Add (
|
||||
proj
|
||||
GIT_REPOSITORY https://github.com/OSGeo/PROJ.git
|
||||
GIT_TAG ${CARLA_PROJ_TAG}
|
||||
CMAKE_ARGS
|
||||
-DSQLITE3_INCLUDE_DIR=${sqlite3_SOURCE_DIR}
|
||||
-DSQLITE3_LIBRARY=$<TARGET_FILE:libsqlite3>
|
||||
-DEXE_SQLITE3=$<TARGET_FILE:sqlite3>
|
||||
-DENABLE_TIFF=OFF
|
||||
-DENABLE_CURL=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_PROJSYNC=OFF
|
||||
-DBUILD_PROJINFO=OFF
|
||||
-DBUILD_CCT=OFF
|
||||
-DBUILD_CS2CS=OFF
|
||||
-DBUILD_GEOD=OFF
|
||||
-DBUILD_GIE=OFF
|
||||
-DBUILD_PROJ=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
)
|
||||
|
||||
add_dependencies (proj sqlite3 libsqlite3)
|
||||
|
||||
ExternalProject_Add (
|
||||
xercesc
|
||||
GIT_REPOSITORY https://github.com/apache/xerces-c.git
|
||||
GIT_TAG ${CARLA_XERCESC_TAG}
|
||||
)
|
||||
|
||||
ExternalProject_Add (
|
||||
libpng
|
||||
GIT_REPOSITORY https://github.com/glennrp/libpng.git
|
||||
GIT_TAG ${CARLA_LIBPNG_TAG}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
|
||||
-DPNG_TESTS=OFF
|
||||
-DPNG_SHARED=OFF
|
||||
-DPNG_TOOLS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add (
|
||||
lunasvg
|
||||
GIT_REPOSITORY https://github.com/sammycage/lunasvg.git
|
||||
)
|
||||
|
||||
ExternalProject_Add (
|
||||
libosmscout
|
||||
GIT_REPOSITORY https://github.com/Framstag/libosmscout.git
|
||||
)
|
||||
|
||||
ExternalProject_Add (
|
||||
gtest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG ${CARLA_GTEST_TAG}
|
||||
)]]
|
||||
|
|
|
@ -1,252 +1,17 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
macro (carla_string_option NAME DESCRIPTION VALUE)
|
||||
set (${NAME} ${VALUE} CACHE STRING ${DESCRIPTION})
|
||||
endmacro ()
|
||||
|
||||
# ==== Common target flags ====
|
||||
|
||||
set (BUILD_SHARED_LIBS OFF)
|
||||
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
option (
|
||||
BUILD_CARLA_CLIENT
|
||||
"Build the LibCarla client."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_CARLA_SERVER
|
||||
"Build the LibCarla server."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_LIBCARLA_PYTORCH
|
||||
"Enable LibCarla-PyTorch."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_PYTHON_API
|
||||
"Build the CARLA Python API."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_CARLA_UE
|
||||
"Build the Carla Unreal Engine project."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_ROS2
|
||||
"Enable ROS2."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_OSM2ODR
|
||||
"Enable OSM2ODR."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_RSS
|
||||
"Enable RSS components (ad-rss-lib)"
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
INSTALL_LIBCARLA
|
||||
"Install LibCarla and all of its dependencies."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_OSM_WORLD_RENDERER
|
||||
"Build OSM World Renderer."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_RTTI
|
||||
"Enable C++ RTTI."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_EXCEPTIONS
|
||||
"Enable C++ Exceptions."
|
||||
OFF
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_UNREAL_ENGINE_PATH
|
||||
"Path to the CARLA fork of Unreal Engine"
|
||||
""
|
||||
)
|
||||
|
||||
if (EXISTS ${CARLA_UNREAL_ENGINE_PATH})
|
||||
set (CARLA_HAS_UNREAL_ENGINE_PATH ON)
|
||||
else ()
|
||||
set (CARLA_HAS_UNREAL_ENGINE_PATH OFF)
|
||||
endif ()
|
||||
|
||||
if (${BUILD_CARLA_UE})
|
||||
if (${CARLA_HAS_UNREAL_ENGINE_PATH})
|
||||
message ("Carla UE project successfully added to build. (UE path: ${CARLA_UNREAL_ENGINE_PATH})")
|
||||
else ()
|
||||
message (
|
||||
FATAL_ERROR
|
||||
"Could not add UE project to build since the option CARLA_UNREAL_ENGINE_PATH is not set to a valid path (\"${CARLA_UNREAL_ENGINE_PATH}\"). Please set it to point to the root path of your CARLA Unreal Engine installation.")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# ==== DEPENDENCIES ====
|
||||
|
||||
# ==== BOOST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_BOOST_VERSION
|
||||
"Target boost version."
|
||||
1.84.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_BOOST_TAG
|
||||
"Target boost git tag."
|
||||
boost-${CARLA_BOOST_VERSION}
|
||||
)
|
||||
|
||||
# ==== EIGEN ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_EIGEN_VERSION
|
||||
"Target Eigen version."
|
||||
3.4.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_EIGEN_TAG
|
||||
"Target Eigen git tag."
|
||||
${CARLA_EIGEN_VERSION}
|
||||
)
|
||||
|
||||
# ==== GOOGLE TEST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_GTEST_VERSION
|
||||
"Target googletest version."
|
||||
1.14.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_GTEST_TAG
|
||||
"Target googletest git tag."
|
||||
v${CARLA_GTEST_VERSION}
|
||||
)
|
||||
|
||||
# ==== LIBPNG ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBPNG_VERSION
|
||||
"Target libpng version."
|
||||
1.6.40
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBPNG_TAG
|
||||
"Target libpng git tag."
|
||||
v${CARLA_LIBPNG_VERSION}
|
||||
)
|
||||
|
||||
# ==== PROJ ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_PROJ_VERSION
|
||||
"Target PROJ version."
|
||||
7.2.1
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_PROJ_TAG
|
||||
"Target PROJ git tag."
|
||||
${CARLA_PROJ_VERSION}
|
||||
)
|
||||
|
||||
# ==== RECAST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_RECAST_TAG
|
||||
"Target recastnavigation git tag."
|
||||
carla
|
||||
)
|
||||
|
||||
# ==== RPCLIB ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_RPCLIB_TAG
|
||||
"Target rpclib git tag."
|
||||
carla
|
||||
)
|
||||
|
||||
# ==== SQLITE3 ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_SQLITE_VERSION
|
||||
"Target SQLite version (major[1].minor[2].patch[2].revision[2])."
|
||||
3.45.01.00
|
||||
)
|
||||
|
||||
# ==== XERCESC ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_XERCESC_VERSION
|
||||
"Target xerces-c version."
|
||||
3.2.4
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_XERCESC_TAG
|
||||
"Target xerces-c git tag."
|
||||
v${CARLA_XERCESC_VERSION}
|
||||
)
|
||||
|
||||
# ==== ZLIB ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_ZLIB_VERSION
|
||||
"Target zlib git tag."
|
||||
1.3.1)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_ZLIB_TAG
|
||||
"Target zlib git tag."
|
||||
v${CARLA_ZLIB_VERSION})
|
||||
|
||||
# ==== LUNASVG ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LUNASVG_VERSION
|
||||
"Target lunasvg version."
|
||||
master
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LUNASVG_TAG
|
||||
"Target lunasvg git tag."
|
||||
${CARLA_LUNASVG_VERSION}
|
||||
)
|
||||
|
||||
# ==== LIBOSMSCOUT ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBOSMSCOUT_VERSION
|
||||
"Target libosmscout version."
|
||||
master
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBOSMSCOUT_TAG
|
||||
"Target libosmscout git tag."
|
||||
${CARLA_LIBOSMSCOUT_VERSION}
|
||||
)
|
||||
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Common.cmake)
|
||||
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Unreal.cmake)
|
||||
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Dependencies.cmake)
|
|
@ -0,0 +1,166 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
set (UE_ROOT /home/marcel/CarlaUnrealEngine5) # @TODO
|
||||
|
||||
# set (UE_ROOT ${CARLA_UNREAL_ENGINE_PATH} CACHE PATH "")
|
||||
message ("UE_ROOT=${UE_ROOT}")
|
||||
|
||||
set (ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
|
||||
if (${ARCH} STREQUAL "x86_64")
|
||||
set (CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "")
|
||||
set (TARGET_TRIPLE "x86_64-unknown-linux-gnu" CACHE STRING "")
|
||||
elseif (${ARCH} STREQUAL "aarch64")
|
||||
set (CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "")
|
||||
set (TARGET_TRIPLE "aarch64-unknown-linux-gnueabi" CACHE STRING "")
|
||||
endif()
|
||||
|
||||
set (
|
||||
UE_SYSROOT
|
||||
${UE_ROOT}/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/${TARGET_TRIPLE}
|
||||
CACHE PATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
UE_THIRD_PARTY
|
||||
${UE_ROOT}/Engine/Source/ThirdParty CACHE PATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
UE_INCLUDE
|
||||
${UE_THIRD_PARTY}/Unix/LibCxx/include CACHE PATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
UE_LIBS
|
||||
${UE_THIRD_PARTY}/Unix/LibCxx/lib/Unix/${TARGET_TRIPLE} CACHE PATH ""
|
||||
)
|
||||
|
||||
add_compile_options (
|
||||
-fms-extensions
|
||||
-fno-math-errno
|
||||
-fdiagnostics-absolute-paths
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++>
|
||||
)
|
||||
|
||||
add_link_options (-stdlib=libc++ -L${UE_LIBS} )
|
||||
|
||||
set (
|
||||
CMAKE_AR
|
||||
${UE_SYSROOT}/bin/llvm-ar
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_ASM_COMPILER
|
||||
${UE_SYSROOT}/bin/clang
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_C_COMPILER
|
||||
${UE_SYSROOT}/bin/clang
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_C_COMPILER_AR
|
||||
${UE_SYSROOT}/bin/llvm-ar
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_CXX_COMPILER
|
||||
${UE_SYSROOT}/bin/clang++
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_CXX_COMPILER_AR
|
||||
${UE_SYSROOT}/bin/llvm-ar
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_OBJCOPY
|
||||
${UE_SYSROOT}/bin/llvm-objcopy
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_ADDR2LINE
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-addr2line
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_C_COMPILER_RANLIB
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-ranlib
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_CXX_COMPILER_RANLIB
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-ranlib
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_LINKER
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-ld
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_NM
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-nm
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_OBJDUMP
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-objdump
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_RANLIB
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-ranlib
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_READELF
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-readelf
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_STRIP
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-strip
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
COVERAGE_COMMAND
|
||||
${UE_SYSROOT}/bin/${TARGET_TRIPLE}-gcov
|
||||
CACHE FILEPATH ""
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_CXX_STANDARD_LIBRARIES
|
||||
"${UE_LIBS}/libc++.a ${UE_LIBS}/libc++abi.a"
|
||||
)
|
||||
|
||||
set (
|
||||
CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
|
||||
${UE_INCLUDE} ${UE_INCLUDE}/c++/v1
|
||||
)
|
|
@ -0,0 +1,87 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
option (
|
||||
BUILD_CARLA_CLIENT
|
||||
"Build the LibCarla client."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_CARLA_SERVER
|
||||
"Build the LibCarla server."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_LIBCARLA_PYTORCH
|
||||
"Enable LibCarla-PyTorch."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_PYTHON_API
|
||||
"Build the CARLA Python API."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_CARLA_UE
|
||||
"Build the Carla Unreal Engine project."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_ROS2
|
||||
"Enable ROS2."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_OSM2ODR
|
||||
"Enable OSM2ODR."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_RSS
|
||||
"Enable RSS components (ad-rss-lib)"
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
INSTALL_LIBCARLA
|
||||
"Install LibCarla and all of its dependencies."
|
||||
ON
|
||||
)
|
||||
|
||||
option (
|
||||
BUILD_OSM_WORLD_RENDERER
|
||||
"Build OSM World Renderer."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_RTTI
|
||||
"Enable C++ RTTI."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
ENABLE_EXCEPTIONS
|
||||
"Enable C++ Exceptions."
|
||||
OFF
|
||||
)
|
||||
|
||||
option (
|
||||
PREFER_CLONE
|
||||
"Whether to clone dependencies instead of directly downloading a compressed archive."
|
||||
OFF
|
||||
)
|
|
@ -0,0 +1,172 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
# ==== BOOST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_BOOST_VERSION
|
||||
"Target boost version."
|
||||
1.84.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_BOOST_TAG
|
||||
"Target boost git tag."
|
||||
boost-${CARLA_BOOST_VERSION}
|
||||
)
|
||||
|
||||
# ==== EIGEN ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_EIGEN_VERSION
|
||||
"Target Eigen version."
|
||||
3.4.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_EIGEN_TAG
|
||||
"Target Eigen git tag."
|
||||
${CARLA_EIGEN_VERSION}
|
||||
)
|
||||
|
||||
# ==== GOOGLE TEST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_GTEST_VERSION
|
||||
"Target googletest version."
|
||||
1.14.0
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_GTEST_TAG
|
||||
"Target googletest git tag."
|
||||
v${CARLA_GTEST_VERSION}
|
||||
)
|
||||
|
||||
# ==== LIBPNG ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBPNG_VERSION
|
||||
"Target libpng version."
|
||||
1.6.40
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBPNG_TAG
|
||||
"Target libpng git tag."
|
||||
v${CARLA_LIBPNG_VERSION}
|
||||
)
|
||||
|
||||
# ==== PROJ ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_PROJ_VERSION
|
||||
"Target PROJ version."
|
||||
7.2.1
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_PROJ_TAG
|
||||
"Target PROJ git tag."
|
||||
${CARLA_PROJ_VERSION}
|
||||
)
|
||||
|
||||
# ==== RECAST ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_RECAST_TAG
|
||||
"Target recastnavigation git tag."
|
||||
carla
|
||||
)
|
||||
|
||||
# ==== RPCLIB ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_RPCLIB_TAG
|
||||
"Target rpclib git tag."
|
||||
carla
|
||||
)
|
||||
|
||||
# ==== SQLITE3 ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_SQLITE_VERSION
|
||||
"Target SQLite version (major[1].minor[2].patch[2].revision[2])."
|
||||
3.45.01.00
|
||||
)
|
||||
|
||||
# ==== XERCESC ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_XERCESC_VERSION
|
||||
"Target xerces-c version."
|
||||
3.2.4
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_XERCESC_TAG
|
||||
"Target xerces-c git tag."
|
||||
v${CARLA_XERCESC_VERSION}
|
||||
)
|
||||
|
||||
# ==== ZLIB ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_ZLIB_VERSION
|
||||
"Target zlib git tag."
|
||||
1.3.1)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_ZLIB_TAG
|
||||
"Target zlib git tag."
|
||||
v${CARLA_ZLIB_VERSION})
|
||||
|
||||
# ==== LUNASVG ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LUNASVG_VERSION
|
||||
"Target lunasvg version."
|
||||
master
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LUNASVG_TAG
|
||||
"Target lunasvg git tag."
|
||||
${CARLA_LUNASVG_VERSION}
|
||||
)
|
||||
|
||||
# ==== LIBOSMSCOUT ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBOSMSCOUT_VERSION
|
||||
"Target libosmscout version."
|
||||
master
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_LIBOSMSCOUT_TAG
|
||||
"Target libosmscout git tag."
|
||||
${CARLA_LIBOSMSCOUT_VERSION}
|
||||
)
|
||||
|
||||
|
||||
# ==== STREETMAP ====
|
||||
|
||||
carla_string_option (
|
||||
CARLA_STREETMAP_VERSION
|
||||
"Target StreetMap version."
|
||||
ue5.3
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_STREETMAP_TAG
|
||||
"Target StreetMap git tag."
|
||||
${CARLA_STREETMAP_VERSION}
|
||||
)
|
|
@ -0,0 +1,50 @@
|
|||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
option (
|
||||
CARLA_UNREAL_CONTENT_PREFER_CLONE
|
||||
"Whether to perform a git clone instead of a direct archive download of the CARLA Unreal assets (EXTREMELY DISCOURAGED)."
|
||||
OFF
|
||||
)
|
||||
|
||||
carla_string_option (
|
||||
CARLA_UNREAL_ENGINE_PATH
|
||||
"Path to the CARLA fork of Unreal Engine."
|
||||
""
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
set (CARLA_UNREAL_RHI_DEFAULT d3d12)
|
||||
elseif (LINUX)
|
||||
set (CARLA_UNREAL_RHI_DEFAULT vulkan)
|
||||
endif ()
|
||||
|
||||
carla_string_option (
|
||||
CARLA_UNREAL_RHI
|
||||
"Target CARLA Unreal Engine RHI."
|
||||
"vulkan"
|
||||
"${CARLA_UNREAL_RHI_DEFAULT}"
|
||||
)
|
||||
|
||||
if (EXISTS ${CARLA_UNREAL_ENGINE_PATH})
|
||||
set (CARLA_HAS_UNREAL_ENGINE_PATH ON)
|
||||
else ()
|
||||
set (CARLA_HAS_UNREAL_ENGINE_PATH OFF)
|
||||
endif ()
|
||||
|
||||
if (${BUILD_CARLA_UE})
|
||||
if (${CARLA_HAS_UNREAL_ENGINE_PATH})
|
||||
message ("Carla UE project successfully added to build. (UE path: ${CARLA_UNREAL_ENGINE_PATH})")
|
||||
else ()
|
||||
message (
|
||||
FATAL_ERROR
|
||||
"Could not add UE project to build since the option CARLA_UNREAL_ENGINE_PATH is not set to a valid path (\"${CARLA_UNREAL_ENGINE_PATH}\"). Please set it to point to the root path of your CARLA Unreal Engine installation.")
|
||||
endif ()
|
||||
endif ()
|
|
@ -1,4 +1,14 @@
|
|||
cmake_minimum_required (VERSION 3.20.0)
|
||||
#[[
|
||||
|
||||
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
|
||||
de Barcelona (UAB).
|
||||
|
||||
This work is licensed under the terms of the MIT license.
|
||||
For a copy, see <https://opensource.org/licenses/MIT>.
|
||||
|
||||
]]
|
||||
|
||||
cmake_minimum_required (VERSION 3.28.0)
|
||||
|
||||
cmake_policy (SET CMP0097 NEW)
|
||||
cmake_policy (SET CMP0091 NEW)
|
||||
|
@ -40,13 +50,28 @@ set (
|
|||
|
||||
set (
|
||||
CARLA_UNREAL_PLUGINS_PATH
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4/Plugins
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal/Plugins
|
||||
)
|
||||
|
||||
include (CheckCCompilerFlag)
|
||||
include (CheckCXXCompilerFlag)
|
||||
include (CheckLinkerFlag)
|
||||
|
||||
include (${CARLA_WORKSPACE_PATH}/CMake/CarlaOptions.cmake)
|
||||
|
||||
if (LINUX)
|
||||
check_linker_flag (
|
||||
CXX
|
||||
-lpthread
|
||||
HAS_PTHREAD
|
||||
)
|
||||
if (HAS_PTHREAD)
|
||||
add_link_options (-lpthread)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# Similar to configure_file, but also expands variables
|
||||
# that are set at generate time, like generator expressions.
|
||||
macro (carla_two_step_configure_file DESTINATION SOURCE)
|
||||
message ("Configuring file \"${DESTINATION}\"")
|
||||
# Configure-time step; evaluate variables:
|
||||
|
@ -55,16 +80,9 @@ macro (carla_two_step_configure_file DESTINATION SOURCE)
|
|||
file (GENERATE OUTPUT ${DESTINATION} INPUT ${DESTINATION})
|
||||
endmacro ()
|
||||
|
||||
set (
|
||||
CMAKE_INSTALL_PREFIX
|
||||
${CARLA_DEPENDENCIES_INSTALL_PREFIX}
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
set (LIB_EXT .lib)
|
||||
else ()
|
||||
set (LIB_EXT .a)
|
||||
endif ()
|
||||
|
||||
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
if (WIN32)
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
@ -76,6 +94,8 @@ if (WIN32)
|
|||
endif ()
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
set (
|
||||
CARLA_COMMON_DEFINITIONS
|
||||
LIBCARLA_IMAGE_WITH_PNG_SUPPORT=true
|
||||
|
@ -90,6 +110,7 @@ if (WIN32)
|
|||
endif ()
|
||||
|
||||
set (CARLA_EXCEPTION_DEFINITIONS)
|
||||
|
||||
if (ENABLE_EXCEPTIONS)
|
||||
# Nothing
|
||||
else ()
|
||||
|
@ -99,8 +120,12 @@ else ()
|
|||
list (APPEND CARLA_EXCEPTION_DEFINITIONS PUGIXML_NO_EXCEPTIONS)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
include (${CARLA_WORKSPACE_PATH}/CMake/CarlaDependencies.cmake)
|
||||
|
||||
|
||||
|
||||
if (BUILD_CARLA_CLIENT OR BUILD_CARLA_SERVER)
|
||||
add_subdirectory (LibCarla)
|
||||
endif ()
|
||||
|
@ -116,13 +141,3 @@ endif ()
|
|||
if (BUILD_CARLA_UE)
|
||||
add_subdirectory (Unreal)
|
||||
endif ()
|
||||
|
||||
carla_two_step_configure_file (
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Carla.Build.cs.in
|
||||
)
|
||||
|
||||
carla_two_step_configure_file (
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs.in
|
||||
)
|
||||
|
|
|
@ -19,7 +19,7 @@ EXAMPLES_PATH = WORKSPACE_PATH / 'Examples'
|
|||
UTIL_PATH = WORKSPACE_PATH / 'Util'
|
||||
DOCKER_UTILS_PATH = UTIL_PATH / 'DockerUtils'
|
||||
PATCHES_PATH = UTIL_PATH / 'Patches'
|
||||
CARLA_UE_PATH = WORKSPACE_PATH / 'Unreal' / 'CarlaUE4'
|
||||
CARLA_UE_PATH = WORKSPACE_PATH / 'Unreal' / 'CarlaUnreal'
|
||||
CARLA_UE_PLUGIN_ROOT_PATH = CARLA_UE_PATH / 'Plugins'
|
||||
CARLA_UE_PLUGIN_PATH = CARLA_UE_PLUGIN_ROOT_PATH / 'Carla'
|
||||
CARLA_UE_PLUGIN_DEPENDENCIES_PATH = CARLA_UE_PLUGIN_ROOT_PATH / 'CarlaDependencies'
|
||||
|
@ -1385,12 +1385,12 @@ def BuildCarlaUEMain():
|
|||
if os.name == 'nt':
|
||||
LaunchSubprocessImmediate([
|
||||
UNREAL_ENGINE_PATH / 'Engine' / 'Build' / 'BatchFiles' / 'Build.bat',
|
||||
'CarlaUE4Editor',
|
||||
'CarlaUnrealEditor',
|
||||
'Win64',
|
||||
'Development',
|
||||
'-WaitMutex',
|
||||
'-FromMsBuild',
|
||||
CARLA_UE_PATH / 'CarlaUE4.uproject',
|
||||
CARLA_UE_PATH / 'CarlaUnreal.uproject',
|
||||
], log_name = 'carla-ue-editor-build')
|
||||
else:
|
||||
pass
|
||||
|
|
|
@ -140,9 +140,9 @@ python -m pip install GPUtil
|
|||
1. Start CARLA:
|
||||
|
||||
# Linux:
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
# Windows:
|
||||
CarlaUE4.exe
|
||||
CarlaUnreal.exe
|
||||
# Source:
|
||||
make launch
|
||||
|
||||
|
|
|
@ -16,11 +16,11 @@ The parameters we can use are:
|
|||
|
||||
For example
|
||||
|
||||
**./CarlaUE4.sh --nullrhi**
|
||||
**./CarlaUnreal.sh --nullrhi**
|
||||
|
||||
The primary server will use by default the port 2002 to listen for secondary servers. If you need to listen on another port, then you can change it with the flag
|
||||
|
||||
**./CarlaUE4.sh --nullrhi -carla-primary-port=3002**
|
||||
**./CarlaUnreal.sh --nullrhi -carla-primary-port=3002**
|
||||
|
||||
## Secondary servers
|
||||
|
||||
|
@ -32,13 +32,13 @@ Then we need to start as many servers as we want, but the ideal is to have as ma
|
|||
|
||||
For example, if the primary server is executing in the same computer than the secondary servers and with the default port, we can use this:
|
||||
|
||||
**./CarlaUE4.sh -carla-rpc-port=3000 -carla-primary-host=127.0.0.1 -ini:[/Script/Engine.RendererSettings]:r.GraphicsAdapter=0**
|
||||
**./CarlaUnreal.sh -carla-rpc-port=3000 -carla-primary-host=127.0.0.1 -ini:[/Script/Engine.RendererSettings]:r.GraphicsAdapter=0**
|
||||
|
||||
Here, the secondary server will use port 3000 as the RPC server to avoid conflicts with other ports (but it will never be used), and will connect to the primary server located at IP 127.0.0.1 (localhost) in the default port (2002), and also this server will use the GPU device 0.
|
||||
|
||||
If we want to start another secondary server in the same machine using another GPU, we could use this command:
|
||||
|
||||
**./CarlaUE4.sh -carla-rpc-port=4000 -carla-primary-host=127.0.0.1 -carla-primary-port=2002 -ini:[/Script/Engine.RendererSettings]:r.GraphicsAdapter=1**
|
||||
**./CarlaUnreal.sh -carla-rpc-port=4000 -carla-primary-host=127.0.0.1 -carla-primary-port=2002 -ini:[/Script/Engine.RendererSettings]:r.GraphicsAdapter=1**
|
||||
|
||||
This secondary server will use port 4000 as the RPC server to avoid conflicts with other ports and will connect to the primary server located at IP 127.0.0.1 in the port 2002, and also this server will use the GPU device 1.
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ python3 config.py -x opendrive/TownBig.xodr
|
|||
__[client.generate_opendrive_world()](python_api.md#carla.Client.generate_opendrive_world)__ uses __content of the OpenDRIVE file parsed as string__. On the contrary, __`config.py`__ script needs __the path to the `.xodr` file__.
|
||||
|
||||
!!! Note
|
||||
If you experience the error `opendrive could not be correctly parsed`, ensure that there are write permissions on the `CarlaUE4/Content/Carla/Maps/OpenDrive/` directory. This is required by the server to parse the `xodr` file correctly.
|
||||
If you experience the error `opendrive could not be correctly parsed`, ensure that there are write permissions on the `CarlaUnreal/Content/Carla/Maps/OpenDrive/` directory. This is required by the server to parse the `xodr` file correctly.
|
||||
|
||||
---
|
||||
## Mesh generation
|
||||
|
|
|
@ -29,7 +29,7 @@ The recorder file includes information regarding many different elements.
|
|||
* __Pedestrians__ — position and orientation, and linear and angular velocity.
|
||||
* __Lights__ — Light states from buildings, streets, and vehicles.
|
||||
|
||||
To start recording there is only need for a file name. Using `\`, `/` or `:` characters in the file name will define it as an absolute path. If no path is detailed, the file will be saved in `CarlaUE4/Saved`.
|
||||
To start recording there is only need for a file name. Using `\`, `/` or `:` characters in the file name will define it as an absolute path. If no path is detailed, the file will be saved in `CarlaUnreal/Saved`.
|
||||
|
||||
```py
|
||||
client.start_recorder("/home/carla/recording01.log")
|
||||
|
|
|
@ -31,13 +31,13 @@ The simulation runs significantly faster in __Low__ mode. This is helpful in sit
|
|||
The images below compare both modes. The flag used is the same for Windows and Linux. There is no equivalent option when working with the build, but the UE editor has its own quality settings. Go to `Settings/Engine Scalability Settings` for a greater customization of the desired quality.
|
||||
|
||||
#### Epic mode
|
||||
`./CarlaUE4.sh -quality-level=Epic`
|
||||
`./CarlaUnreal.sh -quality-level=Epic`
|
||||
|
||||
![Epic mode screenshot](img/rendering_quality_epic.jpg)
|
||||
*Epic mode screenshot*
|
||||
|
||||
#### Low mode
|
||||
`./CarlaUE4.sh -quality-level=Low`
|
||||
`./CarlaUnreal.sh -quality-level=Low`
|
||||
|
||||
![Low mode screenshot](img/rendering_quality_low.jpg)
|
||||
*Low mode screenshot*
|
||||
|
@ -45,7 +45,7 @@ The images below compare both modes. The flag used is the same for Windows and L
|
|||
<br>
|
||||
|
||||
!!! Important
|
||||
The issue that made Epic mode show an abnormal whiteness has been fixed. If the problem persists, delete `GameUserSettings.ini`. It is saving previous settings, and will be generated again in the next run. __Ubuntu path:__ ` ~/.config/Epic/CarlaUE4/Saved/Config/LinuxNoEditor/` __Windows path:__ `<Package folder>\WindowsNoEditor\CarlaUE4\Saved\Config\WindowsNoEditor\`
|
||||
The issue that made Epic mode show an abnormal whiteness has been fixed. If the problem persists, delete `GameUserSettings.ini`. It is saving previous settings, and will be generated again in the next run. __Ubuntu path:__ ` ~/.config/Epic/CarlaUnreal/Saved/Config/LinuxNoEditor/` __Windows path:__ `<Package folder>\WindowsNoEditor\CarlaUnreal\Saved\Config\WindowsNoEditor\`
|
||||
|
||||
---
|
||||
## No-rendering mode
|
||||
|
@ -97,7 +97,7 @@ It is important to understand the distinction between __no-rendering mode__ and
|
|||
To start CARLA in off-screen mode, run the following command:
|
||||
|
||||
```sh
|
||||
./CarlaUE4.sh -RenderOffScreen
|
||||
./CarlaUnreal.sh -RenderOffScreen
|
||||
```
|
||||
|
||||
### Setting off-screen mode (Versions prior to 0.9.12)
|
||||
|
@ -108,7 +108,7 @@ __Using OpenGL__, you can run in off-screen mode in Linux by running the followi
|
|||
|
||||
```sh
|
||||
# Linux
|
||||
DISPLAY= ./CarlaUE4.sh -opengl
|
||||
DISPLAY= ./CarlaUnreal.sh -opengl
|
||||
```
|
||||
|
||||
__Vulkan__ requires extra steps because it needs to communicate to the display X server using the X11 network protocol to work properly. The following steps will guide you on how to set up an Ubuntu 18.04 machine without a display so that CARLA can run with Vulkan.
|
||||
|
@ -152,7 +152,7 @@ sudo X :0 &
|
|||
__7. Run CARLA:__
|
||||
|
||||
```sh
|
||||
DISPLAY=:0.GPU ./CarlaUE4.sh -vulkan
|
||||
DISPLAY=:0.GPU ./CarlaUnreal.sh -vulkan
|
||||
```
|
||||
|
||||
CARLA provides a Dockerfile that performs all the above steps [here](https://github.com/carla-simulator/carla/blob/0.9.12/Util/Docker/Release.Dockerfile).
|
||||
|
|
|
@ -25,7 +25,7 @@ SUMO is ready to run the co-simulations. There are some examples in `Co-Simulati
|
|||
Run a CARLA simulation with __Town04__.
|
||||
```sh
|
||||
cd ~/carla
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
cd PythonAPI/util
|
||||
python3 config.py --map Town04
|
||||
```
|
||||
|
|
|
@ -458,7 +458,7 @@ The CARLA server keeps a register of all TM instances by storing the port and th
|
|||
In a multi-client simulation, multiple TMs are created on the same port. The first TM will be a TM-Server and the rest will be TM-Clients connecting to it. The TM-Server will dictate the behavior of all the TM instances:
|
||||
|
||||
```py
|
||||
terminal 1: ./CarlaUE4.sh -carla-rpc-port=4000
|
||||
terminal 1: ./CarlaUnreal.sh -carla-rpc-port=4000
|
||||
terminal 2: python3 generate_traffic.py --port 4000 --tm-port 4050 # TM-Server
|
||||
terminal 3: python3 generate_traffic.py --port 4000 --tm-port 4050 # TM-Client
|
||||
```
|
||||
|
@ -468,7 +468,7 @@ terminal 3: python3 generate_traffic.py --port 4000 --tm-port 4050 # TM-Client
|
|||
In a multi-TM simulation, multiple TM instances are created on distinct ports. Each TM instance will control its own behavior:
|
||||
|
||||
```py
|
||||
terminal 1: ./CarlaUE4.sh -carla-rpc-port=4000
|
||||
terminal 1: ./CarlaUnreal.sh -carla-rpc-port=4000
|
||||
terminal 2: python3 generate_traffic.py --port 4000 --tm-port 4050 # TM-Server A
|
||||
terminal 3: python3 generate_traffic.py --port 4000 --tm-port 4550 # TM-Server B
|
||||
```
|
||||
|
@ -478,8 +478,8 @@ terminal 3: python3 generate_traffic.py --port 4000 --tm-port 4550 # TM-Server B
|
|||
Multi-simulation is when more than one CARLA server is running at the same time. The TM needs to connect to the relevant CARLA server port. As long as the computational power allows for it, the TM can run multiple simulations at a time without any problems:
|
||||
|
||||
```py
|
||||
terminal 1: ./CarlaUE4.sh -carla-rpc-port=4000 # simulation A
|
||||
terminal 2: ./CarlaUE4.sh -carla-rpc-port=5000 # simulation B
|
||||
terminal 1: ./CarlaUnreal.sh -carla-rpc-port=4000 # simulation A
|
||||
terminal 2: ./CarlaUnreal.sh -carla-rpc-port=5000 # simulation B
|
||||
terminal 3: python3 generate_traffic.py --port 4000 --tm-port 4050 # TM-Server A connected to simulation A
|
||||
terminal 4: python3 generate_traffic.py --port 5000 --tm-port 5050 # TM-Server B connected to simulation B
|
||||
```
|
||||
|
|
|
@ -51,13 +51,13 @@ __CARLA 0.9.12__
|
|||
To run CARLA with a display:
|
||||
|
||||
```
|
||||
sudo docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY carlasim/carla:0.9.12 /bin/bash ./CarlaUE4.sh
|
||||
sudo docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY carlasim/carla:0.9.12 /bin/bash ./CarlaUnreal.sh
|
||||
```
|
||||
|
||||
To run CARLA in off-screen mode:
|
||||
|
||||
```
|
||||
sudo docker run --privileged --gpus all --net=host -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:0.9.12 /bin/bash ./CarlaUE4.sh -RenderOffScreen
|
||||
sudo docker run --privileged --gpus all --net=host -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:0.9.12 /bin/bash ./CarlaUnreal.sh -RenderOffScreen
|
||||
```
|
||||
|
||||
__CARLA 0.9.7 to 0.9.11__
|
||||
|
@ -65,7 +65,7 @@ __CARLA 0.9.7 to 0.9.11__
|
|||
To run CARLA using Vulkan:
|
||||
|
||||
```sh
|
||||
sudo docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY -e SDL_VIDEODRIVER=x11 -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:0.9.11 /bin/bash ./CarlaUE4.sh -vulkan <-additonal-carla-flags>
|
||||
sudo docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY -e SDL_VIDEODRIVER=x11 -v /tmp/.X11-unix:/tmp/.X11-unix:rw carlasim/carla:0.9.11 /bin/bash ./CarlaUnreal.sh -vulkan <-additonal-carla-flags>
|
||||
```
|
||||
|
||||
!!! Note
|
||||
|
@ -74,7 +74,7 @@ sudo docker run --privileged --gpus all --net=host -e DISPLAY=$DISPLAY -e SDL_VI
|
|||
To run CARLA using OpenGL:
|
||||
|
||||
```sh
|
||||
docker run -e DISPLAY=$DISPLAY --net=host --gpus all --runtime=nvidia carlasim/carla:<version> /bin/bash CarlaUE4.sh -opengl <-additonal-carla-flags>
|
||||
docker run -e DISPLAY=$DISPLAY --net=host --gpus all --runtime=nvidia carlasim/carla:<version> /bin/bash CarlaUnreal.sh -opengl <-additonal-carla-flags>
|
||||
```
|
||||
|
||||
__3. (Optional) Configure Docker flags.__
|
||||
|
|
|
@ -20,7 +20,7 @@ CARLA forum</a>
|
|||
|
||||
## Linux build
|
||||
|
||||
* ["CarlaUE4.sh" script does not appear when downloading from GitHub.](#carlaue4sh-script-does-not-appear-when-downloading-from-github)
|
||||
* ["CarlaUnreal.sh" script does not appear when downloading from GitHub.](#carlaue4sh-script-does-not-appear-when-downloading-from-github)
|
||||
* ["make launch" is not working on Linux.](#make-launch-is-not-working-on-linux)
|
||||
* [Cloning the Unreal Engine repository shows an error.](#cloning-the-unreal-engine-repository-shows-an-error)
|
||||
* [AttributeError: module 'carla' has no attribute 'Client' when running a script.](#attributeerror-module-carla-has-no-attribute-client-when-running-a-script)
|
||||
|
@ -30,8 +30,8 @@ CARLA forum</a>
|
|||
|
||||
## Windows build
|
||||
|
||||
* ["CarlaUE4.exe" does not appear when downloading from GitHub.](#carlaue4exe-does-not-appear-when-downloading-from-github)
|
||||
* [CarlaUE4 could not be compiled. Try rebuilding it from source manually.](#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually)
|
||||
* ["CarlaUnreal.exe" does not appear when downloading from GitHub.](#carlaue4exe-does-not-appear-when-downloading-from-github)
|
||||
* [CarlaUnreal could not be compiled. Try rebuilding it from source manually.](#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually)
|
||||
* [CMake error shows even though CMake is properly installed.](#cmake-error-shows-even-though-cmake-is-properly-installed)
|
||||
* [Error C2440, C2672: compiler version.](#error-c2440-c2672-compiler-version)
|
||||
* ["make launch" is not working on Windows.](#make-launch-is-not-working-on-windows)
|
||||
|
@ -82,11 +82,11 @@ CARLA forum</a>
|
|||
|
||||
## Linux build
|
||||
<!-- ======================================================================= -->
|
||||
###### "CarlaUE4.sh" script does not appear when downloading from GitHub.
|
||||
###### "CarlaUnreal.sh" script does not appear when downloading from GitHub.
|
||||
|
||||
> There is no `CarlaUE4.sh` script in the source version of CARLA. Follow the [build instructions](build_linux.md) to build CARLA from source.
|
||||
> There is no `CarlaUnreal.sh` script in the source version of CARLA. Follow the [build instructions](build_linux.md) to build CARLA from source.
|
||||
>
|
||||
> To run CARLA using `CarlaUE4.sh`, follow the [quick start installation](start_quickstart.md).
|
||||
> To run CARLA using `CarlaUnreal.sh`, follow the [quick start installation](start_quickstart.md).
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
|
@ -196,17 +196,17 @@ CARLA forum</a>
|
|||
## Windows build
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
###### "CarlaUE4.exe" does not appear when downloading from GitHub.
|
||||
###### "CarlaUnreal.exe" does not appear when downloading from GitHub.
|
||||
|
||||
> There is no `CarlaUE4.exe` executable in the source version of CARLA. Follow the [build instructions](build_windows.md) to build CARLA from source. To directly get the `CarlaUE4.exe`, follow the [quick start instructions](start_quickstart.md).
|
||||
> There is no `CarlaUnreal.exe` executable in the source version of CARLA. Follow the [build instructions](build_windows.md) to build CARLA from source. To directly get the `CarlaUnreal.exe`, follow the [quick start instructions](start_quickstart.md).
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
###### CarlaUE4 could not be compiled. Try rebuilding it from source manually.
|
||||
###### CarlaUnreal could not be compiled. Try rebuilding it from source manually.
|
||||
|
||||
> Something went wrong when trying to build CARLA. Rebuild using Visual Studio to discover what happened.
|
||||
>
|
||||
> __1.__ Go to `carla/Unreal/CarlaUE4` and right-click the `CarlaUE4.uproject`.
|
||||
> __1.__ Go to `carla/Unreal/CarlaUnreal` and right-click the `CarlaUnreal.uproject`.
|
||||
> __2.__ Click on __Generate Visual Studio project files__.
|
||||
> __3.__ Open the file generated with Visual Studio 2019.
|
||||
> __4.__ Compile the project with Visual Studio. The shortcut is F7. The build will fail, but the issues found will be shown below.
|
||||
|
@ -386,7 +386,7 @@ CARLA forum</a>
|
|||
> This happens from time to time due to Linux updates. There is a special target in the Makefile for this issue. It takes a long time but fixes the issue:
|
||||
>
|
||||
> make hard-clean
|
||||
> make CarlaUE4Editor
|
||||
> make CarlaUnrealEditor
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
|
@ -394,7 +394,7 @@ CARLA forum</a>
|
|||
|
||||
> In Linux, run `make package` in the project folder. The package will include the project, and the Python API modules.
|
||||
>
|
||||
> Alternatively, it is possible to compile a binary version of CARLA within Unreal Editor. Open the CarlaUE4 project, go to the menu `File/Package Project`, and select a platform. This may take a while.
|
||||
> Alternatively, it is possible to compile a binary version of CARLA within Unreal Editor. Open the CarlaUnreal project, go to the menu `File/Package Project`, and select a platform. This may take a while.
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
|
|
|
@ -191,11 +191,11 @@ The assets will be downloaded and extracted to the appropriate location.
|
|||
To download the assets for a __specific version__ of CARLA:
|
||||
|
||||
1. From the root CARLA directory, navigate to `/Util/ContentVersions.txt`. This document contains the links to the assets for all CARLA releases.
|
||||
2. Extract the assets in `Unreal\CarlaUE4\Content\Carla`. If the path doesn't exist, create it.
|
||||
2. Extract the assets in `Unreal\CarlaUnreal\Content\Carla`. If the path doesn't exist, create it.
|
||||
3. Extract the file with a command similar to the following:
|
||||
|
||||
```sh
|
||||
tar -xvzf <assets_file_name>.tar.gz.tar -C /path/to/carla/Unreal/CarlaUE4/Content/Carla
|
||||
tar -xvzf <assets_file_name>.tar.gz.tar -C /path/to/carla/Unreal/CarlaUnreal/Content/Carla
|
||||
```
|
||||
|
||||
### Set Unreal Engine environment variable
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
* [__Setup__](#setup)
|
||||
* [__LibCarla__](#libcarla)
|
||||
* [__CarlaUE4 and Carla plugin__](#carlaue4-and-carla-plugin)
|
||||
* [__CarlaUnreal and Carla plugin__](#carlaue4-and-carla-plugin)
|
||||
* [__PythonAPI__](#pythonapi)
|
||||
- [Versions 0.9.12+](#versions-0912)
|
||||
- [Versions prior to 0.9.12](#versions-prior-to-0912)
|
||||
|
@ -58,14 +58,14 @@ Two configurations:
|
|||
|
||||
|
||||
---
|
||||
## CarlaUE4 and Carla plugin
|
||||
## CarlaUnreal and Carla plugin
|
||||
|
||||
Both compiled at the same step with Unreal Engine build tool. They require the `UE4_ROOT` environment variable set.
|
||||
|
||||
Command
|
||||
|
||||
```sh
|
||||
make CarlaUE4Editor
|
||||
make CarlaUnrealEditor
|
||||
```
|
||||
|
||||
To launch Unreal Engine's Editor run
|
||||
|
|
|
@ -41,16 +41,16 @@ git pull origin master
|
|||
git checkout master
|
||||
make clean
|
||||
git pull origin master
|
||||
# Erase the content in `Unreal\CarlaUE4\Content\Carla`.
|
||||
# Erase the content in `Unreal\CarlaUnreal\Content\Carla`.
|
||||
# Go to `\Util\ContentVersions.txt`.
|
||||
# Download the latest content.
|
||||
# Extract the new content in `Unreal\CarlaUE4\Content\Carla`.
|
||||
# Extract the new content in `Unreal\CarlaUnreal\Content\Carla`.
|
||||
|
||||
|
||||
# Get development assets.
|
||||
# Delete the `/Carla` folder containing previous assets.
|
||||
# Go to the main carla folder.
|
||||
git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Content/Carla
|
||||
git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUnreal/Content/Carla
|
||||
|
||||
```
|
||||
</details>
|
||||
|
@ -122,10 +122,10 @@ __Linux.__
|
|||
|
||||
__Windows.__
|
||||
|
||||
__1.__ Erase the previous content in `Unreal\CarlaUE4\Content\Carla`.
|
||||
__1.__ Erase the previous content in `Unreal\CarlaUnreal\Content\Carla`.
|
||||
__2.__ Go to `\Util\ContentVersions.txt`.
|
||||
__3.__ Download the content for `latest`.
|
||||
__4.__ Extract the new content in `Unreal\CarlaUE4\Content\Carla`.
|
||||
__4.__ Extract the new content in `Unreal\CarlaUnreal\Content\Carla`.
|
||||
|
||||
!!! Note
|
||||
In order to work with that the CARLA team is devleoping, go to __get development assets__ below.
|
||||
|
@ -148,7 +148,7 @@ In order to handle this repository it is advisted to install [git-lfs][gitlfslin
|
|||
To clone the repository, __go to the main CARLA directory__ and run the following command.
|
||||
|
||||
```sh
|
||||
git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Content/Carla
|
||||
git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUnreal/Content/Carla
|
||||
```
|
||||
|
||||
!!! Warning
|
||||
|
|
|
@ -153,16 +153,16 @@ Download the __latest__ assets to work with the current version of CARLA by runn
|
|||
Update.bat
|
||||
```
|
||||
|
||||
The assets will be downloaded and extracted to the appropriate location if have 7zip installed. If you do not have this software installed, you will need to manually extract the file contents to `Unreal\CarlaUE4\Content\Carla`.
|
||||
The assets will be downloaded and extracted to the appropriate location if have 7zip installed. If you do not have this software installed, you will need to manually extract the file contents to `Unreal\CarlaUnreal\Content\Carla`.
|
||||
|
||||
To download the assets for a __specific version__ of CARLA:
|
||||
|
||||
1. From the root CARLA directory, navigate to `\Util\ContentVersions.txt`. This document contains the links to the assets for all CARLA releases.
|
||||
2. Extract the assets in `Unreal\CarlaUE4\Content\Carla`. If the path doesn't exist, create it.
|
||||
2. Extract the assets in `Unreal\CarlaUnreal\Content\Carla`. If the path doesn't exist, create it.
|
||||
3. Extract the file with a command similar to the following:
|
||||
|
||||
```sh
|
||||
tar -xvzf <assets_file_name>.tar.gz.tar -C C:\path\to\carla\Unreal\CarlaUE4\Content\Carla
|
||||
tar -xvzf <assets_file_name>.tar.gz.tar -C C:\path\to\carla\Unreal\CarlaUnreal\Content\Carla
|
||||
```
|
||||
|
||||
### Set Unreal Engine environment variable
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* Compilation should not give any error or warning
|
||||
(`clang++-8 -Wall -Wextra -std=C++14 -Wno-missing-braces`).
|
||||
* The use of `throw` is forbidden, use `carla::throw_exception` instead.
|
||||
* Unreal C++ code (CarlaUE4 and Carla plugin) follow the
|
||||
* Unreal C++ code (CarlaUnreal and Carla plugin) follow the
|
||||
[Unreal Engine's Coding Standard][ue4link] with the exception of using
|
||||
spaces instead of tabs.
|
||||
* LibCarla uses a variation of [Google's style guide][googlelink].
|
||||
|
|
|
@ -194,7 +194,7 @@ make import ARGS="--package=<package_name>"
|
|||
make import ARGS="--no-carla-materials"
|
||||
```
|
||||
|
||||
All files will be imported and prepared to be used in the Unreal Editor. The map package will be created in `Unreal/CarlaUE4/Content`. A base map tile, `<mapName>`, will be created as a streaming level for all the tiles. The base tile will contain the sky, weather, and Large Map actors and will be ready for use in a simulation.
|
||||
All files will be imported and prepared to be used in the Unreal Editor. The map package will be created in `Unreal/CarlaUnreal/Content`. A base map tile, `<mapName>`, will be created as a streaming level for all the tiles. The base tile will contain the sky, weather, and Large Map actors and will be ready for use in a simulation.
|
||||
|
||||
!!! Note
|
||||
It is currently not recommended to use the customization tools provided for standard maps in the Unreal Editor, e.g., road painter, procedural buildings, etc.
|
||||
|
|
|
@ -159,7 +159,7 @@ The recorder file includes information regarding many different elements.
|
|||
|
||||
### Recording
|
||||
|
||||
To start recording there is only need for a file name. Using `\`, `/` or `:` characters in the file name will define it as an absolute path. If no path is detailed, the file will be saved in `CarlaUE4/Saved`.
|
||||
To start recording there is only need for a file name. Using `\`, `/` or `:` characters in the file name will define it as an absolute path. If no path is detailed, the file will be saved in `CarlaUnreal/Saved`.
|
||||
|
||||
```py
|
||||
client.start_recorder("/home/carla/recording01.log")
|
||||
|
@ -210,13 +210,13 @@ The recorder saves all of the data in a custom binary file format specified in [
|
|||
CARLA offers a number of options regarding rendering quality and efficiency. At the most basic level, CARLA offers two quality options to enable operation on both high and low spec hardware with the best results:
|
||||
|
||||
### Epic mode
|
||||
`./CarlaUE4.sh -quality-level=Epic`
|
||||
`./CarlaUnreal.sh -quality-level=Epic`
|
||||
|
||||
![Epic mode screenshot](img/rendering_quality_epic.jpg)
|
||||
*Epic mode screenshot*
|
||||
|
||||
### Low mode
|
||||
`./CarlaUE4.sh -quality-level=Low`
|
||||
`./CarlaUnreal.sh -quality-level=Low`
|
||||
|
||||
![Low mode screenshot](img/rendering_quality_low.jpg)
|
||||
*Low mode screenshot*
|
||||
|
|
|
@ -119,7 +119,7 @@ make import ARGS="--package=<package_name>"
|
|||
make import ARGS="--no-carla-materials"
|
||||
```
|
||||
|
||||
All files will be imported and prepared to be used in the Unreal Editor. The map package will be created in `Unreal/CarlaUE4/Content`. A base map tile, `<mapName>`, will be created as a streaming level for all the tiles. The base tile will contain the sky, weather, and large map actors and will be ready for use in a simulation.
|
||||
All files will be imported and prepared to be used in the Unreal Editor. The map package will be created in `Unreal/CarlaUnreal/Content`. A base map tile, `<mapName>`, will be created as a streaming level for all the tiles. The base tile will contain the sky, weather, and large map actors and will be ready for use in a simulation.
|
||||
|
||||
!!! Note
|
||||
It is currently not recommended to use the customization tools provided for standard maps in the Unreal Editor, e.g., road painter, procedural buildings, etc.
|
||||
|
|
|
@ -63,7 +63,7 @@ CARLA up to 0.9.9 (included) is set to be single-stream. For later versions, mul
|
|||
|
||||
__1. Run CARLA.__
|
||||
|
||||
* __a) In a CARLA package__ — Go to the CARLA folder and start the simulation with `CarlaUE4.exe` (Windows) or `./CarlaUE4.sh` (Linux).
|
||||
* __a) In a CARLA package__ — Go to the CARLA folder and start the simulation with `CarlaUnreal.exe` (Windows) or `./CarlaUnreal.sh` (Linux).
|
||||
|
||||
* __b) In a build from source__ — Go to the CARLA folder, run the UE editor with `make launch` and press `Play`.
|
||||
|
||||
|
|
|
@ -533,10 +533,10 @@ The information saved by the recorder will be parsed and shown in your terminal
|
|||
- <a name="carla.Client.start_recorder"></a>**<font color="#7fb800">start_recorder</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**filename**</font>, <font color="#00a6ed">**additional_data**=False</font>)
|
||||
Enables the recording feature, which will start saving every information possible needed by the server to replay the simulation.
|
||||
- **Parameters:**
|
||||
- `filename` (_str_) - Name of the file to write the recorded data. A simple name will save the recording in 'CarlaUE4/Saved/recording.log'. Otherwise, if some folder appears in the name, it will be considered an absolute path.
|
||||
- `filename` (_str_) - Name of the file to write the recorded data. A simple name will save the recording in 'CarlaUnreal/Saved/recording.log'. Otherwise, if some folder appears in the name, it will be considered an absolute path.
|
||||
- `additional_data` (_bool_) - Enables or disable recording non-essential data for reproducing the simulation (bounding box location, physics control parameters, etc).
|
||||
- <a name="carla.Client.stop_recorder"></a>**<font color="#7fb800">stop_recorder</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Stops the recording in progress. If you specified a path in `filename`, the recording will be there. If not, look inside `CarlaUE4/Saved/`.
|
||||
Stops the recording in progress. If you specified a path in `filename`, the recording will be there. If not, look inside `CarlaUnreal/Saved/`.
|
||||
- <a name="carla.Client.stop_replayer"></a>**<font color="#7fb800">stop_replayer</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**keep_actors**</font>)
|
||||
Stop current replayer.
|
||||
- **Parameters:**
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
We use Doxygen to generate the documentation of our C++ code:
|
||||
|
||||
[Libcarla/Source](http://carla.org/Doxygen/html/dir_b9166249188ce33115fd7d5eed1849f2.html)<br>
|
||||
[Unreal/CarlaUE4/Source](http://carla.org/Doxygen/html/dir_733e9da672a36443d0957f83d26e7dbf.html)<br>
|
||||
[Unreal/CarlaUE4/Carla/Plugins](http://carla.org/Doxygen/html/dir_8fc34afb5f07a67966c78bf5319f94ae.html)
|
||||
[Unreal/CarlaUnreal/Source](http://carla.org/Doxygen/html/dir_733e9da672a36443d0957f83d26e7dbf.html)<br>
|
||||
[Unreal/CarlaUnreal/Carla/Plugins](http://carla.org/Doxygen/html/dir_8fc34afb5f07a67966c78bf5319f94ae.html)
|
||||
|
||||
The generated documentation is available at this link **<http://carla.org/Doxygen/html/index.html>**
|
||||
|
||||
|
|
|
@ -699,7 +699,7 @@ __2.__ Run the simulation using `python3 config.py --fps=10`.
|
|||
* __Output:__ [carla.Image](python_api.md#carla.Image) per step (unless `sensor_tick` says otherwise).
|
||||
|
||||
This camera classifies every object in sight by displaying it in a different color according to its tags (e.g., pedestrians in a different color than vehicles).
|
||||
When the simulation starts, every element in scene is created with a tag. So it happens when an actor is spawned. The objects are classified by their relative file path in the project. For example, meshes stored in `Unreal/CarlaUE4/Content/Static/Pedestrians` are tagged as `Pedestrian`.
|
||||
When the simulation starts, every element in scene is created with a tag. So it happens when an actor is spawned. The objects are classified by their relative file path in the project. For example, meshes stored in `Unreal/CarlaUnreal/Content/Static/Pedestrians` are tagged as `Pedestrian`.
|
||||
|
||||
![ImageSemanticSegmentation](img/ref_sensors_semantic.jpg)
|
||||
|
||||
|
@ -750,7 +750,7 @@ The following tags are currently available:
|
|||
* __Output:__ [carla.Image](python_api.md#carla.Image) per step (unless `sensor_tick` says otherwise).
|
||||
|
||||
This camera classifies every object in the field of view both by class and also by instance ID.
|
||||
When the simulation starts, every element in scene is created with a tag. So it happens when an actor is spawned. The objects are classified by their relative file path in the project. For example, meshes stored in `Unreal/CarlaUE4/Content/Static/Pedestrians` are tagged as `Pedestrian`.
|
||||
When the simulation starts, every element in scene is created with a tag. So it happens when an actor is spawned. The objects are classified by their relative file path in the project. For example, meshes stored in `Unreal/CarlaUnreal/Content/Static/Pedestrians` are tagged as `Pedestrian`.
|
||||
|
||||
![ImageInstanceSegmentation](img/instance_segmentation.png)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ How to run CARLA
|
|||
Launch a terminal in this folder and execute the simulator by running
|
||||
|
||||
```sh
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
```
|
||||
|
||||
this will launch a window with a view over the city. This is the "spectator"
|
||||
|
|
|
@ -192,7 +192,7 @@ The method to start a CARLA server depends on the installation method you used a
|
|||
```sh
|
||||
cd /opt/carla-simulator/bin/
|
||||
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
```
|
||||
|
||||
- Linux package installation:
|
||||
|
@ -200,7 +200,7 @@ The method to start a CARLA server depends on the installation method you used a
|
|||
```sh
|
||||
cd path/to/carla/root
|
||||
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
```
|
||||
|
||||
- Windows package installation:
|
||||
|
@ -208,7 +208,7 @@ The method to start a CARLA server depends on the installation method you used a
|
|||
```sh
|
||||
cd path/to/carla/root
|
||||
|
||||
CarlaUE4.exe
|
||||
CarlaUnreal.exe
|
||||
```
|
||||
|
||||
A window containing a view over the city will pop up. This is the _spectator view_. To fly around the city use the mouse and `WASD` keys, holding down the right mouse button to control the direction.
|
||||
|
@ -234,7 +234,7 @@ This is the server simulator which is now running and waiting for a client to co
|
|||
There are some configuration options available when launching CARLA and they can be used as follows:
|
||||
|
||||
```sh
|
||||
./CarlaUE4.sh -carla-rpc-port=3000
|
||||
./CarlaUnreal.sh -carla-rpc-port=3000
|
||||
```
|
||||
|
||||
* `-carla-rpc-port=N` Listen for client connections at port `N`. Streaming port is set to `N+1` by default.
|
||||
|
|
|
@ -34,7 +34,7 @@ __Open the Unreal Engine Editor__ and go to `Carla/Static`. Create a new folder
|
|||
|
||||
### 3. Create two-way correspondence between UE and the code tag
|
||||
|
||||
__3.1. Open `Tagger.cpp`__ in `Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game`. Go to __`GetLabelByFolderName`__ Add the your tag by the end of the list. The string being compared is the name of the UE folder used in [__2.__](#2-create-the-ue-folder-for-assets), so use the exact same name here.
|
||||
__3.1. Open `Tagger.cpp`__ in `Unreal/CarlaUnreal/Plugins/Carla/Source/Carla/Game`. Go to __`GetLabelByFolderName`__ Add the your tag by the end of the list. The string being compared is the name of the UE folder used in [__2.__](#2-create-the-ue-folder-for-assets), so use the exact same name here.
|
||||
|
||||
![tagger_cpp](img/tuto_D_create_semantic_tags/03_tagger_cpp.jpg)
|
||||
|
||||
|
|
|
@ -104,8 +104,8 @@ Let's start.
|
|||
This class has to be located inside Carla plugin, we'll create two files for our
|
||||
new C++ class
|
||||
|
||||
* `Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SafeDistanceSensor.h`
|
||||
* `Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SafeDistanceSensor.cpp`
|
||||
* `Unreal/CarlaUnreal/Plugins/Carla/Source/Carla/Sensor/SafeDistanceSensor.h`
|
||||
* `Unreal/CarlaUnreal/Plugins/Carla/Source/Carla/Sensor/SafeDistanceSensor.cpp`
|
||||
|
||||
At the very minimum, the sensor is required to inherit `ASensor`, and provide a
|
||||
static method `GetSensorDefinition`; but we'll be overriding also the `Set`,
|
||||
|
|
|
@ -476,7 +476,7 @@ depth_cam.listen(lambda image: image.save_to_disk('tutorial/new_depth_output/%.6
|
|||
|
||||
### Semantic segmentation camera
|
||||
|
||||
The [semantic segmentation camera](ref_sensors.md#semantic-segmentation-camera) renders elements in scene with a different color depending on how these have been tagged. The tags are created by the simulator depending on the path of the asset used for spawning. For example, meshes tagged as `Pedestrians` are spawned with content stored in `Unreal/CarlaUE4/Content/Static/Pedestrians`.
|
||||
The [semantic segmentation camera](ref_sensors.md#semantic-segmentation-camera) renders elements in scene with a different color depending on how these have been tagged. The tags are created by the simulator depending on the path of the asset used for spawning. For example, meshes tagged as `Pedestrians` are spawned with content stored in `Unreal/CarlaUnreal/Content/Static/Pedestrians`.
|
||||
|
||||
The output is an image, as any camera, but each pixel contains the tag encoded in the red channel. This original image must be converted using __ColorConverter.CityScapesPalette__. New tags can be created, read more in the [documentation](ref_sensors.md#semantic-segmentation-camera).
|
||||
|
||||
|
@ -682,7 +682,7 @@ python3 no_rendering_mode.py --no-rendering
|
|||
|
||||
### Start recording
|
||||
|
||||
The [__recorder__](adv_recorder.md) can be started at anytime. The script does it at the very beginning, in order to capture everything, including the spawning of the first actors. If no path is detailed, the log will be saved into `CarlaUE4/Saved`.
|
||||
The [__recorder__](adv_recorder.md) can be started at anytime. The script does it at the very beginning, in order to capture everything, including the spawning of the first actors. If no path is detailed, the log will be saved into `CarlaUnreal/Saved`.
|
||||
|
||||
```py
|
||||
# --------------
|
||||
|
@ -737,7 +737,7 @@ So far, a simulation has been recorded. Now, it is time to examine the recording
|
|||
It is time to run a new simulation.
|
||||
|
||||
```sh
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
```
|
||||
To reenact the simulation, [choose a fragment](#choose-a-fragment) and run the script containing the code for the playback.
|
||||
|
||||
|
|
|
@ -15,12 +15,12 @@ The RoadRunner software from MathWorks provides plugins for Unreal Engine to hel
|
|||
|
||||
__1.__ The plugins are available for download from the [MathWorks website](https://www.mathworks.com/help/roadrunner/ug/Downloading-Plugins.html). MathWorks also has a [full tutorial](https://www.mathworks.com/help/roadrunner/ug/Exporting-to-CARLA.html), similar to this one, on how to import maps to CARLA using the plugins.
|
||||
|
||||
__2.__ Extract the contents of the downloaded folder and move the folders `RoadRunnerImporter`, `RoadRunnerCarlaIntegration` and `RoadRunnerMaterials` to `<carla>/Unreal/CarlaUE4/Plugins/`.
|
||||
__2.__ Extract the contents of the downloaded folder and move the folders `RoadRunnerImporter`, `RoadRunnerCarlaIntegration` and `RoadRunnerMaterials` to `<carla>/Unreal/CarlaUnreal/Plugins/`.
|
||||
|
||||
__3.__ Rebuild the plugin following the instructions below:
|
||||
|
||||
* __On Windows.__
|
||||
* Right-click the `.uproject` file in `<carla>/Unreal/CarlaUE4` and select `Generate Visual Studio project files`.
|
||||
* Right-click the `.uproject` file in `<carla>/Unreal/CarlaUnreal` and select `Generate Visual Studio project files`.
|
||||
* In the root folder of CARLA, run the command:
|
||||
|
||||
```sh
|
||||
|
@ -30,7 +30,7 @@ make launch
|
|||
* __On Linux.__
|
||||
* Run the following command:
|
||||
```sh
|
||||
UE4_ROOT/GenerateProjectFiles.sh -project="carla/Unreal/CarlaUE4/CarlaUE4.uproject" -game -engine
|
||||
UE4_ROOT/GenerateProjectFiles.sh -project="carla/Unreal/CarlaUnreal/CarlaUnreal.uproject" -game -engine
|
||||
```
|
||||
|
||||
__4.__ In the Unreal Engine window, make sure the checkbox is selected for both plugins `Edit > Plugins`.
|
||||
|
@ -67,7 +67,7 @@ This method of importing maps can be used with generic `.fbx` and `.xodr` files.
|
|||
|
||||
To import a map manually to Unreal Engine:
|
||||
|
||||
__1.__ In your system's file explorer, copy the `.xodr` file to `<carla-root>/Unreal/CarlaUE4/Content/Carla/Maps/OpenDrive`.
|
||||
__1.__ In your system's file explorer, copy the `.xodr` file to `<carla-root>/Unreal/CarlaUnreal/Content/Carla/Maps/OpenDrive`.
|
||||
|
||||
__2.__ Open the Unreal Engine editor by running `make launch` in the carla root directory. In the _Content Browser_ of the editor, navigate to `Content/Carla/Maps/BaseMap` and duplicate the `BaseMap`. This will provide a blank map with the default sky and lighting objects.
|
||||
|
||||
|
@ -145,7 +145,7 @@ __14.__ In the _Modes_ panel, search for the __Open Drive Actor__ and drag it in
|
|||
|
||||
>>![ue_opendrive_actor](../img/ue_opendrive_actor.jpg)
|
||||
|
||||
__15.__ In the _Details_ panel, check `Add Spawners` and then click on the box beside `Generate Routes`. This will find the `.xodr` file with the same map name in the `<carla-root>/Unreal/CarlaUE4/Content/Carla/Maps/OpenDrive` directory and use it to generate a series of _RoutePlanner_ and _VehicleSpawnPoint_ actors.
|
||||
__15.__ In the _Details_ panel, check `Add Spawners` and then click on the box beside `Generate Routes`. This will find the `.xodr` file with the same map name in the `<carla-root>/Unreal/CarlaUnreal/Content/Carla/Maps/OpenDrive` directory and use it to generate a series of _RoutePlanner_ and _VehicleSpawnPoint_ actors.
|
||||
|
||||
>>![ue_generate_routes](../img/ue_generate_routes.png)
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ make import ARGS="--package=<package_name>"
|
|||
make import ARGS="--no-carla-materials"
|
||||
```
|
||||
|
||||
A folder will be created in `Unreal/CarlaUE4/Content` with the name of your map package. It will contain config files, overdrive information, static asset information and navigation information.
|
||||
A folder will be created in `Unreal/CarlaUnreal/Content` with the name of your map package. It will contain config files, overdrive information, static asset information and navigation information.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ __2.__ Double check your mesh names. Mesh names should start with any of the app
|
|||
|
||||
![ue_meshes](../img/ue_meshes.jpg)
|
||||
|
||||
__3.__ Press `ctrl + A` to select everything and export the map by selecting `File` -> `Carla Exporter`. A `<mapName>.obj` file will be created in `Unreal/CarlaUE4/Saved`.
|
||||
__3.__ Press `ctrl + A` to select everything and export the map by selecting `File` -> `Carla Exporter`. A `<mapName>.obj` file will be created in `Unreal/CarlaUnreal/Saved`.
|
||||
|
||||
__4.__ Move the `<mapName>.obj` and the `<mapName>.xodr` to `Util/DockerUtils/dist`.
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ CARLA can be launched using the command line using the executable in Windows or
|
|||
|
||||
```sh
|
||||
cd /carla/root
|
||||
./CarlaUE4.sh
|
||||
./CarlaUnreal.sh
|
||||
```
|
||||
|
||||
To manipulate CARLA through the Python API, we need to connect the Python client to the server through an open port. The client controls the simulator through the [__client and world objects__](foundations.md#world-and-client) Open a Python notebook or create a new script, then add the following code to the start of the script or the main function:
|
||||
|
|
4
Doxyfile
4
Doxyfile
|
@ -11,7 +11,7 @@ CASE_SENSE_NAMES = YES
|
|||
SORT_BRIEF_DOCS = YES
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_LOGFILE = Doxygen/warnings.log
|
||||
INPUT = Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source LibCarla/source
|
||||
INPUT = Unreal/CarlaUnreal/Source Unreal/CarlaUnreal/Plugins/Carla/Source LibCarla/source
|
||||
FILE_PATTERNS = *.cpp *.h *.hpp *.cc
|
||||
EXCLUDE = LibCarla/source/carla/Version.h
|
||||
RECURSIVE = YES
|
||||
|
@ -27,7 +27,7 @@ FORMULA_FONTSIZE = 12
|
|||
GENERATE_LATEX = NO
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = YES
|
||||
INCLUDE_PATH = Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source LibCarla/source
|
||||
INCLUDE_PATH = Unreal/CarlaUnreal/Source Unreal/CarlaUnreal/Plugins/Carla/Source LibCarla/source
|
||||
INCLUDE_FILE_PATTERNS = *.h *.hpp
|
||||
HIDE_UNDOC_RELATIONS = NO
|
||||
HAVE_DOT = YES
|
||||
|
|
|
@ -43,7 +43,7 @@ pipeline
|
|||
{
|
||||
steps
|
||||
{
|
||||
sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject'
|
||||
sh 'git update-index --skip-worktree Unreal/CarlaUnreal/CarlaUnreal.uproject'
|
||||
sh 'make setup ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"'
|
||||
}
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ pipeline
|
|||
{
|
||||
sh 'make LibCarla'
|
||||
sh 'make PythonAPI ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"'
|
||||
sh 'make CarlaUE4Editor ARGS="--chrono"'
|
||||
sh 'make CarlaUnrealEditor ARGS="--chrono"'
|
||||
sh 'make plugins'
|
||||
sh 'make examples'
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ pipeline
|
|||
unstash name: 'ubuntu_examples'
|
||||
sh 'tar -xvzf Dist/CARLA*.tar.gz -C Dist/'
|
||||
// sh 'tar -xvzf Dist/AdditionalMaps*.tar.gz -C Dist/'
|
||||
sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &'
|
||||
sh 'DISPLAY= ./Dist/CarlaUnreal.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUnreal.log &'
|
||||
sh 'make smoke_tests ARGS="--xml --python-version=3.7 --target-wheel-platform=manylinux_2_27_x86_64"'
|
||||
sh 'make run-examples ARGS="localhost 3654"'
|
||||
}
|
||||
|
@ -142,7 +142,7 @@ pipeline
|
|||
{
|
||||
always
|
||||
{
|
||||
archiveArtifacts 'CarlaUE4.log'
|
||||
archiveArtifacts 'CarlaUnreal.log'
|
||||
junit 'Build/test-results/smoke-tests-*.xml'
|
||||
deleteDir()
|
||||
node('master')
|
||||
|
@ -240,7 +240,7 @@ pipeline
|
|||
{
|
||||
bat """
|
||||
call ../setEnv64.bat
|
||||
git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject
|
||||
git update-index --skip-worktree Unreal/CarlaUnreal/CarlaUnreal.uproject
|
||||
"""
|
||||
bat """
|
||||
call ../setEnv64.bat
|
||||
|
@ -262,7 +262,7 @@ pipeline
|
|||
"""
|
||||
bat """
|
||||
call ../setEnv64.bat
|
||||
make CarlaUE4Editor ARGS="--chrono"
|
||||
make CarlaUnrealEditor ARGS="--chrono"
|
||||
"""
|
||||
bat """
|
||||
call ../setEnv64.bat
|
||||
|
|
|
@ -47,7 +47,6 @@ if (BUILD_CARLA_SERVER)
|
|||
${LIBCARLA_SOURCE_PATH}/carla/streaming/detail/tcp/*.cpp
|
||||
${LIBCARLA_SOURCE_PATH}/carla/multigpu/*.cpp
|
||||
)
|
||||
|
||||
if (ENABLE_ROS2)
|
||||
file (
|
||||
GLOB
|
||||
|
@ -147,25 +146,6 @@ if (BUILD_CARLA_SERVER)
|
|||
${CARLA_RTTI_DEFINITIONS}
|
||||
)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
carla-server
|
||||
DESTINATION lib
|
||||
)
|
||||
|
||||
foreach (HEADER ${LIBCARLA_SERVER_HEADERS})
|
||||
cmake_path (GET HEADER PARENT_PATH HEADER_PARENT)
|
||||
cmake_path (
|
||||
RELATIVE_PATH HEADER_PARENT
|
||||
BASE_DIRECTORY ${LIBCARLA_SOURCE_PATH}/carla
|
||||
OUTPUT_VARIABLE HEADER_RELATIVE
|
||||
)
|
||||
install (
|
||||
FILES ${HEADER}
|
||||
DESTINATION include/carla/${HEADER_RELATIVE}
|
||||
)
|
||||
endforeach ()
|
||||
|
||||
endif ()
|
||||
|
||||
|
||||
|
@ -340,19 +320,4 @@ if (BUILD_CARLA_CLIENT)
|
|||
${CARLA_RTTI_DEFINITIONS}
|
||||
)
|
||||
|
||||
install (TARGETS carla-client DESTINATION lib)
|
||||
|
||||
foreach (HEADER ${LIBCARLA_CLIENT_HEADERS})
|
||||
cmake_path (GET HEADER PARENT_PATH HEADER_PARENT)
|
||||
cmake_path (
|
||||
RELATIVE_PATH HEADER_PARENT
|
||||
BASE_DIRECTORY ${LIBCARLA_SOURCE_PATH}/carla
|
||||
OUTPUT_VARIABLE HEADER_RELATIVE
|
||||
)
|
||||
install (
|
||||
FILES ${HEADER}
|
||||
DESTINATION include/carla/${HEADER_RELATIVE}
|
||||
)
|
||||
endforeach ()
|
||||
|
||||
endif ()
|
||||
|
|
|
@ -116,7 +116,7 @@ namespace detail {
|
|||
std::string opendrive,
|
||||
const rpc::OpendriveGenerationParameters & params, bool reset_settings) {
|
||||
// The "OpenDriveMap" is an ".umap" located in:
|
||||
// "carla/Unreal/CarlaUE4/Content/Carla/Maps/"
|
||||
// "carla/Unreal/CarlaUnreal/Content/Carla/Maps/"
|
||||
// It will load the last sended OpenDRIVE by client's "LoadOpenDriveEpisode()"
|
||||
constexpr auto custom_opendrive_map = "OpenDriveMap";
|
||||
_client.CopyOpenDriveToServer(std::move(opendrive), params);
|
||||
|
|
|
@ -59,7 +59,7 @@ namespace geom {
|
|||
return std::sqrt(SquaredLength2D());
|
||||
}
|
||||
|
||||
constexpr Vector3D Abs() const {
|
||||
inline Vector3D Abs() const {
|
||||
return Vector3D(abs(x), abs(y), abs(z));
|
||||
}
|
||||
|
||||
|
|
15
Makefile
15
Makefile
|
@ -1,6 +1,9 @@
|
|||
include Util/BuildTools/Vars.mk
|
||||
ifeq ($(OS),Windows_NT)
|
||||
include Util/BuildTools/Windows.mk
|
||||
else
|
||||
include Util/BuildTools/Linux.mk
|
||||
endif
|
||||
launch PythonAPI LibCarla CarlaUnrealEditor CarlaUnrealEditor launch-only:
|
||||
@echo "MakeFile build is currently disabled."
|
||||
|
||||
# include Util/BuildTools/Vars.mk
|
||||
# ifeq ($(OS),Windows_NT)
|
||||
# include Util/BuildTools/Windows.mk
|
||||
# else
|
||||
# include Util/BuildTools/Linux.mk
|
||||
# endif
|
||||
|
|
|
@ -4,15 +4,6 @@ project (
|
|||
VERSION ${CARLA_VERSION}
|
||||
)
|
||||
|
||||
find_package (
|
||||
Python
|
||||
COMPONENTS
|
||||
Interpreter
|
||||
Development.Module
|
||||
Development.Embed
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
set (PYTHON_API_PATH ${CARLA_WORKSPACE_PATH}/PythonAPI)
|
||||
set (PYTHON_API_CARLA_PATH ${PYTHON_API_PATH}/carla)
|
||||
|
||||
|
@ -49,7 +40,17 @@ if (ENABLE_RSS)
|
|||
list (APPEND PYTHON_API_SOURCES ${PYTHON_API_CARLA_PATH}/src/AdRss.cpp)
|
||||
endif ()
|
||||
|
||||
Python_add_library (
|
||||
find_package (
|
||||
Python3
|
||||
COMPONENTS
|
||||
Interpreter
|
||||
Development.Module
|
||||
Development.Embed
|
||||
Development.SABIModule
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
Python3_add_library (
|
||||
carla-python-api MODULE WITH_SOABI
|
||||
${PYTHON_API_SOURCES}
|
||||
)
|
||||
|
@ -81,7 +82,6 @@ target_compile_definitions (
|
|||
${CARLA_COMMON_DEFINITIONS}
|
||||
${CARLA_RTTI_DEFINITIONS}
|
||||
BOOST_ALL_NO_LIB
|
||||
BOOST_PYTHON_STATIC_LINK
|
||||
LIBCARLA_WITH_PYTHON_SUPPORT
|
||||
)
|
||||
|
||||
|
@ -97,12 +97,23 @@ else ()
|
|||
set (PYD_EXT .so)
|
||||
endif ()
|
||||
|
||||
set (
|
||||
CARLA_PYTHON_API_SYMLINK_PATH
|
||||
${PYTHON_API_PATH}/examples/carla${PYD_EXT}
|
||||
)
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT ${CARLA_PYTHON_API_SYMLINK_PATH}
|
||||
COMMENT
|
||||
"Creating CARLA PythonAPI .PYD/.SO symlink..."
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:carla-python-api> ${PYTHON_API_PATH}/examples/carla${PYD_EXT}
|
||||
)
|
||||
|
||||
# If this command fails, enable developer mode if on Windows.
|
||||
add_custom_target (
|
||||
carla-python-api-symlink
|
||||
ALL
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:carla-python-api> ${PYTHON_API_PATH}/examples/carla${PYD_EXT}
|
||||
DEPENDS ${CARLA_PYTHON_API_SYMLINK_PATH}
|
||||
)
|
||||
|
||||
add_dependencies (
|
||||
|
|
|
@ -223,7 +223,7 @@
|
|||
- param_name: filename
|
||||
type: str
|
||||
doc: >
|
||||
Name of the file to write the recorded data. A simple name will save the recording in 'CarlaUE4/Saved/recording.log'. Otherwise, if some folder appears in the name, it will be considered an absolute path.
|
||||
Name of the file to write the recorded data. A simple name will save the recording in 'CarlaUnreal/Saved/recording.log'. Otherwise, if some folder appears in the name, it will be considered an absolute path.
|
||||
- param_name: additional_data
|
||||
type: bool
|
||||
default: False
|
||||
|
@ -235,7 +235,7 @@
|
|||
- def_name: stop_recorder
|
||||
params:
|
||||
doc: >
|
||||
Stops the recording in progress. If you specified a path in `filename`, the recording will be there. If not, look inside `CarlaUE4/Saved/`.
|
||||
Stops the recording in progress. If you specified a path in `filename`, the recording will be there. If not, look inside `CarlaUnreal/Saved/`.
|
||||
# --------------------------------------
|
||||
- def_name: get_available_maps
|
||||
params:
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
cache
|
||||
carla.so
|
||||
carla.pyd
|
|
@ -2,6 +2,21 @@ project (
|
|||
carla-ue
|
||||
)
|
||||
|
||||
set (
|
||||
CARLA_UE_PATH
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal
|
||||
)
|
||||
|
||||
set (
|
||||
CARLA_UE_PLUGINS_PATH
|
||||
${CARLA_UE_PATH}/Plugins
|
||||
)
|
||||
|
||||
set (
|
||||
CARLA_UE_PROJECT_PATH
|
||||
${CARLA_UE_PATH}/CarlaUnreal.uproject
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
set (
|
||||
CARLA_UE_GENERATE_PROJECT_SCRIPT
|
||||
|
@ -14,43 +29,116 @@ else ()
|
|||
)
|
||||
endif ()
|
||||
|
||||
set (
|
||||
CARLA_UE_PATH
|
||||
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUE4
|
||||
)
|
||||
|
||||
set (
|
||||
CARLA_UE_PROJECT_PATH
|
||||
${CARLA_UE_PATH}/CarlaUE4.uproject
|
||||
)
|
||||
|
||||
add_custom_target (
|
||||
carla-ue-generate-project-files
|
||||
ALL
|
||||
DEPENDS
|
||||
carla-server
|
||||
add_custom_command (
|
||||
OUTPUT ${CARLA_UE_PATH}/CMakeLists.txt
|
||||
COMMENT
|
||||
"Generating Carla UE project files..."
|
||||
"Generating UE project files for CARLA..."
|
||||
COMMAND
|
||||
${CARLA_UE_GENERATE_PROJECT_SCRIPT}
|
||||
-project=${CARLA_UE_PROJECT_PATH}
|
||||
-game
|
||||
-engine
|
||||
-makefiles
|
||||
-CMakefile
|
||||
)
|
||||
|
||||
add_custom_target (
|
||||
carla-ue-build
|
||||
carla-ue-generate-project-files
|
||||
DEPENDS ${CARLA_UE_PATH}/CMakeLists.txt
|
||||
)
|
||||
|
||||
|
||||
|
||||
if (CMAKE_TOOLCHAIN_FILE)
|
||||
cmake_path (
|
||||
ABSOLUTE_PATH CMAKE_TOOLCHAIN_FILE
|
||||
BASE_DIRECTORY ${CARLA_WORKSPACE_PATH}
|
||||
NORMALIZE
|
||||
OUTPUT_VARIABLE TOOLCHAIN_FILE
|
||||
)
|
||||
set (TOOLCHAIN_FILE_OPTION --toolchain=${TOOLCHAIN_FILE})
|
||||
else ()
|
||||
set (TOOLCHAIN_FILE_OPTION)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT carla-ue-configure.stamp
|
||||
COMMENT
|
||||
"Configuring Carla Unreal..."
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E touch carla-ue-configure.stamp
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
-S ${CARLA_UE_PATH}
|
||||
-G ${CMAKE_GENERATOR}
|
||||
-B ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
add_custom_target (
|
||||
carla-ue-configure
|
||||
DEPENDS
|
||||
carla-ue-configure.stamp
|
||||
carla-ue-generate-project-files
|
||||
)
|
||||
|
||||
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT carla-ue.stamp
|
||||
COMMENT
|
||||
"Building Carla Unreal..."
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E touch carla-ue.stamp
|
||||
COMMAND
|
||||
${CMAKE_COMMAND}
|
||||
--build ${CMAKE_CURRENT_BINARY_DIR}
|
||||
--target CarlaUnrealEditor
|
||||
--verbose
|
||||
)
|
||||
|
||||
add_custom_target (
|
||||
carla-ue
|
||||
ALL
|
||||
DEPENDS
|
||||
carla-ue-generate-project-files
|
||||
COMMENT
|
||||
"Building Carla UE..."
|
||||
COMMAND
|
||||
make -C ${CARLA_UE_PROJECT_PATH} CarlaUE4Editor
|
||||
carla-ue-configure
|
||||
carla-ue.stamp
|
||||
)
|
||||
|
||||
|
||||
|
||||
add_custom_target (
|
||||
launch-only
|
||||
COMMAND
|
||||
${CARLA_UNREAL_ENGINE_PATH}/Engine/Binaries/Linux/UnrealEditor
|
||||
${CARLA_UE_PROJECT_PATH}
|
||||
-${CARLA_UNREAL_RHI}
|
||||
)
|
||||
|
||||
|
||||
|
||||
add_custom_target (
|
||||
launch
|
||||
DEPENDS
|
||||
carla-ue
|
||||
launch-only
|
||||
)
|
||||
|
||||
|
||||
|
||||
file (
|
||||
MAKE_DIRECTORY
|
||||
${CARLA_UE_PATH}/Content/Carla/ExportedMaps
|
||||
)
|
||||
|
||||
carla_two_step_configure_file (
|
||||
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs
|
||||
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs.in
|
||||
)
|
||||
|
||||
carla_two_step_configure_file (
|
||||
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs
|
||||
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs.in
|
||||
)
|
|
@ -1,72 +0,0 @@
|
|||
|
||||
[/Script/Engine.InputSettings]
|
||||
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
bAltEnterTogglesFullscreen=True
|
||||
bF11TogglesFullscreen=True
|
||||
bUseMouseForTouch=False
|
||||
bEnableMouseSmoothing=True
|
||||
bEnableFOVScaling=True
|
||||
FOVScale=0.011110
|
||||
DoubleClickTime=0.200000
|
||||
bCaptureMouseOnLaunch=False
|
||||
DefaultViewportMouseCaptureMode=CaptureDuringMouseDown
|
||||
bDefaultViewportMouseLock=False
|
||||
DefaultViewportMouseLockMode=DoNotLock
|
||||
+ActionMappings=(ActionName="RestartLevel",Key=R,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="Handbrake",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ToggleManualMode",Key=M,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ToggleHUD",Key=G,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="Jump",Key=Enter,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ToggleReverse",Key=Q,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="UseTheForce",Key=F,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ToggleCamera",Key=Tab,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ChangeWeather",Key=C,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+ActionMappings=(ActionName="ToggleAutopilot",Key=P,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
|
||||
+AxisMappings=(AxisName="CameraZoom",Key=MouseWheelAxis,Scale=-20.000000)
|
||||
+AxisMappings=(AxisName="CameraZoom",Key=PageUp,Scale=-10.000000)
|
||||
+AxisMappings=(AxisName="CameraZoom",Key=PageDown,Scale=10.000000)
|
||||
+AxisMappings=(AxisName="CameraUp",Key=Up,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="CameraUp",Key=Down,Scale=-1.000000)
|
||||
+AxisMappings=(AxisName="CameraRight",Key=Right,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="CameraRight",Key=Left,Scale=-1.000000)
|
||||
+AxisMappings=(AxisName="MoveForward",Key=W,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="MoveRight",Key=D,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="MoveRight",Key=A,Scale=-1.000000)
|
||||
+AxisMappings=(AxisName="Brake",Key=B,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="MoveForward",Key=S,Scale=-1.000000)
|
||||
+AxisMappings=(AxisName="MoveUp",Key=E,Scale=1.000000)
|
||||
+AxisMappings=(AxisName="MoveUp",Key=Q,Scale=-1.000000)
|
||||
bAlwaysShowTouchInterface=False
|
||||
bShowConsoleOnFourFingerTap=True
|
||||
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||
ConsoleKey=None
|
||||
-ConsoleKeys=Tilde
|
||||
+ConsoleKeys=Tilde
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#include "CarlaUE4.h"
|
||||
|
||||
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, CarlaUE4, "CarlaUE4" );
|
|
@ -21,5 +21,6 @@ Config/CarSimConfig.ini
|
|||
*.code-workspace
|
||||
.idea
|
||||
.vscode
|
||||
.ignore
|
||||
CMakeLists.txt
|
||||
Makefile
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
@ -5,7 +5,7 @@
|
|||
"Description": "",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "CarlaUE4",
|
||||
"Name": "CarlaUnreal",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
|
@ -0,0 +1,122 @@
|
|||
|
||||
|
||||
[/Script/Engine.InputSettings]
|
||||
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
||||
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
||||
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Left_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_TriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Grip1Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
||||
bAltEnterTogglesFullscreen=True
|
||||
bF11TogglesFullscreen=True
|
||||
bUseMouseForTouch=False
|
||||
bEnableMouseSmoothing=True
|
||||
bEnableFOVScaling=True
|
||||
bCaptureMouseOnLaunch=False
|
||||
bEnableLegacyInputScales=True
|
||||
bEnableMotionControls=True
|
||||
bFilterInputByPlatformUser=False
|
||||
bEnableInputDeviceSubsystem=True
|
||||
bShouldFlushPressedKeysOnViewportFocusLost=True
|
||||
bEnableDynamicComponentInputBinding=True
|
||||
bAlwaysShowTouchInterface=False
|
||||
bShowConsoleOnFourFingerTap=True
|
||||
bEnableGestureRecognizer=False
|
||||
bUseAutocorrect=False
|
||||
DefaultViewportMouseCaptureMode=CaptureDuringMouseDown
|
||||
DefaultViewportMouseLockMode=DoNotLock
|
||||
FOVScale=0.011110
|
||||
DoubleClickTime=0.200000
|
||||
+ActionMappings=(ActionName="RestartLevel",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=R)
|
||||
+ActionMappings=(ActionName="Handbrake",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
|
||||
+ActionMappings=(ActionName="ToggleManualMode",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=M)
|
||||
+ActionMappings=(ActionName="ToggleHUD",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=G)
|
||||
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Enter)
|
||||
+ActionMappings=(ActionName="ToggleReverse",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Q)
|
||||
+ActionMappings=(ActionName="UseTheForce",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=F)
|
||||
+ActionMappings=(ActionName="ToggleCamera",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Tab)
|
||||
+ActionMappings=(ActionName="ChangeWeather",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=C)
|
||||
+ActionMappings=(ActionName="ToggleAutopilot",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=P)
|
||||
+AxisMappings=(AxisName="CameraZoom",Scale=-20.000000,Key=MouseWheelAxis)
|
||||
+AxisMappings=(AxisName="CameraZoom",Scale=-10.000000,Key=PageUp)
|
||||
+AxisMappings=(AxisName="CameraZoom",Scale=10.000000,Key=PageDown)
|
||||
+AxisMappings=(AxisName="CameraUp",Scale=1.000000,Key=Up)
|
||||
+AxisMappings=(AxisName="CameraUp",Scale=-1.000000,Key=Down)
|
||||
+AxisMappings=(AxisName="CameraRight",Scale=1.000000,Key=Right)
|
||||
+AxisMappings=(AxisName="CameraRight",Scale=-1.000000,Key=Left)
|
||||
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W)
|
||||
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D)
|
||||
+AxisMappings=(AxisName="MoveRight",Scale=-1.000000,Key=A)
|
||||
+AxisMappings=(AxisName="Brake",Scale=1.000000,Key=B)
|
||||
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S)
|
||||
+AxisMappings=(AxisName="MoveUp",Scale=1.000000,Key=E)
|
||||
+AxisMappings=(AxisName="MoveUp",Scale=-1.000000,Key=Q)
|
||||
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
||||
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
||||
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
||||
-ConsoleKeys=Tilde
|
||||
+ConsoleKeys=Tilde
|
||||
|
|
@ -0,0 +1 @@
|
|||
StreetMap/
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue