From a395f62a64b360b6bdfadc39fff446f6f2abff79 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 12 Dec 2023 16:13:11 +0100 Subject: [PATCH 001/105] add initial jenkinsfile for working in CVC servers --- Jenkinsfile_new | 352 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 Jenkinsfile_new diff --git a/Jenkinsfile_new b/Jenkinsfile_new new file mode 100644 index 000000000..97f89a2a2 --- /dev/null +++ b/Jenkinsfile_new @@ -0,0 +1,352 @@ +#!/usr/bin/env groovy + +pipeline +{ + agent none + + options + { + buildDiscarder(logRotator(numToKeepStr: '3', artifactNumToKeepStr: '3')) + } + + stages + { + /*stage('Creating nodes') + { + + agent { label "master" } + steps + { + script + { + JOB_ID = "${env.BUILD_TAG}" + jenkinsLib = load("/home/jenkins/jenkins_426.groovy") + + jenkinsLib.CreateUbuntuBuildNode(JOB_ID) + jenkinsLib.CreateWindowsBuildNode(JOB_ID) + } + } + }*/ + stage('Building CARLA') + { + parallel + { + stage('ubuntu') + { + agent { label "ubuntu" } + environment + { + UE4_ROOT = '/home/jenkins/UnrealEngine_4.26' + } + stages + { + stage('ubuntu setup') + { + steps + { + sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' + sh 'make setup ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + } + } + stage('ubuntu build') + { + steps + { + 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 plugins' + sh 'make examples' + } + post + { + always + { + archiveArtifacts 'PythonAPI/carla/dist/*.egg' + archiveArtifacts 'PythonAPI/carla/dist/*.whl' + stash includes: 'PythonAPI/carla/dist/*.egg', name: 'ubuntu_eggs' + stash includes: 'PythonAPI/carla/dist/*.whl', name: 'ubuntu_wheels' + } + } + } + stage('ubuntu unit tests') + { + steps + { + sh 'make check ARGS="--all --xml --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + } + post + { + always + { + junit 'Build/test-results/*.xml' + archiveArtifacts 'profiler.csv' + } + } + } + stage('ubuntu retrieve content') + { + steps + { + sh './Update.sh' + } + } + stage('ubuntu package') + { + steps + { + sh 'make package ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make examples ARGS="localhost 3654"' + } + post + { + always + { + archiveArtifacts 'Dist/*.tar.gz' + stash includes: 'Dist/CARLA*.tar.gz', name: 'ubuntu_package' + // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' + stash includes: 'Examples/', name: 'ubuntu_examples' + } + success + { + node('master') + { + script + { + JOB_ID = "${env.BUILD_TAG}" + jenkinsLib = load("/home/jenkins/jenkins_426.groovy") + + jenkinsLib.CreateUbuntuTestNode(JOB_ID) + } + } + } + } + } + stage('ubuntu smoke tests') + { + agent { label "ubuntu && gpu" } + steps + { + unstash name: 'ubuntu_eggs' + unstash name: 'ubuntu_wheels' + unstash name: 'ubuntu_package' + // unstash name: 'ubuntu_package2' + 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 'make smoke_tests ARGS="--xml --python-version=3.7 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make run-examples ARGS="localhost 3654"' + } + post + { + always + { + archiveArtifacts 'CarlaUE4.log' + junit 'Build/test-results/smoke-tests-*.xml' + deleteDir() + /*node('master') + { + script + { + JOB_ID = "${env.BUILD_TAG}" + jenkinsLib = load("/home/jenkins/jenkins_426.groovy") + + jenkinsLib.DeleteUbuntuTestNode(JOB_ID) + } + }*/ + } + } + } + /* + stage('ubuntu deploy dev') + { + when { branch "dev"; } + steps + { + sh 'git checkout .' + sh 'make deploy ARGS="--replace-latest"' + } + } + stage('ubuntu deploy master') + { + when { anyOf { branch "master"; buildingTag() } } + steps + { + sh 'git checkout .' + sh 'make deploy ARGS="--replace-latest --docker-push"' + } + } + stage('ubuntu Doxygen') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps + { + sh 'rm -rf ~/carla-simulator.github.io/Doxygen' + sh ''' + cd ~/carla-simulator.github.io + git remote set-url origin git@docs:carla-simulator/carla-simulator.github.io.git + git fetch + git checkout -B master origin/master + ''' + sh 'make docs' + sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' + sh ''' + cd ~/carla-simulator.github.io + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + } + post + { + always + { + deleteDir() + } + } + } + */ + } + post + { + always + { + deleteDir() + + /*node('master') + { + script + { + JOB_ID = "${env.BUILD_TAG}" + jenkinsLib = load("/home/jenkins/jenkins_426.groovy") + + jenkinsLib.DeleteUbuntuBuildNode(JOB_ID) + } + }*/ + } + } + } + /* + stage('windows') + { + agent { label "windows" } + environment + { + UE4_ROOT = 'C:\\UE_4.26' + } + stages + { + stage('windows setup') + { + steps + { + bat """ + call ../setEnv64.bat + git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject + """ + bat """ + call ../setEnv64.bat + make setup ARGS="--chrono" + """ + } + } + stage('windows build') + { + steps + { + bat """ + call ../setEnv64.bat + make LibCarla + """ + bat """ + call ../setEnv64.bat + make PythonAPI + """ + bat """ + call ../setEnv64.bat + make CarlaUE4Editor ARGS="--chrono" + """ + bat """ + call ../setEnv64.bat + make plugins + """ + } + post + { + always + { + archiveArtifacts 'PythonAPI/carla/dist/*.egg' + archiveArtifacts 'PythonAPI/carla/dist/*.whl' + } + } + } + stage('windows retrieve content') + { + steps + { + bat """ + call ../setEnv64.bat + call Update.bat + """ + } + } + stage('windows package') + { + steps + { + bat """ + call ../setEnv64.bat + make package ARGS="--chrono" + """ + bat """ + call ../setEnv64.bat + make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate" + """ + } + post { + always { + archiveArtifacts 'Build/UE4Carla/*.zip' + } + } + } + + stage('windows deploy') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps { + bat """ + call ../setEnv64.bat + git checkout . + make deploy ARGS="--replace-latest" + """ + } + } + + } + post + { + always + { + deleteDir() + /* + node('master') + { + script + { + JOB_ID = "${env.BUILD_TAG}" + jenkinsLib = load("/home/jenkins/jenkins_426.groovy") + + jenkinsLib.DeleteWindowsBuildNode(JOB_ID) + } + } + + } + } + } + */ + } + } + } +} From 7e69258e2dd202a0af2cfb8b17ca9b77615d29f4 Mon Sep 17 00:00:00 2001 From: Blyron <53337103+Blyron@users.noreply.github.com> Date: Wed, 13 Dec 2023 08:00:20 +0100 Subject: [PATCH 002/105] Aaron/updateurls (#6994) * Set commit for download libsomscout * Update urls to new storage * Merge dev into current branch --- Docs/build_update.md | 76 ++++++++++----------- Docs/download.md | 8 +-- Docs/tuto_content_authoring_vehicles.md | 88 ++++++++++++------------- Docs/tutorials.md | 50 +++++++------- README.md | 12 ++-- Update.bat | 2 +- Update.sh | 2 +- Util/BuildTools/Setup.bat | 2 +- Util/BuildTools/Setup.sh | 4 +- Util/ContentVersions.txt | 2 +- Util/CreateDebian.sh | 4 +- Util/InstallersWin/install_boost.bat | 2 +- Util/InstallersWin/install_libpng.bat | 2 +- Util/InstallersWin/install_xercesc.bat | 6 +- Util/InstallersWin/install_zlib.bat | 2 +- 15 files changed, 131 insertions(+), 131 deletions(-) diff --git a/Docs/build_update.md b/Docs/build_update.md index eb5432934..f3f7eff8f 100644 --- a/Docs/build_update.md +++ b/Docs/build_update.md @@ -1,13 +1,13 @@ # Update CARLA -* [__Update commands summary__](#update-commands-summary) -* [__Get the lastest binary release__](#get-latest-binary-release) -* [__Update Linux and Windows build__](#update-linux-and-windows-build) - * [Clean the build](#clean-the-build) - * [Pull from origin](#pull-from-origin) - * [Download the assets](#download-the-assets) - * [Launch the server](#launch-the-server) -* [__Get development assets__](#get-development-assets) +* [__Update commands summary__](#update-commands-summary) +* [__Get the lastest binary release__](#get-latest-binary-release) +* [__Update Linux and Windows build__](#update-linux-and-windows-build) + * [Clean the build](#clean-the-build) + * [Pull from origin](#pull-from-origin) + * [Download the assets](#download-the-assets) + * [Launch the server](#launch-the-server) +* [__Get development assets__](#get-development-assets) To post unexpected issues, doubts or suggestions, feel free to login in the CARLA forum. @@ -25,30 +25,30 @@ CARLA forum Show command lines to update CARLA ```sh -# Update a CARLA packaged release. -# 1. Delete the current one. -# 2. Follow the Quick start installation to get the one desired. +# Update a CARLA packaged release. +# 1. Delete the current one. +# 2. Follow the Quick start installation to get the one desired. -# Update Linux build. +# Update Linux build. git checkout master make clean git pull origin master ./Update.sh -# Update Windows build. +# Update Windows build. git checkout master make clean git pull origin master # Erase the content in `Unreal\CarlaUE4\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\CarlaUE4\Content\Carla`. -# Get development assets. -# Delete the `/Carla` folder containing previous assets. +# 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 @@ -56,11 +56,11 @@ git clone https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Co --- -## Get latest binary release +## Get latest binary release -Binary releases are prepackaged and thus, tied to a specific version of CARLA. To get the latest, erase the previous and follow the [quick start installation](start_quickstart.md) to get the one desired. +Binary releases are prepackaged and thus, tied to a specific version of CARLA. To get the latest, erase the previous and follow the [quick start installation](start_quickstart.md) to get the one desired. -Releases are listed in __Development__ in the CARLA repository. There is also a highly experimental __Nightly build__ containing the current state of CARLA up to date. +Releases are listed in __Development__ in the CARLA repository. There is also a highly experimental __Nightly build__ containing the current state of CARLA up to date.

@@ -69,22 +69,22 @@ Releases are listed in __Development__ in the CARLA repository. There is also a

- + Get the linux nightly build

- + Get the linux nightly build additional maps

- + Get the windows nightly build

- + Get the windows nightly build additional maps

@@ -93,22 +93,22 @@ Releases are listed in __Development__ in the CARLA repository. There is also a --- ## Update Linux and Windows build -Make sure to be in the local `master` branch before the update. Then, merge or rebase the changes to other branches and solve possible conflicts. +Make sure to be in the local `master` branch before the update. Then, merge or rebase the changes to other branches and solve possible conflicts. -```sh +```sh git checkout master ``` ### Clean the build Go to the main CARLA folder and delete binaries and temporals generated by the previous build. -```sh +```sh make clean ``` ### Pull from origin -Get the current version from `master` in the CARLA repository. +Get the current version from `master` in the CARLA repository. ```sh git pull origin master ``` @@ -120,19 +120,19 @@ __Linux.__ ./Update.sh ``` -__Windows.__ +__Windows.__ -__1.__ Erase the previous content in `Unreal\CarlaUE4\Content\Carla`. -__2.__ Go to `\Util\ContentVersions.txt`. -__3.__ Download the content for `latest`. -__4.__ Extract the new content in `Unreal\CarlaUE4\Content\Carla`. +__1.__ Erase the previous content in `Unreal\CarlaUE4\Content\Carla`. +__2.__ Go to `\Util\ContentVersions.txt`. +__3.__ Download the content for `latest`. +__4.__ Extract the new content in `Unreal\CarlaUE4\Content\Carla`. !!! Note - In order to work with that the CARLA team is devleoping, go to __get development assets__ below. + In order to work with that the CARLA team is devleoping, go to __get development assets__ below. ### Launch the server -Run the server in spectator view to make sure that everything worked properly. +Run the server in spectator view to make sure that everything worked properly. ```sh make launch @@ -141,18 +141,18 @@ make launch --- ## Get development assets -The CARLA team works with assets still in development. These models and maps have a [public git repository][contentrepolink] where the CARLA team regularly pushes latest updates. Assets are still unfinished, using them is only recommended for developers. +The CARLA team works with assets still in development. These models and maps have a [public git repository][contentrepolink] where the CARLA team regularly pushes latest updates. Assets are still unfinished, using them is only recommended for developers. -In order to handle this repository it is advisted to install [git-lfs][gitlfslink]. The repository is modified regularly, and git-lfs works faster with large binary files. +In order to handle this repository it is advisted to install [git-lfs][gitlfslink]. The repository is modified regularly, and git-lfs works faster with large binary files. -To clone the repository, __go to the main CARLA directory__ and run the following command. +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 ``` !!! Warning - Delete the `/Carla` folder containing the assets before cloning the repository. Otherwise, an error will show. + Delete the `/Carla` folder containing the assets before cloning the repository. Otherwise, an error will show. [contentrepolink]: https://bitbucket.org/carla-simulator/carla-content [gitlfslink]: https://github.com/git-lfs/git-lfs/wiki/Installation diff --git a/Docs/download.md b/Docs/download.md index 28583453b..e90c845c8 100644 --- a/Docs/download.md +++ b/Docs/download.md @@ -10,10 +10,10 @@ > branch. It contains the very latest fixes and features that will be part of the > next release, but also some experimental changes. Use at your own risk! -- [CARLA Nightly Build (Linux)](https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/Dev/CARLA_Latest.tar.gz) -- [AdditionalMaps Nightly Build (Linux)](https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/Dev/AdditionalMaps_Latest.tar.gz) -- [CARLA Nightly Build (Windows)](https://carla-releases.s3.eu-west-3.amazonaws.com/Windows/Dev/CARLA_Latest.zip) -- [AdditionalMaps Nightly Build (Windows)](https://carla-releases.s3.eu-west-3.amazonaws.com/Windows/Dev/AdditionalMaps_Latest.zip) +- [CARLA Nightly Build (Linux)](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Dev/CARLA_Latest.tar.gz) +- [AdditionalMaps Nightly Build (Linux)](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Dev/AdditionalMaps_Latest.tar.gz) +- [CARLA Nightly Build (Windows)](https://carla-releases.s3.us-east-005.backblazeb2.com/Windows/Dev/CARLA_Latest.zip) +- [AdditionalMaps Nightly Build (Windows)](https://carla-releases.s3.us-east-005.backblazeb2.com/Windows/Dev/AdditionalMaps_Latest.zip) ### Versions 0.9.x diff --git a/Docs/tuto_content_authoring_vehicles.md b/Docs/tuto_content_authoring_vehicles.md index abd54abc9..764a6179c 100644 --- a/Docs/tuto_content_authoring_vehicles.md +++ b/Docs/tuto_content_authoring_vehicles.md @@ -1,36 +1,36 @@ # Content authoring - vehicles -CARLA provides a comprehensive set of vehicles out of the box in the blueprint library. CARLA allows the user to expand upon this with custom vehicles for maximum extensibility. +CARLA provides a comprehensive set of vehicles out of the box in the blueprint library. CARLA allows the user to expand upon this with custom vehicles for maximum extensibility. 3D modelling of detailed vehicles is highly complex and requires a significant degree of skill. We therefore refer the reader to alternative sources of documentation on 3D modelling, since this is beyond the scope of this guide. There are, however, numerous sources of vehicle models in both free and proprietary online repositories. Hence the user has many options to turn to for creating custom vehicles for use in CARLA. The key factors in preparing a custom vehicle for CARLA lie in rigging the vehicle armature and then importing into the Unreal Engine. After rigging and importing, blueprints need to be set for the car and the wheels. Then apply materials and add the glass parts of the vehicle. We will cover these steps in the following guide. -* __[Modeling](#modeling)__ - * [Naming conventions](#naming-conventions) -* __[Rigging](#rigging-the-vehicle-using-an-armature)__ - * [Import](#import) +* __[Modeling](#modeling)__ + * [Naming conventions](#naming-conventions) +* __[Rigging](#rigging-the-vehicle-using-an-armature)__ + * [Import](#import) * [Armature](#add-an-armature) * [Parenting](#parenting) - * [Assignment](#assigning-car-parts-to-bones) + * [Assignment](#assigning-car-parts-to-bones) * [Blender add-on](#blender-ue4-vehicle-rigging-add-on) - * [Export](#export) -* __[Import into Unreal Engine](#importing-into-unreal-engine)__ - * [Physics asset](#setting-the-physics-asset) + * [Export](#export) +* __[Import into Unreal Engine](#importing-into-unreal-engine)__ + * [Physics asset](#setting-the-physics-asset) * [Animation](#creating-the-animation) * [Blueprint](#creating-the-blueprint) -* __[Materials](#materials)__ +* __[Materials](#materials)__ * [Applying materials](#applying-a-material-to-your-vehicle) * [Color](#color) * [Clear coat](#clear-coat) * [Orange peel](#orange-peel) * [Flakes](#flakes) * [Dust](#dust) -* __[Glass](#glass)__ +* __[Glass](#glass)__ * [Glass meshes](#glass-meshes) * [Glass material](#glass-material) * [Single layer glass](#single-layer-glass) -* __[Wheels](#wheels)__ +* __[Wheels](#wheels)__ * [Wheel blueprint](#wheel-blueprint) * [Collision mesh](#collision-mesh) * [Tire configuration](#tire-configuration) @@ -41,7 +41,7 @@ The key factors in preparing a custom vehicle for CARLA lie in rigging the vehic ## Modeling -Vehicles should have between 50,000 and 100,000 faces. We recommend triangulating the model prior to export as best practice. CARLA vehicles are modeled using the size and scale of actual cars as reference. Please ensure you pay careful attention to the units of your 3D application. Some work in centimeters while others work in meters. +Vehicles should have between 50,000 and 100,000 faces. We recommend triangulating the model prior to export as best practice. CARLA vehicles are modeled using the size and scale of actual cars as reference. Please ensure you pay careful attention to the units of your 3D application. Some work in centimeters while others work in meters. ### Naming conventions @@ -53,7 +53,7 @@ For ease and consistency we recommend that you divide the vehicle into the follo - __Lights__: Headlights, indicator lights, etc. - __LightGlass_Ext__: A layer of glass that allows visibility from the outside to the inside of the light. - __LightGlass_Int__: A layer of glass that allows visibility from the inside to the outside of the light. -- __LicensePlate__: A rectangular plane of 29x12 cm. You can use the CARLA provided `.fbx` for best results, download it [here](https://carla-assets.s3.eu-west-3.amazonaws.com/fbx/LicensePlate.rar). The texture will be assigned automatically in Unreal Engine. +- __LicensePlate__: A rectangular plane of 29x12 cm. You can use the CARLA provided `.fbx` for best results, download it [here](https://carla-assets.s3.us-east-005.backblazeb2.com/fbx/LicensePlate.rar). The texture will be assigned automatically in Unreal Engine. - __Interior__: Any other details that don't fit in the above sections can go into _Interior_. Materials should be named using the format `M_CarPart_CarName`, e.g, `M_Bodywork_Mustang`. @@ -62,11 +62,11 @@ Textures should be named using the format `T_CarPart_CarName`, e.g, `T_Bodywork_ ## Rigging the vehicle using an armature -To look realistic within the simulation, the car needs to have rotating and wheels, the front pair of which can turn with steering inputs. Therefore to prepare a vehicle for CARLA, an armature needs to be rigged to the car to identify the wheels and allow their movement. +To look realistic within the simulation, the car needs to have rotating and wheels, the front pair of which can turn with steering inputs. Therefore to prepare a vehicle for CARLA, an armature needs to be rigged to the car to identify the wheels and allow their movement. -### Import +### Import -Import or model the vehicle model mesh in your 3D modelling application. In this guide we will use Blender 3D. Ensure that the wheels are separable from the main body. Each wheel must be accessible as a distinct object. +Import or model the vehicle model mesh in your 3D modelling application. In this guide we will use Blender 3D. Ensure that the wheels are separable from the main body. Each wheel must be accessible as a distinct object. ![model_in_blender](img/tuto_content_authoring_vehicles/import_model_blender.png) @@ -74,23 +74,23 @@ It is important to ensure that the vehicle faces in the positive X direction, so ### Add an armature -Now add an armature to the center of the vehicle, ensure the object is properly centered, the root of the armature bone should be set at the origin. Switch to edit mode and rotate the armature 90 around the x axis. +Now add an armature to the center of the vehicle, ensure the object is properly centered, the root of the armature bone should be set at the origin. Switch to edit mode and rotate the armature 90 around the x axis. ![armature_init](img/tuto_content_authoring_vehicles/vehicle_base_bone.png) -Now select the armature and add 4 more bones. Each of these bones needs to be located such that the root of the bone coincides with the centre of the each wheel. This can be achieved by locating the 3D cursor at the center of each wheel in edit mode. Select one of the wheels in object mode, select a vertex, press A to select all vertices then `Shift+S` and select `Cursor to selected`. This will locate the cursor in the center of the wheel. Then, in object mode, select the armature, switch to edit mode, select a bone and choose `Selection to cursor`. Your bone will now coincide with the wheel. Rotate each bone such that it lines up with the base of the armature. +Now select the armature and add 4 more bones. Each of these bones needs to be located such that the root of the bone coincides with the centre of the each wheel. This can be achieved by locating the 3D cursor at the center of each wheel in edit mode. Select one of the wheels in object mode, select a vertex, press A to select all vertices then `Shift+S` and select `Cursor to selected`. This will locate the cursor in the center of the wheel. Then, in object mode, select the armature, switch to edit mode, select a bone and choose `Selection to cursor`. Your bone will now coincide with the wheel. Rotate each bone such that it lines up with the base of the armature. -For each wheel, it is recommended to name the bone according to the wheel it needs to be coupled to, this will help in identification later when you need to assign vertex groups to each bone. +For each wheel, it is recommended to name the bone according to the wheel it needs to be coupled to, this will help in identification later when you need to assign vertex groups to each bone. ![armature_full](img/tuto_content_authoring_vehicles/all_vehicle_bones.png) -### Parenting +### Parenting -Now select all the parts of the body and all 4 wheels using shift or control in the project outliner, then control select the armature you have created (this order is important, it won't work if you select these in reverse order). Press `Ctrl+p` and select `With empty groups` to bind the mesh to the armature. +Now select all the parts of the body and all 4 wheels using shift or control in the project outliner, then control select the armature you have created (this order is important, it won't work if you select these in reverse order). Press `Ctrl+p` and select `With empty groups` to bind the mesh to the armature. ![bind_armature](img/tuto_content_authoring_vehicles/bind_armature.gif) -Now you have parented the mesh to the armature, you now need to assign each wheel to its respective bone. Select a wheel either in the outliner or the editor. Switch to edit mode, and select all the vertices of the wheel (shortcut - `a`). +Now you have parented the mesh to the armature, you now need to assign each wheel to its respective bone. Select a wheel either in the outliner or the editor. Switch to edit mode, and select all the vertices of the wheel (shortcut - `a`). ### Assigning car parts to bones @@ -108,9 +108,9 @@ There is a very useful add on for blender for rigging a vehicle for import into ### Export -Now we will export our rigged model into FBX format for import into Unreal Engine. Select `Export > FBX (.fbx)` from the File menu. In the `Object Types` section of the `Include` panel, shift select the `Armature` and `Mesh` options. +Now we will export our rigged model into FBX format for import into Unreal Engine. Select `Export > FBX (.fbx)` from the File menu. In the `Object Types` section of the `Include` panel, shift select the `Armature` and `Mesh` options. -In the `Transform` panel. Change `Forward` to `X Forward` and change `Up` to `Z Up`. This is important to ensure the vehicle is oriented correctly in the Unreal Engine. +In the `Transform` panel. Change `Forward` to `X Forward` and change `Up` to `Z Up`. This is important to ensure the vehicle is oriented correctly in the Unreal Engine. In the `Armature` section uncheck `Add Leaf Bones` and uncheck `Bake Animation`. @@ -118,7 +118,7 @@ In the `Armature` section uncheck `Add Leaf Bones` and uncheck `Bake Animation`. ## Importing into unreal engine -Launch the Unreal Editor with the `make launch` command from the CARLA root directory (the one where you have built CARLA from source). Open a content browser, set up an appropriate directory and right click and select `Import to ....`. Choose the FBX file that you previously exported from Blender (or another 3D modelling application). Import with default settings. +Launch the Unreal Editor with the `make launch` command from the CARLA root directory (the one where you have built CARLA from source). Open a content browser, set up an appropriate directory and right click and select `Import to ....`. Choose the FBX file that you previously exported from Blender (or another 3D modelling application). Import with default settings. ### Setting the physics asset @@ -130,7 +130,7 @@ First, select the main body, in the `Details` menu on the right, change the `Lin ![physics_details](img/tuto_content_authoring_vehicles/physics_details.png) -Now select all the wheels (in the `Skeleton Tree` section on the left). +Now select all the wheels (in the `Skeleton Tree` section on the left). ![regenerate_wheels](img/tuto_content_authoring_vehicles/wheels_asset.png) @@ -170,7 +170,7 @@ Select the `Vehicles` node and expand the `Vehicles` item in the `Default value` ![vehicle_factory](img/tuto_content_authoring_vehicles/vehicle_factory_page.png) -Press the plus icon to add your new vehicle. Scroll down to the last entry and expand it, it should be empty. Name the make and model of your vehicle and under the class section find your blueprint class that you created in the previous section. Leave the number of wheels as 4 and put the generation as 2. Compile and save. Do a global save for safety and you are now..ready to run your vehicle in a simulation. +Press the plus icon to add your new vehicle. Scroll down to the last entry and expand it, it should be empty. Name the make and model of your vehicle and under the class section find your blueprint class that you created in the previous section. Leave the number of wheels as 4 and put the generation as 2. Compile and save. Do a global save for safety and you are now..ready to run your vehicle in a simulation. Press play in the unreal toolbar to run the simulation. Once it is running, open a terminal and run the `manual_control.py` script with the filter option to specify your new vehicle model: @@ -185,13 +185,13 @@ As it is, the vehicle currently has no textures or colors applied. The next step Once you have your vehicle imported as a basic asset with the mesh and blueprints laid out, you now want to add materials to your vehicle to facilitate photorealistic rendering in the Unreal Engine, for maximum fidelity in your machine learning training data. -The Unreal Editor boasts a comprehensive materials workflow that facilitates the creation of highly realistic materials. This does, however, add a significant degree of complexity to the process. For this reason, CARLA is provided with a large library of material prototypes for you to use without having to start from scratch. +The Unreal Editor boasts a comprehensive materials workflow that facilitates the creation of highly realistic materials. This does, however, add a significant degree of complexity to the process. For this reason, CARLA is provided with a large library of material prototypes for you to use without having to start from scratch. ### Applying a material to your vehicle CARLA provides a prototype material for replicating the glossy finish of vehicles that can mimic numerous different types of vehicle paint jobs and features. Open Unreal editor and in the content browser, locate the material in `Content > Carla > Static > GenericMaterials > 00_MastersOpt`. The basic material is called `M_CarPaint_Master`. Right click on this material and choose `Create Material Instance` from the context material. Name it and move it into the folder where your new vehicle content is stored. -In the Unreal Editor, move the spectator to a point near the floor and drag the skeletal mesh of the vehicle from the content browser into the scene, the body of your vehicle will now appear there. +In the Unreal Editor, move the spectator to a point near the floor and drag the skeletal mesh of the vehicle from the content browser into the scene, the body of your vehicle will now appear there. ![add_model](img/tuto_content_authoring_vehicles/add_model.gif) @@ -207,7 +207,7 @@ The color settings govern the overall color of the car. The base color is simply ![change_base_color](img/tuto_content_authoring_vehicles/change_base_color.gif) -#### __Clear coat__ +#### __Clear coat__ The clear coat settings govern the appearance of the finish and how it reacts to light. The roughness uses a texture to apply imperfections to the vehicle surface, scattering light more with higher values to create a matte look. Subtle adjustments and low values are recommended for a realistic look. Generally, car paint jobs are smooth and reflective, however, this effect might be used more generously to model specialist matte finishes of custom paint jobs. @@ -215,7 +215,7 @@ The clear coat settings govern the appearance of the finish and how it reacts to An important parameter to govern the "shininess" or "glossiness" of your car is the `Clear Coat Intensity`. High values close to 1 will make the coat shiny and glossy. -#### __Orange peel__ +#### __Orange peel__ Finishes on real cars (particularly on mass produced cars for the general market) tend to have imperfections that appear as slight ripples in the paint. The orange peel effect mimics this and makes cars look more realistic. @@ -223,13 +223,13 @@ Finishes on real cars (particularly on mass produced cars for the general market #### __Flakes__ -Some cars have paint jobs that include flakes of other material, such as metals or ceramics, to give the car a `metallic` or `pearlescant` appearance, adding extra glints and reflections that react in an attractive way to light. The flakes parameters allows CARLA to mimic this. To mimic metallic finishes, it would be +Some cars have paint jobs that include flakes of other material, such as metals or ceramics, to give the car a `metallic` or `pearlescant` appearance, adding extra glints and reflections that react in an attractive way to light. The flakes parameters allows CARLA to mimic this. To mimic metallic finishes, it would be ![flakes](img/tuto_content_authoring_vehicles/flakes.gif) #### __Dust__ -Cars often accumulate grease and dust on the body that adds additional texture to the paint, affecting the way it reflects the light. The dust parameters allow you to add patches of disruption to the coat to mimic foreign materials sticking to the paint. +Cars often accumulate grease and dust on the body that adds additional texture to the paint, affecting the way it reflects the light. The dust parameters allow you to add patches of disruption to the coat to mimic foreign materials sticking to the paint. ![dust](img/tuto_content_authoring_vehicles/change_dust.gif) @@ -245,15 +245,15 @@ Here we see the glass parts attached to the main bodywork (not the doors or othe ![main_glass](img/tuto_content_authoring_vehicles/glass.png) -If we separate the constituent mesh parts, we can see that the glass profile is separated into 4 different layers. +If we separate the constituent mesh parts, we can see that the glass profile is separated into 4 different layers. ![main_glass_expanded](img/tuto_content_authoring_vehicles/glass_expanded.png) -The 4 layers are separated into 2 groups, the exterior layers, with normals facing out of the vehicle and the interior layers, with mesh normals facing into the vehicle interior. The following diagram demonstrates +The 4 layers are separated into 2 groups, the exterior layers, with normals facing out of the vehicle and the interior layers, with mesh normals facing into the vehicle interior. The following diagram demonstrates ![glass_layers](img/tuto_content_authoring_vehicles/glass_layers.png) -Once you have created your mesh layers, import them in the content browser into the Unreal Editor in the folder where you have stored your vehicle. +Once you have created your mesh layers, import them in the content browser into the Unreal Editor in the folder where you have stored your vehicle. Shift select the 4 glass layers and drag them into the map so you can see them. @@ -288,7 +288,7 @@ For the wheels of CARLA vehicles, we need to set up a blueprint class for each w ### Wheel blueprint -Inside the folder where you have your new vehicle, right click and choose to create a new blueprint class. Search for +Inside the folder where you have your new vehicle, right click and choose to create a new blueprint class. Search for ![wheel_blueprint](img/tuto_content_authoring_vehicles/wheel_blueprint.png) @@ -298,12 +298,12 @@ Double click on the blueprint to adjust it: ### Collision mesh -Firstly, the default cylinder used for the collision mesh has a high polygon count, so we should replace this with a low polygon version. In the content browser locate the `CollisionWheel` mesh inside `Content > Carla > Blueprints > Vehicles`. Drag it onto the +Firstly, the default cylinder used for the collision mesh has a high polygon count, so we should replace this with a low polygon version. In the content browser locate the `CollisionWheel` mesh inside `Content > Carla > Blueprints > Vehicles`. Drag it onto the `Collision Mesh` slot in the details panel of the blueprint. This will improve performance without any noticeable deficit to physics simulation. ### Tire configuration -Next, we set the tire configuration. Inside `Content > Carla > Blueprints > Vehicles` locate the `CommonTireConfig` configuration and drag it onto the `Tire Config` section of the blueprint. If you double click on the Tire Config in the blueprint, you can adjust the Friction Scale, you can modify the behavior of the vehicle's road handling. By default it is set at 3.5, a value suitable for most vehicle use cases. However, if you wish to model for example a racing vehicle with slick tires, this would be the appropriate parameter to adjust. +Next, we set the tire configuration. Inside `Content > Carla > Blueprints > Vehicles` locate the `CommonTireConfig` configuration and drag it onto the `Tire Config` section of the blueprint. If you double click on the Tire Config in the blueprint, you can adjust the Friction Scale, you can modify the behavior of the vehicle's road handling. By default it is set at 3.5, a value suitable for most vehicle use cases. However, if you wish to model for example a racing vehicle with slick tires, this would be the appropriate parameter to adjust. ### Wheel dimensions @@ -316,24 +316,24 @@ Now plug these numbers into the `Wheel` section of the blueprint.Take care to re ![bp_wheel_dimensions](img/tuto_content_authoring_vehicles/bp_wheel_dimensions.png) -`Affected by handbrake` should be checked for both rear wheels. +`Affected by handbrake` should be checked for both rear wheels. `Steer angle` should be set to the maximum intended steer angle for both front wheels and set to zero for both rear wheels. ### __Suspension characteristics__ -The default values here provide a reasonable starting point. View [__this guide__](tuto_D_customize_vehicle_suspension.md) to set suspension characteristics appropriate to your vehicle type. +The default values here provide a reasonable starting point. View [__this guide__](tuto_D_customize_vehicle_suspension.md) to set suspension characteristics appropriate to your vehicle type. ## Lights -The last element to complete a realistic vehicle for CARLA is the lights, headlights, brake lights, blinkers etc. In your 3D modelling application, you should model some shapes that resemble the lights of the vehicle you are replicating. This would be flat discs or flat cuboid structures for most headlights. Some vehicles may also have strips of LEDs. +The last element to complete a realistic vehicle for CARLA is the lights, headlights, brake lights, blinkers etc. In your 3D modelling application, you should model some shapes that resemble the lights of the vehicle you are replicating. This would be flat discs or flat cuboid structures for most headlights. Some vehicles may also have strips of LEDs. ![lights_blender](img/tuto_content_authoring_vehicles/lights_blender.png) ### UV map -The different types of lights (headlights, blinkers, brake lights, etc.) are distinguished using a texture. You need to create a UV map in your 3D modelling application and position the lights to match up with the relevant region of the texture. +The different types of lights (headlights, blinkers, brake lights, etc.) are distinguished using a texture. You need to create a UV map in your 3D modelling application and position the lights to match up with the relevant region of the texture. ![lights_uv](img/tuto_content_authoring_vehicles/lights_uv_map.png) diff --git a/Docs/tutorials.md b/Docs/tutorials.md index c09204d82..602c99eaf 100644 --- a/Docs/tutorials.md +++ b/Docs/tutorials.md @@ -1,45 +1,45 @@ # Tutorials -Here you will find the multitude of tutorials available to help you understand how to use CARLA's many features. +Here you will find the multitude of tutorials available to help you understand how to use CARLA's many features. ## General ### CARLA features -[__Retrieve simulation data__](tuto_G_retrieve_data.md) — A step by step guide to properly gather data using the recorder. -[__Traffic manager__](tuto_G_traffic_manager.md) — How to use traffic manager to guide traffic around your town. -[__Texture streaming__](tuto_G_texture_streaming.md) — Modify textures of map objects in real time to add variation. -[__Instance segmentation camera__](tuto_G_instance_segmentation_sensor.md) — Use an instance segmentation camera to distinguish objects of the same class. -[__Bounding boxes__](tuto_G_bounding_boxes.md) — Project bounding boxes from CARLA objects into the camera. -[__Pedestrian bones__](tuto_G_pedestrian_bones.md) — Project pedestrian skeleton into camera plane. -[__Control walker skeletons__](tuto_G_control_walker_skeletons.md) — Animate walkers using skeletons. +[__Retrieve simulation data__](tuto_G_retrieve_data.md) — A step by step guide to properly gather data using the recorder. +[__Traffic manager__](tuto_G_traffic_manager.md) — How to use traffic manager to guide traffic around your town. +[__Texture streaming__](tuto_G_texture_streaming.md) — Modify textures of map objects in real time to add variation. +[__Instance segmentation camera__](tuto_G_instance_segmentation_sensor.md) — Use an instance segmentation camera to distinguish objects of the same class. +[__Bounding boxes__](tuto_G_bounding_boxes.md) — Project bounding boxes from CARLA objects into the camera. +[__Pedestrian bones__](tuto_G_pedestrian_bones.md) — Project pedestrian skeleton into camera plane. +[__Control walker skeletons__](tuto_G_control_walker_skeletons.md) — Animate walkers using skeletons. ### Building and integration -[__Build Unreal Engine and CARLA in Docker__](build_docker_unreal.md) — Build Unreal Engine and CARLA in Docker. -[__CarSim Integration__](tuto_G_carsim_integration.md) — Tutorial on how to run a simulation using the CarSim vehicle dynamics engine. -[__RLlib Integration__](tuto_G_rllib_integration.md) — Find out how to run your own experiment using the RLlib library. -[__Chrono Integration__](tuto_G_chrono.md) — Use the Chrono integration to simulation physics. -[__PyGame control__](tuto_G_pygame.md) — Use PyGame to display the output of camera sensors. +[__Build Unreal Engine and CARLA in Docker__](build_docker_unreal.md) — Build Unreal Engine and CARLA in Docker. +[__CarSim Integration__](tuto_G_carsim_integration.md) — Tutorial on how to run a simulation using the CarSim vehicle dynamics engine. +[__RLlib Integration__](tuto_G_rllib_integration.md) — Find out how to run your own experiment using the RLlib library. +[__Chrono Integration__](tuto_G_chrono.md) — Use the Chrono integration to simulation physics. +[__PyGame control__](tuto_G_pygame.md) — Use PyGame to display the output of camera sensors. ## Assets and maps -[__Generate maps with OpenStreetMap__](tuto_G_openstreetmap.md) — Use OpenStreetMap to generate maps for use in simulations. -[__Add a new vehicle__](tuto_A_add_vehicle.md) — Prepare a vehicle to be used in CARLA. -[__Add new props__](tuto_A_add_props.md) — Import additional props into CARLA. -[__Create standalone packages__](tuto_A_create_standalone.md) — Generate and handle standalone packages for assets. -[__Material customization__](tuto_A_material_customization.md) — Edit vehicle and building materials. +[__Generate maps with OpenStreetMap__](tuto_G_openstreetmap.md) — Use OpenStreetMap to generate maps for use in simulations. +[__Add a new vehicle__](tuto_A_add_vehicle.md) — Prepare a vehicle to be used in CARLA. +[__Add new props__](tuto_A_add_props.md) — Import additional props into CARLA. +[__Create standalone packages__](tuto_A_create_standalone.md) — Generate and handle standalone packages for assets. +[__Material customization__](tuto_A_material_customization.md) — Edit vehicle and building materials. ## Developers -[__How to upgrade content__](tuto_D_contribute_assets.md) — Add new content to CARLA. -[__Create a sensor__](tuto_D_create_sensor.md) — Develop a new sensor to be used in CARLA. -[__Create semantic tags__](tuto_D_create_semantic_tags.md) — Define customized tags for semantic segmentation. -[__Customize vehicle suspension__](tuto_D_customize_vehicle_suspension.md) — Modify the suspension system of a vehicle. -[__Generate detailed colliders__](tuto_D_generate_colliders.md) — Create detailed colliders for vehicles. +[__How to upgrade content__](tuto_D_contribute_assets.md) — Add new content to CARLA. +[__Create a sensor__](tuto_D_create_sensor.md) — Develop a new sensor to be used in CARLA. +[__Create semantic tags__](tuto_D_create_semantic_tags.md) — Define customized tags for semantic segmentation. +[__Customize vehicle suspension__](tuto_D_customize_vehicle_suspension.md) — Modify the suspension system of a vehicle. +[__Generate detailed colliders__](tuto_D_generate_colliders.md) — Create detailed colliders for vehicles. [__Make a release__](tuto_D_make_release.md) — How to make a release of CARLA ## Video tutorials -[__Fundamentals__](https://www.youtube.com/watch?v=pONr1R1dy88) — Learn the fundamental concepts of CARLA and start your first script. [__CODE__](https://carla-releases.s3.eu-west-3.amazonaws.com/Docs/Fundamentals.ipynb) -[__An in depth look at CARLA's sensors__](https://www.youtube.com/watch?v=om8klsBj4rc) — An in depth look at CARLA's sensors and how to use them. [__CODE__](https://carla-releases.s3.eu-west-3.amazonaws.com/Docs/Sensors_code.zip) +[__Fundamentals__](https://www.youtube.com/watch?v=pONr1R1dy88) — Learn the fundamental concepts of CARLA and start your first script. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Fundamentals.ipynb) +[__An in depth look at CARLA's sensors__](https://www.youtube.com/watch?v=om8klsBj4rc) — An in depth look at CARLA's sensors and how to use them. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Sensors_code.zip) diff --git a/README.md b/README.md index eaad3df72..0ab8fc1a1 100644 --- a/README.md +++ b/README.md @@ -19,17 +19,17 @@ environmental conditions. ### Download CARLA Linux: -* [**Get CARLA overnight build**](http://carla-releases.s3.amazonaws.com/Linux/Dev/CARLA_Latest.tar.gz) -* [**Get AdditionalMaps overnight build**](http://carla-releases.s3.amazonaws.com/Linux/Dev/AdditionalMaps_Latest.tar.gz) +* [**Get CARLA overnight build**](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Dev/CARLA_Latest.tar.gz) +* [**Get AdditionalMaps overnight build**](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Dev/AdditionalMaps_Latest.tar.gz) Windows: -* [**Get CARLA overnight build**](http://carla-releases.s3.amazonaws.com/Windows/Dev/CARLA_Latest.zip) -* [**Get AdditionalMaps overnight build**](http://carla-releases.s3.amazonaws.com/Windows/Dev/AdditionalMaps_Latest.zip) +* [**Get CARLA overnight build**](https://carla-releases.s3.us-east-005.backblazeb2.com/Windows/Dev/CARLA_Latest.zip) +* [**Get AdditionalMaps overnight build**](https://carla-releases.s3.us-east-005.backblazeb2.com/Windows/Dev/AdditionalMaps_Latest.zip) ### Recommended system * Intel i7 gen 9th - 11th / Intel i9 gen 9th - 11th / AMD ryzen 7 / AMD ryzen 9 -* +32 GB RAM memory +* +32 GB RAM memory * NVIDIA RTX 3070 / NVIDIA RTX 3080 / NVIDIA RTX 4090 * Ubuntu 20.04 @@ -54,7 +54,7 @@ Repositories associated with the CARLA simulation platform: * [**Conditional Imitation-Learning**](https://github.com/felipecode/coiltraine): Training and testing Conditional Imitation Learning models in CARLA * [**AutoWare AV stack**](https://github.com/carla-simulator/carla-autoware): Bridge to connect AutoWare AV stack to CARLA * [**Reinforcement-Learning**](https://github.com/carla-simulator/reinforcement-learning): Code for running Conditional Reinforcement Learning models in CARLA -* [**RoadRunner**](https://www.mathworks.com/products/roadrunner.html): MATLAB GUI based application to create road networks in OpenDrive format +* [**RoadRunner**](https://www.mathworks.com/products/roadrunner.html): MATLAB GUI based application to create road networks in OpenDrive format * [**Map Editor**](https://github.com/carla-simulator/carla-map-editor): Standalone GUI application to enhance RoadRunner maps with traffic lights and traffic signs information diff --git a/Update.bat b/Update.bat index 36e8f15a8..30a6ccb52 100644 --- a/Update.bat +++ b/Update.bat @@ -19,7 +19,7 @@ for /F "delims=" %%a in (%CONTENT_VERSIONS%) do ( set "lastLine=%%a" ) set CONTENT_ID=%lastLine:~-16,16% -set CONTENT_LINK=http://carla-assets.s3.amazonaws.com/%CONTENT_ID%.tar.gz +set CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/%CONTENT_ID%.tar.gz if "%CONTENT_ID:~0,2%"=="20" ( set CONTENT_FILE=%CONTENT_FOLDER%/%CONTENT_ID%.tar.gz set CONTENT_FILE_TAR=%CONTENT_FOLDER%/%CONTENT_ID%.tar diff --git a/Update.sh b/Update.sh index 72ed63907..58d8a1999 100755 --- a/Update.sh +++ b/Update.sh @@ -47,7 +47,7 @@ pushd "$SCRIPT_DIR" >/dev/null CONTENT_FOLDER="${SCRIPT_DIR}/Unreal/CarlaUE4/Content/Carla" CONTENT_ID=$(tac $SCRIPT_DIR/Util/ContentVersions.txt | egrep -m 1 . | rev | cut -d' ' -f1 | rev) -CONTENT_LINK=http://carla-assets.s3.amazonaws.com/${CONTENT_ID}.tar.gz +CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz VERSION_FILE="${CONTENT_FOLDER}/.version" diff --git a/Util/BuildTools/Setup.bat b/Util/BuildTools/Setup.bat index 46eac87e5..344f2bb08 100644 --- a/Util/BuildTools/Setup.bat +++ b/Util/BuildTools/Setup.bat @@ -367,7 +367,7 @@ FOR /F "usebackq tokens=1,2" %%i in ("%VERSION_FILE%") do ( set ASSETS_VERSION=%%i set HASH=%%j ) -set URL=http://carla-assets.s3.amazonaws.com/%HASH%.tar.gz +set URL=http://carla-assets.s3.us-east-005.backblazeb2.com/%HASH%.tar.gz rem ============================================================================ rem -- Generate CMake ---------------------------------------------------------- diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index 9aa65533b..5277db2ac 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -95,7 +95,7 @@ for PY_VERSION in ${PY_VERSION_LIST[@]} ; do # try to use the backup boost we have in Jenkins if [[ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ]] ; then log "Using boost backup" - wget "https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/${BOOST_PACKAGE_BASENAME}.tar.gz" || true + wget "https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/${BOOST_PACKAGE_BASENAME}.tar.gz" || true fi log "Extracting boost for Python ${PY_VERSION}." @@ -392,7 +392,7 @@ else # try to use the backup boost we have in Jenkins if [[ ! -f "${XERCESC_BASENAME}.tar.gz" ]] ; then log "Using xerces backup" - wget "https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/${XERCESC_BASENAME}.tar.gz" || true + wget "https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/${XERCESC_BASENAME}.tar.gz" || true fi log "Extracting xerces-c." diff --git a/Util/ContentVersions.txt b/Util/ContentVersions.txt index f664bd4a2..9489f8087 100644 --- a/Util/ContentVersions.txt +++ b/Util/ContentVersions.txt @@ -25,7 +25,7 @@ # # You can download it directly from # -# http://carla-assets.s3.amazonaws.com/PUT_FILE_ID_HERE.tar.gz +# http://carla-assets.s3.us-east-005.backblazeb2.com/PUT_FILE_ID_HERE.tar.gz 0.9.5: 20190404_c7b464a 0.9.6: 20190710_0097e66 diff --git a/Util/CreateDebian.sh b/Util/CreateDebian.sh index 04664aeb1..3dcc7d941 100755 --- a/Util/CreateDebian.sh +++ b/Util/CreateDebian.sh @@ -28,8 +28,8 @@ fi CARLA_VERSION=$1 CARLA_DIR=carla-simulator-${CARLA_VERSION} -CARLA_RELEASE_URL=https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_${CARLA_VERSION}.tar.gz -ADDITIONAL_MAPS_URL=https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/AdditionalMaps_${CARLA_VERSION}.tar.gz +CARLA_RELEASE_URL=https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/CARLA_${CARLA_VERSION}.tar.gz +ADDITIONAL_MAPS_URL=https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/AdditionalMaps_${CARLA_VERSION}.tar.gz # Adding maintainer name. DEBFULLNAME=Carla\ Simulator\ Team diff --git a/Util/InstallersWin/install_boost.bat b/Util/InstallersWin/install_boost.bat index bcefaa72d..441ece291 100644 --- a/Util/InstallersWin/install_boost.bat +++ b/Util/InstallersWin/install_boost.bat @@ -91,7 +91,7 @@ if not exist "%BOOST_SRC_DIR%" ( ) if not exist "%BOOST_TEMP_FILE_DIR%" ( echo %FILE_N% Using Boost backup - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/%BOOST_TEMP_FILE%', '%BOOST_TEMP_FILE_DIR%')" + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/%BOOST_TEMP_FILE%', '%BOOST_TEMP_FILE_DIR%')" ) if %errorlevel% neq 0 goto error_download echo %FILE_N% Extracting boost from "%BOOST_TEMP_FILE%", this can take a while... diff --git a/Util/InstallersWin/install_libpng.bat b/Util/InstallersWin/install_libpng.bat index 383def190..fa26dc0df 100644 --- a/Util/InstallersWin/install_libpng.bat +++ b/Util/InstallersWin/install_libpng.bat @@ -81,7 +81,7 @@ if not exist "%LIBPNG_SRC_DIR%" ( ) if not exist "%LIBPNG_TEMP_FILE_DIR%" ( echo %FILE_N% Using %LIBPNG_BASENAME% from backup. - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/libpng-%LIBPNG_VERSION%-src.zip', '%LIBPNG_TEMP_FILE_DIR%')" + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/libpng-%LIBPNG_VERSION%-src.zip', '%LIBPNG_TEMP_FILE_DIR%')" ) if %errorlevel% neq 0 goto error_download rem Extract the downloaded library diff --git a/Util/InstallersWin/install_xercesc.bat b/Util/InstallersWin/install_xercesc.bat index cf7be255b..a99bf1b47 100644 --- a/Util/InstallersWin/install_xercesc.bat +++ b/Util/InstallersWin/install_xercesc.bat @@ -58,7 +58,7 @@ rem ../xerces-c-x.x.x-src.zip set XERCESC_TEMP_FILE_DIR=%BUILD_DIR%%XERCESC_TEMP_FILE% set XERCESC_REPO=https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-%XERCESC_VERSION%.zip -set XERCESC_BACKUP_REPO=https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/xerces-c-%XERCESC_VERSION%.zip +set XERCESC_BACKUP_REPO=https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/xerces-c-%XERCESC_VERSION%.zip rem ../xerces-c-x.x.x-source/ set XERCESC_SRC_DIR=%BUILD_DIR%%XERCESC_BASENAME%-%XERCESC_VERSION%-source\ @@ -93,7 +93,7 @@ if not exist "%XERCESC_SRC_DIR%" ( del "%XERCESC_TEMP_FILE_DIR%" echo %FILE_N% Removing dir "%BUILD_DIR%manifest" rmdir /s/q "%BUILD_DIR%manifest" - + echo %FILE_N% Renaming dir %XERCESC_TEMP_FOLDER_DIR% to %XERCESC_BASENAME%-%XERCESC_VERSION%-source rename "%XERCESC_TEMP_FOLDER_DIR%" "%XERCESC_BASENAME%-%XERCESC_VERSION%-source" ) else ( @@ -133,7 +133,7 @@ cmake .. -G %GENERATOR% %PLATFORM%^ "%BUILD_DIR%%XERCESC_BASENAME%-%XERCESC_VERSION%-source" if %errorlevel% neq 0 goto error_cmake -cmake --build . --config Release --target install +cmake --build . --config Release --target install goto success diff --git a/Util/InstallersWin/install_zlib.bat b/Util/InstallersWin/install_zlib.bat index f418293d3..e6bdf2db6 100644 --- a/Util/InstallersWin/install_zlib.bat +++ b/Util/InstallersWin/install_zlib.bat @@ -55,7 +55,7 @@ set ZLIB_TEMP_FILE=%ZLIB_TEMP_FOLDER%.zip set ZLIB_TEMP_FILE_DIR=%BUILD_DIR%%ZLIB_TEMP_FILE% set ZLIB_REPO=https://www.zlib.net/zlib%ZLIB_VERSION:.=%.zip -set ZLIB_BACKUP_REPO=https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/zlib%ZLIB_VERSION:.=%.zip +set ZLIB_BACKUP_REPO=https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/zlib%ZLIB_VERSION:.=%.zip set ZLIB_SRC_DIR=%BUILD_DIR%%ZLIB_BASENAME%-source\ set ZLIB_INSTALL_DIR=%BUILD_DIR%%ZLIB_BASENAME%-install\ From 43a1436c659c5a26bdd9e86d865fb2805ab9f6a1 Mon Sep 17 00:00:00 2001 From: xiaofei <13319202082@163.com> Date: Wed, 13 Dec 2023 10:08:50 +0800 Subject: [PATCH 003/105] Fix GenerateLaneMarksForCenterLine problem --- LibCarla/source/carla/road/MeshFactory.cpp | 37 +++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/LibCarla/source/carla/road/MeshFactory.cpp b/LibCarla/source/carla/road/MeshFactory.cpp index 43eef0617..83cb3f513 100644 --- a/LibCarla/source/carla/road/MeshFactory.cpp +++ b/LibCarla/source/carla/road/MeshFactory.cpp @@ -930,8 +930,23 @@ std::map>> MeshFactory: std::pair edges = lane.GetCornerPositions(s_current, road_param.extra_lane_width); - geom::Vector3D director = edges.second - edges.first; - director /= director.Length(); + geom::Vector3D director; + if (lane.GetWidth(s_current) != 0) { + director = edges.second - edges.first; + director /= director.Length(); + } else { + const std::map & lanes = lane_section.GetLanes(); + for (const auto& lane_pair : lanes) { + if (lane_pair.second.GetWidth(s_current) != 0) { + std::pair another_edge = + lane_pair.second.GetCornerPositions(s_current, road_param.extra_lane_width); + director = another_edge.second - another_edge.first; + director /= director.Length(); + break; + } + } + } + geom::Vector3D endmarking = edges.first + director * lane_mark_info.width; out_mesh.AddVertex(edges.first); @@ -944,8 +959,22 @@ std::map>> MeshFactory: edges = lane.GetCornerPositions(s_current, road_param.extra_lane_width); - director = edges.second - edges.first; - director /= director.Length(); + if (lane.GetWidth(s_current) != 0) { + director = edges.second - edges.first; + director /= director.Length(); + } else { + const std::map & lanes = lane_section.GetLanes(); + for (const auto& lane_pair : lanes) { + if (lane_pair.second.GetWidth(s_current) != 0) { + std::pair another_edge = + lane_pair.second.GetCornerPositions(s_current, road_param.extra_lane_width); + director = another_edge.second - another_edge.first; + director /= director.Length(); + break; + } + } + } + endmarking = edges.first + director * lane_mark_info.width; out_mesh.AddVertex(edges.first); From 60af9139232505cad4cc55fe7b9401c852855e6f Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:50:28 +0100 Subject: [PATCH 004/105] corrected tutorials page (#7000) --- Docs/tutorials.md | 50 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/Docs/tutorials.md b/Docs/tutorials.md index 602c99eaf..77c227acb 100644 --- a/Docs/tutorials.md +++ b/Docs/tutorials.md @@ -6,40 +6,40 @@ Here you will find the multitude of tutorials available to help you understand h ### CARLA features -[__Retrieve simulation data__](tuto_G_retrieve_data.md) — A step by step guide to properly gather data using the recorder. -[__Traffic manager__](tuto_G_traffic_manager.md) — How to use traffic manager to guide traffic around your town. -[__Texture streaming__](tuto_G_texture_streaming.md) — Modify textures of map objects in real time to add variation. -[__Instance segmentation camera__](tuto_G_instance_segmentation_sensor.md) — Use an instance segmentation camera to distinguish objects of the same class. -[__Bounding boxes__](tuto_G_bounding_boxes.md) — Project bounding boxes from CARLA objects into the camera. -[__Pedestrian bones__](tuto_G_pedestrian_bones.md) — Project pedestrian skeleton into camera plane. -[__Control walker skeletons__](tuto_G_control_walker_skeletons.md) — Animate walkers using skeletons. +* [__Retrieve simulation data__](tuto_G_retrieve_data.md) — A step by step guide to properly gather data using the recorder. +* [__Traffic manager__](tuto_G_traffic_manager.md) — How to use traffic manager to guide traffic around your town. +* [__Texture streaming__](tuto_G_texture_streaming.md) — Modify textures of map objects in real time to add variation. +* [__Instance segmentation camera__](tuto_G_instance_segmentation_sensor.md) — Use an instance segmentation camera to distinguish objects of the same class. +* [__Bounding boxes__](tuto_G_bounding_boxes.md) — Project bounding boxes from CARLA objects into the camera. +* [__Pedestrian bones__](tuto_G_pedestrian_bones.md) — Project pedestrian skeleton into camera plane. +* [__Control walker skeletons__](tuto_G_control_walker_skeletons.md) — Animate walkers using skeletons. ### Building and integration -[__Build Unreal Engine and CARLA in Docker__](build_docker_unreal.md) — Build Unreal Engine and CARLA in Docker. -[__CarSim Integration__](tuto_G_carsim_integration.md) — Tutorial on how to run a simulation using the CarSim vehicle dynamics engine. -[__RLlib Integration__](tuto_G_rllib_integration.md) — Find out how to run your own experiment using the RLlib library. -[__Chrono Integration__](tuto_G_chrono.md) — Use the Chrono integration to simulation physics. -[__PyGame control__](tuto_G_pygame.md) — Use PyGame to display the output of camera sensors. +* [__Build Unreal Engine and CARLA in Docker__](build_docker_unreal.md) — Build Unreal Engine and CARLA in Docker. +* [__CarSim Integration__](tuto_G_carsim_integration.md) — Tutorial on how to run a simulation using the CarSim vehicle dynamics engine. +* [__RLlib Integration__](tuto_G_rllib_integration.md) — Find out how to run your own experiment using the RLlib library. +* [__Chrono Integration__](tuto_G_chrono.md) — Use the Chrono integration to simulation physics. +* [__PyGame control__](tuto_G_pygame.md) — Use PyGame to display the output of camera sensors. ## Assets and maps -[__Generate maps with OpenStreetMap__](tuto_G_openstreetmap.md) — Use OpenStreetMap to generate maps for use in simulations. -[__Add a new vehicle__](tuto_A_add_vehicle.md) — Prepare a vehicle to be used in CARLA. -[__Add new props__](tuto_A_add_props.md) — Import additional props into CARLA. -[__Create standalone packages__](tuto_A_create_standalone.md) — Generate and handle standalone packages for assets. -[__Material customization__](tuto_A_material_customization.md) — Edit vehicle and building materials. +* [__Generate maps with OpenStreetMap__](tuto_G_openstreetmap.md) — Use OpenStreetMap to generate maps for use in simulations. +* [__Add a new vehicle__](tuto_A_add_vehicle.md) — Prepare a vehicle to be used in CARLA. +* [__Add new props__](tuto_A_add_props.md) — Import additional props into CARLA. +* [__Create standalone packages__](tuto_A_create_standalone.md) — Generate and handle standalone packages for assets. +* [__Material customization__](tuto_A_material_customization.md) — Edit vehicle and building materials. ## Developers -[__How to upgrade content__](tuto_D_contribute_assets.md) — Add new content to CARLA. -[__Create a sensor__](tuto_D_create_sensor.md) — Develop a new sensor to be used in CARLA. -[__Create semantic tags__](tuto_D_create_semantic_tags.md) — Define customized tags for semantic segmentation. -[__Customize vehicle suspension__](tuto_D_customize_vehicle_suspension.md) — Modify the suspension system of a vehicle. -[__Generate detailed colliders__](tuto_D_generate_colliders.md) — Create detailed colliders for vehicles. -[__Make a release__](tuto_D_make_release.md) — How to make a release of CARLA +* [__How to upgrade content__](tuto_D_contribute_assets.md) — Add new content to CARLA. +* [__Create a sensor__](tuto_D_create_sensor.md) — Develop a new sensor to be used in CARLA. +* [__Create semantic tags__](tuto_D_create_semantic_tags.md) — Define customized tags for semantic segmentation. +* [__Customize vehicle suspension__](tuto_D_customize_vehicle_suspension.md) — Modify the suspension system of a vehicle. +* [__Generate detailed colliders__](tuto_D_generate_colliders.md) — Create detailed colliders for vehicles. +* [__Make a release__](tuto_D_make_release.md) — How to make a release of CARLA ## Video tutorials -[__Fundamentals__](https://www.youtube.com/watch?v=pONr1R1dy88) — Learn the fundamental concepts of CARLA and start your first script. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Fundamentals.ipynb) -[__An in depth look at CARLA's sensors__](https://www.youtube.com/watch?v=om8klsBj4rc) — An in depth look at CARLA's sensors and how to use them. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Sensors_code.zip) +* [__Fundamentals__](https://www.youtube.com/watch?v=pONr1R1dy88) — Learn the fundamental concepts of CARLA and start your first script. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Fundamentals.ipynb) +* [__An in depth look at CARLA's sensors__](https://www.youtube.com/watch?v=om8klsBj4rc) — An in depth look at CARLA's sensors and how to use them. [__CODE__](https://carla-releases.s3.us-east-005.backblazeb2.com/Docs/Sensors_code.zip) From b9a973d0dfbfb6f0f8cfc64974b80b1c99c5f37d Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 14 Dec 2023 10:45:34 +0100 Subject: [PATCH 005/105] update jenkinsfile_new with complete pipeline but without updating repos --- Jenkinsfile_new | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 97f89a2a2..c4da6ccbc 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -159,14 +159,14 @@ pipeline } } } - /* + stage('ubuntu deploy dev') { - when { branch "dev"; } + when { expression { true } or branch "dev"; } steps { sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest"' + //sh 'make deploy ARGS="--replace-latest"' } } stage('ubuntu deploy master') @@ -175,12 +175,12 @@ pipeline steps { sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest --docker-push"' + //sh 'make deploy ARGS="--replace-latest --docker-push"' } } stage('ubuntu Doxygen') { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } + when { expression { true } or anyOf { branch "master"; branch "dev"; buildingTag() } } steps { sh 'rm -rf ~/carla-simulator.github.io/Doxygen' @@ -192,12 +192,14 @@ pipeline ''' sh 'make docs' sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' + /* sh ''' cd ~/carla-simulator.github.io git add Doxygen git commit -m "Updated c++ docs" || true git push ''' + */ } post { @@ -228,7 +230,7 @@ pipeline } } } - /* + stage('windows') { agent { label "windows" } @@ -319,7 +321,7 @@ pipeline bat """ call ../setEnv64.bat git checkout . - make deploy ARGS="--replace-latest" + REM make deploy ARGS="--replace-latest" """ } } @@ -341,11 +343,11 @@ pipeline jenkinsLib.DeleteWindowsBuildNode(JOB_ID) } } - + */ } } } - */ + } } } From 86fcfe5e807b22c174ed38e8002da89248095c8d Mon Sep 17 00:00:00 2001 From: synkrotron Date: Mon, 18 Dec 2023 17:02:33 +0800 Subject: [PATCH 006/105] Fix problems of lanemarking generation and tree generation (#7006) Co-authored-by: xiaofei <13319202082@163.com> --- LibCarla/source/carla/road/Map.cpp | 1 + LibCarla/source/carla/road/MeshFactory.cpp | 113 +++++++++------------ LibCarla/source/carla/road/MeshFactory.h | 9 ++ 3 files changed, 56 insertions(+), 67 deletions(-) diff --git a/LibCarla/source/carla/road/Map.cpp b/LibCarla/source/carla/road/Map.cpp index e746ad893..70bedbeee 100644 --- a/LibCarla/source/carla/road/Map.cpp +++ b/LibCarla/source/carla/road/Map.cpp @@ -1232,6 +1232,7 @@ namespace road { while(s_current < s_end){ if(lane->GetWidth(s_current) != 0.0f){ const auto edges = lane->GetCornerPositions(s_current, 0); + if (edges.first == edges.second) continue; geom::Vector3D director = edges.second - edges.first; geom::Vector3D treeposition = edges.first - director.MakeUnitVector() * distancefromdrivinglineborder; geom::Transform lanetransform = lane->ComputeTransform(s_current); diff --git a/LibCarla/source/carla/road/MeshFactory.cpp b/LibCarla/source/carla/road/MeshFactory.cpp index 83cb3f513..8d7019ebb 100644 --- a/LibCarla/source/carla/road/MeshFactory.cpp +++ b/LibCarla/source/carla/road/MeshFactory.cpp @@ -761,14 +761,11 @@ std::map>> MeshFactory: case carla::road::element::LaneMarking::Type::Solid: { size_t currentIndex = out_mesh.GetVertices().size() + 1; - std::pair edges = lane.GetCornerPositions(s_current, 0); - - geom::Vector3D director = edges.second - edges.first; - director /= director.Length(); - geom::Vector3D endmarking = edges.first + director * lane_mark_info.width; + std::pair edges = + ComputeEdgesForLanemark(lane_section, lane, s_current, lane_mark_info.width); out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); + out_mesh.AddVertex(edges.second); out_mesh.AddIndex(currentIndex); out_mesh.AddIndex(currentIndex + 1); @@ -784,30 +781,23 @@ std::map>> MeshFactory: case carla::road::element::LaneMarking::Type::Broken: { size_t currentIndex = out_mesh.GetVertices().size() + 1; - std::pair edges = - lane.GetCornerPositions(s_current, road_param.extra_lane_width); - - geom::Vector3D director = edges.second - edges.first; - director /= director.Length(); - geom::Vector3D endmarking = edges.first + director * lane_mark_info.width; + std::pair edges = + ComputeEdgesForLanemark(lane_section, lane, s_current, lane_mark_info.width); out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); + out_mesh.AddVertex(edges.second); s_current += road_param.resolution * 3; if (s_current > s_end) { s_current = s_end; } - edges = lane.GetCornerPositions(s_current, road_param.extra_lane_width); - director = edges.second - edges.first; - director /= director.Length(); - endmarking = edges.first + director * lane_mark_info.width; + edges = ComputeEdgesForLanemark(lane_section, lane, s_current, lane_mark_info.width); out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); - + out_mesh.AddVertex(edges.second); + out_mesh.AddIndex(currentIndex); out_mesh.AddIndex(currentIndex + 1); out_mesh.AddIndex(currentIndex + 2); @@ -864,13 +854,12 @@ std::map>> MeshFactory: const carla::road::element::RoadInfoMarkRecord* road_info_mark = lane.GetInfo(s_current); if (road_info_mark != nullptr) { carla::road::element::LaneMarking lane_mark_info(*road_info_mark); - std::pair edges = lane.GetCornerPositions(s_end, 0); - geom::Vector3D director = edges.second - edges.first; - director /= director.Length(); - geom::Vector3D endmarking = edges.first + director * lane_mark_info.width; + + std::pair edges = + ComputeEdgesForLanemark(lane_section, lane, s_end, lane_mark_info.width); out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); + out_mesh.AddVertex(edges.second); } inout.push_back(std::make_unique(out_mesh)); } @@ -927,58 +916,21 @@ std::map>> MeshFactory: case carla::road::element::LaneMarking::Type::Broken: { size_t currentIndex = out_mesh.GetVertices().size() + 1; - std::pair edges = - lane.GetCornerPositions(s_current, road_param.extra_lane_width); - - geom::Vector3D director; - if (lane.GetWidth(s_current) != 0) { - director = edges.second - edges.first; - director /= director.Length(); - } else { - const std::map & lanes = lane_section.GetLanes(); - for (const auto& lane_pair : lanes) { - if (lane_pair.second.GetWidth(s_current) != 0) { - std::pair another_edge = - lane_pair.second.GetCornerPositions(s_current, road_param.extra_lane_width); - director = another_edge.second - another_edge.first; - director /= director.Length(); - break; - } - } - } - - geom::Vector3D endmarking = edges.first + director * lane_mark_info.width; - + std::pair edges = + ComputeEdgesForLanemark(lane_section, lane, s_current, lane_mark_info.width); + out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); + out_mesh.AddVertex(edges.second); s_current += road_param.resolution * 3; if (s_current > s_end) { s_current = s_end; } - edges = lane.GetCornerPositions(s_current, road_param.extra_lane_width); - - if (lane.GetWidth(s_current) != 0) { - director = edges.second - edges.first; - director /= director.Length(); - } else { - const std::map & lanes = lane_section.GetLanes(); - for (const auto& lane_pair : lanes) { - if (lane_pair.second.GetWidth(s_current) != 0) { - std::pair another_edge = - lane_pair.second.GetCornerPositions(s_current, road_param.extra_lane_width); - director = another_edge.second - another_edge.first; - director /= director.Length(); - break; - } - } - } - - endmarking = edges.first + director * lane_mark_info.width; + edges = ComputeEdgesForLanemark(lane_section, lane, s_current, lane_mark_info.width); out_mesh.AddVertex(edges.first); - out_mesh.AddVertex(endmarking); + out_mesh.AddVertex(edges.second); out_mesh.AddIndex(currentIndex); out_mesh.AddIndex(currentIndex + 1); @@ -1179,6 +1131,33 @@ std::map>> MeshFactory: return std::make_unique(out_mesh); } + std::pair MeshFactory::ComputeEdgesForLanemark( + const road::LaneSection& lane_section, + const road::Lane& lane, + const double s_current, + const double lanemark_width) const { + std::pair edges = + lane.GetCornerPositions(s_current, road_param.extra_lane_width); + + geom::Vector3D director; + if (edges.first != edges.second) { + director = edges.second - edges.first; + director /= director.Length(); + } else { + const std::map & lanes = lane_section.GetLanes(); + for (const auto& lane_pair : lanes) { + std::pair another_edge = + lane_pair.second.GetCornerPositions(s_current, road_param.extra_lane_width); + if (another_edge.first != another_edge.second) { + director = another_edge.second - another_edge.first; + director /= director.Length(); + break; + } + } + } + geom::Vector3D endmarking = edges.first + director * lanemark_width; + return std::make_pair(edges.first, endmarking); + } } // namespace geom } // namespace carla diff --git a/LibCarla/source/carla/road/MeshFactory.h b/LibCarla/source/carla/road/MeshFactory.h index 0334d01d4..42bc60ea1 100644 --- a/LibCarla/source/carla/road/MeshFactory.h +++ b/LibCarla/source/carla/road/MeshFactory.h @@ -148,6 +148,15 @@ namespace geom { RoadParameters road_param; + private: + + // Calculate the points on both sides of the lane mark for the specified s_current + std::pair ComputeEdgesForLanemark( + const road::LaneSection& lane_section, + const road::Lane& lane, + const double s_current, + const double lanemark_width) const; + }; } // namespace geom From 718875708c456ec4bc8ac92abc4b55aefbf14ec6 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 18 Dec 2023 12:54:46 +0100 Subject: [PATCH 007/105] clean close comment token --- Jenkinsfile_new | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index c4da6ccbc..a9baeba04 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -209,7 +209,6 @@ pipeline } } } - */ } post { From ae2e4118f80a2e824a3f5dc39f0b3d3f203c0907 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 18 Dec 2023 14:39:39 +0100 Subject: [PATCH 008/105] fix expression --- Jenkinsfile_new | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index a9baeba04..0999a189d 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -162,7 +162,7 @@ pipeline stage('ubuntu deploy dev') { - when { expression { true } or branch "dev"; } + when { true or branch "dev"; } steps { sh 'git checkout .' @@ -180,7 +180,7 @@ pipeline } stage('ubuntu Doxygen') { - when { expression { true } or anyOf { branch "master"; branch "dev"; buildingTag() } } + when { true or anyOf { branch "master"; branch "dev"; buildingTag() } } steps { sh 'rm -rf ~/carla-simulator.github.io/Doxygen' From 5e41b69a00b7e98882857437053192143659f720 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 18 Dec 2023 14:43:45 +0100 Subject: [PATCH 009/105] code for testing --- Jenkinsfile_new | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 0999a189d..c7dbbc731 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -162,7 +162,16 @@ pipeline stage('ubuntu deploy dev') { - when { true or branch "dev"; } + // TESTING + when { branch "ruben/Jenkins_migrate"; } + steps + { + sh 'git checkout .' + //sh 'make deploy ARGS="--replace-latest"' + } + // END TESTING + + when { branch "dev"; } steps { sh 'git checkout .' From 5c1afc1d26db14c7784bf24b153fdf16a0527e17 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 18 Dec 2023 14:45:39 +0100 Subject: [PATCH 010/105] fix error --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index c7dbbc731..5dd8cee4f 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -189,7 +189,7 @@ pipeline } stage('ubuntu Doxygen') { - when { true or anyOf { branch "master"; branch "dev"; buildingTag() } } + when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { sh 'rm -rf ~/carla-simulator.github.io/Doxygen' From b8193195319bf0c391cff211d862b62cc93bc527 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 18 Dec 2023 14:49:19 +0100 Subject: [PATCH 011/105] code for testing --- Jenkinsfile_new | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 5dd8cee4f..36b7c8372 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -160,17 +160,19 @@ pipeline } } - stage('ubuntu deploy dev') + stage('TEST: ubuntu deploy sim') { - // TESTING when { branch "ruben/Jenkins_migrate"; } steps { sh 'git checkout .' //sh 'make deploy ARGS="--replace-latest"' } - // END TESTING + } + + stage('ubuntu deploy dev') + { when { branch "dev"; } steps { @@ -187,6 +189,39 @@ pipeline //sh 'make deploy ARGS="--replace-latest --docker-push"' } } + + stage('TEST: ubuntu Doxygen') + { + when { branch "ruben/Jenkins_migrate" } + steps + { + sh 'rm -rf ~/carla-simulator.github.io/Doxygen' + sh ''' + cd ~/carla-simulator.github.io + git remote set-url origin git@docs:carla-simulator/carla-simulator.github.io.git + git fetch + git checkout -B master origin/master + ''' + sh 'make docs' + sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' + /* + sh ''' + cd ~/carla-simulator.github.io + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + */ + } + post + { + always + { + deleteDir() + } + } + } + stage('ubuntu Doxygen') { when { anyOf { branch "master"; branch "dev"; buildingTag() } } From d76173993bec0c1ef762862f12959d1ba6707891 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 19 Dec 2023 11:39:03 +0100 Subject: [PATCH 012/105] update build to use python 3.8 --- Jenkinsfile_new | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 36b7c8372..d1470ed05 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -45,7 +45,7 @@ pipeline steps { sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make setup ARGS="--python-version=3.8, 2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } } stage('ubuntu build') @@ -53,7 +53,7 @@ pipeline steps { sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make CarlaUE4Editor ARGS="--chrono"' sh 'make plugins' sh 'make examples' @@ -73,7 +73,7 @@ pipeline { steps { - sh 'make check ARGS="--all --xml --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' } post { @@ -95,8 +95,8 @@ pipeline { steps { - sh 'make package ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make examples ARGS="localhost 3654"' } post @@ -136,7 +136,7 @@ pipeline 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 'make smoke_tests ARGS="--xml --python-version=3.7 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' } post From ae19bb4c26c131bd806cf9c36db7bbec84dcd2d7 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 20 Dec 2023 11:53:54 +0100 Subject: [PATCH 013/105] using global path for the setEnv script on windows --- Jenkinsfile_new | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index d1470ed05..a6e3a0d73 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -288,11 +288,11 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make setup ARGS="--chrono" """ } @@ -302,19 +302,19 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make LibCarla """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make PythonAPI """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make CarlaUE4Editor ARGS="--chrono" """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make plugins """ } @@ -332,7 +332,7 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat call Update.bat """ } @@ -342,11 +342,11 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make package ARGS="--chrono" """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate" """ } @@ -362,7 +362,7 @@ pipeline when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat git checkout . REM make deploy ARGS="--replace-latest" """ From 7d9ca7def60d9b87422efa5877e3efb87f1f884a Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 20 Dec 2023 15:10:33 +0100 Subject: [PATCH 014/105] build python api only for python 3 --- Jenkinsfile_new | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index a6e3a0d73..f1bef1d7f 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -45,7 +45,7 @@ pipeline steps { sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.8, 2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make setup ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } } stage('ubuntu build') @@ -53,7 +53,7 @@ pipeline steps { sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make PythonAPI ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make CarlaUE4Editor ARGS="--chrono"' sh 'make plugins' sh 'make examples' @@ -73,7 +73,7 @@ pipeline { steps { - sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make check ARGS="--all --xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' } post { @@ -95,8 +95,8 @@ pipeline { steps { - sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make package ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make examples ARGS="localhost 3654"' } post From 1c9d8663b4a8cede6b7e60c590880e6d72d9547e Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Wed, 20 Dec 2023 16:47:18 +0100 Subject: [PATCH 015/105] specified CMake version 3.15 for windows build (#7019) --- Docs/build_windows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/build_windows.md b/Docs/build_windows.md index 627e1982c..06aeef776 100644 --- a/Docs/build_windows.md +++ b/Docs/build_windows.md @@ -40,7 +40,7 @@ In this section you will find details of system requirements, minor and major so #### Minor installations -* [__CMake__](https://cmake.org/download/) generates standard build files from simple configuration files. +* [__CMake__](https://cmake.org/download/) generates standard build files from simple configuration files. __We recommend you use version 3.15+__. * [__Git__](https://git-scm.com/downloads) is a version control system to manage CARLA repositories. * [__Make__](http://gnuwin32.sourceforge.net/packages/make.htm) generates the executables. It is necessary to use __Make version 3.81__, otherwise the build may fail. If you have multiple versions of Make installed, check that you are using version 3.81 in your PATH when building CARLA. You can check your default version of Make by running `make --version`. * [__7Zip__](https://www.7-zip.org/) is a file compression software. This is required for automatic decompression of asset files and prevents errors during build time due to large files being extracted incorrectly or partially. From 27845c08e5d1c6c4bf893844fc7c338582153ecc Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 21 Dec 2023 13:55:49 +0100 Subject: [PATCH 016/105] revert build for python2 too --- Jenkinsfile_new | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index f1bef1d7f..4a20695cf 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -45,7 +45,7 @@ pipeline steps { sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } } stage('ubuntu build') @@ -53,7 +53,7 @@ pipeline steps { sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make CarlaUE4Editor ARGS="--chrono"' sh 'make plugins' sh 'make examples' @@ -73,7 +73,7 @@ pipeline { steps { - sh 'make check ARGS="--all --xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' } post { @@ -95,8 +95,8 @@ pipeline { steps { - sh 'make package ARGS="--python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make examples ARGS="localhost 3654"' } post @@ -136,7 +136,7 @@ pipeline 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 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make smoke_tests ARGS="--xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' } post From b4d61aeae590e8fc343e66348a8c4c5e9b265f2e Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 21 Dec 2023 15:25:50 +0100 Subject: [PATCH 017/105] delete test node creation --- Jenkinsfile_new | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 4a20695cf..b8762d23e 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -108,7 +108,7 @@ pipeline // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' stash includes: 'Examples/', name: 'ubuntu_examples' } - success + /*success { node('master') { @@ -120,7 +120,7 @@ pipeline jenkinsLib.CreateUbuntuTestNode(JOB_ID) } } - } + }*/ } } stage('ubuntu smoke tests') From d29e5963301c186469d781db394eb1de60ed58e8 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Sun, 24 Dec 2023 12:53:29 +0100 Subject: [PATCH 018/105] test only using python 3 --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index b8762d23e..91c65f1cc 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -136,7 +136,7 @@ pipeline 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 'make smoke_tests ARGS="--xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' } post From b87fad064bbc7ca559f427a47d028f5678427e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=B7=E4=B8=9C?= Date: Thu, 4 Jan 2024 17:34:52 +0800 Subject: [PATCH 019/105] Fix some spelling errors in the document (#7043) * Remove excess parentheses from RSS document * Fix some spelling errors in the document --- Docs/adv_rss.md | 2 +- Docs/tuto_A_material_customization.md | 8 ++++---- Docs/tuto_D_generate_colliders.md | 2 +- Docs/tuto_G_retrieve_data.md | 2 +- Docs/tuto_G_texture_streaming.md | 2 +- Docs/tuto_content_authoring_maps.md | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Docs/adv_rss.md b/Docs/adv_rss.md index 6ec09807c..e357822d4 100644 --- a/Docs/adv_rss.md +++ b/Docs/adv_rss.md @@ -59,7 +59,7 @@ As a reminder, the feature is only available for the Linux build so far. ### Dependencies -There are additional prerequisites required for building RSS and its dependencies. Take a look at the [official documentation](https://intel.github.io/ad-rss-lib/BUILDING)) to know more about this. +There are additional prerequisites required for building RSS and its dependencies. Take a look at the [official documentation](https://intel.github.io/ad-rss-lib/BUILDING) to know more about this. Dependencies provided by Ubunutu (>= 16.04). ```sh diff --git a/Docs/tuto_A_material_customization.md b/Docs/tuto_A_material_customization.md index fc360a6e2..5fa0e8bee 100644 --- a/Docs/tuto_A_material_customization.md +++ b/Docs/tuto_A_material_customization.md @@ -23,9 +23,9 @@ In CARLA, there is a set of master materials that are used as templates for the * __M_CarInterior_Master__ — Material applied to the inside of the car. * __M_CarLightsGlass_Master__ — Material applied to the glass covering car lights. * __M_CarWindows_Master__ — Material applied to the windows. -* __M_CarLicensePlate_Master__ — Material applied to the license plate. -* __M_CarVehicleLights_Master__ — Material applied to the car lights as an emissive texure. -* __M_CarVehicleLigthsSirens_Master__ — Material applied to the sirens, if applicable. +* __M_LicensePlate_Master__ — Material applied to the license plate. +* __M_VehicleLights_Master__ — Material applied to the car lights as an emissive texure. +* __M_VehicleLights_Sirens_Master__ — Material applied to the sirens, if applicable. --- ## Customize car materials @@ -142,7 +142,7 @@ Similarly to car materials, a building material can be greatly changed if desire * `Color` — Tint to be applied based on the white area on the __Diffuse__ `Alpha` texture. * `Emissive Texture` — Enable the usage of an __Emissive__ texture. * `EmissiveColor` — Tint to be applied based on the white area on the __ORME__ `Emissive mask` texture. - * `Emissive atenuance` — Factor that divides the intensity stated in __BP_Lights__ to obtain proper emissive values. + * `Emissive attenuance` — Factor that divides the intensity stated in __BP_Lights__ to obtain proper emissive values. * `RoughnessCorrection` — Changes the intensity of the roughness map. * `MetallicCorrection` — Changes the intensity of the metallic map. * `NormalFlatness` — Changes the intensity of the normal map. diff --git a/Docs/tuto_D_generate_colliders.md b/Docs/tuto_D_generate_colliders.md index b4b0bf864..b23178b4b 100644 --- a/Docs/tuto_D_generate_colliders.md +++ b/Docs/tuto_D_generate_colliders.md @@ -67,7 +67,7 @@ __4.3__ Press `Compile` in the toolbar above and save the changes. ## Physics colliders !!! Important - This tutorial is based on a [contribution](https://bitbucket.org/yankagan/carla-content/wiki/Home) made by __[yankagan](https://github.com/yankagan)__! The contributor also wants to aknowledge __Francisco E__ for the tutorial on [how to import custom collisions in UE](https://www.youtube.com/watch?v=SEH4f0HrCDM). + This tutorial is based on a [contribution](https://bitbucket.org/yankagan/carla-content/wiki/Home) made by __[yankagan](https://github.com/yankagan)__! The contributor also wants to acknowledge __Francisco E__ for the tutorial on [how to import custom collisions in UE](https://www.youtube.com/watch?v=SEH4f0HrCDM). [This video](https://www.youtube.com/watch?v=CXK2M2cNQ4Y) shows the results achieved after following this tutorial. diff --git a/Docs/tuto_G_retrieve_data.md b/Docs/tuto_G_retrieve_data.md index 4a3c3427e..34591f7f2 100644 --- a/Docs/tuto_G_retrieve_data.md +++ b/Docs/tuto_G_retrieve_data.md @@ -568,7 +568,7 @@ The script places the sensor on the hood of the car, and rotated a bit upwards. The callback is a bit more complex this time, showing more of its capabilities. It will draw the points captured by the radar on the fly. The points will be colored depending on their velocity regarding the ego vehicle. * __Blue__ for points approaching the vehicle. -* __Read__ for points moving away from it. +* __Red__ for points moving away from it. * __White__ for points static regarding the ego vehicle. ```py diff --git a/Docs/tuto_G_texture_streaming.md b/Docs/tuto_G_texture_streaming.md index cbcf794f4..a16435f8f 100644 --- a/Docs/tuto_G_texture_streaming.md +++ b/Docs/tuto_G_texture_streaming.md @@ -8,7 +8,7 @@ Firstly, we need to load the Unreal Editor and load a CARLA map, follow the inst ![select_building](../img/tuto_G_texture_streaming/building_selected.png) -We have selected __BP_Apartment04_v5_Opt__ for texture manipulation, the name can be seen in the World Outliner panel. __Make sure to hover over the name in the World Outliner and use the name defined in the tooltip__. The the internal name may differ from the title displayed in the list. In this case, the internal name is actually __BP_Apartment04_v5_Opt_2__. +We have selected __BP_Apartment04_v05_Opt__ for texture manipulation, the name can be seen in the World Outliner panel. __Make sure to hover over the name in the World Outliner and use the name defined in the tooltip__. The the internal name may differ from the title displayed in the list. In this case, the internal name is actually __BP_Apartment04_v05_Opt_2__. ![tooltip](../img/tuto_G_texture_streaming/tooltip.png) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index c9619b894..e3dcdd0ee 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -403,7 +403,7 @@ Navigate to the vegetation folder in the CARLA content library: `Carla > Static A useful tool for trees and vegetation is the [__Unreal Engine foliage tool__](https://docs.unrealengine.com/4.27/en-US/BuildingWorlds/Foliage/). Activate the tool by selecting the `mode` from the mode dropdown in the toolbar. -![foliage_tool](img/tuto_content_authoring_maps/select_foliage_tool.png) +![foliage_tool](img/tuto_content_authoring_maps/select_foliage_tool.gif) Drag your desired foliage item into the box labeled `+ Drop Foliage Here`. Set an appropriate density in the density field, then paint into the map with your foliage item. From f292becab4fc9fcdb38c5f66f0c700ff62460cad Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 10 Jan 2024 17:32:24 +0100 Subject: [PATCH 020/105] fix use a new oficial boost repo --- Util/BuildTools/Setup.sh | 5 ++-- Util/InstallersWin/install_boost.bat | 35 ++++++++++++++++++++++++---- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index 9aa65533b..de2f1332d 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -69,6 +69,7 @@ UNREAL_HOSTED_CFLAGS="--sysroot=$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/Hos BOOST_VERSION=1.80.0 BOOST_BASENAME="boost-${BOOST_VERSION}-${CXX_TAG}" +BOOST_SHA256SUM="4b2136f98bdd1f5857f1c3dea9ac2018effe65286cf251534b6ae20cc45e1847" BOOST_INCLUDE=${PWD}/${BOOST_BASENAME}-install/include BOOST_LIBPATH=${PWD}/${BOOST_BASENAME}-install/lib @@ -91,9 +92,9 @@ for PY_VERSION in ${PY_VERSION_LIST[@]} ; do BOOST_PACKAGE_BASENAME=boost_${BOOST_VERSION//./_} log "Retrieving boost." - wget "https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/${BOOST_PACKAGE_BASENAME}.tar.gz" || true + wget "https://archives.boost.io/release/${BOOST_VERSION}/source/${BOOST_PACKAGE_BASENAME}.tar.gz" || true # try to use the backup boost we have in Jenkins - if [[ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ]] ; then + if [[ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ] || [! echo "${BOOST_SHA256SUM} ${BOOST_PACKAGE_BASENAME}.tar.gz" | sha256sum -c --status]] ; then log "Using boost backup" wget "https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/${BOOST_PACKAGE_BASENAME}.tar.gz" || true fi diff --git a/Util/InstallersWin/install_boost.bat b/Util/InstallersWin/install_boost.bat index bcefaa72d..c1608f8f3 100644 --- a/Util/InstallersWin/install_boost.bat +++ b/Util/InstallersWin/install_boost.bat @@ -1,5 +1,5 @@ @echo off -setlocal +setlocal enabledelayedexpansion rem BAT script that downloads and installs a ready to use rem boost build for CARLA (carla.org). @@ -66,12 +66,13 @@ rem -- Local Variables --------------------------------------------------------- rem ============================================================================ set BOOST_BASENAME=boost-%BOOST_VERSION% +set BOOST_SHA256SUM="e34756f63abe8ac34b35352743f17d061fcc825969a2dd8458264edb38781782" set BOOST_TEMP_FOLDER=boost_%BOOST_VERSION:.=_% set BOOST_TEMP_FILE=%BOOST_TEMP_FOLDER%.zip set BOOST_TEMP_FILE_DIR=%BUILD_DIR%%BOOST_TEMP_FILE% -set BOOST_REPO=https://boostorg.jfrog.io/artifactory/main/release/%BOOST_VERSION%/source/%BOOST_TEMP_FILE% +set BOOST_REPO=https://archives.boost.io/release/%BOOST_VERSION%/source/%BOOST_TEMP_FILE% set BOOST_SRC_DIR=%BUILD_DIR%%BOOST_BASENAME%-source\ set BOOST_INSTALL_DIR=%BUILD_DIR%%BOOST_BASENAME%-install\ set BOOST_LIB_DIR=%BOOST_INSTALL_DIR%lib\ @@ -84,16 +85,20 @@ if exist "%BOOST_INSTALL_DIR%" ( goto already_build ) +set _checksum="" + if not exist "%BOOST_SRC_DIR%" ( if not exist "%BOOST_TEMP_FILE_DIR%" ( echo %FILE_N% Retrieving boost. powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%BOOST_REPO%', '%BOOST_TEMP_FILE_DIR%')" + call :CheckSumEvaluate %BOOST_TEMP_FILE_DIR%,%BOOST_SHA256SUM%,_checksum ) - if not exist "%BOOST_TEMP_FILE_DIR%" ( + if "!_checksum!" == "1" ( echo %FILE_N% Using Boost backup powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/%BOOST_TEMP_FILE%', '%BOOST_TEMP_FILE_DIR%')" + call :CheckSumEvaluate %BOOST_TEMP_FILE_DIR%,%BOOST_SHA256SUM%,_checksum ) - if %errorlevel% neq 0 goto error_download + if "!_checksum!" == "1" goto error_download echo %FILE_N% Extracting boost from "%BOOST_TEMP_FILE%", this can take a while... if exist "%ProgramW6432%/7-Zip/7z.exe" ( "%ProgramW6432%/7-Zip/7z.exe" x "%BOOST_TEMP_FILE_DIR%" -o"%BUILD_DIR%" -y @@ -197,3 +202,25 @@ rem ============================================================================ echo %FILE_N% Exiting with error... endlocal exit /b %errorlevel% + +:CheckSumEvaluate +set filepath=%1 +set checksum=%2 + +echo %FILE_N% calculating %filepath% checksum... + +set PsCommand="(Get-FileHash %filepath%).Hash -eq '%checksum%'" + +for /f %%F in ('Powershell -C %PsCommand%') do ( + set filechecksum=%%F +) + +if %filechecksum% == True ( + echo %FILE_N% %filepath% checksum OK + set "%~3=0" + exit /b 0 +) else ( + echo %FILE_N% %filepath% BAD SHA256 checksum + set "%~3=1" + exit /b 1 +) \ No newline at end of file From a1a7faeb60ec216ab5d72a985857602099115898 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 10 Jan 2024 18:26:55 +0100 Subject: [PATCH 021/105] fix error on check --- Util/BuildTools/Setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index de2f1332d..006358552 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -94,7 +94,7 @@ for PY_VERSION in ${PY_VERSION_LIST[@]} ; do log "Retrieving boost." wget "https://archives.boost.io/release/${BOOST_VERSION}/source/${BOOST_PACKAGE_BASENAME}.tar.gz" || true # try to use the backup boost we have in Jenkins - if [[ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ] || [! echo "${BOOST_SHA256SUM} ${BOOST_PACKAGE_BASENAME}.tar.gz" | sha256sum -c --status]] ; then + if [ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ] || [[ $(sha256sum "${BOOST_PACKAGE_BASENAME}.tar.gz") != "${BOOST_SHA256SUM}" ]] ; then log "Using boost backup" wget "https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/${BOOST_PACKAGE_BASENAME}.tar.gz" || true fi From b92bff44292b057c88cdee9fd4cd2139ce316cf2 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 11 Jan 2024 14:49:13 +0100 Subject: [PATCH 022/105] fix branch name for testing --- Jenkinsfile_new | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 91c65f1cc..9a8323f5a 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -162,7 +162,7 @@ pipeline stage('TEST: ubuntu deploy sim') { - when { branch "ruben/Jenkins_migrate"; } + when { branch "ruben/jenkins_migration"; } steps { sh 'git checkout .' @@ -192,7 +192,7 @@ pipeline stage('TEST: ubuntu Doxygen') { - when { branch "ruben/Jenkins_migrate" } + when { branch "ruben/jenkins_migration" } steps { sh 'rm -rf ~/carla-simulator.github.io/Doxygen' From 3a24ec59a045094aa20eacc222b1df637e3cc7b5 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 11 Jan 2024 14:54:00 +0100 Subject: [PATCH 023/105] remove commented code --- Jenkinsfile_new | 62 ------------------------------------------------- 1 file changed, 62 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 9a8323f5a..7572c641c 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -11,22 +11,6 @@ pipeline stages { - /*stage('Creating nodes') - { - - agent { label "master" } - steps - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.CreateUbuntuBuildNode(JOB_ID) - jenkinsLib.CreateWindowsBuildNode(JOB_ID) - } - } - }*/ stage('Building CARLA') { parallel @@ -108,19 +92,6 @@ pipeline // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' stash includes: 'Examples/', name: 'ubuntu_examples' } - /*success - { - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.CreateUbuntuTestNode(JOB_ID) - } - } - }*/ } } stage('ubuntu smoke tests') @@ -146,16 +117,6 @@ pipeline archiveArtifacts 'CarlaUE4.log' junit 'Build/test-results/smoke-tests-*.xml' deleteDir() - /*node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteUbuntuTestNode(JOB_ID) - } - }*/ } } } @@ -259,17 +220,6 @@ pipeline always { deleteDir() - - /*node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteUbuntuBuildNode(JOB_ID) - } - }*/ } } } @@ -375,18 +325,6 @@ pipeline always { deleteDir() - /* - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteWindowsBuildNode(JOB_ID) - } - } - */ } } } From 4f5a7ece8f3d91be364d973e4652c5f9eec6e5e8 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 11 Jan 2024 14:55:01 +0100 Subject: [PATCH 024/105] comment windows stages --- Jenkinsfile_new | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 7572c641c..3e95138a9 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -223,9 +223,10 @@ pipeline } } } - + /* stage('windows') { + agent { label "windows" } environment { @@ -327,7 +328,7 @@ pipeline deleteDir() } } - } + }*/ } } From 4471a2c51bd3d3c25a3c51730b166ae4ea47db56 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 15 Jan 2024 12:45:17 +0100 Subject: [PATCH 025/105] avoid doing repo checkout on testing node --- Jenkinsfile_new | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 3e95138a9..f0e7dfde1 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -97,6 +97,7 @@ pipeline stage('ubuntu smoke tests') { agent { label "ubuntu && gpu" } + options { skipDefaultCheckout true } steps { unstash name: 'ubuntu_eggs' From ccc6764353cd780d3dab211d9e9877cdcbd80138 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 15 Jan 2024 15:12:55 +0100 Subject: [PATCH 026/105] ubuntu doxygen generation test --- Jenkinsfile_new | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index f0e7dfde1..c3985379f 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -24,7 +24,7 @@ pipeline } stages { - stage('ubuntu setup') + /*stage('ubuntu setup') { steps { @@ -151,19 +151,13 @@ pipeline //sh 'make deploy ARGS="--replace-latest --docker-push"' } } - + */ stage('TEST: ubuntu Doxygen') { when { branch "ruben/jenkins_migration" } steps { - sh 'rm -rf ~/carla-simulator.github.io/Doxygen' - sh ''' - cd ~/carla-simulator.github.io - git remote set-url origin git@docs:carla-simulator/carla-simulator.github.io.git - git fetch - git checkout -B master origin/master - ''' + checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) sh 'make docs' sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' /* From b1e695b5b157e819bba33a2261a7c9e7e340debd Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 15 Jan 2024 17:27:23 +0100 Subject: [PATCH 027/105] configure timeout for doc repo checkout --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index c3985379f..d8fd7c824 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -157,7 +157,7 @@ pipeline when { branch "ruben/jenkins_migration" } steps { - checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) sh 'make docs' sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' /* From 534a2ea21ddd41e19a7070eeceae43c1c4cc3b3c Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 15 Jan 2024 20:22:31 +0100 Subject: [PATCH 028/105] increase doc repo fetch timeout --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index d8fd7c824..1c33867c2 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -157,7 +157,7 @@ pipeline when { branch "ruben/jenkins_migration" } steps { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOptions(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) sh 'make docs' sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' /* From 46aee8503220360242d3d591f195f2cfa6d0db52 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 15 Jan 2024 20:23:49 +0100 Subject: [PATCH 029/105] option error --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 1c33867c2..35263ea1e 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -157,7 +157,7 @@ pipeline when { branch "ruben/jenkins_migration" } steps { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOptions(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) sh 'make docs' sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' /* From c8acb3942336f769120e01f99ad4acd5cf56493f Mon Sep 17 00:00:00 2001 From: MattRoweEAIF Date: Tue, 16 Jan 2024 10:31:51 +0100 Subject: [PATCH 030/105] replaced final aws links --- Docs/tuto_A_add_vehicle.md | 6 +++--- Docs/tuto_G_carsim_integration.md | 2 +- Docs/tuto_G_pedestrian_bones.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Docs/tuto_A_add_vehicle.md b/Docs/tuto_A_add_vehicle.md index 635290f37..db008911e 100644 --- a/Docs/tuto_A_add_vehicle.md +++ b/Docs/tuto_A_add_vehicle.md @@ -13,7 +13,7 @@ This tutorial details how to add a new vehicle to CARLA. There are two sections, --- ## Add a 4 wheeled vehicle -Vehicles added to CARLA need to use a __common base skeleton__ which is found [__here__](https://carla-assets.s3.eu-west-3.amazonaws.com/fbx/VehicleSkeleton.rar). This link will download a folder called `VehicleSkeleton.rar` which contains the base skeleton in two different `.fbx` formats, one in ASCII and the other in binary. The format you use will depend on your 3D modeling software requirements. +Vehicles added to CARLA need to use a __common base skeleton__ which is found [__here__](https://carla-assets.s3.us-east-005.backblazeb2.com/fbx/VehicleSkeleton.rar). This link will download a folder called `VehicleSkeleton.rar` which contains the base skeleton in two different `.fbx` formats, one in ASCII and the other in binary. The format you use will depend on your 3D modeling software requirements. __The positions of the skeleton bones can be changed but any other manipulation such as rotation, addition of new bones, or changing the current hierarchy will lead to errors. __ @@ -52,7 +52,7 @@ We recommend that you divide the vehicle into the following materials: - __Lights__: Headlights, indicator lights, etc. - __LightGlass_Ext__: A layer of glass that allows visibility from the outside to the inside of the light. - __LightGlass_Int__: A layer of glass that allows visibility from the inside to the outside of the light. -- __LicensePlate__: A rectangular plane of 29x12 cm. You can use the CARLA provided `.fbx` for best results, download it [here](https://carla-assets.s3.eu-west-3.amazonaws.com/fbx/LicensePlate.rar). The texture will be assigned automatically in Unreal Engine. +- __LicensePlate__: A rectangular plane of 29x12 cm. You can use the CARLA provided `.fbx` for best results, download it [here](https://carla-assets.s3.us-east-005.backblazeb2.com/fbx/LicensePlate.rar). The texture will be assigned automatically in Unreal Engine. - __Interior__: Any other details that don't fit in the above sections can go into _Interior_. Materials should be named using the format `M_CarPart_CarName`, e.g., `M_Bodywork_Mustang`. @@ -278,7 +278,7 @@ All other parameters such as engine, transmission, steering curve, are the same --- ## Add a 2 wheeled vehicle -Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you'll need to set up aditional bones to guide the driver's animation. [Here](https://carla-assets.s3.eu-west-3.amazonaws.com/fbx/BikeSkeleton.rar) is the link to the reference skeleton for 2 wheeled vehicles. +Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you'll need to set up aditional bones to guide the driver's animation. [Here](https://carla-assets.s3.us-east-005.backblazeb2.com/fbx/BikeSkeleton.rar) is the link to the reference skeleton for 2 wheeled vehicles. As with the 4 wheeled vehicles, orient the model towards positive "x" and every bone axis towards positive x and with the z axis facing upwards. diff --git a/Docs/tuto_G_carsim_integration.md b/Docs/tuto_G_carsim_integration.md index c828fc6f6..b973590bf 100644 --- a/Docs/tuto_G_carsim_integration.md +++ b/Docs/tuto_G_carsim_integration.md @@ -25,7 +25,7 @@ This page shows you how to generate a `.sim` file, explains how vehicle dimensio __For Ubuntu__: 1. Download the plugin [here](https://www.carsim.com/users/unreal_plugin/unreal_plugin_2020_0.php). - 2. Replace the file `CarSim.Build.cs` with the file found [here](https://carla-releases.s3.eu-west-3.amazonaws.com/Backup/CarSim.Build.cs) in order to use the correct solver for Ubuntu. + 2. Replace the file `CarSim.Build.cs` with the file found [here](https://carla-assets.s3.us-east-005.backblazeb2.com/Backup/CarSim.Build.cs) in order to use the correct solver for Ubuntu. 3. This step can be skipped if you are using the packaged version of CARLA. The packaged version has already been compiled using this flag but if you are building CARLA from source then you will need to compile the server with the `--carsim` flag. diff --git a/Docs/tuto_G_pedestrian_bones.md b/Docs/tuto_G_pedestrian_bones.md index bbd459a67..48358c2b2 100644 --- a/Docs/tuto_G_pedestrian_bones.md +++ b/Docs/tuto_G_pedestrian_bones.md @@ -147,7 +147,7 @@ def build_projection_matrix(w, h, fov): ## Build the skeleton -Now we can put the moving parts together. First, gather the bone coordinates from the simulation using `pedestrian.get_bones()` and then put together the skeleton and project it onto the 2D imaging plane of the camera sensor. The bones are joined into the complete skeleton using the pairs defined in __skeleton.txt__ that can be downloaded [__here__](https://carla-assets.s3.eu-west-3.amazonaws.com/fbx/skeleton.txt). +Now we can put the moving parts together. First, gather the bone coordinates from the simulation using `pedestrian.get_bones()` and then put together the skeleton and project it onto the 2D imaging plane of the camera sensor. The bones are joined into the complete skeleton using the pairs defined in __skeleton.txt__ that can be downloaded [__here__](https://carla-assets.s3.us-east-005.backblazeb2.com/fbx/skeleton.txt). We need a function to iterate through the bone pairs defined in __skeleton.txt__ and join the bone coordinates into lines that can be overlayed onto a camera sensor image. From 5ae0e4ee089617fb64501604afdedcf7f912e720 Mon Sep 17 00:00:00 2001 From: xavisolesoft Date: Wed, 17 Jan 2024 08:30:59 +0100 Subject: [PATCH 031/105] Doc: Add Ubuntu 22.04 build steps --- Docs/build_linux.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Docs/build_linux.md b/Docs/build_linux.md index 611f0cd2d..704aa8447 100644 --- a/Docs/build_linux.md +++ b/Docs/build_linux.md @@ -48,6 +48,16 @@ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add To avoid compatibility issues between Unreal Engine and the CARLA dependencies, use the same compiler version and C++ runtime library to compile everything. The CARLA team uses clang-8 (or clang-10 in Ubuntu 20.04) and LLVM's libc++. Change the default clang version to compile Unreal Engine and the CARLA dependencies. +__Ubuntu 22.04__. +```sh +sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu focal main universe" +sudo apt-get update +sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build libvulkan1 python python3 python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git git-lfs +sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 && +sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180 && +sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 180 +``` + __Ubuntu 20.04__. ```sh sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main" From 9caf9303e6a840df80df575f47e95d05db30ef15 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 17 Jan 2024 11:40:11 +0100 Subject: [PATCH 032/105] spliting documentation in 2 stages and use scmGit for managing documentation repo access --- Jenkinsfile_new | 77 ++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 35263ea1e..523a54771 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -152,54 +152,53 @@ pipeline } } */ - stage('TEST: ubuntu Doxygen') + + stage('TEST: ubuntu Doxygen generation') + { + when { branch "ruben/jenkins_migration" } + steps + { + sh 'make docs' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' + /* + sh ''' + cd ~/carla-simulator.github.io + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + */ + } + } + + stage('TEST: ubuntu Doxygen generation') + { + when { branch "ruben/jenkins_migration" } + steps + { + sh 'make docs' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + } + } + + stage('TEST: ubuntu Doxygen upload') { when { branch "ruben/jenkins_migration" } steps { checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - sh 'make docs' - sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' - /* + unstash name: 'carla_docs' + sh ''' - cd ~/carla-simulator.github.io + tar -xvzf carla.doc.tar.gz + ls git add Doxygen git commit -m "Updated c++ docs" || true - git push ''' - */ - } - post - { - always - { - deleteDir() - } - } - } - - stage('ubuntu Doxygen') - { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } - steps - { - sh 'rm -rf ~/carla-simulator.github.io/Doxygen' - sh ''' - cd ~/carla-simulator.github.io - git remote set-url origin git@docs:carla-simulator/carla-simulator.github.io.git - git fetch - git checkout -B master origin/master - ''' - sh 'make docs' - sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' - /* - sh ''' - cd ~/carla-simulator.github.io - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' - */ + // don't forgive git push } post { From f5a629d718e749bcb42603c2057bc7748846b015 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 17 Jan 2024 11:43:11 +0100 Subject: [PATCH 033/105] delete duplicated stage --- Jenkinsfile_new | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 523a54771..e5bb4ccf5 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -153,26 +153,6 @@ pipeline } */ - stage('TEST: ubuntu Doxygen generation') - { - when { branch "ruben/jenkins_migration" } - steps - { - sh 'make docs' - sh 'tar -czf carla_doc.tar.gz ./Doxygen' - stash includes: 'carla_doc.tar.gz', name: 'carla_docs' - sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' - /* - sh ''' - cd ~/carla-simulator.github.io - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' - */ - } - } - stage('TEST: ubuntu Doxygen generation') { when { branch "ruben/jenkins_migration" } From c26ba1c52baf7e0dbfbba8236dbb826f5991185c Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 17 Jan 2024 12:26:15 +0100 Subject: [PATCH 034/105] fix bad filename to uncompress --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index e5bb4ccf5..0b3d4b599 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -173,7 +173,7 @@ pipeline unstash name: 'carla_docs' sh ''' - tar -xvzf carla.doc.tar.gz + tar -xvzf carla_doc.tar.gz ls git add Doxygen git commit -m "Updated c++ docs" || true From b33c949e43c114608a382906024aa87bd499e22c Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 17 Jan 2024 13:45:52 +0100 Subject: [PATCH 035/105] basic pipeline stages to test --- Jenkinsfile_new | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 0b3d4b599..44e79a3a1 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -24,7 +24,7 @@ pipeline } stages { - /*stage('ubuntu setup') + stage('ubuntu setup') { steps { @@ -151,7 +151,6 @@ pipeline //sh 'make deploy ARGS="--replace-latest --docker-push"' } } - */ stage('TEST: ubuntu Doxygen generation') { From 86dcd957bfd2abac2bd693aeac4acc905f3032a0 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 18 Jan 2024 01:39:49 +0100 Subject: [PATCH 036/105] gpu machine does git checkout --- Jenkinsfile_new | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 44e79a3a1..69e187e56 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -97,7 +97,6 @@ pipeline stage('ubuntu smoke tests') { agent { label "ubuntu && gpu" } - options { skipDefaultCheckout true } steps { unstash name: 'ubuntu_eggs' @@ -173,7 +172,6 @@ pipeline sh ''' tar -xvzf carla_doc.tar.gz - ls git add Doxygen git commit -m "Updated c++ docs" || true ''' From b2454be45fe1e01fda7e447e4e69bd8854c43169 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 25 Jan 2024 16:10:54 +0100 Subject: [PATCH 037/105] minor changes --- Jenkinsfile_new | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile_new b/Jenkinsfile_new index 69e187e56..946be60b9 100644 --- a/Jenkinsfile_new +++ b/Jenkinsfile_new @@ -175,7 +175,7 @@ pipeline git add Doxygen git commit -m "Updated c++ docs" || true ''' - // don't forgive git push + // don't forget git push } post { From 8d181b666b81c0d298d8f5042d4f3944c6cf5f52 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 25 Jan 2024 16:56:16 +0100 Subject: [PATCH 038/105] move Jenkinsfile_new to Jenkinsfile --- Jenkinsfile | 153 +++++++++--------------- Jenkinsfile_new | 307 ------------------------------------------------ 2 files changed, 58 insertions(+), 402 deletions(-) delete mode 100644 Jenkinsfile_new diff --git a/Jenkinsfile b/Jenkinsfile index 04849a567..946be60b9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,28 +11,13 @@ pipeline stages { - stage('Creating nodes') - { - agent { label "master" } - steps - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.CreateUbuntuBuildNode(JOB_ID) - jenkinsLib.CreateWindowsBuildNode(JOB_ID) - } - } - } stage('Building CARLA') { parallel { stage('ubuntu') { - agent { label "ubuntu && build && ${JOB_ID}" } + agent { label "ubuntu" } environment { UE4_ROOT = '/home/jenkins/UnrealEngine_4.26' @@ -44,7 +29,7 @@ pipeline steps { sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } } stage('ubuntu build') @@ -52,7 +37,7 @@ pipeline steps { sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make CarlaUE4Editor ARGS="--chrono"' sh 'make plugins' sh 'make examples' @@ -72,7 +57,7 @@ pipeline { steps { - sh 'make check ARGS="--all --xml --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' } post { @@ -94,8 +79,8 @@ pipeline { steps { - sh 'make package ARGS="--python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.7,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make examples ARGS="localhost 3654"' } post @@ -107,24 +92,11 @@ pipeline // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' stash includes: 'Examples/', name: 'ubuntu_examples' } - success - { - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.CreateUbuntuTestNode(JOB_ID) - } - } - } } } stage('ubuntu smoke tests') { - agent { label "ubuntu && gpu && ${JOB_ID}" } + agent { label "ubuntu && gpu" } steps { unstash name: 'ubuntu_eggs' @@ -135,7 +107,7 @@ pipeline 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 'make smoke_tests ARGS="--xml --python-version=3.7 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' } post @@ -145,26 +117,28 @@ pipeline archiveArtifacts 'CarlaUE4.log' junit 'Build/test-results/smoke-tests-*.xml' deleteDir() - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteUbuntuTestNode(JOB_ID) - } - } } } } + + stage('TEST: ubuntu deploy sim') + { + when { branch "ruben/jenkins_migration"; } + steps + { + sh 'git checkout .' + //sh 'make deploy ARGS="--replace-latest"' + } + + } + stage('ubuntu deploy dev') { when { branch "dev"; } steps { sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest"' + //sh 'make deploy ARGS="--replace-latest"' } } stage('ubuntu deploy master') @@ -173,29 +147,35 @@ pipeline steps { sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest --docker-push"' + //sh 'make deploy ARGS="--replace-latest --docker-push"' } } - stage('ubuntu Doxygen') + + stage('TEST: ubuntu Doxygen generation') { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } + when { branch "ruben/jenkins_migration" } steps { - sh 'rm -rf ~/carla-simulator.github.io/Doxygen' - sh ''' - cd ~/carla-simulator.github.io - git remote set-url origin git@docs:carla-simulator/carla-simulator.github.io.git - git fetch - git checkout -B master origin/master - ''' sh 'make docs' - sh 'cp -rf ./Doxygen ~/carla-simulator.github.io/' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + } + } + + stage('TEST: ubuntu Doxygen upload') + { + when { branch "ruben/jenkins_migration" } + steps + { + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + unstash name: 'carla_docs' + sh ''' - cd ~/carla-simulator.github.io + tar -xvzf carla_doc.tar.gz git add Doxygen git commit -m "Updated c++ docs" || true - git push ''' + // don't forget git push } post { @@ -211,23 +191,14 @@ pipeline always { deleteDir() - - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteUbuntuBuildNode(JOB_ID) - } - } } } } + /* stage('windows') { - agent { label "windows && build && ${JOB_ID}" } + + agent { label "windows" } environment { UE4_ROOT = 'C:\\UE_4.26' @@ -239,11 +210,11 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make setup ARGS="--chrono" """ } @@ -253,19 +224,19 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make LibCarla """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make PythonAPI """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make CarlaUE4Editor ARGS="--chrono" """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make plugins """ } @@ -283,7 +254,7 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat call Update.bat """ } @@ -293,11 +264,11 @@ pipeline steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make package ARGS="--chrono" """ bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate" """ } @@ -307,37 +278,29 @@ pipeline } } } + stage('windows deploy') { when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { bat """ - call ../setEnv64.bat + call C:\\Users\\jenkins\\setEnv64.bat git checkout . - make deploy ARGS="--replace-latest" + REM make deploy ARGS="--replace-latest" """ } } + } post { always { deleteDir() - - node('master') - { - script - { - JOB_ID = "${env.BUILD_TAG}" - jenkinsLib = load("/home/jenkins/jenkins_426.groovy") - - jenkinsLib.DeleteWindowsBuildNode(JOB_ID) - } - } } } - } + }*/ + } } } diff --git a/Jenkinsfile_new b/Jenkinsfile_new deleted file mode 100644 index 946be60b9..000000000 --- a/Jenkinsfile_new +++ /dev/null @@ -1,307 +0,0 @@ -#!/usr/bin/env groovy - -pipeline -{ - agent none - - options - { - buildDiscarder(logRotator(numToKeepStr: '3', artifactNumToKeepStr: '3')) - } - - stages - { - stage('Building CARLA') - { - parallel - { - stage('ubuntu') - { - agent { label "ubuntu" } - environment - { - UE4_ROOT = '/home/jenkins/UnrealEngine_4.26' - } - stages - { - stage('ubuntu setup') - { - steps - { - sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - } - } - stage('ubuntu build') - { - steps - { - sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make CarlaUE4Editor ARGS="--chrono"' - sh 'make plugins' - sh 'make examples' - } - post - { - always - { - archiveArtifacts 'PythonAPI/carla/dist/*.egg' - archiveArtifacts 'PythonAPI/carla/dist/*.whl' - stash includes: 'PythonAPI/carla/dist/*.egg', name: 'ubuntu_eggs' - stash includes: 'PythonAPI/carla/dist/*.whl', name: 'ubuntu_wheels' - } - } - } - stage('ubuntu unit tests') - { - steps - { - sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - } - post - { - always - { - junit 'Build/test-results/*.xml' - archiveArtifacts 'profiler.csv' - } - } - } - stage('ubuntu retrieve content') - { - steps - { - sh './Update.sh' - } - } - stage('ubuntu package') - { - steps - { - sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make examples ARGS="localhost 3654"' - } - post - { - always - { - archiveArtifacts 'Dist/*.tar.gz' - stash includes: 'Dist/CARLA*.tar.gz', name: 'ubuntu_package' - // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' - stash includes: 'Examples/', name: 'ubuntu_examples' - } - } - } - stage('ubuntu smoke tests') - { - agent { label "ubuntu && gpu" } - steps - { - unstash name: 'ubuntu_eggs' - unstash name: 'ubuntu_wheels' - unstash name: 'ubuntu_package' - // unstash name: 'ubuntu_package2' - 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 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make run-examples ARGS="localhost 3654"' - } - post - { - always - { - archiveArtifacts 'CarlaUE4.log' - junit 'Build/test-results/smoke-tests-*.xml' - deleteDir() - } - } - } - - stage('TEST: ubuntu deploy sim') - { - when { branch "ruben/jenkins_migration"; } - steps - { - sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest"' - } - - } - - stage('ubuntu deploy dev') - { - when { branch "dev"; } - steps - { - sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest"' - } - } - stage('ubuntu deploy master') - { - when { anyOf { branch "master"; buildingTag() } } - steps - { - sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest --docker-push"' - } - } - - stage('TEST: ubuntu Doxygen generation') - { - when { branch "ruben/jenkins_migration" } - steps - { - sh 'make docs' - sh 'tar -czf carla_doc.tar.gz ./Doxygen' - stash includes: 'carla_doc.tar.gz', name: 'carla_docs' - } - } - - stage('TEST: ubuntu Doxygen upload') - { - when { branch "ruben/jenkins_migration" } - steps - { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - unstash name: 'carla_docs' - - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - ''' - // don't forget git push - } - post - { - always - { - deleteDir() - } - } - } - } - post - { - always - { - deleteDir() - } - } - } - /* - stage('windows') - { - - agent { label "windows" } - environment - { - UE4_ROOT = 'C:\\UE_4.26' - } - stages - { - stage('windows setup') - { - steps - { - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject - """ - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make setup ARGS="--chrono" - """ - } - } - stage('windows build') - { - steps - { - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make LibCarla - """ - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make PythonAPI - """ - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make CarlaUE4Editor ARGS="--chrono" - """ - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make plugins - """ - } - post - { - always - { - archiveArtifacts 'PythonAPI/carla/dist/*.egg' - archiveArtifacts 'PythonAPI/carla/dist/*.whl' - } - } - } - stage('windows retrieve content') - { - steps - { - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - call Update.bat - """ - } - } - stage('windows package') - { - steps - { - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make package ARGS="--chrono" - """ - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate" - """ - } - post { - always { - archiveArtifacts 'Build/UE4Carla/*.zip' - } - } - } - - stage('windows deploy') - { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } - steps { - bat """ - call C:\\Users\\jenkins\\setEnv64.bat - git checkout . - REM make deploy ARGS="--replace-latest" - """ - } - } - - } - post - { - always - { - deleteDir() - } - } - }*/ - - } - } - } -} From cf89f8ac722a31f26cc88487a3b0ff95879f6f7a Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 25 Jan 2024 17:43:46 +0100 Subject: [PATCH 039/105] test backblaze copy --- Jenkinsfile | 17 +++++++++-------- Util/BuildTools/Deploy.sh | 36 +++++++++++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 946be60b9..60e451f6e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -127,7 +127,7 @@ pipeline steps { sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest"' + sh 'make deploy ARGS="--test"' } } @@ -138,7 +138,7 @@ pipeline steps { sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest"' + sh 'make deploy ARGS="--replace-latest"' } } stage('ubuntu deploy master') @@ -147,13 +147,13 @@ pipeline steps { sh 'git checkout .' - //sh 'make deploy ARGS="--replace-latest --docker-push"' + sh 'make deploy ARGS="--replace-latest --docker-push"' } } - stage('TEST: ubuntu Doxygen generation') + stage('ubuntu Doxygen generation') { - when { branch "ruben/jenkins_migration" } + when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { sh 'make docs' @@ -162,9 +162,9 @@ pipeline } } - stage('TEST: ubuntu Doxygen upload') + stage('ubuntu Doxygen upload') { - when { branch "ruben/jenkins_migration" } + when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) @@ -174,8 +174,9 @@ pipeline tar -xvzf carla_doc.tar.gz git add Doxygen git commit -m "Updated c++ docs" || true + git push + ''' - // don't forget git push } post { diff --git a/Util/BuildTools/Deploy.sh b/Util/BuildTools/Deploy.sh index 55fb6beba..3d3e45a80 100755 --- a/Util/BuildTools/Deploy.sh +++ b/Util/BuildTools/Deploy.sh @@ -12,6 +12,10 @@ AWS_COPY="aws s3 cp" DOCKER="docker" UNTAR="tar -xvzf" UPLOAD_MAPS=true +PROFILE="--profile Jenkins-CVC" +ENDPOINT="--endpoint-url=https://s3.us-east-005.backblazeb2.com/" +TEST=false + # ============================================================================== # -- Parse arguments ----------------------------------------------------------- @@ -21,12 +25,15 @@ DOC_STRING="Upload latest build to S3." USAGE_STRING="Usage: $0 [-h|--help] [--replace-latest] [--docker-push] [--dry-run]" -OPTS=`getopt -o h --long help,replace-latest,docker-push,dry-run -n 'parse-options' -- "$@"` +OPTS=`getopt -o h --long help,replace-latest,docker-push,dry-run,test -n 'parse-options' -- "$@"` eval set -- "$OPTS" while [[ $# -gt 0 ]]; do case "$1" in + --test ) + TEST=true + shift ;; --replace-latest ) REPLACE_LATEST=true; shift ;; @@ -86,6 +93,25 @@ if [ ! -f ${LATEST_PACKAGE_PATH} ]; then fatal_error "Latest package not found, please run 'make package'." fi + +# ============================================================================== +# -- TEST -------------------------------------------------------------------- +# ============================================================================== + +if ${TEST} ; then + LATEST_PACKAGE=test_CARLA_${REPOSITORY_TAG}.tar.gz + LATEST_PACKAGE_PATH=./${LATEST_PACKAGE} + LATEST_PACKAGE2=test_AdditionalMaps_${REPOSITORY_TAG}.tar.gz + LATEST_PACKAGE_PATH2=./${LATEST_PACKAGE2} + + DEPLOY_NAME=test_CARLA_${REPOSITORY_TAG}.tar.gz + DEPLOY_NAME2=test_AdditionalMaps_${REPOSITORY_TAG}.tar.gz + + touch ${LATEST_PACKAGE} + touch ${LATEST_PACKAGE2} + +fi + # ============================================================================== # -- Upload -------------------------------------------------------------------- # ============================================================================== @@ -93,10 +119,10 @@ fi DEPLOY_URI=${S3_PREFIX}/${DEPLOY_NAME} DEPLOY_URI2=${S3_PREFIX}/${DEPLOY_NAME2} -${AWS_COPY} ${LATEST_PACKAGE_PATH} ${DEPLOY_URI} +${AWS_COPY} ${LATEST_PACKAGE_PATH} ${DEPLOY_URI} ${ENDPOINT} ${PROFILE} log "Latest build uploaded to ${DEPLOY_URI}." -${AWS_COPY} ${LATEST_PACKAGE_PATH2} ${DEPLOY_URI2} +${AWS_COPY} ${LATEST_PACKAGE_PATH2} ${DEPLOY_URI2} ${ENDPOINT} ${PROFILE} log "Latest build uploaded to ${DEPLOY_URI2}." # ============================================================================== @@ -105,10 +131,10 @@ log "Latest build uploaded to ${DEPLOY_URI2}." if ${REPLACE_LATEST} ; then - ${AWS_COPY} ${DEPLOY_URI} ${LATEST_DEPLOY_URI} + ${AWS_COPY} ${DEPLOY_URI} ${LATEST_DEPLOY_URI} ${ENDPOINT} ${PROFILE} log "Latest build uploaded to ${LATEST_DEPLOY_URI}." - ${AWS_COPY} ${DEPLOY_URI2} ${LATEST_DEPLOY_URI2} + ${AWS_COPY} ${DEPLOY_URI2} ${LATEST_DEPLOY_URI2} ${ENDPOINT} ${PROFILE} log "Latest build uploaded to ${LATEST_DEPLOY_URI2}." fi From f3d7dd080d82097ee73b950133331a23ab377ec9 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Sun, 28 Jan 2024 21:57:34 +0100 Subject: [PATCH 040/105] Access files through https --- Update.bat | 2 +- Update.sh | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Update.bat b/Update.bat index 30a6ccb52..9554933c0 100644 --- a/Update.bat +++ b/Update.bat @@ -19,7 +19,7 @@ for /F "delims=" %%a in (%CONTENT_VERSIONS%) do ( set "lastLine=%%a" ) set CONTENT_ID=%lastLine:~-16,16% -set CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/%CONTENT_ID%.tar.gz +set CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/%CONTENT_ID%.tar.gz if "%CONTENT_ID:~0,2%"=="20" ( set CONTENT_FILE=%CONTENT_FOLDER%/%CONTENT_ID%.tar.gz set CONTENT_FILE_TAR=%CONTENT_FOLDER%/%CONTENT_ID%.tar diff --git a/Update.sh b/Update.sh index 58d8a1999..d6a5c0192 100755 --- a/Update.sh +++ b/Update.sh @@ -41,13 +41,16 @@ done # -- Set up environment -------------------------------------------------------- # ============================================================================== +MAX_PARALLELL_DOWNLOADS=1 +MAX_CONNECTIONS_PER_SERVER=1 + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" pushd "$SCRIPT_DIR" >/dev/null CONTENT_FOLDER="${SCRIPT_DIR}/Unreal/CarlaUE4/Content/Carla" CONTENT_ID=$(tac $SCRIPT_DIR/Util/ContentVersions.txt | egrep -m 1 . | rev | cut -d' ' -f1 | rev) -CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz +CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz VERSION_FILE="${CONTENT_FOLDER}/.version" @@ -60,7 +63,7 @@ function download_content { mkdir -p Content if hash aria2c 2>/dev/null; then echo -e "${CONTENT_LINK}\n\tout=Content.tar.gz" > .aria2c.input - aria2c -j16 -x16 --input-file=.aria2c.input + aria2c -j${MAX_PARALLELL_DOWNLOADS} -x${MAX_CONNECTIONS_PER_SERVER} --input-file=.aria2c.input rm -f .aria2c.input else wget -c ${CONTENT_LINK} -O Content.tar.gz From e9700ab493141f20504098b3491eb4cf6a2b6c04 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 29 Jan 2024 14:29:13 +0100 Subject: [PATCH 041/105] Test documentation upload to repo --- Jenkinsfile | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 60e451f6e..3f42c127a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -175,7 +175,40 @@ pipeline git add Doxygen git commit -m "Updated c++ docs" || true git push + ''' + } + post + { + always + { + deleteDir() + } + } + } + stage('TEST: ubuntu Doxygen generation') + { + when { branch "ruben/jenkins_migration"; } + steps + { + sh 'make docs' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + } + } + stage('TEST: ubuntu Doxygen upload') + { + when { branch "ruben/jenkins_migration"; } + steps + { + checkout scmGit(branches: [[name: '*/ruben/jenkins_migration']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + unstash name: 'carla_docs' + + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push ''' } post From ecd2b0255ce3559d77e9a9c66d1e3060db381ee6 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 29 Jan 2024 14:45:53 +0100 Subject: [PATCH 042/105] using credentials to push to documentation repo --- Jenkinsfile | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3f42c127a..bb6653e2f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -170,12 +170,14 @@ pipeline checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) unstash name: 'carla_docs' - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + } } post { @@ -203,13 +205,14 @@ pipeline { checkout scmGit(branches: [[name: '*/ruben/jenkins_migration']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) unstash name: 'carla_docs' - - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + } } post { From 7839ef4e4aadf0de0061bfba0c6009bf86ed2f04 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 29 Jan 2024 23:18:43 +0100 Subject: [PATCH 043/105] fix docu repo checkout pointing to branch head --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bb6653e2f..641bead98 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -203,7 +203,7 @@ pipeline when { branch "ruben/jenkins_migration"; } steps { - checkout scmGit(branches: [[name: '*/ruben/jenkins_migration']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + checkout scmGit(branches: [[name: '*/ruben/jenkins_migration']], extensions: [checkoutOption(120), [[$class: 'LocalBranch', localBranch: "**"]], cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) unstash name: 'carla_docs' withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { sh ''' From fe34fb2310ba4e558f86fb4d8ee3116342309ed4 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 30 Jan 2024 12:29:38 +0100 Subject: [PATCH 044/105] fix localBranch option usage --- Jenkinsfile | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 641bead98..f081b1130 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -203,7 +203,20 @@ pipeline when { branch "ruben/jenkins_migration"; } steps { - checkout scmGit(branches: [[name: '*/ruben/jenkins_migration']], extensions: [checkoutOption(120), [[$class: 'LocalBranch', localBranch: "**"]], cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + checkout scmGit( + branches: [[name: '*/ruben/jenkins_migration']], + extensions: [ + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] + ] + ) unstash name: 'carla_docs' withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { sh ''' From 73318bb642b3bfb344c2e1eaba06083037e77ec0 Mon Sep 17 00:00:00 2001 From: Aaron Date: Tue, 30 Jan 2024 12:42:08 +0100 Subject: [PATCH 045/105] Updated http to https --- Update.bat | 2 +- Update.sh | 2 +- Util/BuildTools/Setup.bat | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Update.bat b/Update.bat index 30a6ccb52..9554933c0 100644 --- a/Update.bat +++ b/Update.bat @@ -19,7 +19,7 @@ for /F "delims=" %%a in (%CONTENT_VERSIONS%) do ( set "lastLine=%%a" ) set CONTENT_ID=%lastLine:~-16,16% -set CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/%CONTENT_ID%.tar.gz +set CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/%CONTENT_ID%.tar.gz if "%CONTENT_ID:~0,2%"=="20" ( set CONTENT_FILE=%CONTENT_FOLDER%/%CONTENT_ID%.tar.gz set CONTENT_FILE_TAR=%CONTENT_FOLDER%/%CONTENT_ID%.tar diff --git a/Update.sh b/Update.sh index 58d8a1999..7d4e3cd10 100755 --- a/Update.sh +++ b/Update.sh @@ -47,7 +47,7 @@ pushd "$SCRIPT_DIR" >/dev/null CONTENT_FOLDER="${SCRIPT_DIR}/Unreal/CarlaUE4/Content/Carla" CONTENT_ID=$(tac $SCRIPT_DIR/Util/ContentVersions.txt | egrep -m 1 . | rev | cut -d' ' -f1 | rev) -CONTENT_LINK=http://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz +CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz VERSION_FILE="${CONTENT_FOLDER}/.version" diff --git a/Util/BuildTools/Setup.bat b/Util/BuildTools/Setup.bat index 344f2bb08..99dd8bb82 100644 --- a/Util/BuildTools/Setup.bat +++ b/Util/BuildTools/Setup.bat @@ -367,7 +367,7 @@ FOR /F "usebackq tokens=1,2" %%i in ("%VERSION_FILE%") do ( set ASSETS_VERSION=%%i set HASH=%%j ) -set URL=http://carla-assets.s3.us-east-005.backblazeb2.com/%HASH%.tar.gz +set URL=https://carla-assets.s3.us-east-005.backblazeb2.com/%HASH%.tar.gz rem ============================================================================ rem -- Generate CMake ---------------------------------------------------------- From a22da7136a1d2b8144313378f7b298100e1785e6 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 30 Jan 2024 13:26:53 +0100 Subject: [PATCH 046/105] test only documentation steps --- Jenkinsfile | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f081b1130..b657d2113 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,6 +24,7 @@ pipeline } stages { + /* stage('ubuntu setup') { steps @@ -161,32 +162,33 @@ pipeline stash includes: 'carla_doc.tar.gz', name: 'carla_docs' } } - - stage('ubuntu Doxygen upload') - { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } - steps - { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - unstash name: 'carla_docs' + */ + + // stage('ubuntu Doxygen upload') + // { + // when { anyOf { branch "master"; branch "dev"; buildingTag() } } + // steps + // { + // checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + // unstash name: 'carla_docs' - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' - } - } - post - { - always - { - deleteDir() - } - } - } + // withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + // sh ''' + // tar -xvzf carla_doc.tar.gz + // git add Doxygen + // git commit -m "Updated c++ docs" || true + // git push + // ''' + // } + // } + // post + // { + // always + // { + // deleteDir() + // } + // } + // } stage('TEST: ubuntu Doxygen generation') { when { branch "ruben/jenkins_migration"; } From 09789f6e51f14402276c0a22a4492a9d90fb2048 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 30 Jan 2024 14:23:25 +0100 Subject: [PATCH 047/105] set doc upstream branch --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b657d2113..28fa53e58 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -225,7 +225,7 @@ pipeline tar -xvzf carla_doc.tar.gz git add Doxygen git commit -m "Updated c++ docs" || true - git push + git push --set-upstream origin ruben/jenkins_migration ''' } } From 352fd44cc037c7e58f05236333235b3c2b687f59 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 30 Jan 2024 16:47:15 +0100 Subject: [PATCH 048/105] prepare complete test --- Jenkinsfile | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 28fa53e58..0c4de5688 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,7 +24,6 @@ pipeline } stages { - /* stage('ubuntu setup') { steps @@ -161,34 +160,33 @@ pipeline sh 'tar -czf carla_doc.tar.gz ./Doxygen' stash includes: 'carla_doc.tar.gz', name: 'carla_docs' } - } - */ + } - // stage('ubuntu Doxygen upload') - // { - // when { anyOf { branch "master"; branch "dev"; buildingTag() } } - // steps - // { - // checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - // unstash name: 'carla_docs' + stage('ubuntu Doxygen upload') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps + { + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + unstash name: 'carla_docs' - // withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - // sh ''' - // tar -xvzf carla_doc.tar.gz - // git add Doxygen - // git commit -m "Updated c++ docs" || true - // git push - // ''' - // } - // } - // post - // { - // always - // { - // deleteDir() - // } - // } - // } + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + } + } + post + { + always + { + deleteDir() + } + } + } stage('TEST: ubuntu Doxygen generation') { when { branch "ruben/jenkins_migration"; } From 759273aa33c1d31a2d902c0df606ef26a194b760 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 31 Jan 2024 00:19:08 +0100 Subject: [PATCH 049/105] doc repo checkout in a new folder --- Jenkinsfile | 62 ++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0c4de5688..471f3fd59 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -201,39 +201,43 @@ pipeline stage('TEST: ubuntu Doxygen upload') { when { branch "ruben/jenkins_migration"; } - steps + dir('doc_repo') { - checkout scmGit( - branches: [[name: '*/ruben/jenkins_migration']], - extensions: [ - checkoutOption(120), - localBranch("**"), - cloneOption(noTags:false, reference:'', shallow: false, timeout:120) - ], - userRemoteConfigs: [ - [ - credentialsId: 'github_token_as_pwd_2', - url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' - ] - ] - ) - unstash name: 'carla_docs' - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push --set-upstream origin ruben/jenkins_migration - ''' - } - } - post - { - always + steps { - deleteDir() + checkout scmGit( + branches: [[name: '*/ruben/jenkins_migration']], + extensions: [ + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] + ] + ) + unstash name: 'carla_docs' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push --set-upstream origin ruben/jenkins_migration + ''' + } + } + post + { + always + { + deleteDir() + } } } + } } post From b9ae2e9ac9fc225bc87c2457190cb658a97b3619 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 31 Jan 2024 00:25:02 +0100 Subject: [PATCH 050/105] fix 'dir' wrap inside 'steps' section --- Jenkinsfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 471f3fd59..c6dd52d60 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -201,9 +201,9 @@ pipeline stage('TEST: ubuntu Doxygen upload') { when { branch "ruben/jenkins_migration"; } - dir('doc_repo') + steps { - steps + dir('doc_repo') { checkout scmGit( branches: [[name: '*/ruben/jenkins_migration']], @@ -229,15 +229,15 @@ pipeline ''' } } - post + + } + post + { + always { - always - { - deleteDir() - } + deleteDir() } } - } } post From 1e84ba868a29ba659a21ce2b340d98f8f47d8ec3 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 31 Jan 2024 11:25:27 +0100 Subject: [PATCH 051/105] check that documentation upload commands are done in the right place --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index c6dd52d60..f1a1fad98 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -222,6 +222,8 @@ pipeline unstash name: 'carla_docs' withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { sh ''' + pwd + ls -lh tar -xvzf carla_doc.tar.gz git add Doxygen git commit -m "Updated c++ docs" || true From f8ecc3c9cd541bf052a12fe393ff2be11e764888 Mon Sep 17 00:00:00 2001 From: xavisolesoft Date: Wed, 31 Jan 2024 14:19:26 +0100 Subject: [PATCH 052/105] USDImporter: Fix Skeletal mesh import --- .../UW_USDVehicleImporterEditorWidget.uasset | Bin 196896 -> 208914 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Content/USDImporter/UW_USDVehicleImporterEditorWidget.uasset b/Unreal/CarlaUE4/Plugins/CarlaTools/Content/USDImporter/UW_USDVehicleImporterEditorWidget.uasset index 07e711bbcab7ba4013fceef4ea5febc36c0cab39..557ac09f0e4dcb86ac0b525df3e7122c7ae90096 100644 GIT binary patch literal 208914 zcmeEv34j#E^>+`VD0mV<@nRQIM1{RCyqJ^w+Fd|FS%%%--I3j$Wo8xxQSm~J`Wa7* zM^s|ec*TQ6jWNdijKpX(9*Jj6JmMAOt$goSRd2d`re~&x-BIG7hT86~u6nQP)vI?^ zbmr1Ao#u|@dbWtj%yHI6$(CaU&sVprk^_SNAyw$$)(mHRTx-?kk_1BbA5qX?J zr|3b3(L?92_BV`O;)X#mjQDYeaV(`XDf!O&;OqO2xoqOe&0H z2JU$3{`$u2d!9sjz(E6aj^od|U?|GHNU*mrC34yhBJc+EY!u~{_`|V|aAP#u5ignD z5SY~29gQW-Sjp_UO}1NOtA9SQysT!}0KIyX-X@I3|QUP1&;&Uq_GG9gB1&;w3X<(Qf%S6mF)LEjMmmQhMNFnJXkI z&}epccZ3sWyu=rdo5^g|7UT7Ew|!Mm#~p97yba7ukaupoX?8S)rp`6?XgZ|47ZB>_ z8gmAX+-c(>)KeP{f8+OW_5uR6VelQ-J~AtXoDGR^BGQb(D5(_vHCsxiM!K4#9bMC= z%quS~FD;oyl#NBg#DUW$HBIOU$K%0c5>2WQN*Ld)xNy`i0Nl_Vi*zTfL7fl_cefjF zzqB$i*!egS>4+qj8(%bjb@q>JPb_XXA{9mN?QDM(jhVA&EIQh3P8gq08gnS7IOCI? zERjdL+GY#r5i@R_)^q*0JJ<_$wM9r&tR8>rBuqc9KeK&#{BXrBaby0=ua4Z^{&abw zJ=!Iq&+Ou>YE^ zAuH#X9%XdQi2e>D)oc8rGw>>;suz>M7_)xwBS2ekOG}YzVo@Sm#8c$m8_)Y1WTM9n z5t;?2Kibg|iASPcapQu@JI8>!-j=1|u4c1kW~3_+iPKD3ZXCbM2LlG-QAdXq0CD4i zeTJ+NSzXQT(O4jy2peCtmmae7-lU zi0p{mIH($Fju(03aS|}0eNMP~h{&fqHDEo9;>+U+v(wma-EGwa_+i{Q<@p=dgS?_< zW3(Z>)HGs0eXC2tZCGq}n2B&l(KIvOZq)q!ipijx&loo4`WYDPMbxS2vH%JZ8H^1d zZU63eB0HWGHpZ|MUV0sx2J*rWmNs_S`=NtDXEzDbb&7 zpWhBFi+stbB;-5HPO~dP!yYE_YD}yAren8EMFiq0e`uQu23|BV($Zpf+0foP@czYu zvXcm2tc!SeDM2gj4W>i)a#A&lLkNpX-Pyr{!8hOGYLxIJXv zv~X;(*%FGzm?@bf*H@kN4VabcanFKXsNG^r*s=6QOjp|@>a?IK0sqs0iWY@%W>3r% zjri+>Gfq`C8qCC;Few>ZjX8gM^9@0*sb*WadHHnHY-x;A-8K`fRd2S&jdN}~@*wm$ z$uV*=emHCL^&{-r{wQhWE+Pilt&IewFVfXQBFNa%{7w0;_L37!8bB)0BH3;9rQKr$ zKe7Is&=YAf)(_ZiHrky;J2RYUk57#(iiJrX7Og1RU9c$EX%Mq#jv2#zH%?4!bASV6 zBqXtLWDO}?H) zBHGnd+BBtndbGuCN_N>7?Ll$sJUyJzCCm9ch=)y;-NaOBAodL>XmpHkzPxdJm~6gi z%W~uI2fV(&;Hw#39m^-RPKpO25Fzs(U)_K*i^%LT#tv$E2TbOpo1~E0vHvYUhP?1a zscoIchC5bV4bJsB)izDrbKk$MB<)H4Tzazm-KYIC^$Dq2dh+hoPes$7h&thqzPeVh z+Duq1jnS#mHsg%dC!Q$!pz>(?nP!)&CMoBy;HB6I9d==46t?)vNa^aI=~s#;KKX53L_)pkdmvX8S$0$L~(=`g#5hwLU6s=I1oykey}N^t8n7LNkG(kcK3_sF#lhMduDDlH8a1jEEh z>=Vvud)Ps2*d9}(BsyEt`R4bFFWS}7mgx(pEU}$KI1L zm&sIE8jjBlcbOezSRJw(w7e}(OvPLLLxy2?`opAa!!-OYhQHsD&tO9PiLu+@GJSUZ z1rJFiGGjV%i1Gib58qY-l$j0WL_$gJywhG!!Jcat7EoeY{65@C1(jHK%(>7e;x0MY z-`)Lke4)_Z^4H4%ZCk*Pr3IO~kRhavltB^bD9>ckg|=L)oTL15f*&(Sx* zT=UPE9%vHY{<_b~N5eD~qK<5ltEN@I4xybU6^uid?C@hjVIh8H=Ym6Tz8l7d6v+@( zFcn1u!Z)7v5u{nbxM8cMI|2m+?-X;nvE98r^U(<0OYs%_*UBqI39~ia(~&Sv+z>r< zI7-O-rl#bqaOm+H?>T5D%%Nm4X*UW6V_pC7i>D8DDKphvYIbm$>jvy_FWjIMIMStq zB;kThdtGxjreR7!=_f5$5rE%zUeUI1jzY=)7%#st^)?5{DUo=mnUIp0@&4wL#cSLO z39}_xXuoYsVT~mlCm}&ha1rm=Dcue@QZh?RmkTZ2a`!n7I7z?WU^Sj7GnSDZ zD7kRL+Vx}Q7)#rcCxSAG1v`5G-?szdOK^2ABj@#!qxY5%<20Yig@|?uCK49G)4!aw zJz7GRMM7l!-haU}qP@}woElz4vgXRqm)?lkVaK`R!nb@d3Ifq+EHu?PdBytAlDGB7 z7oO(l`L=$l5m>v|qsiNPN_myQo31W~`c0+T!*%>B_ z)wuJ%i?@U5V_yVp<%=F;JbK953o$InH(LVH<{mgple$`?#@$UjekEbyk!+H*vAkET zLRaNNH9Z*+~f9XFk4@F)3lX2q$5QNcgG#1W-QPcX&zn~k1g*-C~kM~!H584}+ zYp|=Q)0p$XsZrVLo=%=a#;oTr9}kHhjK!ic!AFTbOTQG9ld^@BWHO%8&>rqKMWHV* zi!K*D*nps816lO-J>-b)GoDrQ*I$ZxCj6x$$;)qjG5lAe&G4aQ z)=|IkNcKh+d7@^_q{xkN?b_FF5W_*f9);`dBX!6F@0ljHE&)oy6a*r z8{htB?_dRx$%nHSnXxv+0-JJ5T;sjsJv#(dj!DGAp^k7{-1yzB&0qxU-m z^yO?+Zj3@G86Q6P&0FA3eq;^GFXnwc1PX_3;AD8tnqx2CG^!2gxQKH8S8siIBLqKZ zyLb)8qwk)zKLjL~aX1LZ{5y9(24aoOb-OQMoO##ir_hn48Q;JH#29tmkR4@PRQOF; z_{KX={q=B($Hka8UU=i$>o7wIo^(x&dAl959oT?!AWMz=Zmhc*qagyr94a>Me5~3h z>S54DXk+b3Pb>v5i5vgSFWXURqL4UEeqwftZh1R*ycb0#Mx!mppx?c?1>~EXbh`Gw zkE%uWq~wA~fA-5y$6%za8k8#x=k0D8CBn7RStt_1{Kji1dckHgPh?H}{TVwz@Td9| z#zC(iGY5iyQkN)qlK(#|z*UpFx_c6EtMC4D&h0Wo+CRqNy|4TlfnA89X9uqvA}b4e z)j!$%Ap`-1(vrOUi)X4QW7JfH#Yf@c#RRE`LfyN4b?`GF0|#G}XDuZ0XKSv0@<7`& za#VW|&R+^2H`*K#m&C*rJ0ib_6fcF7cUiIGL@+JGo%rSOZ|MqpZ)<_#!$SvcQ ziLaaw1D9(HlUh7#l0<6~1gc&*XUtyNiiuKZJ>7Y1hEl@eBe#z{zKdV@{AZXeE-1;s zllb1~*`^kH!ljH{!%42}7)4J_ueWthnIG_|j8}Hv;&U4m+oPsrFq^Ir%szU{GY4cW z%JJzY%oyX2GbY_;Yrh@pq6QU(SvGjWyAY+S{VZyPE;BBDX3PDdK-EK+nf*=t@gu=f zs>GBo3fuhYR9}DavdWtlUTlguy>b6R#eYE%G4(-{e0=Sl&s~g3WP7YQ@y(KV!ca76 zPnracEfPQTYPYa>RY8t$QNxYu*m)OVqL4eaEE;Qx8~!oV*9rD^@gDAYZfu3^nZs$g zqh-twTMq?T|<`GcbxUTK6m(YH6CP~zjKHhpV+D|H2tyjqz ze)&I-_*Uifd=}GrtA>Ad3m_EeQ=!|qarHGH3HcA>S5WWi8~fjY?jd7lG=8}8(EQW; z*)onWVxfPVFlkUCZrt_lr5#``5!(1nUv4MOLE?qZhr^EJ)^Z10WagCem7r+KFsLsB5K8G#hm=O z&)3XZvmY`w1Nq_g19t^|XLPBMzwzWt`;0`pU1DrT@j<%|!a&aGhUN-)kk$;vqLw8- zdWW6+i;napsGmm3s~2fh2uS(uaZ zR=V)J{_Pj@K}rYj46T~^FLYM8A!e*G3iDT3nxPmq!f0H3@FfBeRuPoN@Z!@OmVp16 zF{R=AQgpA|pcs<5cH{P6tCx(nR{`h6jo&WYQn+VaMNC~|*U!%pJytA%4JC<4w{g&z zdt{d=pI4Ok8T!Q&3|8e)6y)?LZg@`Q+GFCz)-T?3Cx+ZD9uuCl;A6DC-jsoN8h6Wy zjNW_NSpY{5r$-Z!*5we+#(+zoJr9JjFA@AaG2+LVDD@Du#-L9}3+JFd8cnFU)wbpz z>d-etYFp++%w>|zjg^nS7f9yMi$*)WowQ(;Fq(#*{TS!lBD==wXhRo9TgDEI4R@cp z3?nNYL8Swy3_0a=%+ok6vKUQk&z=l!v>d~#&(2cU?% zZfmP}7xEzKJbr!Xm}3PxwYV*W&DkfuCZ>UKDE;k`4qD@<%KQBK-mwA_)@NoFUvxg` z14B1%%y@a;tC%K4FLBP_dCz9hnW@D}z5l33)3W_43~h0}T?w2dO(`Fm9wnQa3(= zVZn{BBT6gkKVSCKS2;&&-2v67-2!T(OtKvhj!WDjK(^ER-HEsUc@^54;zXCM{7WZB z*qL2#hT{~|`uib|uY}d#80|K`Y+Cbc3`=9Ir)#k>^1Y8=0JIcAuvg^5TF~3dR*`6< zZo}*U;0nTVo=MUzZtS-A+6s|P-a~a|vgHf9kL*Bq$RI9~b~p{@L3_Ua7+4IMVzB>s z@$Kh<49E~Bn=xeV(}M(lYiF67RImNjcNRn;l@)bAUbbS?KDeJ-L|ICmCvg?YKvR*b ze0}qp2SqELo75Imoc;%xq|Uu-BwG^Symr}$%Xy7lrxGzP)9F5 zScr-_UPQH;Fet@uA0&3x$WZOt(z5H&N7Ca$X`fQ|;3`mq^}1!u{O8Po@OkNp5U1a+ z+^S5~6wEkb)YO4s*EzH~iEO%S_UPXN%FEmGfHAwYV;hW*>Y6YIjp%=mI0Rb4W*fHXF=1*yAwtD- zDUIUBOIw?tCkv6?@#P06v|IP}#;OaRnF!_)l`LHAu87?VXHhajGQz^q5fxZj`s9_v z&|g_fs9Yt^cX=O}YEm6?*G%+IOJ)Es5jQkiKP z%8Xa}mr|KiQp$j>aP-KNaV3?xT3vI$+{(P8QRZEZGVf`W`L{-y_ch9VqEY5^jWSicOq%KVhd_;ZxGn99t}F%~FuxJH>SjWSV^En7)5+>KP-sAbR4L6{{*2OMA^e03K z$I3p&1Nd%u?(YLUPuu!~@#&((6=aRzUN$bz0y~p#4ZG2$EFQddZ!XN1x$IX}Z z9?#!xcp#^KFCfeDxl4gR_VT{R^Slku`Rcmzir(Xat*O8XIl9J%XNJ0dqyTvKS4{_B zvpg7jW#9G(^1!V>kpkdx>(8Bifae|C_+U7eD-yxJy9~smW6)I=-Ed{yiN}sVct#+T zW6lr%Y0Ja>*;PG2`FGUywZF^;SrxLKbnpaJc|hj1fpf3#dpr-@@O-8^x4r;)*4yx` zSKWB{fxhn#%L71uT;aU%q2A+p%Ekw$6Wmu6Y_M9lx^8;7Fn9pfj%R%z(612 z^lg6_PilXD)dzU~Xd54}@vD>=&vkT-WB8-J?~favRD1N1KE{Js&a0GC`?K9+ecK<# zliHtO_c0#qOm*weR|Ue8+Ml04-nVqa-e|Y}yj>tXsr@=FC;B+3ed2YMBF9>O0wcB(229&DBdiu0A+dG3(H-~o8xIaT#1;wucEeHEU^ z6`uFS$Dt@w^U#%}5Nklea`euI!t@8?26&p)_?$McFnFpJo*UJo$~y}RgQrg68LRa6 zMMoC~4`_z;S0%3>Tv8Z3+bBG(sy~+6@qC=pAM71v zy4|Df-XXUX1`pFsypBS6|NQITp}Ns|fA9O_h6hkFPZ`gZ4;BUw`=?VB_-7t23?9(W z-k-f5D-0g?PnmABo+u0+Ue{zir~I)nc-RkSJa?=w3?BA_nGfE1x-fXy4`w`7&lUy` z`@u}NRnHX$5BtH4=k~uA1`qbxVE!=O-g>bxcvvrRf6D$=7(93h&MpsHUMUP7e450L zXU%Jc!Nc(b9-qhGC=4EsA26OFZxsd);{SHKE&Nwu@Nk@h`*Z#~g~7x28}s$w-zy9r z_UjqXP9GEo56oS=JP3%74pOG(p=j&VLHiAN0lEpBMjI7(DE6^Z4xZd13Id zzs-0K|FZXZ-cPYd@orbDJ$mNXy~p$K6g+r8jPd*dh8!Kg|F-vd-b=v)0~}Dn2RAD4 z#}85tB<1NGZhY;Ahvfm|*?;@O;9+^dc%Iv_FnCxVysYSU(vNzN=Pld#fcBNjw*rbs z6rKe`Ej)OvilDgb;Wj=`+VGrCwT>VlfCD}lt)T2P%)+CxvYvGDpc{5P(+h-WObVW5 zeT)bDDctCGWr6Ud((SPV;Yp?2$9;h3i4=b0_r|~nH&DW{`)iWz+!1H(t-OjM-g;fgAnBl#rn;j46=7#5{KEU&s ztv|~N&yQ{W2`Zi#Q`GzZxZ&aX^N^xjthg|E02O?Fox)QyqA+;auDVO%d8I&j*#BWX z7w=t|{(xpk|55#!HL`Elge+u z+OIJEN#(cp(Y?p>D9N{XZ8C0!l4;w}7+nj8i;nsG_a4t9HXMla@_TRF&@VWy7FfuS zEa_W3(0Pmpv|~J{_W>Tv6}0wPO1K88PE^+*;SzO?X9;zUHh@=jBD^IbPHcE zRoCzjAp?+)>t&R11St6^nUq>79YARTCD`5Nl-enkQreHw!IWw!;T?nnDIG*J*F?GEgov{{#d|b!X_3m`u$#&gC*JvN;3z~z*{V9QdpefT6 zyaw8XH-eNNpnhT;Kzo$OSO+LwNck9Z&=kDprv$#cpYp+5$jA7C*H9O5z<v2-*f-ZlwfX9zY2^doU%m^=zu&PUl6G(0;T9<*uiEo&$gZ-fW`;{sb=c4fyw= zgf@V8&_}ct?FM{?4Sok))CF9?YN7|C^2mr7TO0|p{;1+zH~-e%w6D^PUk}@4WtBm1}ULD+C78L;Lmw<#+(Ih zFqhCqv;plwyJu3ud__L!3EE;j?xVUR=?t3S9?#G|v|~J-fd~Bpoj^0xV|rm8V}1Z8 zc;QC69z|!S2lCNwJLG(a2h4Edn1htdQ}m}?U$ z?L!G|nM4VAF&4N7Y~VxN(O2{x?E&wC9w>vcLf?TG_u##Slt5$LW6T#)0?lv_*uaDG zfQj)0Z()ovhmeQy1+O8G=M-q*r-ZQr9GsDd@kAZ)3&s?1M^Zu=@UorOpdny@ukaja z3U48e22Yo~-d7-P^Mc<~Gecx$CPAE(Z%)cGWJK3SbttMi`f z4BV(cT%C*68SO;=-jw=L+L{vZ<9eXFMqSDhdhic)9zgeK$MKX_Q96Orv6RpzJVQcz zPN9T$oJ#3LN@&|QlmL4{ha( z_>it1alu(BpEkvW%lh%tQQ3bhUVSju?X$YMf4aTNFMmMA{^@f_UGWk0QT#L7)KmGp z-eX<3a+HB7CC8&zU@+V0)A;;Zar%8@`B8K6jcs~XD(v+n)$Kp5N>5WB%AZ1$-$hg zJ`(CUR}iPk9Qk*ffZ7HdaB_s}z+e7MV5uF#2x@e_554kH6 z&Mdm?rgF&bp|Y(cG;%%Vmh`p_Td6k8pmuc;W)BHC*(xiC>9CV};<3?z+u@=4=j=@} znN*8N)%H-|;v_CTq|*C_ZrtbD1i72244N$=*qQRTRCu}l27OOV{^P!KO%JI6`6R!Q z+)mY+B}O_x{q7-JwkLa@>-m6`7P?cIOSMp+7ZHzuOSV=u`>F>s$yi!UZO6C;YLT?Ll*o6XFd|f+>+;!sZm=wxK~f`1bv>kK`(`FE_Kew2obDL$2YlMo}_Lr!H2^{AEZ7E$>luE(q=0NWJ3_K zs3_ZxarM*nQlh768|#G>a5$Qtby6EV6ljxpRuY%AioA9)S6Y)ZU)nzw-yClgQej8x?XB z5}||oZBj{=7I;>i_LN6Ozt?DYcGj{hE%?A<3bO)!ex9dR+tCxqJNP># z4mns(W3!x~7WGk2*rKs|0?T8CkgAO&W$ac@wlc+9J!Om4-aiYUhvH0q%X3zXF~d6r zJuRu}{&a7xo|LFkqscNqlx9u|%_QsJ7~(^>T)%6s&m|YyXJj8ygQb;}aemYZV#3kZyahmq`(9%uc@DE$8(D!X*TcrC$xl6#; zz&~!gyRFXh9@Z7C8@6OTWUuJdXNtCxRDiGTp=A(RkN@Vj#aITzPwOEY3Na>2LR%67 zPm9Tla+Wxr@Nw*hIn7xjw^hNu(HvS3T1X2=jWo8Cm0gHPmh?3a(4q)i`%VoHe-`%o zBC^0hXW3T|EwJcNndMT2(y6s1g`rWaNRyUPo}W^Xt^$-(Mt9Jwb#&(^eOo~bL;*_B zvL0HP(!s~}re)_$rm=+`SVGiE2zneYEC%*W$7;cKO061{IR~3JHw}55 zvhkXSX1xw9xAs_`K%Ev0_E3FPdR$&L{8aj&ylNn(D%US^aT>P@ym^Qg4(60*lKs$x zZNevmodV4UjyqHf4v$YWX%a-Xp~10k0^P{bM-Oc`kmJLD{}*&5Q)nj5q$tfo#KGc1 z7tA3WbQ<+&ycUI6mxV~m*N~Q~B^pUx2Hy`}VI`ddbX7xttLPje&hm+?8j>_Y%B`SM z9@@O3!{zL^y6H0Z16bzFR-+B?8(t2$8vnA(HMXJVkldU|{KNi>ha{;^eYSAYDGSXc zX$#)Z-4bqRu6|)&>goeLERE}<}iK8ajTYQkRmw0?Uv_V4Rly(&7Bg$r7 z%Ta_q3d;xom_C-pXusmNJ1sY?33SrG31o$1k={p$3M zZ7u1Ardw|CLXlfXeM-0IDjm6*?71nbC2V_atcAnc4jLC@2>E4cU)J#Ur^UACQ?=;9 zZFF*_M@Yxq{KxYRc3uy0Tb#J8*s&5eU8@!Bll3TR=AnMb(d717YXweTpGp|J3AYvL zI1!IwTLBY>Jvy{ z<~vB<*{bDS-Y#$ZC40qVSVh#T6VeZQzLLhMj8cFoST06t99>n?H6#b5C7vS6Ttk0D zRKi30QfCa=!_w*LTrG$^v#?*LI7v4TS%KD=$*X)vu2?~^k6a^-6F3B3P3q`jMM>_` zagG?zTI+dn%9tLZ)l(j;2{caS^shq9GmM0k=dj`s$FHP(%)tPaLo5Q8o}bPW#K_eV zu6bJc(shhnH>eh~Tt+&fW55TMlz>gf4AP^bnRLv2t(LI7vMA`J@R3?jIJR;)%_;0P zFo|CzAM(5@cC6ERXoIm1PqXB(ukm?kGqO%yUe}V`>+DsNg1|nN;o*79lF%M0D;C~P zH`z(BFcQ?aHo=WpdB=LYNzfK*wTUH$MeSnZ_-=v-&l?^Ue0UFSnU+0FZ=aaQ{Ka+$~_AEGX*aP6f#}c)vl)how_S<;v&@>=^h79$J~#!N)UK+Ns6Dy8^AP9a6>Aj?`VB9x)ek z)1G?+jSOu7nT!=*Xb5=rzA;b(I;nL z+FhZ@1JScMoTYI;ci>$IQa zXR`hF*4x{TnU%ZkY-u&B*fCa*<`Q>AXg;?PFT-b%(cm7@x}{oBnIaX`L(Dy_y}&=O zB1(XV1N66!{$Vb|`T@1-=o&r;EZPY~s|vdJkcF+&3$|6QUO4+;@4+!z5Lx@A&x>Me zCGT_ghzMA2DzmnNylyAjg37pt?DvqJs?$f-oX(zE5IyvQj}9D*dw5@QvDm8)%Sx`k zL7T5su+lXE%lS-uLSY$6UDA@=Em}%rdbqG{As83 z9(vD4wuj{@m&7{(sbyEGve_xZ@&l3pQniMp2Q($*2RtZ9QpCokZp7Lx{3d8f#3>Nv zKppr`Cu-s2*5vBxNm|fYuSrjV>FS}E>m;2Rn>#nKZHEX~7tM}kbe1w$YR6L)6bTD| z^W}lP6$GcZY(*|GpVDI;a&2az@`t7WW9=OEk^aCtE!Y$4q1Op@dO9ZA4r|vb@AK;t z5i==AKmi}|UV^BBwM{G6Pj}!$#AId){L(s;*1&45Rxqz&9R-#aVqM^@Dw0I-(GhJ1 z|AFHsP>D*qhL4VY1>iN5#wv`5UINwW^$x0(^k?0vdb$=QyM=1E=F&Ad%MwTw54}jK z(@v%ftY%o!a{ok?piPKoAZ!+Ba-1s#U2qMJj~D}JiCVBwf2@ViZlT(H<1Q6tPtMeW zyt69hgaoZ8C9KoJIZF#BM*|Sagci5Y(6hB5?5awk6>+i(;P*RQ$nCRhfd8ijnXv_(S7uV7FV$Y0>JeJcnVpfP`1?j4c{=&Y4wFm#DPRtp^ zB?E-lWBf!5A6qEtt+%)RTrF6vn;J=WV6^~x*-iudxSgjUrrSI-)RRm$Pr5dRy^_91 z3egJeq=y9qTLGmS$@1a-RL=2dJzAns#$%kXMGxjW=36O0dA%+ZWiHTy&3uCWR3YLD zXluv;M64k}tBE5ZPvOC0D12vBMi)5N43{kl-I8 zQVSmu(G194KjFGq3m@;vPVJlQSt^&M$1r}Xg@wHu=2Q801FS@7nM)Lm^f8>Po)ls> zaa+>op0n2_L`}4`)n%4COUhkomugXjr44gXDvw$^$75Wk1(ChJR7k8FJjUf(a8g?~ zi#!XgkHE`E1llfHf2IYITjqphhjWD%9G3P@s#}zjn*K^HSgiLfUsJ9#Ic2WLxJnBe zx6Fc;F26nW>CJp309%&Ops*hyAK~*(pnr&lKyOM(i4`IlGs13FL`k4yJ;u)!K8Y1R z1p6D-jt}Q*agat@dTSVM?A4HQ2aZ5<4%R8H_tH2Q6vT?cN;<>RhNaSzT=j>C+fTKK z<$+td-201}pE7g$)d~-fvW3}x#nzr44St~olQkRG^I+{_G_Y<54JY?)U`-a@0DJ+I zfsKT5lyC8r(OBZ%Lmvj#;g+GQRHpTF9vf@r{8}xz>|1hu`PRPl(c!mUrv-)M6`1Q- zX>#geYvy{4UuwZ)>Vis$6(YJ1UjiDEcO}552L<8POPz_eZP*#`#z6aW!gamEm#%ZR zQcv){G5YJFPfqKM#2%_tswUO54sO)K;m)xEvR5%r@z$I5&aB6{Ned>^6c#vm5j=|> zf#6tpw2(XSTH)0piXzvbu|pnq8R!|LGc1mqweVRM2Rv}RZDo&3mk$v_;p_RU}-~oqj$g!YaG2o+aYa0H~1?u5(Ii;{RS<9KLdQf$qOH- z#kwAz5iEMlF|6@H!^8fsqt<}#=(Ak2#2ONwgPwQfg%3T$`=T;N1^$$8l7c@W4e$gK z6dDcJz$e?st1oxvg%5HYG{vlt9uD|b=7B#DB|u-nuaH2HL*O1n5kPT|aaUgW&{`P@ z25*3#fCz61E2U@$v@USTu|yeA0a6hC_ZYub_$&*G{bNL~^}p@Ia;1@^Tr;&mdiUvH zgvs>$ZmoW^4ujW%-S-~jcUtvWUSa&P8wrtgDJ?LEASJMd4!Ms#Vz>jHAla}J5FRV$ zWf|eRN8xj`J=vPH+gOnqW{)1Lh_F|qhhRrSTcHJVuQ+T;>~lpf%6NjUfMtweYe3L6%+x!=kvk`Ng(YS?3k3R58xfSUkh>ry+y0w`NG$P#SJe-(%xhI zRSO?SrJeq`^zNN{)?>V&1(D|=Xn~Q3&IbkHLBbNiJdysE^bz21qAX~Ir&yE1y~lV_ z3*TT>%H9L__P?YBk13MAet}hD=l29&)`G~Aj@LV|!x6j8;X~m29Pm{Z5v0FqL1T;E z4#U2iK0#3at_6wXy)ugEwzl?)791XN$Uls+^lM@7!qSs(24eO=0^$zR4;%pPCb<{# z0N(todEtYU$6SY{iFgcVw~UBD!a$nAGLbki_hFYvc?cO?Nw{9i3m@7%V7P$4h8QJb`cM{tsl6R%e{WUww1-1ZmTtKXwjTouS1PDwIDK=f=lGS zU&u{JR>&x+qhVnoatE%2#V@rNbt3EiD}Esah0= z@6bSX|EcP;1!36~)6|o~to_bP?xe8Vv{1C^aI!4@6o25I7U|FBI`6-JK~EQ9^(@&cuZI9JOGX4stbH7L<^vq zKsQhv9stUKwn37#&{XioU~82TuK(tR50<*L$PxL1)r8eG_&OLx_&->igucXz7CcM% z*;sFoYcw9?)4cG(V}r*8dkS!2rNLtaOzBTb*zmBSt>Ll5lSi}!7M92OEH8YpIzc^n zh2T!`Dr`Dw0R=-SYt8#c1Gv_AOPBC^Zd^p?vn5V3U5UYn!1vuS4HdpRA{;(lruRrZ=3`utN}S;+Pqt@z4i|T0uwPJAzWbXXl6^j-J^2;oggZT2QxBP$54MAHu#t`@XJ0 zT2Qu4Lctdc@pcgQ65?CTt@LDD1tZMw$z`Y=M(f~6w& znZv#S{~>NHSIn?#h)5?^73E$NXd$8}BgYLt(5k!%76rFk7MNgY*wG7|$^KvCe}iJfe1ZF5iQOy;ngr+&LqK z*(=D_+97$h7NZM$7JPtJAy~PHjAET0caTTYrbcfNOO*C4VvVr6u_stkN8jrF-`aDW ziK{&HLxcJ71>`x#9zG@L3dxVyFgz$w6W?ZpM!*ms4s8tlTvciVLE4OX)d z{13~^J|~=h^e`=WBNRNj!UT^4S_=M`^t!NL1UcYoa5Q4+_y_$48y9_n4U1o2&}l#8 zLw!&}zS|2)CD)|kb@7_C+_xh4SHfmS4Y|5gOZaxr3m?V=D`?mX&k0G4FL!`XVEf}Ka?l=lf@m2=0j+|6xu?SC zHuG3d+I<=8_Y>rvD!JnC*kY3Bt1L61v`cTix1~WqlLTEpE^6LZ+9> z9km}yeZ)UYlH2zUr?(#c)8R1oUhK5Nw*#=xEEk61S{Rsz5k0`1N3t14IRX{|<}_ktQu{;p%Lo~CFsyuxJ^o?m25f)GS4cX{21`w+v`Ou8NJK&8FQ}Gk!Daq}e+PRFtILRCW0#+dk0Z_~ zcPzn5!+s?AD2Oa0&J9fkyVOIabolE>Y8Kk}qF55h{)b^$Z*Q)zEao7b^3t9N6NpoAO)?mxUJ&g0f&R}SZ8qcNfk zvRrl=BMQOgEF7HUMq{jG@$*cSNatus7+EVfZ9oO={KxoVK4a~Rud4)&$B|zWBb(e5 zbR0o_kbLAUeO&S>=$Hx%BY>LnnUn~eCr2O^nk>(w134&XJD^C~xz~_X%=WA_*-|;C z?q%gOtE?M^xCio?Ro0@QMNKX%pP{VGsa7<0YXv`Z(jSqaOcds4mJ9_RU;=!e|M2N0 ze^@fcjsIa0bGdB%j~EnlsfEMhbsok1`5%55L)PbiL~&%T9}54&H{8tsJY#y#|KJO! z{I5ys6HCX!*W+^8_#fT@b1CybqKKTw{0|$B^HSwMya>$d5yZRJ%yH8Rb{nSPC5<7k1uuqr5c-`hxO^E;7w{ba`woIa8OMQSOxI8kwzo zeH%Pqe&1Ngh^lhWGjU70y^LM@vQ~cc7OS(V*syvl^O*Ab9OR@D)^^gN^K4+~SR3BB zwlmLJ6<;sW0jv`d5LZw(Pj@4?-W5xe!m_hIGg2;H3!^mXq040lYI{8 z+7)`*4R|dXgjtwsS+Gp7+ZV7Lx0csd|We z$duYx9j9Y~x%Wm_L!?V@^oX@YF5b0pf497A#iV~Yw%NvyHFJC}&UGJaO9N-~e!vx$ zL}Ob7>w&E4C3g7d%zN3Ry}EMBS|#}5j5VlfNnf@AQ>BJAyO`dn$JEU=+NpBNT3N{^ z8Qttnxe^0!SmNY(D{`c~#h#zk$OT%;ZM85Wm!%6!N4I|B&0on``Snw87PjJtl@-6W-yW^&wE zQleMP<5pZ0xy<8zqZf6@*dDcWv+1xmx=^+X_Wl$K_IEM5Jo|ImJaYE*-Tc+ngZA}g zx3Oh;Y0WOqVL7`g+Uv5lpl0TFL&tDLfh8uS6^~dp4dJGjtX22SIQ356PPX15@md-#}YZ4 zwIKH>+4lmWCbvFcjKB`s`OYtCBoEEl%) zu>g&EBrT6lzQrQP*Y2-dJM^-T2kNsN$sXObd*aOD+`}J|{j0MBQBQ89%U;XQ%!hBR zTDiC;Rkv9CBJ;tQk8VllQ@lIF{K!!ycUwvBafBqy&ZB+nw{6}9!}4fj`O0k<4CDy7 z6Qjw}LEq+f^6ln*F!@_p-_1T4teCOBwCf=IzF8i9l(qB~^PF2;1|`|P-gq5k?Q^rY z(p@vzBafNZsw|r|KdEc!#7vMkR(qgdxuI|DtOIn*63Eo{jfY;?)w*;#;L2_`S3CO-<$b(9DU8g z{cYCX$_kccn`vAq8gG8%r0{VfOU`cQ7&$B#D-8b3nJGKz7#@m}=H}Lo^#uzD+1e|e&1+)( z*vo1k2VPmq&u8B3*-Cop?nB+wJzIMWcvF>*o2F-r`DA%h96z`3aI()fJ)gi@3$paQ zebvXpV#R+L3(s?RJr7yIZP1Yx%nR1KL@qgTl!z#A`rj+T?sr5+;YDx$VhMkh#O;kf zerEZ}$Eh~~?Yk7L)dVZf?5_K*H-NKy6jn6angwpU-yVxjoduTex5rA|_S@vAMf0B* zPOI38Bxat4dhg7;$29HME=!9{qoL<}^zCT;kiRLQABVHn<+9I&&3<2MtP|3kHJv4I zV3k_CT38mKEbGbabVmKYUDvYSE^*h#o7c76)`9G@y7%i^=}`l41SGiJ$&gDvTGky) zeYZ7HUHPc{t_6NsK(^4GbC~-x>yJ&(Q^krRuSREX_r}`!ZaNhhSt77Ju*N>OEt@WP zq%Gp)9M}$)7G*rZZRPd_@7SdiV_`n9EFH9lbKQBzZ9gem%d(GQZ|q38y@v((+^XKf zcN^)xf~~VRb>rz`&1sfvpbO~H7yEDki{m+cF~8g-r|w&(Xp1Fdzf117q_aEsZ+^=Z zGFX0}#BGH0lW={j9SbSp`c6VHU-!iv%ik~Dc%vp11JeJO5zlPtS@ z+3cNcymumHyo}OXQic6r>kBjACyo1ZR`HCrxSMmBw|j@JH_;r*Bcm*MFlro=DT^<%Q-ISPr81Eq+or- zZD*=klEaFL=4X!pI(zUIKOmRArNZE}sLwhbIDyN)&d|60WN6NQGOzVTKaUcv|6kZ! z23kOS{a@T!X5S|U3h@51jo(`a-epOIYq<~H-Fvh4H)fY^eeJzj@hHnvhGWe;&gm^=Xzp~oITd>PTMHZeodV!lyQ0&MZ6J$3q`q@5Tf3@qf{a)2EM9K5gpb z!8YEeJ3lrywwIgo`jFFk9-56UVatL+u4UJ-?m;g5DcR`^uaA9~zV^@no3&!T(m_vJ zr++aIIMek%j||f%-QKWb`}tW;z{h@AwmxzT*dOc-K8E#O;bRHBa7^>jIYa@7m59~pgfi+u1itE{BCds+DmWo1-Ja))~>_*o(1 zFm7Kob&td7{xW%A$6@U6&O#Uc5Pnk*(%`$*<8I$nMJrg_vaUlOTd;Q71%8E8mwan+ zBJ$u-^8RC|_v0R&vG~ivYQ5)`3q!gs4*AY<&a%ZVEU*e?gb~&^+oRbnajRT*J6!ke zA1gBS!-*z>?&;PA=*l)Y(_P=wa`F!_9&J@EYyutt#v1hQ!~A7 zWPNM0Z+O)j7rAnTZ?ABFd;7K#!(qB@?3lQ}X=J@W*jxBIW3J!!^bywIHDa|S`{;h3 zv0{BnIOi>MLuPwbA96a4K`+)@_E}`NP?%3pmi1Y7I&c0CyK@XdkKD3XFEW(AYs`|O znR%o)ve(%cj67Q~`QSrbh&e5PyTs0U)*2_b!)}%QFMRhfeKbHF%(MLM!rbzqci7xy zh8%aa)sh+RHlihQvrCM=wGj~|<_N(L$3{f2*f!5+=2`L~*St%e=|6-OXK<*cwJh1e z{Na=x--k!DnOh-A*hB7HZtcxJX6J0MY)otJeSfN6yZ_MF4ksk@fjc#8wnWE_^3LoVxSr{rM!u5a`l@NnDHJxq6<=EkAigUnO{CYF!6 z^n;r%U`1{0RI+}T#!e;OubY8?SrTWD8Rfsb7O**{k`FgoEs|7ni~qZ=+FIXY>J7Hc zQ9`#dv47JkyT-HRW8d(t#SQ6PYsEz{1{Qb!P$JR!y+g|~F`xP8l!>4s&)nYdmL4a& zNtfR1Ke<{aW8U+{?~lkF^i9sQ`G);Vir9~CS#Gd~Q`az1f~{mrA|aP0iY1Yd%d)`Y zf8?^+wx@kS|Ty7%wuSIGr1(RlSA;nANM*lbT`du)ystu^2a%fspG}^k|h!M z*V0MWi1Dldey*q2g5wOs=%JK)cvQw5bunDsZ>`SzaRHpSpfp=$@Pq!UAn~DLj8!)i zIa8fI#z=-kIa;^?HzTeS>7gF3>P*c={z^(X()zN5GVLwS2&Eqt%m^is0wuNI+tPC! zjNSk=5Pkq9z3yp&97y1{(FVDdqF9qUub`SZ_K>Iazk8}IuHaSooS#->rxXm#YbUAv zvM$f85-_g0+Un?mzqUB?gXDVjvPw~1w#O~RC4?;j{jEFkBsAw4rS}`4{!Xll4Ds4 zIgX)w9IOeh6nBQf)7t>Qav{!KtO^~X&S@u1Ivjf_Zs$2~%%x1^U5KZ2q!l<&)%c@) zo?alJ9`Km*8QD`+Wfrl?nfLjI4IB1W54op1rxZ2-*+5z!DNJb*r74uAQkq6-I;9zu>L|^m)J6$< zpp4QiN@&k0N}zHDB`>APlx9=fpVE<(j-pga2|}r!QUj$HN~0+?Qkp{vG(ViuNJ`@< z?Mvw}N=Hx%QkqApnoMEx@Df&QQg1fEN0zZv-R&zx%#B* zCa=Eryss~rFl0NefqU3x;I>vUd6Wf1O`y!Yo7D3~^SuYocw)-+pS}4-;KX5{*_)Kn z8iAs?ST*4&#Y5Yvd!cv(W;`)7oM?B5os8i2asjs!g9F?don4WoW-M;buAiz0vd9Hw zFIqUl1)N?BBZ@qC5(FGPa`(ww!?<5v9IXm6JqK|C*hbUC2_k@Tfhxnp-k-~yP8T(q z9==NqyN!Ru;}GgDFD2x9Y1$%4`ssQ z#lh2tNWDSksK5Nck!ibmTwU|9JGg3QEZSWZ3O6UBvE{}RRkBUBk?m#4QlR>jNW9Zb zG&HxHonet1Fk8bt9SO(vL8^MUI`d!~YKV-WdXPqC?n*!vfY8Lj5N?sThH#8H!Btx$AMF%1vwE?h4&WssNL88wP_OCSpBiaPZeN9&oA`V_T!*@;T;~urjp10EnfMO) zP4;3lzez6S!Hmn>q&YfL-7~)%;L>|k=E>^3G=(F!RQJiLr|x-{2?5N7ICF|Bbd3U< zcDh#OaD}1jey*yRRsq@t$3RLG%)~S^-fqT?NhytC0g}-jUfbOEz@OqP9+<2uJ|=(~ zf)eU-e9~7=ZR9ShM9xNH5(Jl;U5N>?aCdwDt-SH;>A^4iEe>e4@=vN&tYed+=QMf% zQyRxad9wXIOkMK`54FPOKW1;syBRfph=3`YMWx)voq#1lG_B^Vn@%v%sb{+28{^NqF zi1N@!c_gd-gsL$a;FjUYgA5?HCgs?;Y7;n|Sawx;@|0{GHw;*|pp-|$;9BF*sKRoh zN!D;wNiwQ*r6Sm-Qv!Nk?&qa-Ge;o0Ev*qfM2?kr8@YX5b?XH`Sv zllWeso^dljbE%fKnOqV5OKoP>iabTWcEO0bOTbinlMUs*xmB_H26)LT7&UtnQ&}o& z6B*y9E={!XIcWJ;8$Qr7FOo1mGb=tkO!n_N8&|T(=RV<_LkfQAf+ z%9E!grVCOqky3OtFasvLBm}kWeacXURp^nbA@(X@Q|m}J&W;7HoxMs1EIh1X1%SXxnNa1N$JgLl@L-9b1q*lq$Jm!UOU7A;<@}#0jHV?X& z>DS^?Ed%`?qG~KK+g+-u2CCXgY}`P%Dy7K=;v!kaZc{{DFcqmhc}iA8zb2|jN2@cB z5YBv^QcaFlgxKNf?Ge95F}D9;f08BHBr;hfBD4KBgls53Vc{a4+)Yo?%8LxP_fU-L z?f^_IEs!S)*)!VjVpw(zq8OWKs8{q$*%$$kg+dabJ)`}14A7270A$P3-Z-AaNm%xb z_Foe$ANmkP+v$Li5wPqiM-CV|Pc)3pyd*GtM*BLhYbVmEp`s>Rd&!#ijP~2Pro9KE z8FmB~BnTk~B+jrP+2IdwYFKP`n2B%)d|hLxVg^`kn4*BxekV0yc*%rtr&;0;$2!6# zzK$NVI~M6m#7ky31SWNMM`MXbv$MM+oG{}h4O5yZcaGT}Y3?w6;kY?AEl2VK+QF>@ z!_cifKy|hV(1Nkh`J&JEb~($lDS+~|6GUM50QJq-HQ7<552WL`|ZzBEw#)yh&uSx)#m6iJDmi ztvpn9f|VYg4ofSKkP766z0@8zb64%yhtAuomDJ&a_S@*`F2h6NNQW_MRLMDX2PKci zJ!7v2{=45{bhS$UDMjXZt|-|HLxCgNA$x|Hu*1VGElo?M9BfKNlb5Y>fn;p=a$|VW zn59LAl-|t*jAgFqiao=rK^U)1gFw1Dn!*{D?D!DX=tvf`Bd|0G%=Batbc!=9NXTXQ z!^f)jBNK+Vqb_GS>oUZ&Zd$E?q2++Y8BR!4%2|vNT99CKJ0Nj}6B5IxA?e~FL6?YC zoYgtQS)GBVcS*7DLV|+>O=-V{8Pkq|`AadT)T>3^v1qdyj~BH@x*`;fZrK=KZ4;Pn z{jg^Y^I+brQAJLpGkSaYuPrMg$HC$D4B3qRftQZc zDA}9A)l!fZJ>`-x%T!$urdB=1X^-DhwY2UhGf*TsPWEn!5_UWygZ&Xy zA<-@DQw$Q0Bp7?f|0U*G5L_=QA!mo3-Q4M&mAsp&E96UZYAy&S!v0fXFhSz7*OcG-Tjh|)N<240JqY4KPwpL|Rt6bzsi?(v`z^#f# z@Zd}rOhwe-i&Ud+F$YMxg_M06CHwjnQ(w@6=`)lHwE*@9lyD?x{%i7HEJKMBc0YY0 zs&H45FzoiIz{0IY30}p5q*tq08@^Nf7T?|kZbUYG zr)cAwrN)n0sElgjXjJ*~&i1!nJxJYgbT^mzox0%YUdD~#kclf*VP=>9421%Ej#;vC zP`Xo~e2={yMor1sTSNw!UUX?>>}^&ku@orZV{dn(rey3b6q8nOvqFidK=~efyL-0Y z?v&EbjANS>N>2(DKi%UH+V3g6*A3ua*%1ftPcQK;THOcml4mV;Dfc@htc={ismEUTy}t*rC~tGt1VDu2LN zRqFHk%0oeKS!sEt117j0M_S94C}gwca~Dz_nDNQX3{T{?bUaKYyxg?z{-h=YG>_N- z?^ef?bc9mzSn4q2kX)kBX$;9!-65%|3Y3+3D?^n&zpu_)UhORlRs`z2RaI3L{!pN% z$~GiZjm<-%ST8wCF4rECdhJ!5V8w z2e6zrZAdoHl5~mP zp~fgxaKVQX2ZF1Ov7WBQX<`d+Em?Z_=zDGT|^%6w&^sz9YrxR?Uq=D|oE3=Zt34hF0_abQ&Dwwq>$o1t~EDkM(= zwiu8=O|`F@6h?Jfb#+y#x3s)A6ez8$^4694OGExL@d8;A=;lF59TbkD>kLY|63H+q z{wjY38Cx}#{_3)d8ec_iX?2i_VV^Ca-tqg-w9jvUV zsV=LlEcMm;1GQykwKPSl>Vmaoet9c`LEE5gwzgcHF4h8Rvwk+3G@cwdNRdr2yU1d30 zTjVZQ)K*kh2EC=hs;as`RYjFh@B-jwU6QIx5G2QuIv9>Xinpt|JsOLrjYoz+N-$7Y zS6Wr+uk@179;hX|tGuq3{&}m)>U>^bNcbZRbMug-4#_~3kvb%JJ53x|RGAuSYfq$) z$T(F*o&=y`x~{76)&~5cipm;aFj!SVlB>F+I^?Y^_XUDw!K!MpPNP8npB<2eitcHv z0@$ZotRB9t2%KCp_z5j{jmY%y7IGaCPR21$o&@vb@-}sE+^#N)6cmn*B4CZh}}^TS5U`eg6=8((cHnsnLZ@qaVSYd%FOJm)gF zPd(87XeCSS9~_BUPGwaqHGJPs0z`T}4vU3w{0RTBzT!=?&USJnBes>)0K zb(LjRKGGePwg47|jIT3Hd{{USDlRsm~iIw<1ZQsW#e7)uPQ*V-ujw8TFqXf7ICnC;#e(C$@a~-_6rN zo76lGn>uMzRasM2TT@+L8K@ykubh?%yn$-3x3;3LI#?C(m0GkRQ#{Ex_4PWmp&H*4 zZCJ>F4oiQ$HZkGYFQ?vl<*p~U@AP=1TOP+RowV_nddn((A%A6+KUf>`)>ZqfLzQK9 zHFZI6u*O&8x6#JNH}zV4LmzzE1ZZ>bpU;2r5BHxIx^`*j`Bxe{2SA(DJPsr}X;bYl ztMHMNQ0c3yEw3&stDwImg6e8YYrPcnsI~GoC9azklNRatGYG*IL7dVT&NDXKDiP?fZe#XUI{ zlqAolp`rfx*F8Sk;i=mvTr=pSV}G&X*b0y*HIHLHPV&@xX$F;6lLzFjtO*4C)jm>G z)!txrb$M+aE%e*ChZK&DJbK)-X(*}wuRL}0xepos%eQ^{;WGj|{1@a&&Ex2clRSaa zia;O`^jDVo0~OU36p*j*mRHr4meo~M1u_|VnkuO4f$9Z5=|ITLqM1>= z^jFl7i1joldSc{9a7|CD?{yw|p=e0*$mDw^3#42)YG?8z>@<4(((Q*$TK&fO8&96L z)6B8cZU>E0^Eg-`a3%eSiqfiJtC8j5<#V@Ya{?Lh62q1HH<`DfJth{rMT* z#rlz|wTC(<_il_)8QhPI0f?f(SppD0p~cd>6uz|31uzsTG}=Lju8tKu?YMN!_sFn1!|G>dkH7fRpSAz;$enI?%X?6imVX3yVx@gx@EDWc zqk2F+v%|L)ckbnLJfIuZDMz+Izz<63(V)lAedpKv{v&knLwDbO=^OW4jM8|{WpJN* zpcj*0KKAUP*MAzk>do6VaTLL>#A-Pmi{kB2uWn4~JZJ33|%Qf#TiSqF_sezFAn*(6cDMJf1K+ z(;_DHSyhFBM;OzAz*q-AuyU*`8-0_RjuD2>GJyE4Nt%+*BaqP zE3SBU$yJ?!lh>c}&K>n*W`jPddDscfhd_)B(f7C|$5O*Yw0ktQ*Z+XvviBxaukB?R zG0u)&)5J0UGNfnjMaP{MTKlVIC-pNwi=q%Jy8&QvgC3Twz2L&jw;MQR-5LKL+V6uq zE_TZc*?;rw#Xonf@8aS{q7BS;RiD*%@+w3X|cNLkEC0dCs z!W|tD^NDt|DBf*0M_MChOHmjvUB|}`oYYFCg&M$fnOhW&(Pc->47bn|0(f9iBvG_1 zLU6jGiK1qDke~uZUFI@79sLcO7e(SlF*DvB?TSYhb(lry6585Aul+|l;^Sl+z~fzSL%^1pi4QKSOJCm zPPe_8O}G6_HHU%91`zxpZ-JaXH~Pn$DNKWV>T2XEVZAvXang7(3& zFQse$Gwhmq=bb$Hs^hMC>#PfIS?HEmF!d!`k@Cke%|rBX>4;$u%sb#`-h1muUe$iq zIg3y}+t}hcdU0sw;7>}sKbm;$E8nht`;z$s-0}*hzR-x&!_l)KJw5c(cl@ne4)m{m zqPgvyw}0P(3OYU8|N0M(c>I8?C)^ckTRG;IQQx9xsd@RSHGJbwsWqk0gkUI|8d($z z$Chg-HOvFFKY7?0E}7|a@qnu6sGW%l$j5;mKlk$1=j?pyyTNn*zEyM07AIA^CZJ+Wp}ioPOzyPI4*`X)&m`6Q6cB8#QAkY6P8!X$*vqGjQ(1f*Saw0n6` zYb@GHn)XPAB4d9uKA@)HXs6VRZ=^Urq>=MG8v>*JqeXBo58@vC|J(Zx@R+jq|A`1T z%Bs;BE!rZzsF|8xB#2HVBMFg25^U6nAS@ChYL;lL69gL~dhf(q1kt-??ONUcym#)I zxjA$0WHKhg@B2T`Gjs3#oc6x&dGCAbJ;&T}@XL!!oOj$_I{ia@Bk z1AC;0hNDR(RKci4tVQZUBO=2>15r)KR+fekGlwwdmZ1)-M;8PgyIgNYyB_x~CRa6CJZx|V&d0)nX#j3Z%b5q6h%iUA= zb&5PUwwg6~K-d534<8r)oMh}acShR0kDY5l>rAWc3|If=YO8+_10Bd=zWM84qzJtA zuM=wj3t3Ikx%+tDq_e{=^O;^-dtCD|sT0{2lK|wP`kZmi(f>Zjcg=>6&lIJ5e~$hk zbz>F{)2M%$*aww~sF-6P)faA-YLx%3z#Ab&;p!aQVs-0kYuA)Hvu^#FIW8Nbf*kN$ z1J9%b`sesB2=sV5(=(y}iOJ8)ck-uU8Z|E@^krQ}k`#Dmc)}jK(7yPOx4}mvD?05s zyP)hlyQaSb?Ic#Tx|PYDd^JIBFph=3;&(=fe2&HuS>$Q^BF@Di|$9M&;jGYA_>@tVPWWVVWI27U9ltvGt)nmj9N zy;+B877>^PAg46^A=d)^4wRXbmsWL%e7V`i0}A1>TpCsqW)PY$e%npg?47y8ZS(H% z>zxlrKL?r%(@vm2#Q5CqCYSP@w*J&{b<)e;lW5r2G=tb|!=z8t8K?7$k5u>C^K-|e zHM~dtt}9P{4sBd&zR_8T*T+uI8o7A9~wcv~J$f8!1PcGTT>ZQ%u9Py0ngZ;KLO#-@N7~5`A66Yi{%!^^lBO zckETI-`rA!)4{Ya?9JiNuEQ)G|UYoV2D9` zAcAxSszms{Ywx+ditWT4yz%8wz36(;G&-2-N~NkH#;wn8+E#Qy}j*d zn1<0&b5=|(Fl>6DuRzKkDA$Fvkqs6=F%O*Jj6j_dn+!j0Aa*m>d#g9g}fq^xz#H7Ar)(Y1e3>G&CwE zRz0B4_@JYu0*6M7h*6GUD@TA}Y(5CWB8fP&>G3ko>%m5ZcTPEu4c$RBFRoxcir8rZ zh8xcMQCQbwt$gCUb|;s)yqizMG%7E67YhtQaAq_{C_ps40}TdbUM&X9egVbOrUGPj zmcXXKJ3-Am2VIMeS(UX@I`{HFMct~>V!~+e-A`RpdQ6*?04u%0xhOBHfAzK!{FNc9 z@p&u5bI4OzRN{QY&IMmAeOI<|VAYyF-U*|*8i|J>U?t|UF6DQP-h9w?{n^P^cPGVM zpkW%7A;Vhn4ne?2=jXRHN)!3)5v}u|HYNO|Kdgi))GPq~&X$3FV(sTSXG-^UO*ry$ z9Szf{2ARZ*mnSQfN0Zkbe>9)7$#sUg`Ghv^)6JP|(H~pB@TlQ{{=co3m41;pO1eFE zSnp;FHvLS)idF$K*M)f>{2MzhW@FeC;{>>8Qgc7G#@JUh}`6y!0hJPpHJ z%t0J=2E{ux(GTV2erovAhwaxpZLRkF{-uPnI*keg{iEhutX^O;$8*Cf-<6q{o%_?U z+rSL#z7|h?QGQi7Kbu$6Vq zjWh4+p|hy1!E3qyROVm!(8fTt=_;>z%{LYl-Mn6vuRXeU;|k{`tNyz-f7JT~?rVa~ zHRD>N|K8U3^J@BZ5N-T4Hb3`loi{WLzkB5%R$27Zx(EdVX*9_|OpFKq+r*a&I%NHMem_Dh;MpKBaO-;Zbm>X)|A;0>Z`=a^t|69Md!C-e9rqLRK z$VP!|_PnI?dO&oFE5H*p_lI5-CcZm&&^f8wGuJz(e`BVrwDDv(HGZT`jW4jYWBzzs z2^NT0el^x-gf4e`@5_BtZh6e<*ePYzC7U;x1fU2SXW(EbuiMLyb-eKFLGL8R>Fo!b zye>n-N}`njeVZ`9D$gRX1jysle|{CU=aV1MtgTeRAL#GVy+UU*VJFv&$MbIHSNC~9 z!%Cu+0L`3k%RYA=*=ncPjw7bkEB2S32AXx@Y5WY+m=9$uiMEu_7B&HhA#l zX40vPhRrJ-7P*^-O~DaRcs1GN%467ymB|v42FJ$}CpBe2_P+p6pqMSvPGp_#yU24= z6|cN!w{D9e93M}N?MMDVf81^Hp{tKOJI%_uv0H9eT0z6`zUz>tny2Dz5e-6lCDe-u zw%+O?-=1spsJ7cA=G%Bao`5!RKz~f`k)C!FYI*#gInQZkn&2i4qgM-LIWb@7GU>8^ zeC5Oq!@Vz1PS9r?vnKDvx))ttlG{jv^8O9E4}rDu#NQ$^T!nE>TZJ)>We0Q4TVXh9 zo6>>*ANUDf1K+c!9Ah`~oY zHw-6bWzyJ_*3N>!;E%&_BV&UD^m~2wT5;Rtm}pP)$9A*IeSAm5=r3pS8l3)!wrR#Q zE3dy|E1H+#w{CGyk4)f!k0uOO?utO$Ya6Fecjed71COt%m>^I2dqj_+AyMXB zRm0ttwn%#Gep>Q=S(iko_zH2>Hp{k;r(p(oZ4KL92}Xo(m^(YIP3uVatedMlSe3T$ z1y#_dCg2au<%W%DJ#Bn9`Kta4hmGu4`!Efot3LI0hGenh${1tXt_A8P_+IE`%CS#t zMUTa+voD%#xEMVEB5UL644XPO=KA-#4Ku@+kG9_C?XKuG!?!&-+$%G6x<{t}0>O$0 zm#%R|jJqrFk;d!aomMxV-(5CmMvX1;H616?FpcgCBw&acKAN>HP_{7kPR`Up(P=AN z@CPo)&v|H=MyEy1*_X}m70OvNL?QV}6i}`UXSN@9f7-kLgM7WIMa51@Z-u}ai51QC zKsEL~t!oC3ZF(6+{^z;Gd)g4sJwsh4-=JYlP&n)u#rno)`1&AX*AL3BpEGra)2@gC z2iiTiO$GXO(Tb>sXMTx$GT9?x)8Hw?HoMOUd5{>kbC4z@k8fdy59U~yc|Fw)kOz(- zQF*JI3~pT<{b_W_0k3JF>fiZ!bopZ-0}|7yqyEoL@ZnM}`WUj-!M8uylE767Z(r)1 zwnmv=%j3383xD>{!l#l=Gq0p|-~U4|Oaf2@CL0`WxfTu6sLhzz2bq8Vo&|50gN>(g zDNv8KK;GmsH;7T#dkyrL^UGOs?k9=o#L~e@qpSYDl7?y2V@%@3%M+N=F|`If?Xh^J z%QW$}G_!^#GA3K}N2~t84;;|nCNO>Nm`i=-neo}L{@q`30}U%$4aOvG&gP5Nqez2q zT$&9!_y)|8OVemrDu)8KXT1l-a@&w#IG?XRPx( zv-Gb6z!QmSR3J>^WI4f!Sm2>@SSeLNAvXmK2)t~c+yAhjW9dw%on7jMemY(LDa6;t z6Mz5SaNQrn48G-St1!~_>BUDSZfG=Vo5FS4;8G*IT9|C-3LmA%IOsS&T{`P?>4iaF zi(9{Xw({QA<}}OzhUn`KzR`NbG^`{B-)N%-P#S!Sj0fL*387pb>h|9*BT_=1&Eg?@H5;in5S+0yFF`vvHtV7+0a|T zI|7l92EOV5)yVZ$UYK2N;C3tftlGA83kxu7<{I;_Jge+}%5T-JVUt_Nt zm*nPE-u@QuBbjmB+5XM@?5UV32>1gVnznF=hLuDs5Z1Pk3$B1{KHXZB2@ zOQEcE9pPm>wvK1w{Oi`H4<_XT?Id=elZ85iFE*yIjFj)}ZRpLpD8j-bR9UMtMvyL? zb?#lM^|+Q-x3#QnUllr_X_ryZ~fw3pIK?Y0T(1Tn4{BbF38F3q@upv z(9&q(+sUG>1>=5lMz?l$aQ~CIlO;w)s@s;#EJx8|VEL=bMhKsda!WTgxZdd{Z#|^* zliP3ZzxNnp;z?{NP90s<860C#UgO5=!A69d(u!rDsWw#)YyeJX2+_vP*XUv7Yir(I zWJ$(6^EPkxXCN@{)g-cHX58~miK9wIZVU)gFKEBIyarV`7pKQ9N z)Td#0Ihm=+`{D|OlPYt|B#o_z6hWmPrIdQGD?vJY+mAK+dpsQqq4*S;Ndf%<{SkJ< zULR?a%sN=09GeVI|QEg2jE6E1Las`9F8rmfT+9 zzpkyk0BF}%s^Aaw&&Wuzd|~#J=lnf&x<))5Sek}?&0Y}D3=S$nUz;-(iV1t^ zHrt`sR;R@GlOcjG44W)Sldtl+TGADI{rX{F6FeiWzfpy_dAGJzdkF?SkdS(@I+!Tq=B89C$jCHtZ(C_K+^bS3qq*x z-_fmJ#3Z>)TNagiby0Xa1k{D6zmw~4Oq$X}lHPJhzfujtHUm#2_5;oc`Kfp+rVWO1 zR$xF5yt#ir{HV8g&f-VLH%pCQh9I4IYM*Cu_?D!uWaizeA?+)_bp)PBY!=Q4`SJ5) z*m44%rbI03mbNXyd3DF_mu7p#Y(S7sJT0#`t4rh8C&bI&%1-83-%SFZNUS*|#yS;G zU;e?ds_U-0(aZ!PAW)7_aTw-mxJHO!26rnXJI31x$wxyj-@xGR@vZMoKeaazFSZHE z8vgsEziG`HTO{4B>)*`3e5jVwhF)3!4g9TCH5&Fcn>Bb%s2tJuu$;^39itMxHXgED zaLi}j&!7x4^!vH#`&MfPo4GCd&v)VQ>$9PUqE&yuANZ$N0lL6x(|zyU^q&t=oE$J2(ia2Y|v4A878(x5N*ebsBw7nm^bzwB{~ zhTA;1{T69=^lo578ul#?`U0KZjgHo7e%@O$&9jPs%WJ#SX;?80`hqo;qur31^*UcL z!V4rz*9z7h&u%2yWILsoiPsNRY1p?t!V45%K5TbsW(6aHq#B8uq_7!V5BZder^;%R05aGT-iA=w>ygIt^Qj zixyqgrTZ<7@EWcqW0-~V>6Ns!Wb|4n@APbK*U%4{t_joS)kp2F6U=RQz+@CSSRqPo z$3(+4+8vO9Ar{I55u{@j2G?k?lZ`$L<$((_9u3oIWvDs(vW4;_SMXebGg!h)exv|_ z3TuM^7v#2AG^}WCkgvQ@9v3e#tk(wMz%jWM77c3xIk1iq|2Mu+-W<`Y&sJE#JGt!@ z4U=PGperMfZ(*T4ymN-w3JVw}x5A=f8gm2?=)2wu>-(9oOxLy~Qh*xMLe@6uJYo4P zbcOd_Gh44cM^jFR+?kNht>{Xlf(2)fe&mED4J(?_WRf;#>BZT8-3d!zf}F6VVRso? zm4D28&)gR87%jB%Lvo$QWSeJs%`^#pd1#W^WXQI#8V=|uCoE~$w>@DA6q6H{G)%)7 zF(NA7k^!Sno3PYYGKOn0Yn^~R59}j{UnkxPNUdXk&|=O~CM0;oUa>7;^smTPM*KP^ z`*0;!NlKsRaqdk&Ou_U);^o;K9MJVhe3Iw2N%_*<9X4$``?Rks4J*0kvai}cN>88W z_K$!w5-VEG09!Gz-<@{%lPcE)Dx!q`p+UjufEjZ0Rn5)3^q$l#@PQBT4~|a;fP({m zhd#J_X_hx$iEg$0>1|2i;c*spwGENuJb;O@%@RdmnJ zGjnRvXX#=D@iGj4;DEXG%m=$ZH_Y+gxuRV9mCc!*X;=#;wDOOsH5;RQaX_>}C<#L+ z1L0kCnFpb-Vz44gflfI?UwyLiu#wPt6)Yz|<`y-Un0(b$HiG$z6GsM4k`^r(lOZ1L zvCa5w$J(vrEooQ-T>dCLlL35p;DrvB^BbxNLnpk2F((pAdXPVxvO?qm>61 znHG4`K?qk2Dg-dw#wTAnJD6oiGCOr%ns%-mQ%~xm3E`(Ez8IVG$~*hk)IWstpZkCi zNNhgBuwyi#3VMQ5o4Chg8Q`cZoCm%#dEo-^Kxn%Se{CMrW|L%ju1(_A&#SjUKwX%8 zG@)s1`7`A`GkkJy=KQ-%1Wc0HWSkN5V={)J0DJ(iry@E;5pC+JhzdrBPH|Brf++6E z#ljYYV$q?9gHeS;E(c)trQ+nGYQ&(73OH^Uu15iRbVEM>H1XY#A0%{5b91^bQ2h29 z0`tiOe~$vZKk3x!`M4#~E=!lY)NMPvR5%Tr&7p$H7?#s14?*vy7#10Zj^BzlC7#ts z6l)O!GuzHd{L94PkEm+%(rCHKll5L3cJB6;RPsO;RyQ#$_-lQ$S0`#ar^dVFn%COB z4a7iV8trc>3RGY)03D5q&b=fnZBtWcMK~P7r4WM6#4003XM;wf)8t|_kK;1Tmy^Id zI6gH1KeDZ!03dQTxTT_ml>fZ@tDa>;6?tduM)oIXg?WzlN*#N8d);xh{s3(T=c2r* z{&mCxnsG4RLavLWVHz!c zCiX#PBE0VfzXuzUycDn-u%v`sPY4mTDGc}n{p5DrG)$w750Q&`upE|Sk=v9r*+SNE z!{dPdH}zZJzf=B+c($n7x(nOaKA>SmYuz)M;c*`vRf7Vq-jJR&nwdhx0d*-X>n;mB zjcyt3z00A~hEs{hR{>)rRubE0`ye_(=k*&qGPJ4W*E`vuZNB zlq|L^yZhAri(`Q&61xS7u}&?t;vF&Rit>9doaRw;-eh^IN8Gm90Z)Q~1YLL{*S`Tz zBvuX*Vx5{NvVoC;T9rneki3S18wMu}R}Di!t`USld_3U>2GCEgf1_c)aH!ztN$0hB zoYa6ymDAvfTq6h}`FH|9vbMx?B)qjH?^flvQTgyzrL`e17Z?GZ7Sh zh}@&{;kNhsn#$*%G+L0dv-&hl0+0ifFW}mvAGzl+4b!O7Ac3zk7yJ{-h}^LmL0Zce z{DF&}J9uG*tiyq6)EDGq-ynhoK)(1yG;h79z+c&cd6IfvJ!eQq+! zL1Nw{^Dyu47ZMPu5O#}=RG7;A0;57B(P7QOl8CUd&}ejGGvf=MLRt8TVFE!fHcwob zIl2k}XAS!2CH3~Pf>~F!)2Xm=aNu`E<8p~l+6KGrc^Nq};8f}k8m7^?3q=tNbnaZk zV-&%PC{t6vfME)B*ppBc6yz6*y1xpQ1fu;zV?w+lVnPSQnbdHI^&oUERA5Lzc(5W` z7=R9i3K$U+F$}aOAPgNU6%dI|uT})11DPMN^kP|I@>N$}4>klW!nF`6|8XRp1!cH; zP3sz`B`jf>7v6deCS`d0ao{OrRYd2h--{=cx^)_POti53jkpu_|Dv8TV;nrujbFrws6d5s^qM=0Yig=I=+7r0CPWyaJmU>bWuRH97~<%^z=+6L;ozu< zVQmdC^6Q02YUhkhY&%InR9HYe)i7CfJJkf4YSgivpZfrWvO{Vx-_lkCLFuWT&L$C} zfC$H!I}Uz%af$Pe+e@c^h;KZchRsu_uN12U0Wc^Y8m_Db)Ph891~lXsOp|TU2vixM zY6FcbGh#M`Fgb)Vw+#DO37img>~g&o?RxBYj-RyTL6?r!;~|tT)`VPn24W#GjVcwo z`vt00ve9H}+ARbfoTwH=#GoOHz!W()qpe1oMk2 zH9od^Ps55@3UbRIACT%P#*dm9|X*iyHE0A3>y$0-)Nk`W|;XM%o8XkxkD#p zt&3td`{UpLj;0-#rfxS|P^aqElfV;+QNIS(n9?-th$F1n3s|!4k1PIVq=}nC?QA!{ zLulzTD)7OMYi}{8?aI)Obqovzd3+W`*2YsaHnK+bVT>X=LTuz* zlo!>%kpTx;ucK1n9b_HNW{Jh3Up1MGYAzwmr_MFu;$tFL$?SQ~^ZfF*KDpB|ACmwS z;hL}$x*zn*nFEh5eRSVZOMJ9Vw=fGDW&jHdVq%4%ym09$;6XfWD2kS2O#&u@hPzLS z_joH``$y`*q1Db0q+w>9%+%z4@!U;glx#py(14MOkkG&|#ekRy)$QN_n7)r~8yU;V znrp@ptWDn`7I3m?>zw4sc5=_OQt}#>b8a@KVa*^g>kP;p*hpcUkwTm_b5*C09(7?L z=kcQypG14tltV8vu1t(C4-AkP-3Wbg@f08&JutLm)oG4^>ec2+<_B6iPm=C`{o9Ef zDG)&yo=oQVYt(9AKiPtu9g8l7WZVayNURSe#yYjoikBx5%FlJ<#2(d~E|o8f{P9qT z=#>~q(1oX6JKfK9J<&!Kck)uL`!#+(1w4^h93;j%1M;L)v~VF#nz^deM~}KN@QXb8 zw?+dmI%SoAX!azoZXz&1V#_#Ls52SD^tD?zyAP_T1a!x$y0e=Y5kmO{QVRRG~pZaUJuHumvb^M?TAcUcTs-Nsjw3 zJ=VOeCVI>4S5(-`3G|bnebBICs>ZndzO@Yqsyl;6$S7ao&NZ7sx;q+2Evfh+e+D`gL*IrD1IkZ2M76GdNw4 zOh0rL=lA2Sn&ED5if$=AosczQjE3LX$D zO0Cu-IkAaWc3=RA4%nUF=ni(2a5@rVKON-;Bf^sr8dF)!b>NmfxU6_|t znF?%?$oZ3O*!3LjPpniiUk{8w3T8onC{5zy#U1 zqG2UrgWM2pr>6-|ICQsg%BkJAV%2`Vqk&mqn#(v~TnF@%eJdJPOg4y13f!ygCOlZf zkJvjMa9wyJ`%%CXiIs#kqK)+F%F~Q8F|8_{HJ8q=*{$039m&UmClV{BQA4nMXbA|% z6{&szO39t$X;>UJgW?@t(?`ovSvu<(DR1zEpWr7JVEW6*uLb*z$DITh(JVzQUu^hh z5F*TF0|c|NMeMWkQXO5oD;KLsL!;3LkFj28fl{;pK7JLCh>3{^Z|@y0L92I$DuS3j z9=yZRci+m#y=+Q&FpU{VL|D0HIe zeeLCmj%~J`ctFD}*vui0>QynC1CPjYQ&uAAe=7Q6u2mrChLfTSRV57w1fT`Np@B|v zr+*q&3~N7VWHGd35BU0zJRt$-E{rE${lQ;=^6F3i2QB(@&O}gj{UN^{<(4vT9Km9| z#Mw(0_OlC<&2v2D(Qryka~h_n{;0SnK4ZnAge%t-Nq>M&zwM@L_Rielwt08>_0ET* zpVP3C(4Q8FwgYA6lon zAknCJYo>vSwnia-!t1~0iWASTeDQZm#t;PQ#FJ5SYX38%FMI6XUom59sUgRKClb2_ ziLp+l2*u1(0Lt%l*Qzb1H#{ugGwE{21DmSM2NHBCr)R_3`)@Lfl5N=$@UVfnYJ1>` z#L7WJtW)zu{U8wsgDdw{<>H*wxNyOCsxR`AMV@)Te{4Coh2l@W4xKn6gV4J0^z#+} zRb@Ud^_c0qy~dH63kL&FBu4!pQDcdXVLwRhf#_H=$^KA-fZyG>`BrVQef^2qh4BQ9 z9Q>Yq@teU&{uX43oMBSKy79%@z|e+Eg-or;<-nxITaVRJN?-hLuD;2CGW;IlgN)e0-)T-TQO&52+io zbmfUWWes>DG5mf)nku0cv(1OrKe^c>#6;yf@(vwRB7kq7zp8-xXa z90s0A2lSI$Akwg6Fj^!j@LYf=2LzBCNJ1c8cp}eY0iH-K5)xybs+@}XV+322A9=P7 zke~}s^>%n}s(606d+NSUk>|!%vj(0>tU0H!RXk~|%{R>VLpUqYJ@UIKU3nt+aRZ)6 zObCgwPQ{avIh#FxpNh1{93~wn3s)v-Fs9%@_sGrh0EdClCl&WUygWMHEj4>*Hl zY6A`l(h>zfaKP8PfMdRO25j_LHRaM)$$*%aGz=QZ*r|DSW+BWg4xzg8dZUJI`A*>|3+LHCe`S zgSIitP-!d>%pktPp3C4g=SHyUtiVQXs0=9R&DMQ53r3bW5C)sEfnWzPs++*3T93V| z=CInaz&Q4bQ!I4;Wbm$NiwYeUyYFt^z^vt;=3U~51Vk(yE2#7!kQ_=W@>gRg*p&OR zIpZD9nGcz~N5n*qh!G5D!{Es^)wCuffQrc1Jv4flBE~N;L@_Kt0H{VR3vh(lQK& znmIyNP*?_qYV3muNxw4o4MfW~#*Q2GN0*g2f5;CvFri6ze#8o4xj$BU?+i&x`cOum zMZ>;k#jciz_QovGIpOz}m!@}}?>%wB+c9$`6Ux%Cnm9pp<*yhF^Pw=#3d)KtFAS-! zfMc4-?n9BOU@{rcrmZoyaaddPSXf0%^VkQy=|$GKzO&lq>)eU*c*U zmIi43nYP9U)>n$~j(Z*JD_eiEEe)fuUm@iM45|bRH{2`>cz z+2XcowQb0Rrd=7s0sc4)nGSF7BVX(KG=0RobC1}g&*xH}t3RbK>@>E#8JAc5Lc1dR zb~P_u{?OarqIL6*-bgvpbS@3M$KgXQK~lViJsF?{%JXKKw<|7B?I)QjwvWwfe&QsM z!6)8wER8_F<%0U{)~@jLP9MBJCo27?Q8dhwQ${MDG+Ka$<;fe-_UDuuM-Ma{=e;E? zcmJn}0ndSKKAymjS7r8n)G})?MB) O_&LbTx0(Uv@_1F)7gdve~Tx8)+&-8||fG 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 literal 196896 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 z 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 aeo!{hB1NGe7#y%5pj%|WVE=^HOaC7UP*lVK From fd08628baf25aa90af2924dfee69a26a35b97d42 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 1 Feb 2024 01:34:09 +0100 Subject: [PATCH 053/105] use a max of 16 parallel downloads --- Update.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Update.sh b/Update.sh index d6a5c0192..3c4d47e2d 100755 --- a/Update.sh +++ b/Update.sh @@ -41,8 +41,8 @@ done # -- Set up environment -------------------------------------------------------- # ============================================================================== -MAX_PARALLELL_DOWNLOADS=1 -MAX_CONNECTIONS_PER_SERVER=1 +MAX_PARALLELL_DOWNLOADS=16 +MAX_CONNECTIONS_PER_SERVER=16 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" pushd "$SCRIPT_DIR" >/dev/null From 423d979bdd8c8939e347b421878ded8236a51cff Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Fri, 2 Feb 2024 18:30:38 +0100 Subject: [PATCH 054/105] added export map package instructiong (#7114) --- Docs/tuto_content_authoring_maps.md | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index e3dcdd0ee..d297eee9c 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -22,6 +22,7 @@ In this tutorial we will cover the process of creating a simple map for use with * [Next steps](#next-steps) * __[Trees and vegetation](#trees-and-vegetation)__ * [Foliage tool](#foliage-tool) +* __[Exporting a map](#exporting-a-map)__ @@ -409,6 +410,36 @@ Drag your desired foliage item into the box labeled `+ Drop Foliage Here`. Set a ![foliage_paint](img/tuto_content_authoring_maps/foliage_paint.gif) + +--- + +## Exporting a map + +To export a map as a map package that can be ingested into a standalone CARLA package installation, use the `make package` command as follows: + +```sh +make package ARGS="--packages=" +``` + +The `` must point to a json file located in `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Config` named *mapPackage.json* which has the following structure: + +```json +{ + "maps": [ + { + "path": "/Game/Carla/Maps/MyMap", + "name": "MyMap", + "use_carla_materials": true + } + ], + "props": [] +} +``` + +Your map should be saved as `MyMap.umap` file in the `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Maps` directory. + +--- + ## Next steps Continue customizing your map using the tools and guides below: From fc8ce5e4b232072edba5f1b55af24f71ac1298d0 Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Fri, 2 Feb 2024 19:22:25 +0100 Subject: [PATCH 055/105] Added package location (#7115) * added export map package instructiong * added package location --- Docs/tuto_content_authoring_maps.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index d297eee9c..8d0456ee0 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -23,6 +23,8 @@ In this tutorial we will cover the process of creating a simple map for use with * __[Trees and vegetation](#trees-and-vegetation)__ * [Foliage tool](#foliage-tool) * __[Exporting a map](#exporting-a-map)__ + * [Exporting a map as a separate package](#exporting-a-map-as-a-single-map-package-for-import-into-a-standalone-packaged-carla-installation) + * [Exporting a map as part of a complete CARLA package](#exporting-a-map-as-part-of-a-complete-carla-package) @@ -415,6 +417,8 @@ Drag your desired foliage item into the box labeled `+ Drop Foliage Here`. Set a ## Exporting a map +### Exporting a map as a separate package + To export a map as a map package that can be ingested into a standalone CARLA package installation, use the `make package` command as follows: ```sh @@ -436,6 +440,20 @@ The `` must point to a json file located in `CARLA_ROOT/Unreal/Carla } ``` +Your map should have been saved as `MyMap.umap` file in the `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Maps` directory. + +The exported map archive will be saved in the `Dist` folder on Linux and the `/Build/UE4Carla/` folder on Windows. + +### Exporting a map as part of a complete CARLA package + +To export the map as part of a complete CARLA package, such that the map is available on launch of the package, include the following line in the `DefaultGame.ini` file in `CARLA_ROOT/Unreal/CarlaUE4/Config/`: + +``` ++MapsToCook=(FilePath="/Game/Carla/Maps/MyMap") +``` + +This line should be added in the `[/Script/UnrealEd.ProjectPackagingSettings]` section, preferably next to the other `MapsToCook(...)` entries. Then run `make package` command to build a package containing your map. The exported CARLA package with your map will be saved in the `Dist` folder on Linux and the `/Build/UE4Carla/` folder on Windows. + Your map should be saved as `MyMap.umap` file in the `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Maps` directory. --- From 1d1f7a4b1cea8b2dfb66c45b18af216595da535b Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Fri, 2 Feb 2024 19:31:11 +0100 Subject: [PATCH 056/105] fixed hyperlink (#7116) * added export map package instructiong * added package location * fixed hyperlink --- Docs/tuto_content_authoring_maps.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index 8d0456ee0..43ba13d97 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -23,7 +23,7 @@ In this tutorial we will cover the process of creating a simple map for use with * __[Trees and vegetation](#trees-and-vegetation)__ * [Foliage tool](#foliage-tool) * __[Exporting a map](#exporting-a-map)__ - * [Exporting a map as a separate package](#exporting-a-map-as-a-single-map-package-for-import-into-a-standalone-packaged-carla-installation) + * [Exporting a map as a separate package](#exporting-a-map-as-a-separate-package) * [Exporting a map as part of a complete CARLA package](#exporting-a-map-as-part-of-a-complete-carla-package) @@ -454,8 +454,6 @@ To export the map as part of a complete CARLA package, such that the map is avai This line should be added in the `[/Script/UnrealEd.ProjectPackagingSettings]` section, preferably next to the other `MapsToCook(...)` entries. Then run `make package` command to build a package containing your map. The exported CARLA package with your map will be saved in the `Dist` folder on Linux and the `/Build/UE4Carla/` folder on Windows. -Your map should be saved as `MyMap.umap` file in the `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Maps` directory. - --- ## Next steps From c2ace4caaaf2c79a9cbf5b7b76f79d385db5a266 Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Fri, 2 Feb 2024 21:04:31 +0100 Subject: [PATCH 057/105] Corrected path (#7117) * added export map package instructiong * added package location * fixed hyperlink * corrected path --- Docs/tuto_content_authoring_maps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index 43ba13d97..04c4e541a 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -431,7 +431,7 @@ The `` must point to a json file located in `CARLA_ROOT/Unreal/Carla { "maps": [ { - "path": "/Game/Carla/Maps/MyMap", + "path": "/Game/Carla/Maps/", "name": "MyMap", "use_carla_materials": true } From bac863ca92e833ff23688b630d0772bafdf5636e Mon Sep 17 00:00:00 2001 From: Gerhard Dorn <67096719+dorn-gerhard@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:51:52 +0100 Subject: [PATCH 058/105] Update semantic labels in doc (changed from version 0.9.13 -> 0.9.14) (#7122) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix a typo in setting the max brake From self._max_steer to self._max_brake * Fix example commands in Multi-GPU docs Only one dash before `-nullrhi` argument * Correct incoherent structuring of tutorial for adding sensor to CARLA. * Add contribution to CHANGELOG.md * Add notes into breakout boxes in sensor create tutorial. * Update build_linux.md Change pseudopath to linux format * Update build_linux.md The same change 1 line above * Fixing Recast pulling by branch instead of hash id * Update semantic labels (changed from version 0.9.13 -> 0.9.14) * Add "Other" Label description in ref_sensors.md * Update semantic labels (changed from version 0.9.13 -> 0.9.14) * Add "Other" Label description in ref_sensors.md * Revert "Add "Other" Label description in ref_sensors.md" This reverts commit 3958e3568225ad019a1850cf31570e34e5409469. * Revert "Update semantic labels (changed from version 0.9.13 -> 0.9.14)" This reverts commit 6ee572e0c4386fcbda83e41656fe2fb4a30a2d00. --------- Co-authored-by: kykim0 Co-authored-by: bernatx Co-authored-by: Paul Erik Frivold Co-authored-by: Balázs Kis Co-authored-by: matejm42 <116560704+matejm42@users.noreply.github.com> Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com> --- Docs/ref_sensors.md | 53 +++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/Docs/ref_sensors.md b/Docs/ref_sensors.md index 5e28d05c5..477d16c51 100644 --- a/Docs/ref_sensors.md +++ b/Docs/ref_sensors.md @@ -711,34 +711,39 @@ This raw [carla.Image](python_api.md#carla.Image) can be stored and converted it raw_image.save_to_disk("path/to/save/converted/image",carla.ColorConverter.cityScapesPalette) ``` -The following tags are currently available: +The following tags are currently available (Note, tags changed from version 0.9.13 to 0.9.14): | Value | Tag | Converted color | Description | | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | | `0` | Unlabeled | `(0, 0, 0)` | Elements that have not been categorized are considered `Unlabeled`. This category is meant to be empty or at least contain elements with no collisions. | -| `1` | Building | `(70, 70, 70)` | Buildings like houses, skyscrapers,... and the elements attached to them.
E.g. air conditioners, scaffolding, awning or ladders and much more. | -| `2` | Fence | `(100, 40, 40)` | Barriers, railing, or other upright structures. Basically wood or wire assemblies that enclose an area of ground. | -| `3` | Other | `(55, 90, 80)` | Everything that does not belong to any other category. | -| `4` | Pedestrian | `(220, 20, 60)` | Humans that walk or ride/drive any kind of vehicle or mobility system.
E.g. bicycles or scooters, skateboards, horses, roller-blades, wheel-chairs, etc. | -| `5` | Pole | `(153, 153, 153)` | Small mainly vertically oriented pole. If the pole has a horizontal part (often for traffic light poles) this is also considered pole.
E.g. sign pole, traffic light poles. | -| `6` | RoadLine | `(157, 234, 50)` | The markings on the road. | -| `7` | Road | `(128, 64, 128)` | Part of ground on which cars usually drive.
E.g. lanes in any directions, and streets. | -| `8` | SideWalk | `(244, 35, 232)` | Part of ground designated for pedestrians or cyclists. Delimited from the road by some obstacle (such as curbs or poles), not only by markings. This label includes a possibly delimiting curb, traffic islands (the walkable part), and pedestrian zones. | -| `9` | Vegetation | `(107, 142, 35)` | Trees, hedges, all kinds of vertical vegetation. Ground-level vegetation is considered `Terrain`. | -| `10` | Vehicles | `(0, 0, 142)` | Cars, vans, trucks, motorcycles, bikes, buses, trains. | -| `11` | Wall | `(102, 102, 156)` | Individual standing walls. Not part of a building. | -| `12` | TrafficSign | `(220, 220, 0)` | Signs installed by the state/city authority, usually for traffic regulation. This category does not include the poles where signs are attached to.
E.g. traffic- signs, parking signs, direction signs... | -| `13` | Sky | `(70, 130, 180)` | Open sky. Includes clouds and the sun. | -| `14` | Ground | `(81, 0, 81)` | Any horizontal ground-level structures that does not match any other category. For example areas shared by vehicles and pedestrians, or flat roundabouts delimited from the road by a curb. | -| `15` | Bridge | `(150, 100, 100)` | Only the structure of the bridge. Fences, people, vehicles, an other elements on top of it are labeled separately. | -| `16` | RailTrack | `(230, 150, 140)` | All kind of rail tracks that are non-drivable by cars.
E.g. subway and train rail tracks. | -| `17` | GuardRail | `(180, 165, 180)` | All types of guard rails/crash barriers. | -| `18` | TrafficLight | `(250, 170, 30)` | Traffic light boxes without their poles. | -| `19` | Static | `(110, 190, 160)` | Elements in the scene and props that are immovable.
E.g. fire hydrants, fixed benches, fountains, bus stops, etc. | -| `20` | Dynamic | `(170, 120, 50)` | Elements whose position is susceptible to change over time.
E.g. Movable trash bins, buggies, bags, wheelchairs, animals, etc. | -| `21` | Water | `(45, 60, 150)` | Horizontal water surfaces.
E.g. Lakes, sea, rivers. | -| `22` | Terrain | `(145, 170, 100)` | Grass, ground-level vegetation, soil or sand. These areas are not meant to be driven on. This label includes a possibly delimiting curb. | - +| `1` | Roads | `(128, 64, 128)` | Part of ground on which cars usually drive.
E.g. lanes in any directions, and streets. | +| `2` | SideWalks | `(244, 35, 232)` | Part of ground designated for pedestrians or cyclists. Delimited from the road by some obstacle (such as curbs or poles), not only by markings. This label includes a possibly delimiting curb, traffic islands (the walkable part), and pedestrian zones. | +| `3` | Building | `(70, 70, 70)` | Buildings like houses, skyscrapers,... and the elements attached to them.
E.g. air conditioners, scaffolding, awning or ladders and much more. | +| `4` | Wall | `(102, 102, 156)` | Individual standing walls. Not part of a building. | +| `5` | Fence | `(190, 153, 153)` | Barriers, railing, or other upright structures. Basically wood or wire assemblies that enclose an area of ground. | +| `6` | Pole | `(153, 153, 153)` | Small mainly vertically oriented pole. If the pole has a horizontal part (often for traffic light poles) this is also considered pole.
E.g. sign pole, traffic light poles. | +| `7` | TrafficLight | `(250, 170, 30)` | Traffic light boxes without their poles. | +| `8` | TrafficSign | `(220, 220, 0)` | Signs installed by the state/city authority, usually for traffic regulation. This category does not include the poles where signs are attached to.
E.g. traffic- signs, parking signs, direction signs... | +| `9` | Vegetation | `(107, 142, 35)` | Trees, hedges, all kinds of vertical vegetation. Ground-level vegetation is considered `Terrain`. | +| `10` | Terrain | `(152, 251, 152)` | Grass, ground-level vegetation, soil or sand. These areas are not meant to be driven on. This label includes a possibly delimiting curb. | +| `11` | Sky | `(70, 130, 180)` | Open sky. Includes clouds and the sun. | +| `12` | Pedestrian | `(220, 20, 60)` | Humans that walk | +| `13` | Rider | `(255, 0, 0)` | Humans that ride/drive any kind of vehicle or mobility system
E.g. bicycles or scooters, skateboards, horses, roller-blades, wheel-chairs, etc. . | +| `14` | Car | `(0, 0, 142)` | Cars, vans | +| `15` | Truck | `(0, 0, 70)` | Trucks | +| `16` | Bus | `(0, 60, 100)` | Busses | +| `17` | Train | `(0, 60, 100)` | Trains | +| `18` | Motorcycle | `(0, 0, 230)` | Motorcycle, Motorbike | +| `19` | Bicycle | `(119, 11, 32)` | Bicylces | +| `20` | Static | `(110, 190, 160)` | Elements in the scene and props that are immovable.
E.g. fire hydrants, fixed benches, fountains, bus stops, etc. | +| `21` | Dynamic | `(170, 120, 50)` | Elements whose position is susceptible to change over time.
E.g. Movable trash bins, buggies, bags, wheelchairs, animals, etc. | +| `22` | Other | `(55, 90, 80)` | Everything that does not belong to any other category. | +| `23` | Water | `(45, 60, 150)` | Horizontal water surfaces.
E.g. Lakes, sea, rivers. | +| `24` | RoadLine | `(157, 234, 50)` | The markings on the road. | +| `25` | Ground | `(81, 0, 81)` | Any horizontal ground-level structures that does not match any other category. For example areas shared by vehicles and pedestrians, or flat roundabouts delimited from the road by a curb. | +| `26` | Bridge | `(150, 100, 100)` | Only the structure of the bridge. Fences, people, vehicles, an other elements on top of it are labeled separately. | +| `27` | RailTrack | `(230, 150, 140)` | All kind of rail tracks that are non-drivable by cars.
E.g. subway and train rail tracks. | +| `28` | GuardRail | `(180, 165, 180)` | All types of guard rails/crash barriers. |
!!! Note From 04a46d6158fad3b3bf9a43e4635a35b61e40c58b Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 11:17:40 +0100 Subject: [PATCH 059/105] jenkins pipeline on new CARLA CVC servers --- Jenkinsfile | 134 +++++++++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 60 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f1a1fad98..2a28df7f0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -121,6 +121,7 @@ pipeline } } + /* stage('TEST: ubuntu deploy sim') { when { branch "ruben/jenkins_migration"; } @@ -131,6 +132,7 @@ pipeline } } + */ stage('ubuntu deploy dev') { @@ -167,26 +169,38 @@ pipeline when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - unstash name: 'carla_docs' - - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' - } - } - post - { - always + dir('doc_repo') { - deleteDir() + checkout scmGit( + branches: [[name: '*/master']], + extensions: [ + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: + [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] + ] + ) + unstash name: 'carla_docs' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) + { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push --set-upstream origin master + ''' + } } + } } + /* stage('TEST: ubuntu Doxygen generation') { when { branch "ruben/jenkins_migration"; } @@ -197,50 +211,50 @@ pipeline stash includes: 'carla_doc.tar.gz', name: 'carla_docs' } } - - stage('TEST: ubuntu Doxygen upload') - { - when { branch "ruben/jenkins_migration"; } - steps - { - dir('doc_repo') - { - checkout scmGit( - branches: [[name: '*/ruben/jenkins_migration']], - extensions: [ - checkoutOption(120), - localBranch("**"), - cloneOption(noTags:false, reference:'', shallow: false, timeout:120) - ], - userRemoteConfigs: [ - [ - credentialsId: 'github_token_as_pwd_2', - url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' - ] - ] - ) - unstash name: 'carla_docs' - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - pwd - ls -lh - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push --set-upstream origin ruben/jenkins_migration - ''' - } - } - - } - post - { - always - { - deleteDir() - } - } - } + */ + + // stage('TEST: ubuntu Doxygen upload') + // { + // when { branch "ruben/jenkins_migration"; } + // steps + // { + // dir('doc_repo') + // { + // checkout scmGit( + // branches: [[name: '*/ruben/jenkins_migration']], + // extensions: [ + // checkoutOption(120), + // localBranch("**"), + // cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + // ], + // userRemoteConfigs: [ + // [ + // credentialsId: 'github_token_as_pwd_2', + // url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + // ] + // ] + // ) + // unstash name: 'carla_docs' + // withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + // sh ''' + // pwd + // ls -lh + // tar -xvzf carla_doc.tar.gz + // git add Doxygen + // git commit -m "Updated c++ docs" || true + // git push --set-upstream origin ruben/jenkins_migration + // ''' + // } + // } + // } + // post + // { + // always + // { + // deleteDir() + // } + // } + // } } post { From ccf76e0f329af445a26e11cc610c2f6a0d68b336 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 11:32:32 +0100 Subject: [PATCH 060/105] run entire pipeline in gpu machine --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f1a1fad98..e12e20345 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,7 +17,7 @@ pipeline { stage('ubuntu') { - agent { label "ubuntu" } + agent { label "gpu" } environment { UE4_ROOT = '/home/jenkins/UnrealEngine_4.26' @@ -96,7 +96,6 @@ pipeline } stage('ubuntu smoke tests') { - agent { label "ubuntu && gpu" } steps { unstash name: 'ubuntu_eggs' From 1c8b906b6a9ca7af3c2fb23b85473cdce96911c9 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 12:01:20 +0100 Subject: [PATCH 061/105] incremental repo --- Jenkinsfile | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e12e20345..0021960ac 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -202,11 +202,13 @@ pipeline when { branch "ruben/jenkins_migration"; } steps { - dir('doc_repo') + + dir('${env.WORKSPACE}/doc_repo') { checkout scmGit( branches: [[name: '*/ruben/jenkins_migration']], extensions: [ + cleanBeforeCheckout(), checkoutOption(120), localBranch("**"), cloneOption(noTags:false, reference:'', shallow: false, timeout:120) @@ -232,20 +234,6 @@ pipeline } } - post - { - always - { - deleteDir() - } - } - } - } - post - { - always - { - deleteDir() } } } From 61bc48c1e132c47ee372dabd1d96722bfb2a0cb6 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 17:06:12 +0100 Subject: [PATCH 062/105] show clone command to debug --- Util/BuildTools/BuildOSM2ODR.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Util/BuildTools/BuildOSM2ODR.sh b/Util/BuildTools/BuildOSM2ODR.sh index 61e7d449f..1477292df 100755 --- a/Util/BuildTools/BuildOSM2ODR.sh +++ b/Util/BuildTools/BuildOSM2ODR.sh @@ -79,6 +79,7 @@ if ${BUILD_OSM2ODR} ; then # [ ! -d ${OSM2ODR_BUILD_FOLDER} ] && mkdir ${OSM2ODR_BUILD_FOLDER} if ${GIT_PULL} ; then if [ ! -d ${OSM2ODR_SOURCE_FOLDER} ] ; then + echo "git clone -b ${OSM2ODR_BRANCH} ${OSM2ODR_REPO} ${OSM2ODR_SOURCE_FOLDER}" git clone -b ${OSM2ODR_BRANCH} ${OSM2ODR_REPO} ${OSM2ODR_SOURCE_FOLDER} fi cd ${OSM2ODR_SOURCE_FOLDER} From 5a256cb28bcb0010e2cbba94120508c15956ddac Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 17:52:10 +0100 Subject: [PATCH 063/105] reduce number of stash calls --- Jenkinsfile | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0021960ac..4e1e0b48b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,8 +48,6 @@ pipeline { archiveArtifacts 'PythonAPI/carla/dist/*.egg' archiveArtifacts 'PythonAPI/carla/dist/*.whl' - stash includes: 'PythonAPI/carla/dist/*.egg', name: 'ubuntu_eggs' - stash includes: 'PythonAPI/carla/dist/*.whl', name: 'ubuntu_wheels' } } } @@ -88,9 +86,6 @@ pipeline always { archiveArtifacts 'Dist/*.tar.gz' - stash includes: 'Dist/CARLA*.tar.gz', name: 'ubuntu_package' - // stash includes: 'Dist/AdditionalMaps*.tar.gz', name: 'ubuntu_package2' - stash includes: 'Examples/', name: 'ubuntu_examples' } } } @@ -98,13 +93,6 @@ pipeline { steps { - unstash name: 'ubuntu_eggs' - unstash name: 'ubuntu_wheels' - unstash name: 'ubuntu_package' - // unstash name: 'ubuntu_package2' - 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 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' @@ -115,7 +103,6 @@ pipeline { archiveArtifacts 'CarlaUE4.log' junit 'Build/test-results/smoke-tests-*.xml' - deleteDir() } } } @@ -178,13 +165,6 @@ pipeline ''' } } - post - { - always - { - deleteDir() - } - } } stage('TEST: ubuntu Doxygen generation') { From 17aeeff3c13c47df3d9401835cf27fe5f014ca45 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 6 Feb 2024 17:53:13 +0100 Subject: [PATCH 064/105] clean echo --- Util/BuildTools/BuildOSM2ODR.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/Util/BuildTools/BuildOSM2ODR.sh b/Util/BuildTools/BuildOSM2ODR.sh index 1477292df..61e7d449f 100755 --- a/Util/BuildTools/BuildOSM2ODR.sh +++ b/Util/BuildTools/BuildOSM2ODR.sh @@ -79,7 +79,6 @@ if ${BUILD_OSM2ODR} ; then # [ ! -d ${OSM2ODR_BUILD_FOLDER} ] && mkdir ${OSM2ODR_BUILD_FOLDER} if ${GIT_PULL} ; then if [ ! -d ${OSM2ODR_SOURCE_FOLDER} ] ; then - echo "git clone -b ${OSM2ODR_BRANCH} ${OSM2ODR_REPO} ${OSM2ODR_SOURCE_FOLDER}" git clone -b ${OSM2ODR_BRANCH} ${OSM2ODR_REPO} ${OSM2ODR_SOURCE_FOLDER} fi cd ${OSM2ODR_SOURCE_FOLDER} From 1d77cec6ef0e19e2e33f16683d9b33236f7c1296 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 02:42:50 +0100 Subject: [PATCH 065/105] prevent delete dir content --- Jenkinsfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0021960ac..44f1fa7d4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,7 +115,6 @@ pipeline { archiveArtifacts 'CarlaUE4.log' junit 'Build/test-results/smoke-tests-*.xml' - deleteDir() } } } @@ -178,13 +177,6 @@ pipeline ''' } } - post - { - always - { - deleteDir() - } - } } stage('TEST: ubuntu Doxygen generation') { From 61cc60ffe0856d640f5995b75950ef1e75c1ab23 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 13:29:18 +0100 Subject: [PATCH 066/105] fix workspace --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 44f1fa7d4..95bcc18f1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,6 +28,7 @@ pipeline { steps { + sh 'echo "Current workspace is ${env.WORKSPACE}"' sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } @@ -195,7 +196,7 @@ pipeline steps { - dir('${env.WORKSPACE}/doc_repo') + dir("${env.WORKSPACE}/doc_repo") { checkout scmGit( branches: [[name: '*/ruben/jenkins_migration']], From 4fdd8d73f2e7c2792c87d5568b766593d83dbee4 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 13:33:57 +0100 Subject: [PATCH 067/105] minor change --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 95bcc18f1..ce7abbfaf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,7 +28,7 @@ pipeline { steps { - sh 'echo "Current workspace is ${env.WORKSPACE}"' + sh 'echo "Current workspace is ${WORKSPACE}"' sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } From 0ba17bf334918661ab661f473dbb293f571bda55 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 16:45:11 +0100 Subject: [PATCH 068/105] pipeline in parallel --- Jenkinsfile | 139 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 55 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4e1e0b48b..ec42a9946 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,55 +24,100 @@ pipeline } stages { - stage('ubuntu setup') + parallel { - steps + stage('generate libs') { - sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - } - } - stage('ubuntu build') - { - steps - { - sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make CarlaUE4Editor ARGS="--chrono"' - sh 'make plugins' - sh 'make examples' - } - post - { - always + stages { - archiveArtifacts 'PythonAPI/carla/dist/*.egg' - archiveArtifacts 'PythonAPI/carla/dist/*.whl' + stage('ubuntu setup') + { + steps + { + sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' + sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' + } + } + stage('ubuntu build') + { + steps + { + sh 'make LibCarla' + sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make CarlaUE4Editor ARGS="--chrono"' + sh 'make plugins' + sh 'make examples' + } + post + { + always + { + archiveArtifacts 'PythonAPI/carla/dist/*.egg' + archiveArtifacts 'PythonAPI/carla/dist/*.whl' + } + } + } + stage('ubuntu unit tests') + { + steps + { + sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + } + post + { + always + { + junit 'Build/test-results/*.xml' + archiveArtifacts 'profiler.csv' + } + } + } } } - } - stage('ubuntu unit tests') - { - steps + stage('Download additional resources') { - sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - } - post - { - always + stages { - junit 'Build/test-results/*.xml' - archiveArtifacts 'profiler.csv' + stage('TEST: Checkout Doxygen repo') + { + when { branch "ruben/jenkins_migration"; } + steps + { + + dir('${env.WORKSPACE}/doc_repo') + { + checkout scmGit( + branches: [[name: '*/ruben/jenkins_migration']], + extensions: [ + cleanBeforeCheckout(), + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] + ] + ) + } + + } + } + + stage('ubuntu retrieve content') + { + steps + { + sh './Update.sh' + } + } } } + } - stage('ubuntu retrieve content') - { - steps - { - sh './Update.sh' - } - } + stage('ubuntu package') { steps @@ -182,24 +227,8 @@ pipeline when { branch "ruben/jenkins_migration"; } steps { - dir('${env.WORKSPACE}/doc_repo') { - checkout scmGit( - branches: [[name: '*/ruben/jenkins_migration']], - extensions: [ - cleanBeforeCheckout(), - checkoutOption(120), - localBranch("**"), - cloneOption(noTags:false, reference:'', shallow: false, timeout:120) - ], - userRemoteConfigs: [ - [ - credentialsId: 'github_token_as_pwd_2', - url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' - ] - ] - ) unstash name: 'carla_docs' withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { sh ''' From 2525e355af7ef1acc466312b5f85cc9208456501 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 17:07:56 +0100 Subject: [PATCH 069/105] parrallel version --- Jenkinsfile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index df6526c6f..c113e0bb9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -84,7 +84,7 @@ pipeline steps { - dir('${env.WORKSPACE}/doc_repo') + dir('doc_repo') { checkout scmGit( branches: [[name: '*/ruben/jenkins_migration']], @@ -227,14 +227,11 @@ pipeline when { branch "ruben/jenkins_migration"; } steps { - - dir("${env.WORKSPACE}/doc_repo") + dir('doc_repo') { unstash name: 'carla_docs' withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { sh ''' - pwd - ls -lh tar -xvzf carla_doc.tar.gz git add Doxygen git commit -m "Updated c++ docs" || true From ee647027fe6f5ec0661492c4ade73f0e0d10c360 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 17:16:52 +0100 Subject: [PATCH 070/105] fix jenkinsfile syntax error --- Jenkinsfile | 133 +++++++++++++++++++++++++++------------------------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c113e0bb9..3f4d6dcd5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,98 +24,101 @@ pipeline } stages { - parallel + stage('prepare environment') { - stage('generate libs') + parallel { - stages + stage('generate libs') { - stage('ubuntu setup') + stages { - steps + stage('ubuntu setup') { - sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' - sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - } - } - stage('ubuntu build') - { - steps - { - sh 'make LibCarla' - sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make CarlaUE4Editor ARGS="--chrono"' - sh 'make plugins' - sh 'make examples' - } - post - { - always + steps { - archiveArtifacts 'PythonAPI/carla/dist/*.egg' - archiveArtifacts 'PythonAPI/carla/dist/*.whl' + sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' + sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } } - } - stage('ubuntu unit tests') - { - steps + stage('ubuntu build') { - sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' - } - post - { - always + steps { - junit 'Build/test-results/*.xml' - archiveArtifacts 'profiler.csv' + sh 'make LibCarla' + sh 'make PythonAPI ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make CarlaUE4Editor ARGS="--chrono"' + sh 'make plugins' + sh 'make examples' + } + post + { + always + { + archiveArtifacts 'PythonAPI/carla/dist/*.egg' + archiveArtifacts 'PythonAPI/carla/dist/*.whl' + } + } + } + stage('ubuntu unit tests') + { + steps + { + sh 'make check ARGS="--all --xml --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + } + post + { + always + { + junit 'Build/test-results/*.xml' + archiveArtifacts 'profiler.csv' + } } } } } - } - stage('Download additional resources') - { - stages + stage('Download additional resources') { - stage('TEST: Checkout Doxygen repo') + stages { - when { branch "ruben/jenkins_migration"; } - steps + stage('TEST: Checkout Doxygen repo') { - - dir('doc_repo') + when { branch "ruben/jenkins_migration"; } + steps { - checkout scmGit( - branches: [[name: '*/ruben/jenkins_migration']], - extensions: [ - cleanBeforeCheckout(), - checkoutOption(120), - localBranch("**"), - cloneOption(noTags:false, reference:'', shallow: false, timeout:120) - ], - userRemoteConfigs: [ - [ - credentialsId: 'github_token_as_pwd_2', - url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + + dir('doc_repo') + { + checkout scmGit( + branches: [[name: '*/ruben/jenkins_migration']], + extensions: [ + cleanBeforeCheckout(), + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] ] - ] - ) + ) + } + } - } - } - stage('ubuntu retrieve content') - { - steps + stage('ubuntu retrieve content') { - sh './Update.sh' + steps + { + sh './Update.sh' + } } } } - } + } } stage('ubuntu package') From 4b0b3be85226627479464d4d142025cedb7845d3 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 17:32:31 +0100 Subject: [PATCH 071/105] test --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3f4d6dcd5..e18f0e633 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,7 +13,7 @@ pipeline { stage('Building CARLA') { - parallel + //parallel { stage('ubuntu') { From 8b588452afd3608c32b62d044d909f5f8b179713 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 17:34:12 +0100 Subject: [PATCH 072/105] syntax error --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e18f0e633..ef80078e8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,7 +14,7 @@ pipeline stage('Building CARLA') { //parallel - { + //{ stage('ubuntu') { agent { label "gpu" } @@ -354,7 +354,7 @@ pipeline } }*/ - } + //} } } } From a68fee0260e1ea75588e02e492bdba7557db560c Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 7 Feb 2024 17:35:48 +0100 Subject: [PATCH 073/105] syntax error --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ef80078e8..d9c1dfdb4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,8 +11,8 @@ pipeline stages { - stage('Building CARLA') - { + //stage('Building CARLA') + //{ //parallel //{ stage('ubuntu') @@ -355,6 +355,6 @@ pipeline }*/ //} - } + //} } } From 5f7330979308176621a0075f6776505e378748bf Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 8 Feb 2024 00:57:50 +0100 Subject: [PATCH 074/105] paralelize uploads --- Jenkinsfile | 247 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 146 insertions(+), 101 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d9c1dfdb4..460b3405e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,6 +56,8 @@ pipeline { archiveArtifacts 'PythonAPI/carla/dist/*.egg' archiveArtifacts 'PythonAPI/carla/dist/*.whl' + stash includes: 'PythonAPI/carla/dist/*.egg', name: 'ubuntu_eggs' + stash includes: 'PythonAPI/carla/dist/*.whl', name: 'ubuntu_wheels' } } } @@ -134,115 +136,158 @@ pipeline always { archiveArtifacts 'Dist/*.tar.gz' + stash includes: 'Dist/CARLA*.tar.gz', name: 'ubuntu_package' + stash includes: 'Examples/', name: 'ubuntu_examples' } } } - stage('ubuntu smoke tests') + + stage('Testing and documentation') { - steps + parallel { - sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &' - sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' - sh 'make run-examples ARGS="localhost 3654"' - } - post - { - always + stage('Testing') { - archiveArtifacts 'CarlaUE4.log' - junit 'Build/test-results/smoke-tests-*.xml' - } - } - } - - stage('TEST: ubuntu deploy sim') - { - when { branch "ruben/jenkins_migration"; } - steps - { - sh 'git checkout .' - sh 'make deploy ARGS="--test"' - } - - } - - stage('ubuntu deploy dev') - { - when { branch "dev"; } - steps - { - sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest"' - } - } - stage('ubuntu deploy master') - { - when { anyOf { branch "master"; buildingTag() } } - steps - { - sh 'git checkout .' - sh 'make deploy ARGS="--replace-latest --docker-push"' - } - } - - stage('ubuntu Doxygen generation') - { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } - steps - { - sh 'make docs' - sh 'tar -czf carla_doc.tar.gz ./Doxygen' - stash includes: 'carla_doc.tar.gz', name: 'carla_docs' - } - } - - stage('ubuntu Doxygen upload') - { - when { anyOf { branch "master"; branch "dev"; buildingTag() } } - steps - { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - unstash name: 'carla_docs' - - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' - } - } - } - stage('TEST: ubuntu Doxygen generation') - { - when { branch "ruben/jenkins_migration"; } - steps - { - sh 'make docs' - sh 'tar -czf carla_doc.tar.gz ./Doxygen' - stash includes: 'carla_doc.tar.gz', name: 'carla_docs' - } - } - - stage('TEST: ubuntu Doxygen upload') - { - when { branch "ruben/jenkins_migration"; } - steps - { - dir('doc_repo') - { - unstash name: 'carla_docs' - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push --set-upstream origin ruben/jenkins_migration - ''' + stages + { + stage('ubuntu smoke tests') + { + steps + { + unstash name: 'ubuntu_eggs' + unstash name: 'ubuntu_wheels' + unstash name: 'ubuntu_package' + unstash name: 'ubuntu_examples' + sh 'tar -xvzf Dist/CARLA*.tar.gz -C Dist/' + sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &' + sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' + sh 'make run-examples ARGS="localhost 3654"' + } + post + { + always + { + archiveArtifacts 'CarlaUE4.log' + junit 'Build/test-results/smoke-tests-*.xml' + } + } + } + } + } + stage('Generate documentation') + { + stages + { + stage('ubuntu Doxygen generation') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps + { + sh 'make docs' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + } + } + + stage('TEST: ubuntu Doxygen generation') + { + when { branch "ruben/jenkins_migration"; } + steps + { + sh 'make docs' + sh 'tar -czf carla_doc.tar.gz ./Doxygen' + stash includes: 'carla_doc.tar.gz', name: 'carla_docs' + } + } + } + } + } + } + + stage('Deployment and documentation publishing') + { + parallel + { + stage('Release Deployment') + { + stages + { + stage('TEST: ubuntu deploy sim') + { + when { branch "ruben/jenkins_migration"; } + steps + { + sh 'git checkout .' + sh 'make deploy ARGS="--test"' + } + + } + + stage('ubuntu deploy dev') + { + when { branch "dev"; } + steps + { + sh 'git checkout .' + sh 'make deploy ARGS="--replace-latest"' + } + } + stage('ubuntu deploy master') + { + when { anyOf { branch "master"; buildingTag() } } + steps + { + sh 'git checkout .' + sh 'make deploy ARGS="--replace-latest --docker-push"' + } + } + } + } + stage('Publish documentation') + { + stages + { + stage('ubuntu Doxygen upload') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps + { + checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) + unstash name: 'carla_docs' + + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push + ''' + } + } + } + stage('TEST: ubuntu Doxygen upload') + { + when { branch "ruben/jenkins_migration"; } + steps + { + dir('doc_repo') + { + unstash name: 'carla_docs' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push --set-upstream origin ruben/jenkins_migration + ''' + } + } + + } + } + } } - } } } From 41a2655c24a85bb1b319ebf4f739c133eeb6ecec Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 8 Feb 2024 12:29:11 +0100 Subject: [PATCH 075/105] propagate changes to dev and master cases --- Jenkinsfile | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 460b3405e..1ba592edd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -109,6 +109,33 @@ pipeline } } + stage('Checkout Doxygen repo') + { + when { anyOf { branch "master"; branch "dev"; buildingTag() } } + steps + { + + dir('doc_repo') + { + checkout scmGit( + branches: [[name: '*/master']], + extensions: [ + cleanBeforeCheckout(), + checkoutOption(120), + localBranch("**"), + cloneOption(noTags:false, reference:'', shallow: false, timeout:120) + ], + userRemoteConfigs: [ + [ + credentialsId: 'github_token_as_pwd_2', + url: 'https://github.com/carla-simulator/carla-simulator.github.io.git' + ] + ] + ) + } + + } + } stage('ubuntu retrieve content') { @@ -252,17 +279,19 @@ pipeline when { anyOf { branch "master"; branch "dev"; buildingTag() } } steps { - checkout scmGit(branches: [[name: '*/master']], extensions: [checkoutOption(120), cloneOption(noTags:false, reference:'', shallow: false, timeout:120)], userRemoteConfigs: [[credentialsId: 'github_token_as_pwd_2', url: 'https://github.com/carla-simulator/carla-simulator.github.io.git']]) - unstash name: 'carla_docs' - - withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { - sh ''' - tar -xvzf carla_doc.tar.gz - git add Doxygen - git commit -m "Updated c++ docs" || true - git push - ''' + dir('doc_repo') + { + unstash name: 'carla_docs' + withCredentials([gitUsernamePassword(credentialsId: 'github_token_as_pwd_2', gitToolName: 'git-tool')]) { + sh ''' + tar -xvzf carla_doc.tar.gz + git add Doxygen + git commit -m "Updated c++ docs" || true + git push --set-upstream origin ruben/jenkins_migration + ''' + } } + } } stage('TEST: ubuntu Doxygen upload') From 64b54572375b7b5a527e15e1e7c61bc726422875 Mon Sep 17 00:00:00 2001 From: MattRoweEAIF <125647690+MattRoweEAIF@users.noreply.github.com> Date: Fri, 9 Feb 2024 16:51:47 +0100 Subject: [PATCH 076/105] updated package naming instructions (#7140) --- Docs/tuto_content_authoring_maps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/tuto_content_authoring_maps.md b/Docs/tuto_content_authoring_maps.md index 04c4e541a..ffdda4f34 100644 --- a/Docs/tuto_content_authoring_maps.md +++ b/Docs/tuto_content_authoring_maps.md @@ -422,10 +422,10 @@ Drag your desired foliage item into the box labeled `+ Drop Foliage Here`. Set a To export a map as a map package that can be ingested into a standalone CARLA package installation, use the `make package` command as follows: ```sh -make package ARGS="--packages=" +make package ARGS="--packages=" ``` -The `` must point to a json file located in `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Config` named *mapPackage.json* which has the following structure: +The `` must point to a json file located in `CARLA_ROOT/Unreal/CarlaUE4/Content/Carla/Config` named *mapName.Package.json* which has the following structure: ```json { From 46aa683d2cbb6903c3fd8f3ede1ed3c2c85b0612 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 12 Feb 2024 12:47:58 +0100 Subject: [PATCH 077/105] Archive all Carla server logs --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 1ba592edd..eeab4d975 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -189,12 +189,14 @@ pipeline sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &' sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' + sh 'tar -czf CarlaUE_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' } post { always { archiveArtifacts 'CarlaUE4.log' + archiveArtifacts 'CarlaUE_logs.tar.gz' junit 'Build/test-results/smoke-tests-*.xml' } } From dfe80d11a18d2ea13371619478688ec2223cabe5 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 12 Feb 2024 12:51:56 +0100 Subject: [PATCH 078/105] clean pipeline workspace --- Jenkinsfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index eeab4d975..688e6a8bd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -323,6 +323,13 @@ pipeline } } } + post + { + always + { + deleteDir() + } + } /* stage('windows') { From 2516d4b9f2d9784c7b41ea0734a7f5e2dd8a03b2 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 12 Feb 2024 12:56:19 +0100 Subject: [PATCH 079/105] fix failure on post --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 688e6a8bd..5ac125638 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -322,12 +322,12 @@ pipeline } } } - } - post - { - always + post { - deleteDir() + always + { + deleteDir() + } } } /* From 0b13c72d63a7b9754971628cbc57e5136a451ef4 Mon Sep 17 00:00:00 2001 From: Aperiss Date: Fri, 9 Feb 2024 18:53:10 +0100 Subject: [PATCH 080/105] Add actor component getters to the PythonAPI Adds functions: - get_component_world_transform - get_component_relative_transform to the Python API to acces the transform of actor components by name --- LibCarla/source/carla/client/Actor.cpp | 8 ++ LibCarla/source/carla/client/Actor.h | 4 + .../source/carla/client/detail/Client.cpp | 8 ++ LibCarla/source/carla/client/detail/Client.h | 9 ++ .../source/carla/client/detail/Simulator.h | 8 ++ PythonAPI/carla/source/libcarla/Actor.cpp | 2 + .../Carla/Source/Carla/Server/CarlaServer.cpp | 88 +++++++++++++++++++ .../Carla/Server/CarlaServerResponse.cpp | 2 + .../Source/Carla/Server/CarlaServerResponse.h | 1 + 9 files changed, 130 insertions(+) diff --git a/LibCarla/source/carla/client/Actor.cpp b/LibCarla/source/carla/client/Actor.cpp index 36cb0bc41..cfddf041b 100644 --- a/LibCarla/source/carla/client/Actor.cpp +++ b/LibCarla/source/carla/client/Actor.cpp @@ -32,6 +32,14 @@ namespace client { return GetEpisode().Lock()->GetActorAcceleration(*this); } + geom::Transform Actor::GetComponentWorldTransform(const std::string componentName) const { + return GetEpisode().Lock()->GetActorComponentWorldTransform(*this, componentName); + } + + geom::Transform Actor::GetComponentRelativeTransform(const std::string componentName) const { + return GetEpisode().Lock()->GetActorComponentRelativeTransform(*this, componentName); + } + void Actor::SetLocation(const geom::Location &location) { GetEpisode().Lock()->SetActorLocation(*this, location); } diff --git a/LibCarla/source/carla/client/Actor.h b/LibCarla/source/carla/client/Actor.h index 639a7ecb2..79d757468 100644 --- a/LibCarla/source/carla/client/Actor.h +++ b/LibCarla/source/carla/client/Actor.h @@ -60,6 +60,10 @@ namespace client { /// acceleration calculated after the actor's velocity. geom::Vector3D GetAcceleration() const; + geom::Transform GetComponentWorldTransform(const std::string componentName) const; + + geom::Transform GetComponentRelativeTransform(const std::string componentName) const; + /// Teleport the actor to @a location. void SetLocation(const geom::Location &location); diff --git a/LibCarla/source/carla/client/detail/Client.cpp b/LibCarla/source/carla/client/detail/Client.cpp index 16158d538..2cf28c7ef 100644 --- a/LibCarla/source/carla/client/detail/Client.cpp +++ b/LibCarla/source/carla/client/detail/Client.cpp @@ -408,6 +408,14 @@ namespace detail { _pimpl->AsyncCall("add_actor_torque", actor, vector); } + geom::Transform Client::GetActorComponentWorldTransform(rpc::ActorId actor, const std::string componentName) { + return _pimpl->CallAndWait("get_actor_component_world_transform", actor, componentName); + } + + geom::Transform Client::GetActorComponentRelativeTransform(rpc::ActorId actor, const std::string componentName) { + return _pimpl->CallAndWait("get_actor_component_relative_transform", actor, componentName); + } + void Client::SetActorSimulatePhysics(rpc::ActorId actor, const bool enabled) { _pimpl->CallAndWait("set_actor_simulate_physics", actor, enabled); } diff --git a/LibCarla/source/carla/client/detail/Client.h b/LibCarla/source/carla/client/detail/Client.h index e0650ee24..0327adbb6 100644 --- a/LibCarla/source/carla/client/detail/Client.h +++ b/LibCarla/source/carla/client/detail/Client.h @@ -88,6 +88,7 @@ namespace detail { void DestroyTrafficManager(uint16_t port) const; + void SetTimeout(time_duration timeout); time_duration GetTimeout() const; @@ -232,6 +233,14 @@ namespace detail { rpc::ActorId actor, const geom::Vector3D &vector); + geom::Transform GetActorComponentWorldTransform( + rpc::ActorId actor, + const std::string componentName); + + geom::Transform GetActorComponentRelativeTransform( + rpc::ActorId actor, + const std::string componentName); + void SetActorSimulatePhysics( rpc::ActorId actor, bool enabled); diff --git a/LibCarla/source/carla/client/detail/Simulator.h b/LibCarla/source/carla/client/detail/Simulator.h index cf4308f4b..76981d4e3 100644 --- a/LibCarla/source/carla/client/detail/Simulator.h +++ b/LibCarla/source/carla/client/detail/Simulator.h @@ -438,6 +438,14 @@ namespace detail { return GetActorSnapshot(actor).acceleration; } + geom::Transform GetActorComponentWorldTransform(const Actor &actor, const std::string componentName) { + return _client.GetActorComponentWorldTransform(actor.GetId(), componentName); + } + + geom::Transform GetActorComponentRelativeTransform(const Actor &actor, std::string componentName) { + return _client.GetActorComponentRelativeTransform(actor.GetId(), componentName); + } + void SetActorLocation(Actor &actor, const geom::Location &location) { _client.SetActorLocation(actor.GetId(), location); } diff --git a/PythonAPI/carla/source/libcarla/Actor.cpp b/PythonAPI/carla/source/libcarla/Actor.cpp index f0c1b670b..9686bb735 100644 --- a/PythonAPI/carla/source/libcarla/Actor.cpp +++ b/PythonAPI/carla/source/libcarla/Actor.cpp @@ -113,6 +113,8 @@ void export_actor() { .def("get_velocity", &cc::Actor::GetVelocity) .def("get_angular_velocity", &cc::Actor::GetAngularVelocity) .def("get_acceleration", &cc::Actor::GetAcceleration) + .def("get_component_world_transform", &cc::Actor::GetComponentWorldTransform, (arg("component_name"))) + .def("get_component_relative_transform", &cc::Actor::GetComponentRelativeTransform, (arg("component_name"))) .def("set_location", &cc::Actor::SetLocation, (arg("location"))) .def("set_transform", &cc::Actor::SetTransform, (arg("transform"))) .def("set_target_velocity", &cc::Actor::SetTargetVelocity, (arg("velocity"))) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp index 39e797d50..af6cbc658 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp @@ -1274,6 +1274,94 @@ BIND_SYNC(is_sensor_enabled_for_ros) << [this](carla::streaming::detail::stream_ return R::Success(); }; + BIND_SYNC(get_actor_component_world_transform) << [this]( + cr::ActorId ActorId, + const std::string componentName) -> R + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_world_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray Components; + CarlaActor->GetActor()->GetComponents(Components); + + USceneComponent* Component; + for(auto Cmp : Components) + { + if(USceneComponent* SCMP = Cast(Cmp)) + { + if(SCMP->GetName() == componentName.c_str()) + { + Component = SCMP; + break; + } + } + } + + if(!Component) + { + return RespondError( + "get_actor_component_world_transform", + ECarlaServerResponse::ComponentNotFound, + " Component Name: " + FString(componentName.c_str())); + } + + FTransform ComponentWorldTransform = Component->GetComponentTransform(); + return cr::Transform(ComponentWorldTransform); + } + }; + + BIND_SYNC(get_actor_component_relative_transform) << [this]( + cr::ActorId ActorId, + const std::string componentName) -> R + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_relative_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray Components; + CarlaActor->GetActor()->GetComponents(Components); + + USceneComponent* Component; + for(auto Cmp : Components) + { + if(USceneComponent* SCMP = Cast(Cmp)) + { + if(SCMP->GetName() == componentName.c_str()) + { + Component = SCMP; + break; + } + } + } + + if(!Component) + { + return RespondError( + "get_actor_component_world_transform", + ECarlaServerResponse::ComponentNotFound, + " Component Name: " + FString(componentName.c_str())); + } + + FTransform ComponentRelativeTransform = Component->GetRelativeTransform(); + return cr::Transform(ComponentRelativeTransform); + } + }; + BIND_SYNC(get_physics_control) << [this]( cr::ActorId ActorId) -> R { diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.cpp index 961fcbb85..2e5901119 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.cpp @@ -14,6 +14,8 @@ FString CarlaGetStringError(ECarlaServerResponse Response) return "Sucess"; case ECarlaServerResponse::ActorNotFound: return "Actor could not be found in the registry"; + case ECarlaServerResponse::ComponentNotFound: + return "Component could not be found in this actor"; case ECarlaServerResponse::ActorTypeMismatch: return "Actor does not match the expected type"; case ECarlaServerResponse::MissingActor: diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.h index f5bf72c8b..70125d04f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServerResponse.h @@ -10,6 +10,7 @@ enum class ECarlaServerResponse { Success, ActorNotFound, + ComponentNotFound, ActorTypeMismatch, FunctionNotSupported, NullActor, From 193d9cf7cdef4bbcaa88db65cb27d493d9836a76 Mon Sep 17 00:00:00 2001 From: Aperiss Date: Mon, 12 Feb 2024 09:36:55 +0100 Subject: [PATCH 081/105] Update changelog for get-transform-component changes --- CHANGELOG.md | 3 ++- PythonAPI/examples/get_component_test.py | 34 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 PythonAPI/examples/get_component_test.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a361dd37a..f4672927e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Latest Changes * Prevent from segfault on failing SignalReference identification when loading OpenDrive files - * Added vehicle doors to the recorder + * Added vehicle doors to the recorder + * Added functions to get actor' components transform ## CARLA 0.9.15 diff --git a/PythonAPI/examples/get_component_test.py b/PythonAPI/examples/get_component_test.py new file mode 100644 index 000000000..099fc7b10 --- /dev/null +++ b/PythonAPI/examples/get_component_test.py @@ -0,0 +1,34 @@ +import glob +import os +import sys + +try: + sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % ( + sys.version_info.major, + sys.version_info.minor, + 'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0]) +except IndexError: + pass + + +# ============================================================================== +# -- imports ------------------------------------------------------------------- +# ============================================================================== + + +import carla + +client = carla.Client('localhost', 2000) +world = client.get_world() + +location = carla.Location(200.0, 200.0, 200.0) +rotation = carla.Rotation(0.0, 0.0, 0.0) +transform = carla.Transform(location, rotation) + +bp_library = world.get_blueprint_library() +bp_audi = bp_library.find('vehicle.audi.tt') +audi = world.spawn_actor(bp_audi, transform) + +component_transform = audi.get_component_world_transform('front-blinker-r-1') +print(component_transform) + From 02289cbea0e38beae0a93ebe1c1292e814079022 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 13 Feb 2024 14:08:54 +0100 Subject: [PATCH 082/105] fix artifact name --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5ac125638..640c5f945 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -189,14 +189,14 @@ pipeline sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &' sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' - sh 'tar -czf CarlaUE_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' + sh 'tar -czf CarlaUE4_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' } post { always { archiveArtifacts 'CarlaUE4.log' - archiveArtifacts 'CarlaUE_logs.tar.gz' + archiveArtifacts 'CarlaUE4_logs.tar.gz' junit 'Build/test-results/smoke-tests-*.xml' } } From f9003528ce2092d7f87c90bb3dd6e1e27c45a0b7 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 14 Feb 2024 14:53:01 +0100 Subject: [PATCH 083/105] fix: saving all logs when tests fails --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 640c5f945..4d3691f6e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -189,12 +189,12 @@ pipeline sh 'DISPLAY= ./Dist/CarlaUE4.sh -nullrhi -RenderOffScreen --carla-rpc-port=3654 --carla-streaming-port=0 -nosound > CarlaUE4.log &' sh 'make smoke_tests ARGS="--xml --python-version=3.8 --target-wheel-platform=manylinux_2_27_x86_64"' sh 'make run-examples ARGS="localhost 3654"' - sh 'tar -czf CarlaUE4_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' } post { always { + sh 'tar -czf CarlaUE4_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' archiveArtifacts 'CarlaUE4.log' archiveArtifacts 'CarlaUE4_logs.tar.gz' junit 'Build/test-results/smoke-tests-*.xml' From 1433186a01963c1e6b66621427d9e8bfbf3c8208 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 15 Feb 2024 09:48:50 +0100 Subject: [PATCH 084/105] Added timers to setup.sh for downloading and unzipping --- Util/BuildTools/Setup.sh | 108 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 5 deletions(-) diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index 0a46ae555..5a96e1ffb 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -92,15 +92,30 @@ for PY_VERSION in ${PY_VERSION_LIST[@]} ; do BOOST_PACKAGE_BASENAME=boost_${BOOST_VERSION//./_} log "Retrieving boost." + + start=$(date +%s) wget "https://archives.boost.io/release/${BOOST_VERSION}/source/${BOOST_PACKAGE_BASENAME}.tar.gz" || true + end=$(date +%s) + echo "Elapsed Time downloading from boost webpage: $(($end-$start)) seconds" + # try to use the backup boost we have in Jenkins if [ ! -f "${BOOST_PACKAGE_BASENAME}.tar.gz" ] || [[ $(sha256sum "${BOOST_PACKAGE_BASENAME}.tar.gz") != "${BOOST_SHA256SUM}" ]] ; then log "Using boost backup" + + start=$(date +%s) wget "https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/${BOOST_PACKAGE_BASENAME}.tar.gz" || true + end=$(date +%s) + echo "Elapsed Time downloading from boost carla backup in backblaze: $(($end-$start)) seconds" + fi log "Extracting boost for Python ${PY_VERSION}." + + start=$(date +%s) tar -xzf ${BOOST_PACKAGE_BASENAME}.tar.gz + end=$(date +%s) + echo "Elapsed Time Extracting boost for Python: $(($end-$start)) seconds" + mkdir -p ${BOOST_BASENAME}-install/include mv ${BOOST_PACKAGE_BASENAME} ${BOOST_BASENAME}-source @@ -166,8 +181,12 @@ else log "Retrieving rpclib." + start_download_time=$(date +%s) + git clone -b ${RPCLIB_PATCH} https://github.com/carla-simulator/rpclib.git ${RPCLIB_BASENAME}-source + end_download_time=$(date +%s) + echo "Elapsed Time downloading rpclib: $(($end-$start)) seconds" log "Building rpclib with libc++." # rpclib does not use any cmake 3.9 feature. @@ -234,8 +253,13 @@ else log "Retrieving Google Test." + start_download_time=$(date +%s) + git clone --depth=1 -b release-${GTEST_VERSION} https://github.com/google/googletest.git ${GTEST_BASENAME}-source + end_download_time=$(date +%s) + echo "Elapsed Time downloading rpclib: $(($end-$start)) seconds" + log "Building Google Test with libc++." mkdir -p ${GTEST_BASENAME}-libcxx-build @@ -296,12 +320,15 @@ else log "Retrieving Recast & Detour" - git clone https://github.com/carla-simulator/recastnavigation.git ${RECAST_BASENAME}-source + start=$(date +%s) + + git clone --depth 1 -b carla https://github.com/carla-simulator/recastnavigation.git ${RECAST_BASENAME}-source + + end=$(date +%s) + echo "Elapsed Time downloading: $(($end-$start)) seconds" pushd ${RECAST_BASENAME}-source >/dev/null - git checkout carla - popd >/dev/null log "Building Recast & Detour with libc++." @@ -351,10 +378,18 @@ if [[ -d ${LIBPNG_INSTALL} ]] ; then log "Libpng already installed." else log "Retrieving libpng." - wget ${LIBPNG_REPO} + start=$(date +%s) + wget ${LIBPNG_REPO} + end=$(date +%s) + echo "Elapsed Time downloading libpng: $(($end-$start)) seconds" + + start=$(date +%s) log "Extracting libpng." tar -xf libpng-${LIBPNG_VERSION}.tar.xz + end=$(date +%s) + echo "Elapsed Time Extracting libpng: $(($end-$start)) seconds" + mv ${LIBPNG_BASENAME} ${LIBPNG_BASENAME}-source pushd ${LIBPNG_BASENAME}-source >/dev/null @@ -388,16 +423,26 @@ if [[ -d ${XERCESC_INSTALL_DIR} && -d ${XERCESC_INSTALL_SERVER_DIR} ]] ; then log "Xerces-c already installed." else log "Retrieving xerces-c." + start=$(date +%s) wget ${XERCESC_REPO} - + end=$(date +%s) + echo "Elapsed Time downloading from xerces repo: $(($end-$start)) seconds" # try to use the backup boost we have in Jenkins if [[ ! -f "${XERCESC_BASENAME}.tar.gz" ]] ; then log "Using xerces backup" + start=$(date +%s) wget "https://carla-releases.s3.us-east-005.backblazeb2.com/Backup/${XERCESC_BASENAME}.tar.gz" || true + end=$(date +%s) + echo "Elapsed Time downloading from xerces backup: $(($end-$start)) seconds" fi log "Extracting xerces-c." + + start=$(date +%s) tar -xzf ${XERCESC_BASENAME}.tar.gz + end=$(date +%s) + echo "Elapsed Time Extracting xerces-c: $(($end-$start)) seconds" + mv ${XERCESC_BASENAME} ${XERCESC_SRC_DIR} mkdir -p ${XERCESC_INSTALL_DIR} mkdir -p ${XERCESC_SRC_DIR}/build @@ -461,10 +506,18 @@ if [[ -d ${EIGEN_INSTALL_DIR} ]] ; then log "Eigen already installed." else log "Retrieving Eigen." + + start=$(date +%s) wget ${EIGEN_REPO} + end=$(date +%s) + echo "Elapsed Time downloading from eigen repo: $(($end-$start)) seconds" log "Extracting Eigen." + start=$(date +%s) tar -xzf ${EIGEN_BASENAME}.tar.gz + end=$(date +%s) + echo "Elapsed Time Extracting EIGEN: $(($end-$start)) seconds" + mv ${EIGEN_BASENAME} ${EIGEN_SRC_DIR} mkdir -p ${EIGEN_INCLUDE}/unsupported mv ${EIGEN_SRC_DIR}/Eigen ${EIGEN_INCLUDE} @@ -496,10 +549,19 @@ if ${USE_CHRONO} ; then log "Eigen already installed." else log "Retrieving Eigen." + + start=$(date +%s) wget ${EIGEN_REPO} + end=$(date +%s) + echo "Elapsed Time: $(($end-$start)) seconds" log "Extracting Eigen." + + start=$(date +%s) tar -xzf ${EIGEN_BASENAME}.tar.gz + end=$(date +%s) + echo "Elapsed Time Extracting for Eigen: $(($end-$start)) seconds" + mv ${EIGEN_BASENAME} ${EIGEN_SRC_DIR} mkdir -p ${EIGEN_INCLUDE}/unsupported mv ${EIGEN_SRC_DIR}/Eigen ${EIGEN_INCLUDE} @@ -527,7 +589,10 @@ if ${USE_CHRONO} ; then log "chrono library already installed." else log "Retrieving chrono library." + start=$(date +%s) git clone --depth 1 --branch ${CHRONO_TAG} ${CHRONO_REPO} ${CHRONO_SRC_DIR} + end=$(date +%s) + echo "Elapsed Time dowloading chrono: $(($end-$start)) seconds" mkdir -p ${CHRONO_SRC_DIR}/build @@ -574,10 +639,19 @@ if [[ -d ${SQLITE_INSTALL_DIR} ]] ; then log "Sqlite already installed." else log "Retrieving Sqlite3" + + start=$(date +%s) wget ${SQLITE_REPO} + end=$(date +%s) + echo "Elapsed Time: $(($end-$start)) seconds" log "Extracting Sqlite3" + + start=$(date +%s) tar -xzf ${SQLITE_TAR} + end=$(date +%s) + echo "Elapsed Time Extracting for SQlite: $(($end-$start)) seconds" + mv ${SQLITE_VERSION} ${SQLITE_SOURCE_DIR} mkdir ${SQLITE_INSTALL_DIR} @@ -621,10 +695,18 @@ if [[ -d ${PROJ_INSTALL_DIR} && -d ${PROJ_INSTALL_SERVER_DIR_FULL} ]] ; then log "PROJ already installed." else log "Retrieving PROJ" + + start=$(date +%s) wget ${PROJ_REPO} + end=$(date +%s) + echo "Elapsed Time: $(($end-$start)) seconds" log "Extracting PROJ" + start=$(date +%s) tar -xzf ${PROJ_TAR} + end=$(date +%s) + echo "Elapsed Time Extracting for PROJ: $(($end-$start)) seconds" + mv ${PROJ_VERSION} ${PROJ_SRC_DIR} mkdir -p ${PROJ_SRC_DIR}/build @@ -692,10 +774,18 @@ if [[ -d ${PATCHELF_INSTALL_DIR} ]] ; then log "Patchelf already installed." else log "Retrieving patchelf" + + start=$(date +%s) wget ${PATCHELF_REPO} + end=$(date +%s) + echo "Elapsed Time: $(($end-$start)) seconds" log "Extracting patchelf" + start=$(date +%s) tar -xzf ${PATCHELF_TAR} + end=$(date +%s) + echo "Elapsed Time Extracting patchelf: $(($end-$start)) seconds" + mv patchelf-${PATCHELF_VERSION} ${PATCHELF_SOURCE_DIR} mkdir ${PATCHELF_INSTALL_DIR} @@ -730,7 +820,12 @@ if ${USE_PYTORCH} ; then LIBTORCH_ZIPFILE=libtorch-shared-with-deps-1.11.0+cu113.zip LIBTORCH_REPO=https://download.pytorch.org/libtorch/cu113/libtorch-shared-with-deps-1.11.0%2Bcu113.zip if [[ ! -d ${LIBTORCH_PATH} ]] ; then + + start=$(date +%s) wget ${LIBTORCH_REPO} + end=$(date +%s) + echo "Elapsed Time downloading LIBTORCH_REPO: $(($end-$start)) seconds" + unzip ${LIBTORCH_ZIPFILE} fi @@ -810,7 +905,10 @@ if ${USE_ROS2} ; then if [[ ! -d ${LIB_SOURCE} ]] ; then mkdir -p ${LIB_SOURCE} log "${LIB_REPO}" + start=$(date +%s) git clone --depth 1 --branch ${LIB_BRANCH} ${LIB_REPO} ${LIB_SOURCE} + end=$(date +%s) + echo "Elapsed Time dowloading fastdds extension: $(($end-$start)) seconds" mkdir -p ${LIB_SOURCE}/build fi } From 5d6862c3d7be5a330f07baa2fe24d90172dc6816 Mon Sep 17 00:00:00 2001 From: javiergrCS <139075626+javiergrCS@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:26:34 +0100 Subject: [PATCH 085/105] Javiergr cs/get bones transform (#7153) * Add actor component getters to the PythonAPI Adds functions: - get_component_world_transform - get_component_relative_transform to the Python API to acces the transform of actor components by name * Update changelog for get-transform-component changes * Adding getters for receive bone names and transforms * Corrections * Correcting Python API function definitions to make them able to return lists * Improving the code of get_actor_bone_world_transforms * Adding getters to obtain socket transforms * Updating CHANGELOG.md * Deleting .ignore * Updating Util/BuildTools/Setup.sh * Correcting Setup.sh --------- Co-authored-by: Aperiss Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com> --- CHANGELOG.md | 3 + LibCarla/source/carla/client/Actor.cpp | 24 ++ LibCarla/source/carla/client/Actor.h | 12 + .../source/carla/client/detail/Client.cpp | 30 +++ LibCarla/source/carla/client/detail/Client.h | 19 +- .../source/carla/client/detail/Simulator.h | 24 ++ PythonAPI/carla/source/libcarla/Actor.cpp | 6 + .../Carla/Source/Carla/Server/CarlaServer.cpp | 216 ++++++++++++++++++ Util/BuildTools/Setup.sh | 3 +- 9 files changed, 335 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4672927e..e544aa3c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ * Prevent from segfault on failing SignalReference identification when loading OpenDrive files * Added vehicle doors to the recorder * Added functions to get actor' components transform + * Added functions to get actor' bones transforms + * Added functions to get actor' bones and components names + * Added functions to get actor' sockets transforms ## CARLA 0.9.15 diff --git a/LibCarla/source/carla/client/Actor.cpp b/LibCarla/source/carla/client/Actor.cpp index cfddf041b..0d2b7f962 100644 --- a/LibCarla/source/carla/client/Actor.cpp +++ b/LibCarla/source/carla/client/Actor.cpp @@ -40,6 +40,30 @@ namespace client { return GetEpisode().Lock()->GetActorComponentRelativeTransform(*this, componentName); } + std::vector Actor::GetBoneWorldTransforms() const { + return GetEpisode().Lock()->GetActorBoneWorldTransforms(*this); + } + + std::vector Actor::GetBoneRelativeTransforms() const { + return GetEpisode().Lock()->GetActorBoneRelativeTransforms(*this); + } + + std::vector Actor::GetComponentNames() const { + return GetEpisode().Lock()->GetActorComponentNames(*this); + } + + std::vector Actor::GetBoneNames() const { + return GetEpisode().Lock()->GetActorBoneNames(*this); + } + + std::vector Actor::GetSocketWorldTransforms() const { + return GetEpisode().Lock()->GetActorSocketWorldTransforms(*this); + } + + std::vector Actor::GetSocketRelativeTransforms() const { + return GetEpisode().Lock()->GetActorSocketRelativeTransforms(*this); + } + void Actor::SetLocation(const geom::Location &location) { GetEpisode().Lock()->SetActorLocation(*this, location); } diff --git a/LibCarla/source/carla/client/Actor.h b/LibCarla/source/carla/client/Actor.h index 79d757468..4afd48d4a 100644 --- a/LibCarla/source/carla/client/Actor.h +++ b/LibCarla/source/carla/client/Actor.h @@ -64,6 +64,18 @@ namespace client { geom::Transform GetComponentRelativeTransform(const std::string componentName) const; + std::vector GetBoneWorldTransforms() const; + + std::vector GetBoneRelativeTransforms() const; + + std::vector GetComponentNames() const; + + std::vector GetBoneNames() const; + + std::vector GetSocketWorldTransforms() const; + + std::vector GetSocketRelativeTransforms() const; + /// Teleport the actor to @a location. void SetLocation(const geom::Location &location); diff --git a/LibCarla/source/carla/client/detail/Client.cpp b/LibCarla/source/carla/client/detail/Client.cpp index 2cf28c7ef..a1587c8c1 100644 --- a/LibCarla/source/carla/client/detail/Client.cpp +++ b/LibCarla/source/carla/client/detail/Client.cpp @@ -416,6 +416,36 @@ namespace detail { return _pimpl->CallAndWait("get_actor_component_relative_transform", actor, componentName); } + std::vector Client::GetActorBoneWorldTransforms(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_bone_world_transforms", actor); + } + + std::vector Client::GetActorBoneRelativeTransforms(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_bone_relative_transforms", actor); + } + + std::vector Client::GetActorComponentNames(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_component_names", actor); + } + + std::vector Client::GetActorBoneNames(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_bone_names", actor); + } + + std::vector Client::GetActorSocketWorldTransforms(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_socket_world_transforms", actor); + } + + std::vector Client::GetActorSocketRelativeTransforms(rpc::ActorId actor) { + using return_t = std::vector; + return _pimpl->CallAndWait("get_actor_socket_relative_transforms", actor); + } + void Client::SetActorSimulatePhysics(rpc::ActorId actor, const bool enabled) { _pimpl->CallAndWait("set_actor_simulate_physics", actor, enabled); } diff --git a/LibCarla/source/carla/client/detail/Client.h b/LibCarla/source/carla/client/detail/Client.h index 0327adbb6..9f7701420 100644 --- a/LibCarla/source/carla/client/detail/Client.h +++ b/LibCarla/source/carla/client/detail/Client.h @@ -88,7 +88,6 @@ namespace detail { void DestroyTrafficManager(uint16_t port) const; - void SetTimeout(time_duration timeout); time_duration GetTimeout() const; @@ -241,6 +240,24 @@ namespace detail { rpc::ActorId actor, const std::string componentName); + std::vector GetActorBoneWorldTransforms( + rpc::ActorId actor); + + std::vector GetActorBoneRelativeTransforms( + rpc::ActorId actor); + + std::vector GetActorComponentNames( + rpc::ActorId actor); + + std::vector GetActorBoneNames( + rpc::ActorId actor); + + std::vector GetActorSocketWorldTransforms( + rpc::ActorId actor); + + std::vector GetActorSocketRelativeTransforms( + rpc::ActorId actor); + void SetActorSimulatePhysics( rpc::ActorId actor, bool enabled); diff --git a/LibCarla/source/carla/client/detail/Simulator.h b/LibCarla/source/carla/client/detail/Simulator.h index 76981d4e3..8eb2d09e9 100644 --- a/LibCarla/source/carla/client/detail/Simulator.h +++ b/LibCarla/source/carla/client/detail/Simulator.h @@ -446,6 +446,30 @@ namespace detail { return _client.GetActorComponentRelativeTransform(actor.GetId(), componentName); } + std::vector GetActorBoneWorldTransforms(const Actor &actor) { + return _client.GetActorBoneWorldTransforms(actor.GetId()); + } + + std::vector GetActorBoneRelativeTransforms(const Actor &actor) { + return _client.GetActorBoneRelativeTransforms(actor.GetId()); + } + + std::vector GetActorComponentNames(const Actor &actor) { + return _client.GetActorComponentNames(actor.GetId()); + } + + std::vector GetActorBoneNames(const Actor &actor) { + return _client.GetActorBoneNames(actor.GetId()); + } + + std::vector GetActorSocketWorldTransforms(const Actor &actor) { + return _client.GetActorSocketWorldTransforms(actor.GetId()); + } + + std::vector GetActorSocketRelativeTransforms(const Actor &actor) { + return _client.GetActorSocketRelativeTransforms(actor.GetId()); + } + void SetActorLocation(Actor &actor, const geom::Location &location) { _client.SetActorLocation(actor.GetId(), location); } diff --git a/PythonAPI/carla/source/libcarla/Actor.cpp b/PythonAPI/carla/source/libcarla/Actor.cpp index 9686bb735..dda9d58a4 100644 --- a/PythonAPI/carla/source/libcarla/Actor.cpp +++ b/PythonAPI/carla/source/libcarla/Actor.cpp @@ -115,6 +115,12 @@ void export_actor() { .def("get_acceleration", &cc::Actor::GetAcceleration) .def("get_component_world_transform", &cc::Actor::GetComponentWorldTransform, (arg("component_name"))) .def("get_component_relative_transform", &cc::Actor::GetComponentRelativeTransform, (arg("component_name"))) + .def("get_bone_world_transforms", CALL_RETURNING_LIST(cc::Actor,GetBoneWorldTransforms)) + .def("get_bone_relative_transforms", CALL_RETURNING_LIST(cc::Actor,GetBoneRelativeTransforms)) + .def("get_component_names", CALL_RETURNING_LIST(cc::Actor,GetComponentNames)) + .def("get_bone_names", CALL_RETURNING_LIST(cc::Actor,GetBoneNames)) + .def("get_socket_world_transforms", CALL_RETURNING_LIST(cc::Actor,GetSocketWorldTransforms)) + .def("get_socket_relative_transforms", CALL_RETURNING_LIST(cc::Actor,GetSocketRelativeTransforms)) .def("set_location", &cc::Actor::SetLocation, (arg("location"))) .def("set_transform", &cc::Actor::SetTransform, (arg("transform"))) .def("set_target_velocity", &cc::Actor::SetTargetVelocity, (arg("velocity"))) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp index af6cbc658..16a9bb939 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp @@ -9,6 +9,11 @@ #include "Carla/Server/CarlaServerResponse.h" #include "Carla/Traffic/TrafficLightGroup.h" #include "EngineUtils.h" +#include "Components/SkeletalMeshComponent.h" +#include "Components/SkinnedMeshComponent.h" +#include "Components/SceneComponent.h" +#include "Engine/SkeletalMesh.h" +#include "Engine/SkeletalMeshSocket.h" #include "Carla/OpenDrive/OpenDrive.h" #include "Carla/Util/DebugShapeDrawer.h" @@ -1362,6 +1367,217 @@ BIND_SYNC(is_sensor_enabled_for_ros) << [this](carla::streaming::detail::stream_ } }; + BIND_SYNC(get_actor_bone_world_transforms) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_bone_world_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray BoneWorldTransforms; + TArray SkinnedMeshComponents; + CarlaActor->GetActor()->GetComponents(SkinnedMeshComponents); + if(!SkinnedMeshComponents[0]) + { + return RespondError( + "get_actor_bone_relative_transforms", + ECarlaServerResponse::ComponentNotFound, + " Component Name: SkinnedMeshComponent "); + } + else + { + for(USkinnedMeshComponent* SkinnedMeshComponent : SkinnedMeshComponents) + { + const int32 NumBones = SkinnedMeshComponent->GetNumBones(); + for (int32 BoneIndex = 0; BoneIndex < NumBones; ++BoneIndex) + { + FTransform WorldTransform = SkinnedMeshComponent->GetComponentTransform(); + FTransform BoneTransform = SkinnedMeshComponent->GetBoneTransform(BoneIndex, WorldTransform); + BoneWorldTransforms.Add(BoneTransform); + } + } + return MakeVectorFromTArray(BoneWorldTransforms); + } + } + }; + + BIND_SYNC(get_actor_bone_relative_transforms) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_bone_relative_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray BoneRelativeTransforms; + TArray SkinnedMeshComponents; + CarlaActor->GetActor()->GetComponents(SkinnedMeshComponents); + if(!SkinnedMeshComponents[0]) + { + return RespondError( + "get_actor_bone_relative_transforms", + ECarlaServerResponse::ComponentNotFound, + " Component Name: SkinnedMeshComponent "); + } + else + { + for(USkinnedMeshComponent* SkinnedMeshComponent : SkinnedMeshComponents) + { + const int32 NumBones = SkinnedMeshComponent->GetNumBones(); + for (int32 BoneIndex = 0; BoneIndex < NumBones; ++BoneIndex) + { + FTransform BoneTransform = SkinnedMeshComponent->GetBoneTransform(BoneIndex, FTransform::Identity); + BoneRelativeTransforms.Add(BoneTransform); + } + } + return MakeVectorFromTArray(BoneRelativeTransforms); + } + } + }; + + BIND_SYNC(get_actor_component_names) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_names", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray Components; + CarlaActor->GetActor()->GetComponents(Components); + std::vector ComponentNames; + for(auto Cmp : Components) + { + FString ComponentName = Cmp->GetName(); + ComponentNames.push_back(TCHAR_TO_UTF8(*ComponentName)); + } + return ComponentNames; + } + }; + + BIND_SYNC(get_actor_bone_names) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_relative_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + USkinnedMeshComponent* SkinnedMeshComponent = CarlaActor->GetActor()->FindComponentByClass(); + if(!SkinnedMeshComponent) + { + return RespondError( + "get_actor_bone_relative_transforms", + ECarlaServerResponse::ComponentNotFound, + " Component Name: SkinnedMeshComponent "); + } + else + { + TArray BoneNames; + SkinnedMeshComponent->GetBoneNames(BoneNames); + TArray StringBoneNames; + for (const FName& Name : BoneNames) + { + FString FBoneName = Name.ToString(); + std::string StringBoneName = TCHAR_TO_UTF8(*FBoneName); + StringBoneNames.Add(StringBoneName); + } + return MakeVectorFromTArray(StringBoneNames); + } + } + }; + + BIND_SYNC(get_actor_socket_world_transforms) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_relative_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray SocketWorldTransforms; + TArray Components; + CarlaActor->GetActor()->GetComponents(Components); + for(UActorComponent* ActorComponent : Components) + { + if(USceneComponent* SceneComponent = Cast(ActorComponent)) + { + const TArray& SocketNames = SceneComponent->GetAllSocketNames(); + for (const FName& SocketName : SocketNames) + { + FTransform SocketTransform = SceneComponent->GetSocketTransform(SocketName); + SocketWorldTransforms.Add(SocketTransform); + } + } + } + return MakeVectorFromTArray(SocketWorldTransforms); + } + }; + + BIND_SYNC(get_actor_socket_relative_transforms) << [this]( + cr::ActorId ActorId) -> R> + { + REQUIRE_CARLA_EPISODE(); + FCarlaActor* CarlaActor = Episode->FindCarlaActor(ActorId); + if (!CarlaActor) + { + return RespondError( + "get_actor_component_relative_transform", + ECarlaServerResponse::ActorNotFound, + " Actor Id: " + FString::FromInt(ActorId)); + } + else + { + TArray SocketRelativeTransforms; + TArray Components; + CarlaActor->GetActor()->GetComponents(Components); + for(UActorComponent* ActorComponent : Components) + { + if(USceneComponent* SceneComponent = Cast(ActorComponent)) + { + const TArray& SocketNames = SceneComponent->GetAllSocketNames(); + for (const FName& SocketName : SocketNames) + { + FTransform SocketTransform = SceneComponent->GetSocketTransform(SocketName, ERelativeTransformSpace::RTS_Actor); + SocketRelativeTransforms.Add(SocketTransform); + } + } + } + return MakeVectorFromTArray(SocketRelativeTransforms); + } + }; + BIND_SYNC(get_physics_control) << [this]( cr::ActorId ActorId) -> R { diff --git a/Util/BuildTools/Setup.sh b/Util/BuildTools/Setup.sh index 5a96e1ffb..81a416d07 100755 --- a/Util/BuildTools/Setup.sh +++ b/Util/BuildTools/Setup.sh @@ -186,7 +186,8 @@ else git clone -b ${RPCLIB_PATCH} https://github.com/carla-simulator/rpclib.git ${RPCLIB_BASENAME}-source end_download_time=$(date +%s) - echo "Elapsed Time downloading rpclib: $(($end-$start)) seconds" + + echo "Elapsed Time downloading rpclib: $(($end_download_time-$start_download_time)) seconds" log "Building rpclib with libc++." # rpclib does not use any cmake 3.9 feature. From cb9a9d77ab097f31a6f1c809a554f9820b449020 Mon Sep 17 00:00:00 2001 From: LuisPoveda <101111439+LuisPoveda@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:21:36 +0100 Subject: [PATCH 086/105] Luis/extend spawn actor (#7154) * Extended spawn_actor to accept a socket name and spawn the actor in the parents socket * fix pr review --- LibCarla/source/carla/client/World.cpp | 10 ++++++---- LibCarla/source/carla/client/World.h | 7 +++++-- LibCarla/source/carla/client/detail/Client.cpp | 8 +++++--- LibCarla/source/carla/client/detail/Client.h | 3 ++- LibCarla/source/carla/client/detail/Simulator.cpp | 8 +++++--- LibCarla/source/carla/client/detail/Simulator.h | 3 ++- LibCarla/source/carla/rpc/Command.h | 13 ++++++++++++- PythonAPI/carla/source/libcarla/Commands.cpp | 6 ++++++ PythonAPI/carla/source/libcarla/World.cpp | 10 +++++++--- .../Carla/Source/Carla/Game/CarlaEpisode.cpp | 9 +++++---- .../Plugins/Carla/Source/Carla/Game/CarlaEpisode.h | 3 ++- .../Carla/Source/Carla/Server/CarlaServer.cpp | 9 ++++++--- .../Carla/Source/Carla/Util/ActorAttacher.cpp | 5 +++-- .../Plugins/Carla/Source/Carla/Util/ActorAttacher.h | 2 +- 14 files changed, 67 insertions(+), 29 deletions(-) diff --git a/LibCarla/source/carla/client/World.cpp b/LibCarla/source/carla/client/World.cpp index 2855f7f1d..cdda8a513 100644 --- a/LibCarla/source/carla/client/World.cpp +++ b/LibCarla/source/carla/client/World.cpp @@ -119,17 +119,19 @@ namespace client { const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent_actor, - rpc::AttachmentType attachment_type) { - return _episode.Lock()->SpawnActor(blueprint, transform, parent_actor, attachment_type); + rpc::AttachmentType attachment_type, + const std::string& socket_name) { + return _episode.Lock()->SpawnActor(blueprint, transform, parent_actor, attachment_type, GarbageCollectionPolicy::Inherit, socket_name); } SharedPtr World::TrySpawnActor( const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent_actor, - rpc::AttachmentType attachment_type) noexcept { + rpc::AttachmentType attachment_type, + const std::string& socket_name) noexcept { try { - return SpawnActor(blueprint, transform, parent_actor, attachment_type); + return SpawnActor(blueprint, transform, parent_actor, attachment_type, socket_name); } catch (const std::exception &) { return nullptr; } diff --git a/LibCarla/source/carla/client/World.h b/LibCarla/source/carla/client/World.h index 003fadb26..d8ba32e3e 100644 --- a/LibCarla/source/carla/client/World.h +++ b/LibCarla/source/carla/client/World.h @@ -29,6 +29,7 @@ #include "carla/rpc/Texture.h" #include "carla/rpc/MaterialParameter.h" +#include #include namespace carla { @@ -112,7 +113,8 @@ namespace client { const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent = nullptr, - rpc::AttachmentType attachment_type = rpc::AttachmentType::Rigid); + rpc::AttachmentType attachment_type = rpc::AttachmentType::Rigid, + const std::string& socket_name = ""); /// Same as SpawnActor but return nullptr on failure instead of throwing an /// exception. @@ -120,7 +122,8 @@ namespace client { const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent = nullptr, - rpc::AttachmentType attachment_type = rpc::AttachmentType::Rigid) noexcept; + rpc::AttachmentType attachment_type = rpc::AttachmentType::Rigid, + const std::string& socket_name = "") noexcept; /// Block calling thread until a world tick is received. WorldSnapshot WaitForTick(time_duration timeout) const; diff --git a/LibCarla/source/carla/client/detail/Client.cpp b/LibCarla/source/carla/client/detail/Client.cpp index a1587c8c1..edb148517 100644 --- a/LibCarla/source/carla/client/detail/Client.cpp +++ b/LibCarla/source/carla/client/detail/Client.cpp @@ -326,11 +326,12 @@ namespace detail { return _pimpl->CallAndWait("spawn_actor", description, transform); } - rpc::Actor Client::SpawnActorWithParent( + rpc::Actor Client::SpawnActorWithParent( const rpc::ActorDescription &description, const geom::Transform &transform, rpc::ActorId parent, - rpc::AttachmentType attachment_type) { + rpc::AttachmentType attachment_type, + const std::string& socket_name) { if (attachment_type == rpc::AttachmentType::SpringArm || attachment_type == rpc::AttachmentType::SpringArmGhost) @@ -348,7 +349,8 @@ namespace detail { description, transform, parent, - attachment_type); + attachment_type, + socket_name); } bool Client::DestroyActor(rpc::ActorId actor) { diff --git a/LibCarla/source/carla/client/detail/Client.h b/LibCarla/source/carla/client/detail/Client.h index 9f7701420..0eff68b6e 100644 --- a/LibCarla/source/carla/client/detail/Client.h +++ b/LibCarla/source/carla/client/detail/Client.h @@ -179,7 +179,8 @@ namespace detail { const rpc::ActorDescription &description, const geom::Transform &transform, rpc::ActorId parent, - rpc::AttachmentType attachment_type); + rpc::AttachmentType attachment_type, + const std::string& socket_name = ""); bool DestroyActor(rpc::ActorId actor); diff --git a/LibCarla/source/carla/client/detail/Simulator.cpp b/LibCarla/source/carla/client/detail/Simulator.cpp index ec2fbfae3..28eb8be68 100644 --- a/LibCarla/source/carla/client/detail/Simulator.cpp +++ b/LibCarla/source/carla/client/detail/Simulator.cpp @@ -342,19 +342,21 @@ EpisodeProxy Simulator::GetCurrentEpisode() { // -- General operations with actors ----------------------------------------- // =========================================================================== - SharedPtr Simulator::SpawnActor( + SharedPtr Simulator::SpawnActor( const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent, rpc::AttachmentType attachment_type, - GarbageCollectionPolicy gc) { + GarbageCollectionPolicy gc, + const std::string& socket_name) { rpc::Actor actor; if (parent != nullptr) { actor = _client.SpawnActorWithParent( blueprint.MakeActorDescription(), transform, parent->GetId(), - attachment_type); + attachment_type, + socket_name); } else { actor = _client.SpawnActor( blueprint.MakeActorDescription(), diff --git a/LibCarla/source/carla/client/detail/Simulator.h b/LibCarla/source/carla/client/detail/Simulator.h index 8eb2d09e9..5f8a2ec06 100644 --- a/LibCarla/source/carla/client/detail/Simulator.h +++ b/LibCarla/source/carla/client/detail/Simulator.h @@ -357,7 +357,8 @@ namespace detail { const geom::Transform &transform, Actor *parent = nullptr, rpc::AttachmentType attachment_type = rpc::AttachmentType::Rigid, - GarbageCollectionPolicy gc = GarbageCollectionPolicy::Inherit); + GarbageCollectionPolicy gc = GarbageCollectionPolicy::Inherit, + const std::string& socket_name = ""); bool DestroyActor(Actor &actor); diff --git a/LibCarla/source/carla/rpc/Command.h b/LibCarla/source/carla/rpc/Command.h index 299c8ad0b..663654e88 100644 --- a/LibCarla/source/carla/rpc/Command.h +++ b/LibCarla/source/carla/rpc/Command.h @@ -10,6 +10,7 @@ #include "carla/MsgPackAdaptors.h" #include "carla/geom/Transform.h" #include "carla/rpc/ActorDescription.h" +#include "carla/rpc/AttachmentType.h" #include "carla/rpc/ActorId.h" #include "carla/rpc/TrafficLightState.h" #include "carla/rpc/VehicleAckermannControl.h" @@ -18,6 +19,8 @@ #include "carla/rpc/VehicleLightState.h" #include "carla/rpc/WalkerControl.h" +#include + #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable:4583) @@ -59,11 +62,19 @@ namespace rpc { : description(std::move(description)), transform(transform), parent(parent) {} + SpawnActor(ActorDescription description, const geom::Transform &transform, ActorId parent, AttachmentType attachment_type, const std::string& bone) + : description(std::move(description)), + transform(transform), + parent(parent), + attachment_type(attachment_type), + socket_name(bone) {} ActorDescription description; geom::Transform transform; boost::optional parent; + AttachmentType attachment_type; + std::string socket_name; std::vector do_after; - MSGPACK_DEFINE_ARRAY(description, transform, parent, do_after); + MSGPACK_DEFINE_ARRAY(description, transform, parent, attachment_type, socket_name, do_after); }; struct DestroyActor : CommandBase { diff --git a/PythonAPI/carla/source/libcarla/Commands.cpp b/PythonAPI/carla/source/libcarla/Commands.cpp index 7fd5166da..2e33c628c 100644 --- a/PythonAPI/carla/source/libcarla/Commands.cpp +++ b/PythonAPI/carla/source/libcarla/Commands.cpp @@ -82,9 +82,15 @@ void export_commands() { "__init__", &command_impl::CustomSpawnActorInit, (arg("blueprint"), arg("transform"), arg("parent"))) + .def( + "__init__", + &command_impl::CustomSpawnActorInit, + (arg("blueprint"), arg("transform"), arg("parent"), arg("attachment_type"), arg("socket_name"))) .def(init()) .def_readwrite("transform", &cr::Command::SpawnActor::transform) .def_readwrite("parent_id", &cr::Command::SpawnActor::parent) + .def_readwrite("attachment_type", &cr::Command::SpawnActor::attachment_type) + .def_readwrite("socket_name", &cr::Command::SpawnActor::socket_name) .def("then", &command_impl::Then, (arg("command"))) ; diff --git a/PythonAPI/carla/source/libcarla/World.cpp b/PythonAPI/carla/source/libcarla/World.cpp index 6f07518ba..0c59ebf32 100644 --- a/PythonAPI/carla/source/libcarla/World.cpp +++ b/PythonAPI/carla/source/libcarla/World.cpp @@ -11,6 +11,8 @@ #include #include +#include + #include namespace carla { @@ -293,15 +295,17 @@ void export_world() { const cc::ActorBlueprint &blueprint, \ const cg::Transform &transform, \ cc::Actor *parent, \ - cr::AttachmentType attachment_type) { \ + cr::AttachmentType attachment_type, \ + const std::string& bone) { \ carla::PythonUtil::ReleaseGIL unlock; \ - return self.fn(blueprint, transform, parent, attachment_type); \ + return self.fn(blueprint, transform, parent, attachment_type, bone); \ }, \ ( \ arg("blueprint"), \ arg("transform"), \ arg("attach_to")=carla::SharedPtr(), \ - arg("attachment_type")=cr::AttachmentType::Rigid) + arg("attachment_type")=cr::AttachmentType::Rigid, \ + arg("bone")=std::string()) class_("World", no_init) .add_property("id", &cc::World::GetId) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.cpp index 5d2417ab1..2e4951021 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.cpp @@ -105,7 +105,7 @@ bool UCarlaEpisode::LoadNewEpisode(const FString &MapString, bool ResetSettings) UGameplayStatics::OpenLevel(GetWorld(), *FinalPath, true); if (ResetSettings) ApplySettings(FEpisodeSettings{}); - + // send 'LOAD_MAP' command to all secondary servers (if any) if (bIsPrimaryServer) { @@ -114,7 +114,7 @@ bool UCarlaEpisode::LoadNewEpisode(const FString &MapString, bool ResetSettings) { FCarlaEngine *CarlaEngine = GameInstance->GetCarlaEngine(); auto SecondaryServer = CarlaEngine->GetSecondaryServer(); - if (SecondaryServer->HasClientsConnected()) + if (SecondaryServer->HasClientsConnected()) { SecondaryServer->GetCommander().SendLoadMap(std::string(TCHAR_TO_UTF8(*FinalPath))); } @@ -294,11 +294,12 @@ carla::rpc::Actor UCarlaEpisode::SerializeActor(AActor* Actor) const void UCarlaEpisode::AttachActors( AActor *Child, AActor *Parent, - EAttachmentType InAttachmentType) + EAttachmentType InAttachmentType, + const FString& SocketName) { Child->AddActorWorldOffset(FVector(CurrentMapOrigin)); - UActorAttacher::AttachActors(Child, Parent, InAttachmentType); + UActorAttacher::AttachActors(Child, Parent, InAttachmentType, SocketName); if (bIsPrimaryServer) { diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.h index 14d078811..d1b820fea 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaEpisode.h @@ -245,7 +245,8 @@ public: void AttachActors( AActor *Child, AActor *Parent, - EAttachmentType InAttachmentType = EAttachmentType::Rigid); + EAttachmentType InAttachmentType = EAttachmentType::Rigid, + const FString& SocketName = ""); /// @copydoc FActorDispatcher::DestroyActor(AActor*) UFUNCTION(BlueprintCallable) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp index 16a9bb939..b3adb57e6 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp @@ -711,7 +711,8 @@ void FCarlaServer::FPimpl::BindActions() cr::ActorDescription Description, const cr::Transform &Transform, cr::ActorId ParentId, - cr::AttachmentType InAttachmentType) -> R + cr::AttachmentType InAttachmentType, + const std::string& socket_name) -> R { REQUIRE_CARLA_EPISODE(); @@ -765,7 +766,8 @@ void FCarlaServer::FPimpl::BindActions() Episode->AttachActors( CarlaActor->GetActor(), ParentCarlaActor->GetActor(), - static_cast(InAttachmentType)); + static_cast(InAttachmentType), + FString(socket_name.c_str())); } else { @@ -2761,7 +2763,8 @@ BIND_SYNC(is_sensor_enabled_for_ros) << [this](carla::streaming::detail::stream_ c.description, c.transform, *c.parent, - cr::AttachmentType::Rigid) : + cr::AttachmentType::Rigid, + c.socket_name) : spawn_actor(c.description, c.transform); if (!result.HasError()) { diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.cpp index 56ca9185a..e0563522c 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.cpp @@ -96,7 +96,8 @@ static void UActorAttacher_AttachActorsWithSpringArmGhost( void UActorAttacher::AttachActors( AActor *Child, AActor *Parent, - const EAttachmentType AttachmentType) + const EAttachmentType AttachmentType, + const FString& SocketName) { check(Child != nullptr); check(Parent != nullptr); @@ -104,7 +105,7 @@ void UActorAttacher::AttachActors( switch (AttachmentType) { case EAttachmentType::Rigid: - Child->AttachToActor(Parent, FAttachmentTransformRules::KeepRelativeTransform); + Child->AttachToActor(Parent, FAttachmentTransformRules::KeepRelativeTransform, FName(*SocketName)); break; case EAttachmentType::SpringArm: UActorAttacher_AttachActorsWithSpringArm(Child, Parent); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.h index 4f6d5d1dd..e95c24ae7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorAttacher.h @@ -42,5 +42,5 @@ class CARLA_API UActorAttacher : public UBlueprintFunctionLibrary public: UFUNCTION(BlueprintCallable, Category="CARLA|Actor Attacher") - static void AttachActors(AActor *Child, AActor *Parent, EAttachmentType AttachmentType); + static void AttachActors(AActor *Child, AActor *Parent, EAttachmentType AttachmentType, const FString& SocketName = ""); }; From 38ec7d88fdee54be302e021acc7d6509141beaf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Sol=C3=A9=20Nogu=C3=A9s?= Date: Mon, 19 Feb 2024 10:59:13 +0100 Subject: [PATCH 087/105] Fix windows build: Uninitialized variable error --- .../Plugins/Carla/Source/Carla/Server/CarlaServer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp index b3adb57e6..7d06f0f81 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Server/CarlaServer.cpp @@ -1299,7 +1299,7 @@ BIND_SYNC(is_sensor_enabled_for_ros) << [this](carla::streaming::detail::stream_ TArray Components; CarlaActor->GetActor()->GetComponents(Components); - USceneComponent* Component; + USceneComponent* Component = nullptr; for(auto Cmp : Components) { if(USceneComponent* SCMP = Cast(Cmp)) @@ -1343,7 +1343,7 @@ BIND_SYNC(is_sensor_enabled_for_ros) << [this](carla::streaming::detail::stream_ TArray Components; CarlaActor->GetActor()->GetComponents(Components); - USceneComponent* Component; + USceneComponent* Component = nullptr; for(auto Cmp : Components) { if(USceneComponent* SCMP = Cast(Cmp)) From e5c76c8c55e7e6d5ba15d6fcf449966efc2d67d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Sol=C3=A9=20Nogu=C3=A9s?= Date: Mon, 19 Feb 2024 10:54:46 +0100 Subject: [PATCH 088/105] Update documentation --- CHANGELOG.md | 1 + Docs/build_faq.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e544aa3c3..96d0e88b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Added functions to get actor' bones transforms * Added functions to get actor' bones and components names * Added functions to get actor' sockets transforms + * make PythonAPI Windows: Fixed incompatibility issue with Anaconda due `py` command. ## CARLA 0.9.15 diff --git a/Docs/build_faq.md b/Docs/build_faq.md index 27ce114dc..07dcc4ada 100644 --- a/Docs/build_faq.md +++ b/Docs/build_faq.md @@ -365,7 +365,7 @@ CARLA forum >In Windows it will be the default Python version for: -> py -3 --version +> python --version >Make sure you are running your scripts with the version of Python that corresponds to your `.egg` file. >In Linux, you may also need to set your Python path to point to the CARLA `.egg`. To do this, run the following command: From 8430a5c33bf166915eb1eef334a0920870f9973c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Sol=C3=A9=20Nogu=C3=A9s?= Date: Mon, 19 Feb 2024 10:55:48 +0100 Subject: [PATCH 089/105] Remove py dependency. --- Util/BuildTools/BuildCarlaUE4.bat | 4 ++-- Util/BuildTools/BuildPythonAPI.bat | 2 +- Util/BuildTools/Package.bat | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Util/BuildTools/BuildCarlaUE4.bat b/Util/BuildTools/BuildCarlaUE4.bat index bae39a3a1..cb61ed5d2 100644 --- a/Util/BuildTools/BuildCarlaUE4.bat +++ b/Util/BuildTools/BuildCarlaUE4.bat @@ -155,10 +155,10 @@ if exist %OMNIVERSE_PLUGIN_FOLDER% ( ) if %USE_CARSIM% == true ( - py -3 %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" -e + python %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" -e set CARSIM_STATE="CarSim ON" ) else ( - py -3 %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" + python %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" set CARSIM_STATE="CarSim OFF" ) if %USE_CHRONO% == true ( diff --git a/Util/BuildTools/BuildPythonAPI.bat b/Util/BuildTools/BuildPythonAPI.bat index cc8d92504..9812c8220 100644 --- a/Util/BuildTools/BuildPythonAPI.bat +++ b/Util/BuildTools/BuildPythonAPI.bat @@ -109,7 +109,7 @@ rem Build for Python 3 rem if %BUILD_FOR_PYTHON3%==true ( echo Building Python API for Python 3. - py -3 setup.py bdist_egg bdist_wheel + python setup.py bdist_egg bdist_wheel if %errorlevel% neq 0 goto error_build_wheel ) diff --git a/Util/BuildTools/Package.bat b/Util/BuildTools/Package.bat index 6be833077..82f03da84 100644 --- a/Util/BuildTools/Package.bat +++ b/Util/BuildTools/Package.bat @@ -119,10 +119,10 @@ rem ============================================================================ if %DO_PACKAGE%==true ( if %USE_CARSIM% == true ( - py -3 %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" -e + python %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" -e echo CarSim ON > "%ROOT_PATH%Unreal/CarlaUE4/Config/CarSimConfig.ini" ) else ( - py -3 %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" + python %ROOT_PATH%Util/BuildTools/enable_carsim_to_uproject.py -f="%ROOT_PATH%Unreal/CarlaUE4/CarlaUE4.uproject" echo CarSim OFF > "%ROOT_PATH%Unreal/CarlaUE4/Config/CarSimConfig.ini" ) From a2d6088c743eeae9f918602c299ffbb8a10a3b34 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 19 Feb 2024 15:10:46 +0100 Subject: [PATCH 090/105] force using bash instead of sh to avoid '[['as an error --- Util/BuildTools/Plugins.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Util/BuildTools/Plugins.sh b/Util/BuildTools/Plugins.sh index 94154d04c..8514acb99 100755 --- a/Util/BuildTools/Plugins.sh +++ b/Util/BuildTools/Plugins.sh @@ -1,3 +1,4 @@ +#!/bin/bash # ============================================================================== # -- Parse arguments ----------------------------------------------------------- # ============================================================================== From a0e40ecd7b1c48f22d2fec5b67643800e8c9cafe Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Mon, 19 Feb 2024 17:05:15 +0100 Subject: [PATCH 091/105] prepare server dependencies stashing --- Jenkinsfile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 4d3691f6e..3f63bb156 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,6 +24,16 @@ pipeline } stages { + stage('stash dependencies') + { + agent{ label 'master' } + options{skipDefaultCheckout()} + steps + { + pwd() + sh "ls -la ${pwd()}" + } + } stage('prepare environment') { parallel From 234e12fdc76a93badbab8b99a09b8fd3928e8dc6 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 11:16:07 +0100 Subject: [PATCH 092/105] use a node to get dependencies (test) --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3f63bb156..39a72f9df 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,7 +26,7 @@ pipeline { stage('stash dependencies') { - agent{ label 'master' } + agent{ label 'cache' } options{skipDefaultCheckout()} steps { From ea055907c8e36b82392a2c3ee840c91577282219 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 11:42:11 +0100 Subject: [PATCH 093/105] get dependencies from cache --- Jenkinsfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 39a72f9df..f461bdae1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,8 +30,8 @@ pipeline options{skipDefaultCheckout()} steps { - pwd() - sh "ls -la ${pwd()}" + sh "cp ../../Build_Linux.tar.gz ." + stash includes: 'Build_Linux.tar.gz', name: 'build_cache' } } stage('prepare environment') @@ -46,6 +46,8 @@ pipeline { steps { + unstash name: 'build_cache' + sh 'tar -xvzf Build_Linux.tar.gz' sh 'git update-index --skip-worktree Unreal/CarlaUE4/CarlaUE4.uproject' sh 'make setup ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' } From 7373d08cfb56312c0369d5e302d1036d2f7a1423 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 11:57:25 +0100 Subject: [PATCH 094/105] prevent big package generation on PR --- Jenkinsfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f461bdae1..8c103a91a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,6 +30,7 @@ pipeline options{skipDefaultCheckout()} steps { + sh "echo ${BRANCH_NAME}" sh "cp ../../Build_Linux.tar.gz ." stash includes: 'Build_Linux.tar.gz', name: 'build_cache' } @@ -167,7 +168,11 @@ pipeline steps { sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' - sh 'make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + sh ''' + if [[ "${BRANCH_NAME:0:3}" != "PR_" ]]; then + make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + fi + ''' sh 'make examples ARGS="localhost 3654"' } post From 87c267eccf5501393f1fe91c58cc4c6af6791bf1 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 12:12:58 +0100 Subject: [PATCH 095/105] testing change --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8c103a91a..165e981b9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,6 +31,7 @@ pipeline steps { sh "echo ${BRANCH_NAME}" + sh "set" sh "cp ../../Build_Linux.tar.gz ." stash includes: 'Build_Linux.tar.gz', name: 'build_cache' } From 121b58b0254d94de048e080c1de31c710062d228 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 12:56:52 +0100 Subject: [PATCH 096/105] fix condition check to make big package --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 165e981b9..f6a31bbc7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -170,7 +170,7 @@ pipeline { sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' sh ''' - if [[ "${BRANCH_NAME:0:3}" != "PR_" ]]; then + if [[ "${BRANCH_NAME:0:3}" != "PR-" ]]; then make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' fi ''' From 1a873b69062d54958336d76a460e89126aafead1 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 14:21:55 +0100 Subject: [PATCH 097/105] fix syntax --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index f6a31bbc7..b017b1440 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -170,6 +170,7 @@ pipeline { sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' sh ''' + #!/bin/bash if [[ "${BRANCH_NAME:0:3}" != "PR-" ]]; then make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' fi From c0abf59983bed146dbd96284cecb5489d1346f2b Mon Sep 17 00:00:00 2001 From: Blyron <53337103+Blyron@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:01:30 +0100 Subject: [PATCH 098/105] Aaron/digital twins add local file (#7167) * Added timers to setup.sh for downloading and unzipping * Adding support for local XODRs * Added allowtorendering to generate tile commandlet and make sure it works with local files * Update Changelog * Updated OpenDrive To Map --- CHANGELOG.md | 4 +- LibCarla/source/carla/road/Map.cpp | 6 +- .../BP_OpenDriveToMap.uasset | Bin 768496 -> 770195 bytes .../Blueprints/BP_BuildingGenerator.uasset | Bin 1189706 -> 1140264 bytes .../MapPreview/W_MapPreview.uasset | Bin 235393 -> 232361 bytes .../UW_OnRoadMainWidget.uasset | Bin 432269 -> 589867 bytes .../CarlaTools/Private/OpenDriveToMap.cpp | 79 +++++++++++++++--- .../Source/CarlaTools/Public/OpenDriveToMap.h | 6 ++ 8 files changed, 81 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96d0e88b1..35994951e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ ## Latest Changes * Prevent from segfault on failing SignalReference identification when loading OpenDrive files - * Added vehicle doors to the recorder + * Added vehicle doors to the recorder * Added functions to get actor' components transform + * Added posibility to Digital Twins to work with local files (osm and xodr) + * Enable proper material merging for Building in Digital Twins * Added functions to get actor' bones transforms * Added functions to get actor' bones and components names * Added functions to get actor' sockets transforms diff --git a/LibCarla/source/carla/road/Map.cpp b/LibCarla/source/carla/road/Map.cpp index 70bedbeee..282452c66 100644 --- a/LibCarla/source/carla/road/Map.cpp +++ b/LibCarla/source/carla/road/Map.cpp @@ -1238,7 +1238,11 @@ namespace road { geom::Transform lanetransform = lane->ComputeTransform(s_current); geom::Transform treeTransform(treeposition, lanetransform.rotation); const carla::road::element::RoadInfoSpeed* roadinfo = lane->GetInfo(s_current); - transforms.push_back(std::make_pair(treeTransform,roadinfo->GetType())); + if(roadinfo){ + transforms.push_back(std::make_pair(treeTransform, roadinfo->GetType())); + }else{ + transforms.push_back(std::make_pair(treeTransform, "urban")); + } } s_current += distancebetweentrees; } diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/BP_OpenDriveToMap.uasset b/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/BP_OpenDriveToMap.uasset index b73e2caa59e43a52da5dd22258a5dc81414cfb10..94bee4e500d75168ea4e54ee8cdb7fd28929ac40 100644 GIT binary patch literal 770195 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 QERj@{>n)*u-=2Q_MFd;kCd literal 768496 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 z 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 z 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 s3O4A&VROV{1=^pcST)ERP!P8EYH!KV*WMlK=n! diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/Blueprints/BP_BuildingGenerator.uasset b/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/Blueprints/BP_BuildingGenerator.uasset index 165501747d24ed19cb3686878bf1eb8a95b32928..0e6e56b65057b791efddd4c75e403800f0bb5f33 100644 GIT binary patch delta 123403 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

IqR$T7mrYp6^V^kt^Ve1F^E`*UP7!K$|2&Ata z*%uxNaPOkhuBR0j>E9$m1k9+{jugnF=*v@*b)7uRqo61B=rQGMvFCxYE(XsdN2iX(_(hJ{_eHa-i@-y}o zwvMF;L>I_}03=>u{2c`u^FR$#tmTEoCL0tIn-oMVyf70prcdjB1;U>SGlYe~mfrSS zT12ePMwFhchy!aZsxYIyUPW26QZK#>Ma7Cjvrr0Va=uN#nwDC0S8c z@q=e-YgbMYU}{rh5h))12p9g@8a=XnV8A!agQJD%a$^N4Hy5rb(xiPwzP2}YaD~O8 zX3|2<)F6%koaB{SF$MifS_r0`p*F)`??W6cUqL(*EYdY@Xg zh_Iv*R7Y_&M9N@LRFXp5ZwN$~B&?)G!bscbZxjh5If~%VE?^l4lYON@`YJ1dx+@>Z~zKTV(TBXA6^SCS;W>F>(lzog{}{6RL}dFhH$H z%{V4obT?e~m=v-q=mJNU4sPgSW!xZ*gtgZytuG$A46`vHo(KGzDbdclB^5Pkq>Sti z9u`ePbj$%2hcho1`Pxoc|WFZf2_$!EZvs)t)|!|VHTPa&&GxgFdV|G0F@=RSVifY^jj^z zifOgQL7iQP^}g98Rxw*$aS&?N^{a^6F?4zW8*Qc3=VvA9t@yc#KEyJUsYwc94~Jcg zFJF(T=<}=D>OiWPPSo>jZ9;vqe{iLt{S%T1NyC7AY9Kbbx1lgTOzx*QVqN>Zlyyyd zVZhbcuQ9lX2~&EtCTvP)WWCXZHG82S!&l!_q|T70ejsp%SOC$dnFu1RIRjCvIm4oJ za}mVG<_rX#2HA1V7e9Ew!%S{>6+sRC zF_8W1J8w3B#wa7}rs&{V=}OhX^={~!^uea?Y|L?-96`QzXWCAhMypN_5iM!8+&weF zx!aS$Db$NmxKb~1d`9+SAlQb<-EY|Z7c_M2TNYnN>H_wt9|Ptu5eR_CF2ON5n9(UTj0_pTg!}9Oh8D~M zFR!TwiWqs8Zv#OI!3a4rh*gAxC88<}X2g{GS`Qm6))pAQ@({*rOd%+SGTiG7WzBXS zDw1&XP`)CaCwdO!^-u!ov=$~rD;95~zrVos z_VH2`?pQK&%rTMzcF!EC7!$yQ=XF-;%q#Vo95l)gA=7A2_Zb?wiDHbR3pir%7}g!B z5qM*aU+sls`PwN8x;-I8YsNtl67QvmE4Z+6nJdow<`LBSmoZXN;}!JQ0LFkJ5kgjs zXWBwOfgvG{<=A_I2um1$?5cUkAMuqVNaQ58#t>#bzx|@Ull(v+rkyY>t3rVM@yWnP z;HbnY0WCtGb3bVw!t7H;=mLwu4b|&cuy9%+4buCw^yE}H9Yf?dra`=B^T+9I3C}F% zqcaqjKyqQ>@17~L>gSm}0+dzv%@SA@7v*NoW>%GOv%b(gu|~x?tcJf}zM3NuOcsn8 zS6DGq&zr}_MGE7GdEbE{PIt{o=IQPq5{MXTAKOltOMj15s#a{Fg(~H!Qzz)xF~va9^5=47E`Pii=A7|7ZW@RrN)+RE#E83 zZL5bt9p+t!O$ru`?aDfaLfO_V^O}0S2z$VKv648BJvIpA2xiT>kuj@a@k$RS*KXwN z(t#5w&}EY-UsX1{hqg3Z1j)Kow{@&zB|+ns9&t=1rxZ08l4Qv4v%;Bn8tMXEjS_*hu#`_NIF)xrZI(MP}nPcq;_!k;&nalW$COfZlZZ_e`~OsUofc0%Q9PGolI;LO)A)`O%LQKPnW6|t zBP$1&jk!@GLW_^A0 zTJcfnA)OVGJ@YO0zMhbkwLkzN-gohOMHf!yU<5PG06x_{g;gZCLw{31U*6!;yp^6o$^H- zfI43lZDoT!N7Rhd;=VD1`r44>Jk zepWF!0LiNK@^Ehj9Gk=ee*q zROyN2gHSx!HW-mp*;1s;o1DtMg4TBPThGyt2v=z)mc{ zn&6t?1Sq)xdo;0t*xcCyN_PJwm^cb5&r{#*^1K7f^&-j=e1ObZh0vVOi}IveVI{kA zD;6$KiWSNHtSj0NEz8=!aDr`pN_%=JT1k(Igp}K3iYn>U?s0LllA*;I;rRy@lvZ3S z5g(+L$Af<*4@S}wdtxLd)Jj}hM~2R!B_t2wN%noZ3@ItnXfUG$}V=wc|XTqB{z zomgcP(jgWpdqoQ28B2^S5C=aKg+_geVJ|DTH=(SQ81dyqVtgy79O)qpy6ydr9(%u6 zuPA>1Ci$MGRyr{T($g+!j_A%BWnVrAaa~eMi_t5Yq7;z6tyR`XP2t>8dP9D;4w$lg z8!T6GI{&?uyOaR~UBaO=>9tmi&91d0cDu!HHM`6vofeVc4JM;iXUc-}@hoJEOX%w~;62Nbk6 zvwLo395=lzH6KY|3C+ zwASR%Bf7QKZUq^vI|S><-%Q11E6D!9VVCEYO%WuHc~o3V!cbJcB(Z-ozsPJ z&{$j=t5a>$s+~>)GU^!J$&HoYiiFkkp_mXbV%M!N6NrNWJN+hm6+^4gTS5`x_2!?L8Xps~F!OdMZi`C)O z>FrjH7R+NeJISeb%HrQV`c5! z)`?29tf*0s><$)#&SnLdIjj~vVy&6*;Q}kF%?7aU)=6O9Et8Z*DC@eAJIQ9%TdWW` ztp@EI&B&pow(DIQjm1D-PFDU!;N2NY-o8{;=V@MHD(I#G?;5~~TBA*)*CH>3*6ae= zby}m#=G0oug!@rhkgS}le3iNS-Dz~lOjfnVVFE`Rw0fHcdc&b{S+(FweAVhqq)vBb zVbXNEG7m|buFT=?KV4ZKY6R@=Fj!m;ozbobw_3FZn-;k(%yy^70S!P7&VXZbub#?q z;(Vlxn%7HNhYXylw0VcXC~{8LSwKUrw`;T}qswA*fLbP_MXRw>A=ao(h;ffzjOeY5 zau1vZ<0o2!PP!muI+t08(D-x=Y)(j#$zZqHoJKQQ+!r@g!{#XCsFXoz*o`KG*$Iia zLmL1Zw3gav(t>arvb?`CpL^_F7-?iter|WPMrXD<9MA+>G_ST>K?Ms&MQzfVjSh>; z>^_i{n!6tQHfUWnRm;#yCWqbbE?kJ4B8xVm35x}n$DI%*r%7!^ zY&^BY4(3){oldpMo%%Q=Nk)#(S4NWIAzbAmYV=31ak|iPBckl%0y@OeWp+562CGAB zbx(=rQo$`?BdA2D1LI321bW7xg}~SlmCs?ZYuqi1amy*cLI$-On?dJ*VswJ27Elz^ zkky8CBWj1cU<@~37Ol4+;g(K=@O>sHh5@sI)$9O2S;4&~lilbpEa$8;GIAiyIj`U8 zL6vXRI;Zu7aQ$Bb^(V~>oPdeeYI9=hSoq_L8KBxSL}8dsmpQKaiaGo zmJ8=UVvFc>m?xoPtq4A-$82G?nw&<=Mry4S0%Rjw6G9WobdGCJnkL|)!lyC<3c-ik z?MsTc4rOfq3%lhnpZ<-MOQJqSv=LNbDew|sbGuWW3 z^iI3l3YkS{MweP+&|6F{-MnI49yX zXw2>gqaM?M)}_-sz%Pg+iL7dB3+6Aa-sB)#D{{T)T2w<`M{)JYfk;lzaLe1GMuR4C zWx9+pPhX$9dq$g7@=OifAiK~?AR0m-=#hHHj93azqsa*C08tXuHj)%2z;gp$2QVz? z0)Ybi>$QlUV6$S#T{fFbYqzPPqfCPESqw&()s8F{R!mk-7)Cae1K^D|YGPS+PC@uE z2Uwk2BQnWhwukbyY791$L1V$htaBkwLuTQN1^_!%BU*?bh933J1jFKo3rR`2E6=Y>B%9m83yakpd zq|fXyP*YN;fi{HtQq%M!NVA8TH2SZQ1S(E#$kGO=)HR$|(jcdZO>4BP_0UJCt%WIQ zv#T}8?WeIhOg=KxsvN4_iQr1po4-^bv>Nc2OAV_ELJs>F{DKM9s%B}8j2eSiAXt3K z^F70I6K4|yGQU_J9WRrYt6l_okT5CRT?k%^+1NzqFpbvcGFq)Vo560E$^g63hFErH z(kmau+^lwBzHvF6HlrSD4`^E;iCUB12Ij%^=fm=K$x=0H{?!OhQQ4!oGSRTyFmt=K znEVm$!>)q?tcQZtxty>j@KWS(Dlv7*>h7p%&~nj18)T$UT8@fjSsuioqt^&SMY~vt z4fR6Hd3Rd1I%utJP&7k>VtZ|=UBkS3RrvC!_FP}Kk#0K92H~cQMUqR;nOU)l^06_g ziGA0P4*p@;&%?;$ZKSE5qqq22v42o3mO_i!vyA%|XB@dRM;`atdUYcMJzGyM9FR9A zn+#k#20G8UI%l3Hv{hf2n6Uie*p1D$k>W-!)&qLIk<*jpakJ-}s~B&UW&*iL1}=d(AO(X8!Cn93S`0ToV6$ zqy@d8m2b7!db!l!FKdq)T;tT@R!@codd7NDpDlY~2F3~rkXhSfwJ}5gxn3!LL%rtj z_rDo)bUWEt39}YEKSP|;2vVam7wz9CVaw)QWpR`oRnVOsz{vjmv7uap>vflu43E1q zZBgSLgiiZHS`$V9P>xn&1G8Oe-f zu9fT<>F7YBY6fnHgMr)X!031nP}rG@*$J^^W%@f=nLbV+HQxzxY|`?p7V^r;#q%vb zPH!yFsCgi$$ii_`_9Z+kzLV5-u@(`OfuSEw&NmDVVN}vLUDE3x>%WQW**7MBxqkf% zrBdc++eo1r+!)&Z8XUdFholV1tWuL@6JRby&1%Ac5+Z|cuL=6^0+a_W6GzXOlP_WW z=woHZ9LYxlJrnk$`^BSsNj5H+dl$N(@r(0W9ZSF57`m}!|KwdHJs#u1-sRp^tEw%$ zeB#a_xvNC?wv%0CPA%3gj7lp~ptb;`M6V8eR+l(+w9e%7wfk1>;;2R&&ipLXXx*rd z(V~rznDL-5yZszaOm*0xBk~S^%p*HNHrC-f^Vpnu5T0N8`{TNkH|`E;n{oB>E>gO# z-?(k5>*?5_y8XEwMLv z@Lj}^eG?Yma+7Bb7-2kNH_L0_(82yFq|CRJ13gP2_wK@vp!f}2Q^nsFoZcSJGv*Gc%|9cuEV8Jn)8cM57Z=VB1>x?LNnGX8^*=CGNONzH81 z8nEnD8}ue8OgW3%s&`o&T7*@{?hrZC9Aq+*7tImxrEMEXP(lk>&AZX2>S@j7nhD9r zeyrSUZse-r=XVp*g5k(qu#b=`ExAMgg(a^3MUZl>n3@qXz%ptMZ3QCiK?6f479BFX zuIb{pY41k0RIQ!Ahiq@f#Ttz+tx4_FxYStg>1{fT)q;hj6WNrppUyZ$=~ZU{40r@m|uqHD_YbCtiH*9ARIZ;izzBX7Li+-|Zp$S~K*~)hcW= ziYL^6_MvK9Mrmo3yk%{H{$8MeHfPekU|ZKR?)Widx9@GyWG}hamWwUo(7KRc8Vg>F z6FW9Wy1@qf&*XGsoo=$aNOU`{1b@+^E}7j9vO{4lY_#TT<%C%?>wh~pzre5gHtr>N z+c9KM?aaX=%MZ?kAGr01l_lkE#L9{W>kC&!*CmU7kT2UqmD89}-R$+6cg<%>+<4}; z^-jPvZe@9V?1a$%x_5=2r3%Sl;sQs7o?uTJh zUNy0W?I)ExG0~=6LJoC82Whc`S4rB^#P_+!4{STGRBHAn`-!5n$nd=vaJ|q@Vi(p< z_by^PTf3m00{~FC&=hPLRqpaGqtV=0B)bV8P=q_u@tb&})^ccBFq^)lYZoz1J%IUgDx`U@hnB11)zDEK zF#u>B0vhdyI;O39*~7WA-I`&4r*~|Ah{O#Lc~3cz8|}{v$vz3BgmFaDohb6pK(2V6 z!vMRX+lBaDHFKXY*Sz$c_yL{19(Gq41ksktjz8SjK3<$sy%IVE=pF%F?oOF)Z|&o@ z)hjoJR4gbTdW6`9cqIxt>(mfvI9l-BwV`QEU7h5)oC6nUgxIqjA$f;-`W1-0{@ApY zatgt%% z4z@HnA;JElTAc-V7qXD82e=3b+_I6}Tn6moo65<`x}7%MN~<+_xN2_7F%qB5Xw0nt zo#bUQ_fud_zB7uUC_S~aj^<)Y9S4ffi#DBfaEr0##t9|-;7}4 zezJ|h6iw@l{;6~2${AncrkQe`>Kv6`@i<8swjhld0PXgS&mt!vM9Xvd7{lN#hhPPSQ>Lf{<0R9)k zIwwrzPGtg?$yWp?pAls6@toev|2rlD@+m+ro%@w$`bKN**#{;lu0LoOdWyW5BtjlO znOo|Ctee6nzDzDaQs1)kQvmcdfWCjw_*Ut@OI@RtwkxSE^S3)qLZ>ouMU)Qy4)2Vq z*xo!%?oGw)!GDmDX`Bvh#;m=bx45yMb`jPt+Fwj*R93G-C(Eac)8nJ*z~VPx(WJAx zd)I7>tDArxL|Qsa7{39mP%3=!`6nIhagvjF!D;9kzMV_dgd zOMB*zOB{QC!|>f_NWv_vdpwblYLUycxWlIJ+o}LT|GaaP@5O_2v&AMO=Ag;5C~v4- z`a?F$>bRXJLt6)_?|wK->dv7%$#%8Fh|Mq^_QLcgvjMxcS{wrFtQzbd;`6x_blo~6h24zIm0qeh1=^Bzn%OWMw5+{p|S+$yALBZ5iW1>kHq`E?!_AY`2y zZoPpgO%nmu=g>^$bqAaEjhvCV+@8?kkTWCp9O+HC)3TSO%6!fwJ4dXGG5Y)mSu~%G zK8vw<_BiJtg8g%M0aF?DX3BR~BEgHWr`UpUC&=qXT%_z730;ichko-h)a+ot75TWB z^9max_fcUJoSCAQio|Zc6w@i6)RF(NP%ntqgr%mnxN|GX#$ULd9&D5r_GxzIC5%(`E zQ4@(1g_7TK!ezr3t3?>vH5j(b7`CB5{n>CsP{A6@-s>xm zv)zxm?C!P(Cu5l)Xx6cwC#(}8%w7iwR{){ciP-1^i!Rhy>fVt5MbY~8u8`l>aT~A` zICwp`4Xu~m5QwAbA|^0LC2j=Zs{lOQ@OVnB+u&NzdH=t;dv-fD@V@_^OsUJhztW*M)&gU=H5F}N!|Nr+1d=&AZ4ElXTY81pqGJYnjB;@3#THt+mEe%;0$Zuq|| zkR+)m9Dw_1mn?7v4vce&oxu4z?b6lx4f?K`UvqW&!PUl;u9ojQX}wd#x$-XHOpDe3 zC-#0^)};7-jlP{bt#5YpI+?Ib#2NSKf{EJArTv$U68dW(vL?aN(ho&sgQ$|{2AZw? zaomm)@!GocqNX1&`d5>JH^{}^B6eH$06SXD@VVmK)Rr>a)b-;=6wa?diyTaQMC_LD z9$4-%~ST2S6>F+&YTvO4 zhHFX_DrC+E{RiotCSnHV1ZDSsF-zX02cp~S(C-cHs6%L*Cfa7_syR+ohykj0D=CT46w{AS7xsofd%&KaGii55n$=#eU*6woL_V zYv5CyFEss4ghZzTe_b)d$B^i7hQY@@_$p-iY3vH;NXb>|=BFifrXE;YeEhkqZKw+(Z9AWYjNRe@b`PnspTpYSatg26`s! zQ13mD!Kd%1)@@&A<`Q|GWl;s)$a%1=ier3VLk z){po3HPWc$tw{Te0@Pj~_aC12WutwAZ7`Q*Qn^?6Na{t7`m3WD+p&)!sgpS++44I! z;DwEL!4mFui3ua!Ec?!!|MC+0dmjj9q-|{SVt=u?1CurzKljlt2=q+Yl#LF9FYe^S z*y;#Ufm>+FF)I#@EOM@cZC%vf``N308*`t0x{Ta)y|08?+50Esek{I0Ri@_Ji`y%_ zN)FC>pSZ6u;}|LKmaq~TFUBf;C(XtDtgHx%8%kZ2wS!TNveiO zttU>wK4F2FdFvDGCxm}YsKS;SxVjic_Fm_T$36gdM?bgz;Bsx>s56^|F(_bNBvJ5in3690i zJOszm@;Or97VLVay?w>4Cj-Ju+vYza*&kscU{SkpdhKxHI9sEKrv==|;8|p(?pQAB zPDK(QaWwG)-4G@@+T*hCl}7@^(c7Axzk247V}qLCo_eUpF7iAXT5S6)D>ye?*Qx!-^z> zaL=(KVINde;T?Z8${JbIW5SNx{nF#+np$Nn3;L;W28nvXdWIG215a;+-C^M#mtbDs zdkL+d`~(LHe?P@h978J{7gy+YIkdLt6}s^l-MGHu%x6>09_>mW=(XcX?7*gvN%q&^ zZTf0m-m8VvYfoz!pCVh9?|7%OkIA9e41cy_i+=-lqQy3Ds%+co%)ahU#Ft4M)=mj~ zOy<2|N*Be1uFzs!_r(>H;+vGZ+w;!$=>twZcubbQ^>k$->G>Czg8q1dq0{9;`M;SQ z*ZNzWa;EHGC=-`U@FZ!b#jG(JBG zzD(Ryrm3NJ*O!-{l9S)KHT>#`|9|d$)pFTYVv(s#0MbXMqOj;+|#rKD@WS6W=)L(;7R{69!e)_tJjdFHK z`1H*EHHWH*jJ>OpHeyZCQO@zJ-W9i3)vC%fq74=M7htad(Nl2SWLGYF0p*{ZD({|P z zmWQkKR2(~!kvUa#3D0IwVe3H%EH0JFNTn)oV3o>D zeh*VEO%@Ql!0&5o`_IP!KDkk3LH>4S(tGl@H^}zr4Aj#>}PJ4m-zc zmZ$u&dS9WJthAEkY5$)UKyn-8AKYFP?cjzJg5V~K2p7e zDj&&-XXI&&Dmt_n9-_-x29aekXlp4+i&5n(R9bktg}xI0V(>{pEF~jRgfxy(ML0eA zI%tuS_=jX$S?1Co!k;Hs2K_n9^AMj4Byi`GQZcHEWNUF%RgzL1xYBYWuCgp7R|!>F zQllem+kazJO424?t04*we4{l@xpWOoDyOEr2n#m@2nV z7igjXk1pITszY3_x==3+|~YxbNbUnO35aPG*W`Wo8Lx zMrMg?xn#IhrskHJnJJc)?fyS!7M{xmTfV>lOYd;cJ@c6}XU?2Cvt4{&{ixlsk2|h> z$>Mlx)hlhg{iwOPtQza$vdhKArDm#&%Z^5x3s^2|M`$jakai$Nri`lM)A7dAy%oO6 zS@_CVwYCj}DtM#bxS@nXBx`A0gkS?BDrZ?T&60-N0)%d2+_&Zd1m%tRGsOx${b7h*ovf z%uyp;=6?G}bsOc2mxaT2`bYicy0cxv6u0Ub!^e#pG1X;M7xusbNQ!#Bt?fLWJkv)T zlhY+NM0+GBBQ>Ccjg-dEC@9q_C%dO#Db7CPxRqdX9+*lTC{yBK8O|Y-jO-qzYdun? z#L+UGVx~3^24K&s6?onewO0a6T==IcusTxmRhe&X*~1p%iB% zY@Sj|#)zCEgN)(GUqty{st1VUZOK{LvuY_;0%w)9Z&*%R?|>3OI?7acDOHA8gUYf7 zb5@C%^qk_}&IVDLTBXz{PWv*PC8Zjao|Dz5w2X^oN?a<#xonc*-M6%i-zmRT1ACP= z3aK`*v{BM?a{HDx%JQ;h)|F+wY8DgSue6xg%9i=QG%F3-^e!!CXilL)%n$(bN|zZ7 z*0!>&*Gr2ToRiYusm&miN#K20GKh)Qp_F}zvot3q)z7V_9QtE(F82?ylgVmpIjN~t zb7~Fn%;`QL)H2`sI(a~lHY_J+K!}Z;HZiD^p6fA`kkLa+W133L44%8rlslbrOAJFY=a%7QNeL-wr6sd6$mb-I zrI99k`0vZ6Qr}2SSUO?4@ZTBfr5o?hT@l#@Jo^Iw{lEl@QlJjQNYZ%zJ9}7ZNvjm- zEYJR({|+2p8dRV_V}_HYCx<)R`8h1IhcqtfX5z%E0{3}=fDu$Id4#jrX@Ck#nWqSx zCuP&O8IVW8f2~vnAA+--4-dB`(vj110!NBrR9B3fp(9=Ss0!n+UY8UOMZ-nW%Zing zhoYmAQLN?UkE+dT)bn!9d3#iiowY_)v)C!>Pj$&jA5+UlWI;~am_TiKPS%(Zo;BY> zS)BaTN#5WjVBU{}*oL84H!8-d?wq25`U)3?(D;bZyn-k{6j?(#S%>1#8y2xfh?Gxn z@#>N%--qNxj}6hr<@6exs5{s$mXGsg8|S-O zbDE3`(zjnM;l_9bNI|ieN|>QJRmc14U9T7z^TD`pVE9dt=5vKUv~HuH?N^;8{FWI2 zx}-;Z=>+7|n&9cNQxtR=eXS&;PE|v}<1*j>E17?6LX5{Y$^1$&myZked&W@evIJyb zFOeF`=8mZ7>P_0JIwyYZ%+1+5(N_7!@dDPc6$hZdK-gy%dz$w%*h*U6}Cm9iYNS*hPUGjqmG_R;(O z;AB*$1uWIvSfZEQb7tl=nc}0r|D%&pnUIuzK%$@gpPZRF?o)mA7k`$F&QlxfFW#3g z%V&i8trR8r>bxjMyzKeK3CL+N%~xL@;VPYOMrh6}U<|D9WR&;?sp?TthzO5!0&*@* z_w?96?Z;1CTW5yfO4&Mk9FybVRL2rPj7J@v7jjwGzl7;@3@VjC&Bo8ZK?XpcLF`I7 z7=9k%1mw)0>8n3J+Q9f44EtFFqx&phebqV1I5s;dfYjdyxg?tEToH(0`001891v|K z2-L6^L0nv}Tik^GNRlTQMoFh@a*T^#a0w{X&j@JYCjd8Fm;lr?s^((}2is&ad?G*d)DU?OJC>0EwlxtB$%Q z6>PHJ0P>I^)l4O+&SnFMI*KHzrVf#MeDI0{bzUgUtg4zV0U_H=0M!o)us+WOPUY3kQDv+y zMJ51Qm6RMSC46_<1R#qNpq+HsKA)Qa6axtGhV0qri%kF@3CNMn>~PNnpu+)@@PX9f z{CyL^*Cb)%pC&*R33yjJZk)wk20v+ss;Uav7q{I^0BRlS(2KOi&rTl`paz%(_(Mvt z2b%yC5(p3=0hVwRfC38vR>`PYvw;af;fVm#q^Y+zHvxhqKv^=Rj|mVg0sCcNygk4K zs4W4iiWx&pfDls^-%T|ELM7mH*;!e$On^EPp!}g?R}&!MO(`OkpLqoG_M>G2_VqZvbtGsl>;JujUfB(azHAuC`mc*mjfax zMoB>jB{5;56n^e}Vge|eOp-d- zubKeL9&;pM#&r`w*+NP9;id_o?4Tr!xMKpSX;VqK^n(eYrcEUw<-P^Z7{5 z%7{2?k_j+c0tU*u56>_G#z??6S$E((6W|dE7)%z!&#{Fjz*sOz2L-76lnF4-1X#4j z1Q;&?6Qq)tHktsBO28$lWS3V=0JUOjDJ4W~GXbVZ32MzXHs1u8DgnwLPVX`S$S0_o zTV-FQy=wxfHP<|;r0ZT2KsicP*;z{tm;h=~Hc7T(-4Q1sXXtTHk5f{#=f}E1&kbvD1 z@Xjq0K&|sWlkJ{#*91`OJk`A&el`KrI#2c9(%(%0wa!yx(AULN#Ar20gQSuwXf?8# z0JSARb=Vk^ELrOB|r_eNxmjP9TT92zX?!R0%pl7KCEd1gh_y!yIY2s z0O1m#{NPNO2|$v`&6Ow3jWhuwBtW&|ezXZtPXd$s%Eb3ZUWF5kI@dky-a{uQx)0$On`K&|?eyAS%t1n4OxC}#~RHUWA`fLbR! z`=bfaTLLyqr~UI+6QGX-s2IJ`r9$bMrmqC3zVNr30R1FDO=hRvO@RIqpoV>#w+TS@ zp~#{(Kk-#efI$+VV$&=BCct0`P;nuprU@`a0+gXX2{r-JBtT6A&BIK9bO})N<;h4B zV3-69le3*)tO+n&0+c_@OfUgPNPud^do4|XktRT^b`n6l0NN!P_cM=5*Z-hXIUu!$ zA16T#yGu~@gQa%?%3v?_Gy#-^xl)3yzX_n$a6_a$77jK6s33Lw1S#RtFcUz{INciFD0nd$-fPo(b<%}!x@mMA^JTsgb0mM6K*e#Eepw&~#0jXAeENB1UW|RXW z0i=hA9A!tc$^ogRit_R^OG-eYexwin$EB#?-gdbOpiHh5-oL^GP|7L^b#qDp;>5{V z%|NN_W@Z4$bZR_^Q0q(UNHgGY^0Rjbi)KtVOrUt z(RUJn(Z-{X(I?dQ>ixSCgq!WKUvN@^1Vb z_{{`RP824Mcjr$NKn)9ZoLt4?B~QG@`R4p}(#P)zs!?6wkk!Q7OMyHC=%9;$_#Zdq zK?!W;_7I?|R!Mx|DS-peh?~cw25HaGpu&&c#{eRe5JkN;Q+I)5%GfNXUP8LG#XCvF;N08v8-L<0C^A*(ww(Ey@BXq5CTbv=I0 zOfrC|8wjM_!X_nsG}Qp2ZZJx^AtjxfQ4UBs{{snnXLboF)X%82(x+fv2|$c}BS=-1 zzn~nDQu<3-6+y0xN|MrP`7#NrelgVVxWUpDq?E-^nE*JmUu0A-Y?N5OODfRrxHrLu?Cl>?$YV|7|?IUv=UN@=eb z%K@2N7VxqJEx#;`r}R-DYlOdQ0;p;fpxZVDK&1b{5a}theT42%1=MZ#V56wp%DT;{uQIgudZvfG-DG$_szX3$U#t2f? zbvRrC3iUGrzLNcwezXJ-#ODelNJ(jX!U@V5_p`IfLrys}N=loXJoHm1C}-dU9}gvV z#yMvO>+GsIb5>q-=9I`)O95r2tyi5OHqOUT{I%;c$NlS2zmE+D?n3T?pMy6|0JUI? zlK`*pOaSr*>MkXr)g2Q+t>~15r|y~n6#Yqp0u=sW0#M{P0)F_>1W;>2C85rJ6F{vA z6`=pGCV)EoR)8meHv!b5Q33Y;X#%K4qXK;YzywgeuK=MIZ?S4oeW6yB%98!8CV)B% zR}x;dn*i#Q1_k)k)dZ+!vZSkr3E(dQN{6NuOaOJ7uBv$4+XPUj=?bvBq6wf*(^VDU zRWll><^iU+MBjeFeH#di>9k z!~2&8CV*MOlvoo$xwWcdZ=4CBrU}&=w*&?FI*7SfLUd9^n>BXk@DK2)on{4=HZg!G zwv=a#)6L2ODM?C^n#mH>`RCHcQ2L~{G69r?93t?uu8j#`j+PDDn*b_WDjkM(Gyzn! zR60D{*#uD0QUNY^H37`gvR;Y_V2+kUdYAwzTB<5m_A&v?(egqc6TloTz51H~=4jb! zpb4PdN|}1aGCV)Ad`ev8_Dx9h+I!rPF%;9wQ6eoafuZ(c23~+dwGpF2e>NC>> z2*MyR&dhCQn*hNQpgLjtToa(SNy54LCP0Wug6BdLAk-uwW3dTP$0Xs!B_=>!2~c*h zJz)ZbnE z#RP~mRpI`c3DC#{X#Tnh5HA7BP?_6JfCQ6-J^3bpx*1gx?!0LNsEbe4%%oi=fV%ip zfJX~VfMzBga(9~m=7q}XJtly<0994g+-m};3s40}-Dd)*3s41Ee82=~X;Sj-Lnc5g z6X50tCO~TwpvF-Xpp675Q>Pp^0n~a-#i-{`m;mPW*q=ov0PRGLE4rA|65#%|I87;U zjWXvG0b=h~(!}{;kzqr&n%o#aAAD9GO0B6BYS2XkihWxZi>f!IfViBrP;phn7`(uUrH#=4%NprHEnFgp+cw@d@8vKltGrNqip47sdx5DK_VH?S(J zF`^3GoMFgi)q_#sv)N8o5Sty0j{0SuWYw#!g|lx76}-^NYOH%bW-Rk&ZItP~)X1tH z0@k8sM%E%?3+-@wRJW1t#_ogvdZFy8~dVw)l?RQk}Cwq*!YO|wq zJMJ^&vh(%Oxc3ejSd~?@Q;oA6G32t>B2l2rG0FNi5>7qyBl%V@S_@*6>!ULde{5u( zCsytmBdc{3Sj#^*vR)(B(2GV^r3PSC|I)~sO{`|$7+GHu>)dT83x6$o&-oV4-i?ON zalaT?C5@aVC$MUN8gtdMU*)dSD~W)J7KWGn`RGMCVYs^+a@oLGRCdG5z$*C*(gHaL z9jYvHdGxH>P^;n5m<|~5GsnLY|C8jLRL#o9HH2|@)-hneZipy&&cF#fWjNrcf6rw( zJQ5E+!GFy~;twPZ1=!nh5OKV&Q>Yt7Ju2#8D{>r(UO#{&x2EX%qsFq|b~I!g8fn$E z5v-t*HpBk|!Xo`Ka3!PyB%1psAWcM~d&DCwF;R=IN|#*qkgg%oA0*Q? z(Hk1m4moPG4T+kkKV6tiN13{KHpX)!p0r~-!44*BA$7jO>vberC{mRkc+SC-R$^Zx z-9Y-Lz@xF2sMWjz`d8$Ai|2McZ{oQIPlohaL0Xa)r^Q|c?`^!_L3*E_c;AaB&C-Q< zp22e;o}b`(0MFa(<`GBq*t2-eLdpZ{T_pNr{Q^8!Anix`6z^y7T!{1m(mA|8g>($` zc|4y%`V901Jadp1gZ=`~XOSKQeG$(kcwS-)k2(T_PvMo89JK18?aJqP(w5;Cp5GxA zv;Ba1y#;b1(k`T>8k=>@QJ39ms(ET}vfrC(fmPlC-ydlQ5^ZwvaPel7a@=a<9fL{B<6CVmhSVQ57Dg=esQr#wov4eue6rol+^L-8a` z1}kc&1!x)URx_=Q)`dkk*CO#4)LaXzLMqaFmA2Ympx;D#hq2~bNETH~PEX>bG#n_8KA@msLHI-@;<@2{8ffB?s}pZJp5*$( zqpdCRJn=qJ@@O{;UKVFgkj$nA;M3qytH@23AQj`CgpliyP}-}~`;&NI1)8wrTI7M` zN|Z-q5G|DfxsUKJlom;-^c#8Bg*gKC7ev*@b+a zGRXfUP&x5NNZv?1X~rN0i6&ei-uogEhMGGHi7@oB)2m1{mAr;TWkw@WnP9vJA&tSi zl^lc!${+w0BJd-US6hO|;+>SCCt)dHVaE}VMYqxX22d8gQkIVAqm%`n8mBaU(UeB- z?}JZO(U_)p8sA6pqNOz<+hQ1MJ&o9Z6+a+cq4Bzc$wf4W(pEjK~KU_ z-c%%-Dv3`t@hSh9tcv&)LWoac zPe|Tb@ID4jYAmD4l7QpDd=6?*Fq}Ll7m=evWd*QgXY(c z&{TR2(mJF`fRH45r#yz|Y9!(jO}x*5p?nhc9P!xr4q7C4CThtXqy|W&Ifd6Nq>Ka2~lf@kqd{l1Hw4 z6g0UEVYf>DHax$Ryw@ae9k9fs@{~{YQ2Em|7^ol#AT23_G=2$*z;8(2Vt^k(BHtwJ zcFF%1yqieG%ac4>nie2Y`Ftc=YJP_25Ikw=N&Fp1RM$&vXD6*P?=2d(?;w$3cTzUH z&`Arh5o#Cv9V8!Mv`U~A1BK4F35Dz}QYckQ@1yZf%8(SQjHD8u0sxH(;*-Ke6CZanXh}uOE7I*S&&uwCfpLy)!(#w#8>kQoC1LyV%m$B!_F^Q;Bgdn>pYgnlM1zzZ zldN(KiMARv{z-F+$>dWAL0z>#48P>A=u9e2UA`QsSR^V*(Tw;{;Q0{}=~pCqH0~() zz+pM|q~xyxZ#WWRPZ@ZV!E1;_+MbsDdwBkc1Z}hUIG{pgN2-+eF~y+wBat$nNd6S? zsTm~bQ^`|~un2jNArYQjoZOvUTy^kSiGK;aQAi}8>inFVL6y?DA|WwIB;*_tR%s7j z!29o@iFe+_BSkJCQTZr5uONMa^rnYrc=S$H zUopIsDAN5Z@mOGY&94e++7GY&k*JnyNE29>?r`$<=Ogly?euwdfShuM^3C z1KhDdJ&q^IqM=Fr_wl6BatDd{)I-Flo*M}sc?a>y$tSXGh~t&g)G`y<$NqOXi-^)DGmnM&i%p;ZS8=0yFj3U%a;HEy9>Uh%oo9sbP?M%tqkI<12@)f(* zOKV!?Z6K&$>*1M!=TxL?EUq^;-(MA^_15-iS|JPQs}*YRu?u~*<5h|P9Ee1U&~pIN zH*8No?MZD{L5KcYvPFA~Egh&uYr9y%KycqGXfp_HsPH9#2a(#L;C^;?Fq(IQ`3=E> zgzWMPxbu*1vJOMEgB7UT$pvUCxy}5BY9anR!Ls1>H9SY*N%S_*J6W%xT4FoWCl9aN zk@Ar!o1Vm@JTi+vQhm_WU>cQVA{wb`2<>ErL$Tnch_ei7J`yeFl&{fA%0i@JNHh<< zg`(7NWWxv~(&|GzN8m{wMEx}Z&xuG!L03Xb0R1SE9f^8}RPaI~HE0|{#VoGxZZI2w zN$nv0-^KeLq{B$`PV{?7#HV+nQ;>*HW!}e=Oig*TeeQs#l2wTJXuP+T*nN1$NbG(M zA&?4g0Fw$Iz_THqsxb8-<anR)cB%F3L)A6i}C*@J1&y6=Ck>HQ&`kQFWSj?sX6+pLegW^Ffu`w<3Veb0#dwmU z^iFGt$M94FFX4R&-WMQIJ~=Hdq{xw}VHA`oNKqaSws;<(DbNan#w+zJ^>r+s1iA*A zBE=NYHl(jW*GIaJM5b0(R!@w|a2bpi2+CjK`_qzLhdCjLO`e_~RFH$iVg z+Acv9D(IcGRy;BxnUYL;NaCpbs2iz2m33&*wFT(__#~TR487lxWylZ6AGDLKXt?I* z_C4P5KbL!SC>p^3nNsF8LJPCMJVJB1wzHt=2yL{bW{-1!JkWuo|7t@odOio^aL$@J zS_k(2G|jc3!f5T%Ud@Z`YpVO(y1Asfw0pabrH_^MnXmb>e#f)}?DBNYm3f3(>a)!e zmIldGSu8!+5~yn~AF%vrOO$tK2%3f}GP%fUY(u0H*b$YK{BRIlc8jLTvR z8(XSt$Jxe@v^wm;ddoWyNeR+*25-qhC7(04lY9?n}|7FxtIbxTx8sx-?uNT&WN3p^=qb2%>%8Bbw!_H)y{Je*k3=9W&KnM_=4p- zEKxOkLAu!;733mY@TV3PSiXxX&?Q4{WxY$GE*nto(HL@B>g5@*rc?7P&PMr{=TOw} ztL1wqRV4gPRr#e5#=Z03xSA?=O_U4Fx41^OgNkGDAGstcTE5qjLwqINvUF!X9Ddzd z3GY6{!iR&ucD5vy|cKYW?_Hbc$xa+Vv z5teYRnC1VWMX^&6me$%`LAR<0`uh?KxwD=1EcLV>M5ae1GVh7Zyflj!TNr5x(tZ?- z!VCn5qDYIE_LG6(Q6G$-Mez>xQT#q@d0*?pF4wno*M3=}TcX*JC`(K2S5byy5IY`a zsjB@Z81r1g@NQtSvsNuFbs4=n`eDx3T>ck=sj6s}HUlM^ zM_Za`f3X-hOO!_k8BR5q2Q*(NTU<2ueYB++%We&^-gyu*D8}NeS=h?fmO8BXJ22MA zSSqoDZ7dDg#TZL#7S|TYj0(`FTdXBPvk4@Ri92E~)ik>-8f&SgIavN?OCOfk&r+Qw zPlPUu8$uUX7Bd44zTFTFb`$7qi|)>b#9`8QH`M%coTZZHAsES*EuQRV9ISn<0~EOI z4h8BoviN8fME>PZEUwj)0(So5Y(y0rRS;;nc12SVE+LN1PX`xjYNWF;#m);z;cnwy5 zZ#1#sdlZ&A+!D(wHU+Mx!0|qr*A$ki1@Hu1j^mRU?`9U9{;wI1W-MujW&{Z=MIv^u znWcdi%mt6#W{F{GS2Z8@bPH6U*W6NHt4+`-=GFpU86t{hEJG`1wSZHHa*;<{Kx7?Z zrKDugby?~NRDC1aGEfT>y*a5R_~D{FR$Q*^G8|Ql5De;^3cdLku4l$iX(XlC@JCo-{vvWjuVfnK`cS;4_Rak#F(cMV3C>GWOuG3wpwzdcO zDT43l34W^Rgjqeo?;-d%h~HE22lRrP3&%j4!d{ln>x7snG4e~Br*kq`@->bgy~7#!zvGh zz{#9kOym>+%X(9*WTV+-DzY-PY2*tT+H`h>9y4h07icp@bx9*p-7HazkNcNLV%*Ob zM*e*yWX|E@$B(kK)aN25r_RTi!b$!j)@>{z%sif3FdD%5LW;K^#&Pr*OHVC}>>kZ_ zj6ob;ATrZNW5Ql2e6YtO5V;5t5cik}Qu8`v&KNKb!F7o+|KV}S zd|Zfw;oMpLcuT0hRLSANFK+@=dqNm})T6*JGw62lQRudubnBr#DfrGpPtj1^!tO0l z9<*g5im#Bcr!aZ=Wgre@3kDD7gEA1zSIP=#3SO6i32GI~&#*Mto)JTPP$uG1j%fGc zOh|mTM4~H;n}iNs%|2di31JzNEWY}hQg-HzVPu&M?KyJ03~eoWZieIWkVn zK*m*~n$HB)<4I6&5VfDEnzKN~J_YJ&qBarrCs7rj1~p+esD(sbB`vI+|@AH?QR7cM|--;{%CbLRq#)QZo7$0zyVg($o5 zS(F{S5M{ro41R2LZXwDJTaApkMaVd{8X4;r!DIG{$We1KdaqDK+NX)$M;(`_?HBWC z{9|Ap5ZNyieNgbLECGE;&`XFuEHFP2{ecK3qaFwSAvs1g`;_P-0@H3O=%b?SE~1Z# zVN&M_(8mRTHPIglr~3T~%V-?P^J#3=GVnhZ{QJu+v$Z0@-?SX&2+l<_y`MxgR}qy( zl(rF6F;SB?!feBy0`4mDik?D8d@81uR!>9fXF|IjM4uG_BX|Yq&t=U-pA%zN%LaX3 zv~m*B7lbjd68(kX_gD$~qM-K^eM!iPT?P6wwIGV+u7VC%L|ql10spF)>K79IrO@Yl zqOS=#!*W1>B`kD`=<9;t>RHfV6F-*id=?S#hTsRU2LBrxPO&U!HTXA$d~FT*-}1=| zi@W~XEun%31N%E+TpkLJu0bfcEqZ4UW!@3xBcB6ZENrn3w0>8OaPL15NiRN+)yel_ zHoCqR&>w_Mgi^%5=PiA)UBNP@3pOc;0gzA@Psg9Gm z5SDrvop3xK>yJ=Tr{4|~2|R>OT?z{O2(I#dqQgXuW8MTEF3@L*ju0(xw-YU|C-4P3 z!H*Oz3VRE5ebFI|=qMI+h^)2?bORx02GP+%&h=f86C*JF-UdHbl>LzCh5{2`08E^q zUnaT{OaB?2@Ba=uKVDdA={vwD2+U9K0Fx-_QM*Co&t>#zc6K))Ny5M#-UZ!6R8>H9 zQ-Wicum^NAcBR*e_C8^4Y4v#V;he`!F1}< z4D1RP9J7p~4FMU6hrAg}5CZ}hX+GY)a2_$0pZ?Pg#R%5&IF?fTFDgYZABUo&SkOn1 zGn$N(p^d=^&(IzzKxTrN1?|>h>AT2dZ`$FS@U65?09C2 z1GcF17?@9pQ84K|sc;7>U{&hQw)tY~bC2?uizaruVA+5@2A_ufzJSQ5M9(hy0=^o1 zS9Srr_yq>^CVKV0h)FG*yfKUox`<`mN}()2At}CyZQ?2s`?_6%v}Z&nKNZ_^3DxGX zlb0-=Sg(5!g%h{x>>yEDm(dSv2#Zs)%P7Z0IX*h#ub{u5;|85`1$k>}$VIbTL_cpZ z02V5bv71*hZuOr@Q94J9{}P}VgfKo=ZT=E&wq7tWmDI&H#OE4@LN1wOGqxc-w)gr9 z#Wopq*#DKKDr@r#Mz!ra#`n%&P(kqvs9?r*AYWoWKZ?^4R~GfPrK9#TO{}qO%hwn{ zuLy%yzJZ~#g+#(hZ$O6r8>C$zY6?+ZzJcSuCYn?DjpY?>o9O4&H&MasB?`MU+qdw( zH%dIGhPGW4LI_^YZd|q0VypfjekZ-V2@h!^+*5*&t=S^o|`@h4k^-VE{ zMcqb4I|aR-=(h~*Pq}09anL=S=CZ3ayQ=m!$qx|s%HF$SlWxV>P8X1*417(5fY3wR zE#wZn3%TzK&pbu+9(M9)OE8Q39$oyN@W^5}i!aOl9w#&*x{hxA0n}omvVK6r3k3-0 zY16T<;hnYk9t7c@7G+>6n^qEe}e~oDvZ1NH^}}>7}xeYeD{D43jaF*?(H(dR`-U8brZs$l%r|l76zOEzsMrkKs#4cF% z8rUfDHT881O5PMA>7tf(`xD(UMhD_s!A0|3*$!Q=g^klmT_1uy6Kq+`4>FT3JE9$WC2W?sbRHHn z9J(*IP3ZNgipGmZvj0!yr>xkaBfR_R4cz+Tvq@ST+~@vFZ*+$C3%%Lstr6Q>4c=Mk zs)w?Q{^(YI99PjzuZGPMuQJ6=ua12Zr?Hd@$3BVEeA(3@4BM=GZqVm1S`YcNV0XPQ zc1%vhmg6wo9(Uc7_D;cv5J&F2qxBkF8KBp}y8p^_EavBV=rve&0IDzaKx1{DNwlY< zA^v_ybFm6ev?p?Ly@R4WS8wDplzm(S%c(7%dTZ>QHbx=N`&U2(u7X}hv>VF|hgI%Z z00x^TqQ`iF_7L=0qCExO!5ef1K^GA1CFn38y|wP`Vq;f+vIN>1K_wrN@jfzeUBiV& zRRmp$=xCN(5fxWM0(YZ=`47O5tYU;r( zvNAlPny6x0WmMrW=<7sR7jz$A1h0i5upq*?JNwXAZ^`!4YZk2|601O&ngaQ96_lza z=qgn~2Qr@qdMmcJs{X7NB&;^X5BOlA>OnvFCT?WN<`m>uR5jgI3t=sTV8#*n3v4|U zN-wCUx6Nq*3vT(*g1Dj zAZ(b#u8>#V3Pe0;A{2wId}vD*q<5ez7HZk9AhZnED`ZM+ecTbJCn6%#6$|I_^OmN; zxIEM2&~<#*KPMQ&4;L=n<#CbgZ5;8M3$9-%hg+0qWEB4RvXQ0 zD{OJDHf+((P&gn2h1(k#qlnSLAT2KhgRi4x&?clfM6Zeq8m<8E7j%OsOAggNvGw8> zpB0K)x(NR&3e`umq$Iro8&L-q!=8&2=jG1SLHFUdMzxXo*VVnS`{I5%wk~X)Ds1ft zLrGlOkTGY3!I-$RX{;wPEK(M+0TBoy_nIo7&ke^A=+O+XJXBYRK-csUb#QAD92Ysf z4>w0ZZaQ<#!x_NPo-3fF@t3=qIUkpK=9^l_pG3A$;0(1V3^ewe$hJ|g81!QcyB zElO{I9a~J4o}po*Mh|S%8tA#$sO2}n+i)^jD_q*}R^w#DmnC1tVaS?g{BLS>CzY;GlPKVuqlJJqS@Fal*M%pX;ze^*T<%X7mH|u zVsnTe#nv`~Gt3qI8^oU{>K)J&WpRnaJ*%nS2%9iY`!~}Y8aI zbu;X`c;~Nc4grfrC2lQH$z!5WzZNL8M9?1+{kWhLlR;yXMeW)`^b>;iYYBRppqCQ8 zT+sK4eo|DP(h!yZ9;#Pmxvh0OJJ<>?^pt@4w+8HKp*#29Wv$`8D@5iQ%FHG@nzd^K zeOC(p&Nkq$5=N}k7W`)fKc_ADIfB;PfqqudQ$Xvh5e)Z@!tk`Uhq>0sD%@x%Miou$iqh%jj>dR+7W6_D6-pNAU#6 z+_%Fz1j~m6cGAsJg=HdHp7wGPx1vEUlo);f$0=*u0Covv$Ce4^ttV2%si>DZiYroN86u1W_LG9y?wci)U-)9(MiUhTQ(8p zkAI?@%CC-gxU)HrTHSfC8VX=aO|NgIu5~i&733Yads^6qaduC3Vk;(_>`vB?={&Oo zmPuKitxtho;A`7lkk`dp%f_laVht|{oNs&Ef}T!dKI8NVPVCFK&f!E%lr50m+GZcf z@;-${_djh-XUFG5(K);99a%=0wFN60Z=KA%>pJi~(l_=5R-B39nRnLui5>&R@@HEk z*oX<%xll8PE$FESvZP5U9`Jz;E`A0bPJFm%2+KNSg-d>A9nG$;L5HSHvQ}sN-?7i; zh?o>04n|umvB1x4U0Kn7+fcZ6g9El{thlqS1xu-9L#?wZf0MNuJ2%@JZi~lv!0{}7 zuyqIPwg`2uy{A`axyKRL;#vM@SO^s+V<0^^Z5_x`I@u0j;j=N;5y9@yx7K4RYps1* zn}v>Az^0~H{aDswM>_LZ2yZyC+wRJ;CtK?xE3=Oy5(nw1_Rr_6uHNVhd_&#@i6~^R zv`u2k$<`p=N$DL?XZGVzFE`VMk5MzMwXw?D_l|uI&(2?Ak1GgVYU`}w6$ja8&=*9+ z{Kf%s%x8rjh&oq}gqT3h(UHyZhr6#G%$*Yh;uG6`?6nt6vqsW6_*3>QHf*G|7AxLv zy~Lu&BiL+8MHj-Z)tK8eh%4EXtbMVV%b)Cs<6Xf)TBFr5Fv8L`FoFc!eakKZMdPfW zp+w8atdVTqdZ!4VX4XKK@u>BK63tosCMDqCC|-z#v#mZ0cnO8l_UXL~vgYe;$qtRy zRJKR3>sypC^u|(aATr|D+_tB&3`b+g)DHEwE^p~9k$8!bZlTLt_YiHv+;{E@a2--wwV5X8VU&BhS+45b)WIjMA4T0FpG-q%pJ=YiG zuV|v4&eDe3MzX7m^m=UPVe5QUlF06Q+b^=LRrW_%;Szg&h}qZC5m6AmSN}r8U&}k{ zu`@@l_2~V)#{TSK_hQ>(`M8X!VV%deegw%~x;W|;AP!X3g#A}7)x!%OT*V0mq;2SH z+rl1vV{gwgzPD$xjG3r=>nTX&0JiHBYF*jBVg;X>J291QigkoTfUG=p7p8{<3 zX6qfc<1%I&u7PTvUn7SXi;T6`VtFrHdp^{WxJ%9Rx8ZC!&^C^IXt)?pNd=h9l0>g- zNd+tC;)Oh&$1v|})&&>`rNY-IvK-5tU>5@sa7>9Aa9kP+{4M`Y%zg=&mz<%|`zL#5 zSqJxCU`<6+)Ih4ret*;M&Mu6%P6Zc(Elvz27Jmy%tD-8lYHY+UI91-0j{a<6PrVlN z-esT8GJXH^aJx6+N!6VGrUFStq?^4=;%BZ^OA#EX%y2zih~B{sX#& z=dnFMSltWO&b7tBq(}7nFhVSkSlRiuujxgY4R7zV_ea|ruvI^zISAN&S=3B>`+~eN zwpyCVxp&_>mqpIBcN9!$lo@LCTb%|QB>rLT$qLV4?ViB$d)R^tqMrZ_@i=n$LXT&8 z4Q#I&@nbDEY*F{=_=e!`3$Z6x0(3&R)h`GPw++`=A=$9iBu6OA=w)rja#OAK*(ist zo?*$eps6jA6}j5NS>R}_8)Ktvwf*BrneAR_@WdWIhgCx3^S zxW(V*#g1Rm>+*)guVI7i*X+0h#H|mZq1sOi}x@5$=zV=8Kksz%jwZ3xL7K?}#^MtieStVg; zOth`wuDcVZHP8sizQ|I3wH|{^XUB9%f@&=K`hGB8-THnq(ct1A?~vc^`0rN!E+ zv-Qm(5u4B!5v&HTit?e3&IVX(bg7T zkdo-YWS*OXteoGFmD|=tUM@+F2p3aaeFKRA^e!u!?;kkQ8LwKC-%(TGWu}^?hxx^61WN z{RQ=$=+X%TP)@Cy+iR>_2G$I}4m2>alqNsqUisu;G>QkOhdEF2P^c`&bV?mt3$5UC zx~-YUo?eM4(QY_2uNiKesre_l#9*gWA1Mw824dfXZ9is-eIwvkw@2G3lwj|ffYnkl z2CJTg@tj`Y77{?Pzb)MA8m0t8QP4x{+v@yn!PLpN=EgGY_!O)d#?-gf_}gM!+4rZ} zO6to_wEJT78pBnEA!y=a(b?Ewo*HlM{STAS>nOmZa>ZFTTHYqm43LABP0MszZNFvP zz!#A$cQ*Rxf4hW~v(eLYQPaPl9)utNG!KQ$t72LaB*HFy?UZpH=aX^=j40k(&|+7@ z_XpZS(ZYYTKTylMk+ zzJiNTSkCgZ_ zx^S_c&$#@+jTE;{TRJ!|oaQf^?PZG3YlNG}zliF+U$wT-*ojwcM~vHb;p`2WkKMZK zZ~eT_tHO`|FMf{URC2&mI#QH)I{RsBiH=LRfy@|=rES5G?Y8eMY~G8Q7^dxj0;WYc ztSOJPY&(T||C{5itO$g~Nul_~1LXa;Z2uG>UlW$EQvkIdRJE@7TiY(%{oieitsza9 z7x%zcYEI`7Ik^zR%oBFeJ~J%tpa|S_kkUru2huAi;4F?#rWY*K=iuKA#JGvFzT7+{>!#FECizQc9Wvn2ae4Q1|b5tvM@TBe0 z(pp0iITL1GfzruGZ8)6b+aY<#Ns4k49KG?6CU6RizWMjUPJQ-!MR zu73aTgz@<<>{lfWHl{OG?E0qC8Q3AS38Vk|cP12$d{(m~MB+OS4V`yok?zNG4`Ut( zbh8WHS;hiH;Np{ZI+{fQjbMJBb~^YdS#ugD$g0fE%g(p#|Gb;#!zjZWweyg}_E)sO z!m#)M2H#si#@`KIKHdVVKtmqFu|R$X%JU@<0^19SPMCqVVZiLHX74Tb5dZb`6AN0t zX-mXzFDMp=#Q!gwHoljWDh&!i;0&e;sioj5?e{f6@Po=={!5>5J2rt|Ml^nYL*IMYWu3xi97OcB~BM@E~dxi^Ts=?pA!-W4Ywea&#(VF5G z2u~TQwl&-hi?hPvq_yG-g(x-Dt3WAC;%zXz#Zsmy{+>tTUW(_ zrW}&G)%r5a^Rll24hJvGaXHzl8>(?eP<}pjL`-Hox}%e5{f)&tz9V}K!yq`-PR9)~ z{`TO4jHS3%WyQYm%T7H>*D(9gg238#FP(kZ%g~pYk^=1=H5+t9r5oL>!7R7B{atj( z-Ww2UDAuM=xy9lzYD$Ws9dQip2s0EUUO|2(>kJK_F5nUlBPg5&^usO;ua&5_6{tN9 zjfhFYM^_}_q>c$KF9C;a8CC3!7*4g{Dj3kv-b^g?eK_)7Gqn++rJRO z!n>`#7Se?Wk8{(bI6Bl(eR&J&=EV zk=Y){XnAcNmDq#{2tV0_b$o^~2*4yr%c5W`KDgB zHE=n)u4y^V@kXgtV~@#pu@)~`HGV?3t_|4L0ajcB(H(056>U^M-YWO$io zx1Be91(Mvs?u!oj+alM#$N6&dOvgK{XucJnbJN!&x$SU%UvlroHcf?UW%oAtmb8aG z2u5p&c(frEM#Og0mldVrGdRpL-iW`5aBsm0<@HfoFMEr~hpJQ3E_Kqqr+jP69xAR!DG5wQ$?1dTjrZ6mR1bqhDyTL8+Q58N%;6t6iwVaL% z{Pkz;&Dg?$FbZK4WsULjWQTZ-+1&^`zKQx!Z^QzB(>t={b+o9uuGe;k;;g|qUu(=3 zbhKB2=vexgDg*=;yUQ@W+G_W`RTO-ysa8_p&#~=S%pPJ)SiL;c#lzkM>}`U}1lz z!C0}It!Pb4TROx2Oi$)L%-#USDW1|qma5}#rEq%F7=Kn|jVQQ$R>yP@@Ce7?LnS^{ z)?=6ueq-6A(18@HS4Ughi_bywyl|j?Vw}AOPM`TGjD{7HSY|6*Q#N2cmOXPeV3I5v zkMaIDPW;7-_U~D@iT0^BioaM@9kzu*AkIRs=wY0Pf1u{7eE^Hgdx7KKKAC&*7+4 zCAOTi@+20s6?fJdZ(-2jTC@hcyxN`#39&4wr*#lp_cr4GxhzD3SsD0v%X^>Q2N%C5 zx6@j%I+pu|HV1v_%|E;VVB?4o3YEY?cV@`uh725}KROZbg%;gUZIa~1zSz&qHsk2@bG1?;gS zc@F>bCwhm~t6UlEjeS@W(20*pOkjX*K8rX2WpJ{Hztx~hR^~x@ek1CA1Y?0;xE5`Y zs|0r91bXY&?YNyzVYDR2aXL|-qi7>>O*!K^JMKg2wd8IU?Q2l*5S=eP#%!XhKc$ zVo4n_F>&|Gei8cP%du-ZzPdO@`J3%8up4J!L2?+D_nLijLGcm$U5(xPl(u1Atu^>Z zZoJJHBKSUVpshtg(H`C1!j;8^&^tPfL41%!en(%)7UUhUzoPLEB@-Mc&nBlWL zpyA4yXRHGPsKGP`(EXM3yFCdQXzM1c!lXwl%(rpC(B~pPAHruDUScyXmbJ8wU6XH* zWZf>?=gMU)!!mX%*UV>wwG;oe37wU`&Pr~DD`p%b;(g;ZeCvRZmbTON?QHQGW7a#E z&U0fO|(7EJZgzaTxgy@c`1|LXX{>r|HWslRt*|O{Q+Q<*8ZLb2W&v{iVGUTsglBJ|Z7B0jnOmc>Mo& znY4NU)+qn8RZ>w7{tRG-#ZlfzL!YR#q^GS=;a{I66=Eb{PCZ4V8z1rTH=GDX@LTJB zZ(}2yJq&ZpeOCu|7XglN8?7MlH(tx|iGJGG_QtShW-ol9a=Es>zk}ytipt!frwL#| zdQJNXoLWxT?QHWv+@*~7b{Ni#8LNnagbR>rw1~OFibvp^^%D8K)Ua>|KEEHLcjbJn zY2sN%U2Js%Z({9n-yg+~M`Lw^kFf=h*Bi^O^hQW@0$;8U{m0iwJ@~S`BkMEEQH^DN zWAD$-){vAe=kvL>9hWWN)w0Id76Xq>WI;6@NvyD@1EXpUMomO5hbOx*7Bg+pVKgy# znH`_jwRKe08sbFRPp6GWYBctTSkY9nMLW8!Z!P zjxkrtx`e?&r2CdzFYg#=NMEJ@o6o4JT6QxGwmX`S39sy*7f{#Iw%V);+KG|y@b-sA z!1?CnV6*@4M;mvO)v=DMPS?OX>^FNU*9ffS7%cn=4k4T$e^%LYlA{VAVWew%bz2wi z8nW;BJ2^-N^=AWO*UtGP>N$K%mpliK?10p_?On=h#c-rj?_aoURh%y1%Z-(`K}HSf zPko5TCIvaF10mm*1;JqB!yWDrOw4q5$J1EJ@ozx*u;gD=7rHwdu>BFZ*D8M9`hpne z&WwO4%w_&|WaRb3pHcHaCAsY7pg-Xd2Qh1AI;z0SQ-Sq+~v%8vLu!%H*sjv%v_bi@K*9H>C+zW9uvmLvskRUJNb@yV~CF21hg zn1=rq%p3Ze0{lgbyT%?o=7?bvV?`n zfg}?pXHY(r@JC)KG_RcTj2M!vc>Nv7PU!az8nSQBKU^R3}LdHrN3A^o{?%}`Fpcn_n|h5%l6iBTAXLTjTFucfaFO2N zMa{R@QrMZL0VO_U+5a3hIB7T6xSkKE&>}SrXEZqGo__LkI~4sg0o-w_b5pnW@#=n}8dvBJWK)ojcTszm*zDI_3)+Uu9q z=t2v6qc1Iu5aPwCWiWaA2qv7)gT8vZQBpHX%MtpM;Z;}|3`hsE7>)XENn`ljSXI#% z+qHqj^e&uwbzKoR7i=||VmRi%hL{1rmo`{4CPjn6Ed9E}>oJ1?jxFasQCxsd{G@fQ zo^<_72o%BBZwDj$Njt;@&y7GGe;lkOQ-@q2)b=|3?DQZy83PD}7is<1%x_SPGdy=J z4^(O#@Efq?x%J*K>}y&Bp#hbJq1eBfCkzJP@I@X7EHzBZV#}dMk@p$IBK74SdOovo zWzFH7o-m|$V}(@1$%_9l7&n=XV@W$|tpBP;wYZak@#$tPsl#)Y{;tFd^ps?^+`;Wg z8D3`>wsGK4{x{X^6vBPvsa2ry4CL+a0P#cH zlde-n#ytNRBg?7uTqnVq0DJhw1EM?TfvL)#taT-eAil;@nfuea;pk4*90h}{>2Vma z6zjif&+r7D$1C}6hHxbp%vf&(TjsQ`Wl}`_H)eOh5*Y0j!Es`PacMG|+>ULo^e}`vhb?BT_3WdtTo(KB~J7Zs5aF;NX<7ib9 zx!9|Gl-DgA(Q!W3R?uPOxdb7rCx@u1iH|w=#w5ZA7i~*13W8G@eBCsAtOuOj7 zPy|6B0$q_{e9?e4FSqxL8V?Z`Np|GrR4W4QKT<`vqGwVzzOs2FHZtRP5leai+1QqG zSW^EaC(B21XK1q{oNl53OR>K-uXG_{$9lXcdi@>7?Q^Veg zNCxKbvOs2}?HHlJ03deiZ%OJE`Ft#lJ7|J~ZTRaf_E>>%#`(5bKguV@K!^G@;7728 z6;3>a1NPULrGD-ILCyEcHV(eRh3I%-a!n^~cOm7VsISnK*UVj#y_1EL+!2W!C=^0$ z9h}-zeEq4`Qx4Wshnd4(0X+|1E<$jVwGSRhZP*w_jrDCY`*NUX&660;*XT?83Za?V zObdV5e;a&EC?LdTRNlZ;%g#hti1f@s)8ipsG;YCpZ)ZCMW-wW@i^DT@ua!snH$%2L z^Pc|{yPz=q4qgKh-H=|zIuywV3t z5If+rAWZCdXR|34uD{vj5Vr!f;jbhUYf(dtG1-D$n6ZRKe|x(M11T5=y4!Dp0jV<$ zVE-)xLjEu`69a+~-Xg;&XjUZMf0|d3kpVyfk`<$;bVXp2iHQJ)h ze5#4fYO`rdbq$LC6alayJkv&b$|tg+$&f$F!q!Z85@63}x3rM;8wUDjiO>iEGi+h` za#G!<7^+6YA&eOjBjW+K@@l2nfIm$0MhZ<~hbwNy)(LmtD|9kEwbaWt2-+!#^!2?$ zOT%uey%a;hAF10?p&d45n7mZ@0$a6h_(`l!lkXF}=&g*F8Ql!?B4_Rsb{h^?3#=meLzWPOKH) zjJ`19QB?ckdJf>sx2ddJ0B97MxIuU!`jY=aKzS+(#d1(=M1!Bfz#MozL)#w`4j7)( z(BkBXJRB{c0Bjt&<`H3E6rg33FaUcz9C|Uu42+-L#4s+PrH=~VV@HkK9>XYL7TLE5 z8*w?l1MUBAi?9see}5c?YUfsAF1}l~3EOZP@FZyT=QfO*^zZ4kYr8N5H_SVP9k>9* zPF$Am6t?5ye_Ysw3t(+hE(laSA(Uhc`10Z4$Hl{fw^Xmj|9H7ZH2F!vgs#5_^%&OE zV^0b#YJP9PX?1jbTtq=>Mn`ep-V?|}$!j|gv9e_Z{scDFE+{m82;wywD!N5;+C*!F3`fco1# zBb3VQNJRDr=&Wqyg=d7C2GH@9JwmG?OVo$W@xmhYdp5q`tA1~R?;omd%fWYch9mnk z;j>u%-VEPos_(SI_w5vTRybcp7`{_M>~44g1&PYY%R3|6WOVa z>;y*-KA)rX8eF&I!%ncgkB&btT%k!(#$I8jA^z60dxhH)ZW(Wo)9L04X!H12bM^^^ z8SLc6v8bdeuH$h1CvDs(^pe;Co0}`u*Y*Wrd}DSLV*%crj87px>@>?)@NwdMv;yyj z9($;QFr*SU|L$lt%>r(;!N?hHz zuE&)fTlyvrUIC@q;ezatL3YMtJk<3?Xu1C-VQ6D^*dRM(kR2+>4i}t_;=^zqj!#^f z$jO(4n+%PQ;r?%U=QOU{aAju?F2|Mdc`tIk$6zy9j^o}g{Qef7=hzj$pU3qrT=(M2 zj)$zk^&MPa!1WtsdkY=%+3An$Si|kO^$b3r;Clqud+^zZ&%5~jHm>vWc^RJ%@p~aY zui-m81d?(1d-%={fLw~t&G^m^f4mQ$Tk!n|uD9ZPl;*!GG|fJQpIz}&JK-|+ut|0@ z;&-$UuVp-muk-PN#8$f7c zb*c;n`XmYkc(K1|6+7@lhq>cTVW3$Bg`+lJc%;u%XVz%TU9FxTd1Q9p@trql; z{X!SOF@)tTYH&bkRk>*g|2ls@C)$?l4?xTArb=+k8R;qX+5w@xhE&Euj#O@&#9?|5aU4b|7t6QFnY8E-Z_*0omUn+@CcSz{7^f8sy%k$< z;aj}?W?U*a_n0xZ_7iVGvQ+=z#jy%*Ws6H5^P&$)wuvzzDqKJl(FAzJ!9R(knrnf2=N zf5@5i+kkWSVVJM_7!i*?%#PE{kFmyJ7Hw57$8eEm zsnzbKvqun2Jl0UeMxRH7wlxRy5`Xm*F>pTx_cL+?{u!3W9N{1u9Tiq!SG%W<3hRN) z_CD%ck;R|DQ>Zx{WnI)HjJvNK6I}fFELxQYv}VzM|>IVL5^yeQ`@+n%e?P(xfbOQd)ELwL$2xGgtnx6^z_*L{-OyPZW zXn@!zTKI+dpA}>nBi5n*Ct%rUQK!#24u#5P11`~WfADg&?j$NrJt?%s+Z|5|Z`1o9 zq1Up%K=Fa(`9hdc{UzStjp*PPLRR&cu}Mce_^`q$p$AP@GIm6Eusxy2@hinW?V99#Mi>rwTn=Gg2Jl&-$swp;i><9 z)|@?T6Za4|e2jILsdxL(@oxd@<0LVa9{NTox){8aIuqAw<(a?2{&;zJ?dbht<+gIa zF?IhAN_;Ne_MOlJmxJuGfEt_;a_VWWCC6r+%FP^F7A2oS=zPu@q3#8->2_A=${$Wt z>tmNj8(Gtzs6HT#g5L{W4JFGCidnSgdm*LmB;Z|dc$SF~qzh0fUWgHT`Ii~!H+^Kbj^J~ z3Snyf6IxL7C!s|v=I64%#`w6e=IVsGrtFX18s3lJdKp_aLr#mx(nhRv1$)qFOSB^O z_3D)U6S}J6CyXa&)5)KNUbt9)7FuU2?YaOLq|jA=2+gmU4RB2d^|`(pC-_oUKmOG2 z@A?NK(e#JVpgDU@K@v}E;KOj?MHb-;`_qfmqHq7eem~PF7`Tj4VN$u#v6jlBP@`tTE^h2pFfY6vV zv4tW2zYhKJ^bS1jFpPfsS?E1?7=FV%;cd7&{2z0N|HXTA|0gRpH)f<^om;I%^;S9j zuT@Sf{GVga_cn$G?Paq`oo^Fm7PK^obcs+1k1kbUiWh=Tg!+vkPMhEL!{MNBmA zWuVyiw+UN|H_06}Txgl5-ui|;!yiLO71FAh8A6{{Pa98i9OJZD7Nyh>lgVZforXIJ z`+!~rkNQ!A*sdXydU!$6zebNmv7@sFaU|rfUv;s*VGB*HE|zkw*$6K)Y#+f#qZAiO ze)o3PhGtzZ0yn1B^@jJksDNHfO|MbOtZJpMN#f`>vUp5vr&u)~j8`<5M-o9u1@S>uALQNA1zGwO|n^))GSivb~n* zhOR$VOU${5{pqF>NN-pw4H3k40C1Baj=C_azY1ax9mgmxg!|YfS`_;N!d{W1@T(~H zz%QQ!uzhHWBxXsvp~25=+=cbaqBkV)fQrdzS*$4~V267tanFavQn(@Kua;5ng6@74 zq*0B;%d$8pwM=a-Cs#QQFp7@YfJ{l6h^kz(Z(@a;OH$*`Dy zWDhq``%HeBs9YY%6i=mc*Hxv|Is_%i27n%a(@9kJ-e0If%erGZFp@H zd)_unbj3k@h4vjqDDhw;@rs(vuiH)V)jQ(cg7kKx;(S*>grk2gV(TRKnBMFpVm9U~ z_;|A#h@*JJ>?(iYz4Via?w!dJ>qL0~H!atSt?6JEiu7tIjso6~HWc$~v1Zw;QSU}# z6IP-j4QvFgi(83FDLOzHYBDqtujF1OL*&djv2_MRB=(&o{!VO_2lBKkhcy;QCG};P zpSccjm~YF_m*`w$u}$^e25LJ}Y`|S=8s0=~-#}A*tg|+$4Kv}|Xfr*~M8pnI^m-G~ z!5y@0^)b7^H~l4BY)1B`kjPb(*Hp{`)68lrb}-yUk2MwjhVArSQ!)ErE4asmf?Mgl zNo-wJ!H(HtZdLbZT;Trh3)~0heX$>Ns2MnY6)kQicEPXx%CGv(`LChP`Lp%S!RUvu zhrKuum&_KT8JA!SXvageu!XoZtqhdrrkCr3L)5;dnCoGoCC0!ed|J6`;$KExc9#WO zO!)8{@3Fi1GqHcz_d}8UT8b?VaJ-(mQryLOJBb#Bz(-)~@z4@%grW=u8|R4q3{TSJ z9Q4p#)Vehr=H);}w$pn#K$YLR3Y5%mE&fw+MeEnD!V8_>1}TplrthogG=DPAJ_b0=-UARlL5iEUB5p;dHp z)lt=WTIrsjt>Ou8F`28vNTW$sGkkBv#vLr&U2Qu3X%pGFqmf-?L%|p9;tG&%gabE= zsQom^)O1?r06kaH7Y^{{Dr)KE3>k8Y&9GT{zEf;lN8>gIyOqL6w2{4bExqCt8{=}) zDYh_dix^!ZwnbYj9p)Dw&%& zwG&ymLuvV4qeTnV>MZ8!)@&`R5Wao0*Yo~XECQHfhyIgUuUr{?e8p3i!I-; zi#S=F{Dm;^t&4M-Qw5cmNp%+!)0R-w;SMf_Q9S@W6 z5qnZMbY`!JxtoYR9(Rz#ClXgJamIfW9rXeHP73(N(T01dQvjpT=l!Axz#{`k*(ito z@e&*8P=H%oV~|}U!60;zV*4m0-eM??G`bq*yh;PCx+SI_kjz;yEj<-Oki`9!D1Gmb z>2y2I* zLhXC=Ug+B!%4rsD=q)xxpFG!FJgf9czF~JHtFM@9h_cz{m@v|qeqx8HFu%@4Q(?9@ z`iU$c#v)|6So*`W(zxXH_^8zD92{PH4KLwxj$L+>c>w=~P#XKigLbp%Rd$odf!GD% zy)ci&?WX(j6>U*H7v_biYM^A0`pzsmjIU5<-oaeOOjj=32XhbY>%kmw(;+c(5ixP}vG*~`{Ta0#NRJT@tg=2HjA~vNB?47~%Cf-pazA>IW zuL4k#XvSEv6*^}g66m5wBBeL<`oWr%T32} z#dM-D2fdfw;Qq8>JV!fsJixM`W>to6`2-Q^@9@42rxlO-Xc%UJ7oR!-6k+8whWS)^ zgV|;k-jN9)@or*4^Qas9Qgz~PEbrYp6S-(_#|u$Te}HrPK8x6%Q^b_d(e9ov7J)Fk z^EK>$&qqr+B9ECAz<3xPa( zsF!0_GKupY_r>^2$0v!y(H0&sR>Hrup+KZc29Mc*EAfHBvy{N^YFs25>B%y&HnlE9 zU5h4*OW*@!7mE8~{Ld7^0O&7f(xfTy;X4+IYw*qoMPfenz5_RU7K?pUSAp{HhIhJz z=9a=yP`n2m0|0${KkZn6k-+06u-Hpz-Xmg5`l%}Gjkv&E1iGp{} zh7CQp9)w*sMZ6jXk4zC~T&T>3sVGA+W$I27>sMu`ubL+Is>$;msQ)xz*6=|zGZB%3 z2Z6{6hDb}=@gRJn`)K5J40;z(>O&yN3OY6&{`7_EGK0i{B&~pla*V{*3Srxl>2ZkX z4KqQe6^u-o^z244jW*#1HGUL*^!iLO#7d>mH!I*AT{j)~uAL=%ak$Iqh?qk!%tFzH zbYzz3!?`Y|*LTC)vom>D`EJWW;zEkY3d#W$d@ggX}_wEEwU6_k>l;R&t0dmZmk-KIV$f| zV(E%|z*0BT@fBd?CW}M|ju*Q65eV@o3p72z2(fVy;!&&V)FQML0<{=r9;Qi)#jNTp zk@7ShWmhg18#G*@aW7Nd8ipL@m2_Y+Vg+~7`Ng8I;R5YF=FCX=Fg>ZhcXl?AUi1Xm zt+EU?r=Or;fJo-OT#WnN%Mm$#FI3Eqd!Y_*B77fCNA3d;{rnUF4O`0N6}K&gKs-P% zF2(zEDD^&ExHS48h^y|?1hFywaUWj4i*lB60efT_q?Sul1FF7UtdqJ_!#hUXjot!v z5L_-cNV*A6DQ}@z4`Z&G%R#Uev}gIhD}kOB2?}N!ZlvC+A;1V{q=Pfj#3xsX?W&+v zE9!ecK&VP*3H!c~w%m`lu3<{2F(t1=OkovWw^E!BnjBpT*-Lo{bThBwviHa;ksZ9n zMx~6i>e7v?q0-Vs5mD$u7}G5dv~2o!lt)m31km`Rgz{u5Q9auXuHngRd`UBs8%o53mvGzCb2=)#6Pwe zI;J{wB4~gf$fP<;@K2E4`2Rc0LDIYj8|R0hlAtiP;Tj01OY+MCZn}j^9C9&x>6z`aEbRlB%_oKAe z-@g#O+51%S4^g!1J^3#X8^tpz{YA01j=N4@{;+%8!zclXRoprHGm2^tIh88S%c1i&uh2a{9aEeXtmh*Bx{_ z?KZQ+>oR)+X1mwtwOO4GyEAg#fb4_EqJDC{^zu}#8MiWDfK1S+u~G{-QsiwK}t&q znELI05H*O(-7dc?7zhTubbSYD0~Nl*UiG>|R+lG;SN(RUBj~mV96r0xY_SAEMF-a7 z7p3>5w0Fd@^whgzsmbgPT3oJBAYgF@?S8Y@;|MvNexKXt27#?!D|P50-HX^(-l5bW z^%qk`YW2Q29h6@GzF5~}!~0%m$c%zkdjPF>Sgmfm+2Zg79X5;IO#N)q2xZmES0;DB z>vLFqKDWj1vs>*UuQgIMFCE9Ml%@BpjwLE*n@A(+{D)|g*Y9+P zJZ`()@37eYLAx(#vpJmsi_K?oTg^5z{nH^8(e=MeHR;s%X*o-G+>X@cV{k_s9h8u| zcUb)H??KG@SajtEK&k*}?Qw!#tv09IY_^91ddP{<7qFuQCXCO7CO zXIxteZOxA?`&6uPso=e?V90CtTfH8$+wS)HJYGvE;BuKkNW0bQuvThuKGph2N{=l2 z3?mSe)90}HLzaLC;tCPA_&iRJ*&cLwLw2vn;&s#Zn$nfDuCA04X`LjEhu*Q;LS~=a z8}xZXcBk73MhseQzM#kM^O_xYYXk)#qd|Aj>9soT0k;j@1Ri$;To%7Q1pW$z9PUtL zf*@@%G_|_|&Y;U5^4rXIM-U<+Irl3|oKfIV!^klP+|SzJya=J9wT9o~Qg-0SyweW74v{kP&eC=Zmi zLI?UCW~ZI$8mramu{eDpAaAz&Ly;w^(*00Hwg4o^YgV8LSPXq&~~Bn=8%v84AM>MQF33AKai0#Kj9e;SBm2F`Pkj$V}e4QUO-R z4LFoKL{S(Y{vzIEf>8(oi=flu0ue1fuix)6TcGcQ4ye_jpBB`U*vWBvu_3>qn9XJj zc_9BVB|$q>v)2}af^|EBurcTuE4_P#bYonxPku)+ivz3x>>MF4*vD^Y<|E|rIK5u0 z#q9}Ms6&>-PE^QCmFq13G$ohJg=vk+JQ~UAbN)mlVU4W5klW`CL3x6TOhzmqcL=@f zvjrTKb`JBeGil$plrSAUCk{3Ff_{q|$inb|EPjX2<^`*`1F#q108fBUHIxQvCC>ka z5`jbINS7B@D=Z5%DJti3c8s@fcYVzmZr7MI;-ar-PG zr`=%*_$`(|C}?re)F#qQt%_R=C}9aOW97A5+-8{L02*MmntjYfnS&Oe!%x2(q#}bO zazk}=naK$)gW5e7Ka@F?G-NO6^M|a^y?&ny@DruZ=CFgkgFc@n5VQxqkh@^O2R7sKd;;E zfmRBbolvr7*uzkq)bZM$u8-RMA+Wjw>c|ScV}*=|Yz`kB0q_Y*`GQqRU0vek@Bb4^ zZ#y-Rx-wtKXN3#n_QD~7D7nG%P=f%#_|j|EM34Ii;cR0jZEYkaQ)xpW;Io?p?ttCz za=_DpoT#aVHRvo7mRX%ZFpUk8{O2)6^F&|cYvlI z_=J8)Ep({M>VXtHB5(9b-(i5Nbz8lDkJ|%T1lxPP9v7S?7X%J(Lk5`_y}{7bAN1Ot zXqVgXf*lNcLf(+yZFX2)aGTAppyotdVKBjHPB)YUJW9740%U~-v-v_cI4o5<(KqID zAzGCy4T1cWES0iIZZDN6{&NMTC()bjrBag}EC7RGb-Nv2c=uK}^ri!{08JP&!*x)c z=&n~wZgQK!h%lFCD=aqrcgD`3vnz;k3kE4LW1$c-3YjPUNk|$??-gR{_15lE3z}s? zNtkcD75Kvdz$1zP5oZGI}ox# z(|`kmK{zZx8eIoh*JrW1G@lx_X9}6@Qpn`7dMswR_<;b^aUppBAg|NrhW>=RWAVj1 z)>^q_n(UA|ntV>5%>`ZJfhz$=2i5^v+~@K+tY9Ty$X}Ir-K|S%1`X{i+38s)+Uvxq z&E~{V0FJ!f`P=T`<`J z_*HB~=5@hP!R^B^4Wou&z~l9(qenP|W|zkeH3Lt=1y$^_VNeEva>KWUg-{va3VyVD z%ovJdga@CO`9vOv58eh$ywhs0lJTDnaK^{V$GY@w0BO>y^|(4HsiQ}Y`|Wg92pt8< z#qb=eF64y&h`})YF_#;bCFF-4{Xh)cj%wO}0TFk`2R*zqPdRv1Fhbx0FY zW%dZ*dZM>egSX507D3f8O

|%u1Vb#>_C4hR3&7pr{2o5Wp(e05eE9-|}!u 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 L&15*(tThh+m$q|~ diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/MapPreview/W_MapPreview.uasset b/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/MapPreview/W_MapPreview.uasset index 3014c4eed417cf6008c39e69f9c2d633b1632783..d978ae881e2cda2614b726ade9fb99b39535554c 100644 GIT binary patch literal 232361 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 literal 235393 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�lsMkjRr153<6dT>k4v@8f+2#UHE$7Qh2cNC|^zq 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 bPk@N5RYOEsI}EW3#DfrRDcU=_)x!S+DFu3i diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/UW_OnRoadMainWidget.uasset b/Unreal/CarlaUE4/Plugins/CarlaTools/Content/OnroadMapGenerator/UW_OnRoadMainWidget.uasset index d1c30094bb76dc2d09ffc9a6daceb40541922921..3ca4126ad1f2933fcac75891b47c0e6ee6466164 100644 GIT binary patch literal 589867 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

  • UEc*@zX*SD;HbfEe(v|`N(f0oDsF$g3Jo+VP1 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 GQ-p@>+ZEYdkrj)_jqB}%J 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 ipCM|&8Kr0j%^x0rt1q=uW`etE+iUVHqb zwSFRHy|Q} z5F8<2C-x13*RBr&DGGl4KoD#wu${njpI$xfp0N$5Ke^4F_bl3K$-zsTuDNFC@wK&o z8MMX4tIpfv7u2U6I^gp;XX8=*sW(&FKKbX+F!~6Amol;eQq-?9+0vMtn#nY__M6ny zl1Vm9NH&j2HKkgT*-T5nikjL<&8eoUmh`;T)QnsTdd;lfZ>R2W9G{w(YOHKY(MnKv z^}^kTb$^dEU(=GBmrl*^w_k1aCD`zXK8K9#{`P76)sD@yHKd!;6>aH8InEq6r#aJ- zO|=B4J-gp=gS=Xp)HFGyLAq(bbi>S4Ht4nGRu7F?rd#_;hdMO(!}}Zb-Hhg{n`Wk) zQtmK1)0A!PH#t+6$!3DH)|>YAII4_E&PnO~^qZ1RX4Cck!ih=OPe{t3(n*;zI$M)W zH_7*?aKgA+%4v22p-Ya&kx*;tLr(F^Tm=@wpr&@y(+iv)wN4#Q4{@{c?j~^HB z=9ESuZKWUx1}7K&bj{ce(iZSYFN9mQCYM#_}#V}To4vD)z8YbR3)>?;G0?f7lhpii&}$E z8yf4N`lyzcSjO0}kEiXIBid%SiM zB2zau*{U-ua^0AklM=31<_{(e{=SiksT-SaXh=21ZvNHkznvX+T&S9AX-YO$&y)Lt z+56tTJ@ZgEuC+4L)S4aL)>I#i`0|cNnQ|$l-^sehRItGb-yH7BYT8;-VZGNMnRI;E zq4BAi$@+y8Q>lij8M!($HDz|HadK)#YjDQR2k#PgXndxAcFt&;_c?9H-h!lEUMe%9 zrJAHuP<5uTUq!kJspd63xl4E`fbL9x8E~mVQV%uXWvvyEAx4D_D4U-X>#hq=2WoeI%mJr#7#{N z)$_8owbS++Q#)zOgsRN^rbf{-sg_zht!T?;GflO751g23NY%EFtRmCKtun^i{-P4K zR%N41e99Hq+Tf?ioF}tF>0p&Z8qUM^)`@Kj`mWLN5gcA2UsB1YQ4_0zkA9qfgDIq_ zouSuWX~`+8hK16RIl=}ZX9r_gTN#|(;|~{v{85AMo0=J)nHijX!qG>EJm<=UX;Z1Dpl+|N zr-w6Bvu{$gw{VxRc&I!f{gE4Nw`Mro?N=wHvPopQx+yC&_tN>zM}?ghn>u@6(S4bg zfmOkbFZ*8~qMDLQw$#rW-IAG8-P90#FnR6sLiV1LYMdbqo=q*t26ca0{Hq_yFzTkX z)z_y)R*%18Y@e`Tnn;HU!@pVnEyMJ(c;<3J6R5&0Qx%pM&wvM+TB&$zmYo}yeUhQa+1DSlOEP|U;f1Oz)U&p&_@0>I}4=q166W)|lIlcS84)55wwpyru zV(K3IZQr4Bt3OpHJ*W9zs~mSi$Ldro*!3kf>s|Yk4y_yOP0i?84u<)M{_Vy-o!n9o z$GJ1UJ20n9Rq1&mdP>la1UmP*?>|HHwo`L-Wh&j6(}kH|-J8sr%hBmZ(fpy^tJU*V zL-;Kizt*r#@~Sp9OlhlY?Kq8twmG3br=Md|Suus7mm6C4)|^iK=9_2wZ4>XOR992D zU#6w8A*XKR`TJav(+jCPv29LWs%6rQsp-a4Ypr|>PlCH@U#i1)v=3jZ7VhueyVdQL zBZyM713!Fm&W?+T0piU~ZAmt@iUMpE``S`3B95CS`YET&zqzI2?Y{9F$2Fz1;*X{m zrE;T%oV#|qbe&Uk#Bh8nx7kVc=RcY=ya~zKDdV@CrtYhIurjBq3CRUH6<)dU!B=;R z_i&=<$Hs-#bK8=QoiSJKxbuFLBdRq?A%jYjkZ)2;T0HhzQLosL69(>cieF{X?fcIB zdA}UFF4(dnpz+P$zQ5YLzO?_$so8gPxYNyBsQJaQNayOXm2O;n=Nu^&9?G^P>$9Cv z=AFIjhUE;l{RUBF@-K(Q$`(w zJ*`YO%}ch{B%4x=!D=h*w&~irWuY-zQn|q<*e9`F+0jW6m4={lg@a$lq*aO^H8Ue- z^Q$AyeN^w&f+-RZ;#{r2&X&)uBNgjsNvPP8Y6?SD?C^+de|HA{dVT25X6Ls)%s2J8 zvhx?5g$)kBwVS_>H~aGyA&N|6re#!9!=&b9J%P^PV=4{~$49xC*vW0;PgXV0+F~`D z$jrfk4W8QMzRN;R?#v5(cH?Y%Q@x>}o7fthcJkXv{EBvW%X&6Z;>Td@8@=`m`y4lE z!QJ;Cb~BE9<)n#KwPAMSj;{vx2}?5KeTHt&PB+b6SGy|ygLL(Z2}9o_CJ8NAj>QXx zowr9?NswdQg74p&cS-v#W|zWSgCowm=SbYGur<2`s|358cHIN*SK`(w*nMt~Q*@+) z#uS4YqG0xOEbG~MGgI4Tifnw z=lJ0_-M>ps&v>;eQ7+kJuBt| zP#bFRMex=i#^09H;@;`jIbzI+3$4Wo-(2|!X10A0T1PSrv#d(hFAw_|1Cv)pC(

    _% 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�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 + } + + FileDownloader->ResultFileName = MapName; + FileDownloader->Url = Url; + + FileDownloader->DownloadDelegate.BindUObject( this, &UOpenDriveToMap::ConvertOSMInOpenDrive ); + FileDownloader->StartDownload(); + } + else if(LocalFilePath.EndsWith(".xodr")) { - FileDownloader = NewObject(); + ImportXODR(); + } + else if(LocalFilePath.EndsWith(".osm")) + { + ImportOSM(); + } + else + { + UE_LOG(LogCarlaToolsMapGenerator, Error, TEXT("URL and Local FilePath are Empty. URL: %s Local FilePath: %s"), *Url, *LocalFilePath ); } - FileDownloader->ResultFileName = MapName; - FileDownloader->Url = Url; - - FileDownloader->DownloadDelegate.BindUObject( this, &UOpenDriveToMap::ConvertOSMInOpenDrive ); - FileDownloader->StartDownload(); } void UOpenDriveToMap::CreateTerrain( const int MeshGridSize, const float MeshGridSectionSize) @@ -490,7 +506,7 @@ void UOpenDriveToMap::GenerateAll(const boost::optional& Param { GenerateRoadMesh(ParamCarlaMap, MinLocation, MaxLocation); GenerateLaneMarks(ParamCarlaMap, MinLocation, MaxLocation); - //GenerateSpawnPoints(ParamCarlaMap); + GenerateSpawnPoints(ParamCarlaMap, MinLocation, MaxLocation); CreateTerrain(12800, 256); GenerateTreePositions(ParamCarlaMap, MinLocation, MaxLocation); GenerationFinished(MinLocation, MaxLocation); @@ -714,10 +730,14 @@ void UOpenDriveToMap::GenerateSpawnPoints( const boost::optionalComputeTransform(Wp); - AVehicleSpawnPoint *Spawner = UEditorLevelLibrary::GetEditorWorld()->SpawnActor(); - Spawner->SetActorRotation(Trans.GetRotation()); - Spawner->SetActorLocation(Trans.GetTranslation() + FVector(0.f, 0.f, SpawnersHeight)); - ActorsToMove.Add(Spawner); + if( Trans.GetLocation().X >= MinLocation.X && Trans.GetLocation().Y >= MinLocation.Y && + Trans.GetLocation().X <= MaxLocation.X && Trans.GetLocation().Y <= MaxLocation.Y) + { + AVehicleSpawnPoint *Spawner = UEditorLevelLibrary::GetEditorWorld()->SpawnActor(); + Spawner->SetActorRotation(Trans.GetRotation()); + Spawner->SetActorLocation(Trans.GetTranslation() + FVector(0.f, 0.f, SpawnersHeight)); + ActorsToMove.Add(Spawner); + } } } @@ -878,6 +898,41 @@ bool UOpenDriveToMap::IsInRoad( return false; } +void UOpenDriveToMap::ImportXODR(){ + IPlatformFile& FileManager = FPlatformFileManager::Get().GetPlatformFile(); + FString MyFileDestination = FPaths::ProjectContentDir() + "CustomMaps/" + MapName + "/OpenDrive/" + MapName + ".xodr"; + + if(FileManager.CopyFile( *MyFileDestination, *LocalFilePath, + EPlatformFileRead::None, + EPlatformFileWrite::None)) + { + UE_LOG(LogCarlaToolsMapGenerator, Verbose, TEXT("FilePaths: File Copied!")); + FilePath = MyFileDestination; + LoadMap(); + } + else + { + UE_LOG(LogCarlaToolsMapGenerator, Error, TEXT("FilePaths local xodr file not copied: File not Copied!")); + } +} + +void UOpenDriveToMap::ImportOSM(){ + IPlatformFile& FileManager = FPlatformFileManager::Get().GetPlatformFile(); + FString MyFileDestination = FPaths::ProjectContentDir() + "CustomMaps/" + MapName + "/OpenDrive/" + MapName + ".osm"; + + if(FileManager.CopyFile( *MyFileDestination, *LocalFilePath, + EPlatformFileRead::None, + EPlatformFileWrite::None)) + { + UE_LOG(LogCarlaToolsMapGenerator, Verbose, TEXT("FilePaths: File Copied!")); + ConvertOSMInOpenDrive(); + } + else + { + UE_LOG(LogCarlaToolsMapGenerator, Error, TEXT("FilePaths local osm file not copied: File not Copied!")); + } +} + void UOpenDriveToMap::MoveActorsToSubLevels(TArray ActorsToMove) { AActor* QueryActor = UGameplayStatics::GetActorOfClass( diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/OpenDriveToMap.h b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/OpenDriveToMap.h index 2002c8275..115b456bb 100644 --- a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/OpenDriveToMap.h +++ b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Public/OpenDriveToMap.h @@ -91,6 +91,9 @@ public: UPROPERTY( EditAnywhere, BlueprintReadWrite, Category="Settings" ) FString Url; + UPROPERTY( EditAnywhere, BlueprintReadWrite, Category="Settings" ) + FString LocalFilePath; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings") FVector2D OriginGeoCoordinates; @@ -213,6 +216,9 @@ private: void InitTextureData(); + void ImportXODR(); + void ImportOSM(); + UPROPERTY() UCustomFileDownloader* FileDownloader; UPROPERTY() From dd0fd15e9e5238e287ed244e8bb2c56024ddf871 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Tue, 20 Feb 2024 16:50:14 +0100 Subject: [PATCH 099/105] fix sh syntax --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b017b1440..6a61da923 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -171,7 +171,7 @@ pipeline sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' sh ''' #!/bin/bash - if [[ "${BRANCH_NAME:0:3}" != "PR-" ]]; then + if [ "${BRANCH_NAME}" != "PR-*" ]; then make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' fi ''' From 5175b448283e61382b48b430b4c0af1199a9ef7e Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 21 Feb 2024 10:18:51 +0100 Subject: [PATCH 100/105] fix syntax error --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6a61da923..46f015093 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -170,9 +170,8 @@ pipeline { sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' sh ''' - #!/bin/bash if [ "${BRANCH_NAME}" != "PR-*" ]; then - make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64"' + make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64" fi ''' sh 'make examples ARGS="localhost 3654"' From 694ad122ac48339f89b1453bd98c31b20e78af82 Mon Sep 17 00:00:00 2001 From: Daraan Date: Wed, 21 Feb 2024 11:46:20 +0100 Subject: [PATCH 101/105] Bugfixes for python agents obstacle detection when empty vehicle_list is passed. (#7142) * Bugfix for empty vehicle_list Bug description: When an empty list is passed this fills the list with all vehicles; this is not intended. 1) This does not allow to pass an empty list, e.g. if no vehicles are nearby. 2) On a map without pedestrians, this code is also used with an empty list which then detects cars as pedestrians. * Update CHANGELOG.md with agent bugfix note --------- Co-authored-by: Blyron <53337103+Blyron@users.noreply.github.com> --- CHANGELOG.md | 1 + PythonAPI/carla/agents/navigation/basic_agent.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35994951e..4b307d469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * Added functions to get actor' bones and components names * Added functions to get actor' sockets transforms * make PythonAPI Windows: Fixed incompatibility issue with Anaconda due `py` command. + * Fixed bug in python agents when vehicle list was empty causing a check on all vehicles (BasicAgent.py) and detected pedestrians as vehicles if no pedestrains are present (BehaviourAgent.py) ## CARLA 0.9.15 diff --git a/PythonAPI/carla/agents/navigation/basic_agent.py b/PythonAPI/carla/agents/navigation/basic_agent.py index 093749d5a..44e6d0351 100644 --- a/PythonAPI/carla/agents/navigation/basic_agent.py +++ b/PythonAPI/carla/agents/navigation/basic_agent.py @@ -345,12 +345,14 @@ class BasicAgent(object): return None return Polygon(route_bb) - + if self._ignore_vehicles: return (False, None, -1) - if not vehicle_list: + if vehicle_list is None: vehicle_list = self._world.get_actors().filter("*vehicle*") + if len(vehicle_list) == 0: + return (False, None, -1) if not max_distance: max_distance = self._base_vehicle_threshold From 86e5bd8adfa4d5216a8d3378602aad45bf26412a Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Wed, 21 Feb 2024 17:13:50 +0100 Subject: [PATCH 102/105] fix skip build big package on PRs --- Jenkinsfile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 46f015093..e0b816616 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -170,9 +170,16 @@ pipeline { sh 'make package ARGS="--python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64 --chrono"' sh ''' - if [ "${BRANCH_NAME}" != "PR-*" ]; then + prefix="PR-" + case "$BRANCH_NAME" in + ("$prefix"*) + echo "This is a pull request, skipping complete package" + ;; + (*) + echo "Generating complete package" make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64" - fi + ;; + esac ''' sh 'make examples ARGS="localhost 3654"' } From 378ac59f3da026b539c57e7c6e71d0c117f8d752 Mon Sep 17 00:00:00 2001 From: Ruben Abad Date: Thu, 22 Feb 2024 14:04:36 +0100 Subject: [PATCH 103/105] fix error trying to archive Unreal logs that won't exist if big package is not generated --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e0b816616..b7352cac9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -178,6 +178,7 @@ pipeline (*) echo "Generating complete package" make package ARGS="--packages=AdditionalMaps,Town06_Opt,Town07_Opt,Town11,Town12,Town13,Town15 --target-archive=AdditionalMaps --clean-intermediate --python-version=3.8,2 --target-wheel-platform=manylinux_2_27_x86_64" + tar -czf CarlaUE4_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/ ;; esac ''' @@ -188,6 +189,8 @@ pipeline always { archiveArtifacts 'Dist/*.tar.gz' + archiveArtifacts artifacts:'CarlaUE4_logs.tar.gz', + allowEmptyArchive: true stash includes: 'Dist/CARLA*.tar.gz', name: 'ubuntu_package' stash includes: 'Examples/', name: 'ubuntu_examples' } @@ -219,9 +222,7 @@ pipeline { always { - sh 'tar -czf CarlaUE4_logs.tar.gz Unreal/CarlaUE4/Saved/Logs/' archiveArtifacts 'CarlaUE4.log' - archiveArtifacts 'CarlaUE4_logs.tar.gz' junit 'Build/test-results/smoke-tests-*.xml' } } From f4e87a8e7655be7c29998c23ceaedb2f4c8adcdd Mon Sep 17 00:00:00 2001 From: MattRoweEAIF Date: Mon, 4 Mar 2024 13:33:35 +0100 Subject: [PATCH 104/105] added warning to remove CARLA cache --- Docs/tuto_M_generate_pedestrian_navigation.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Docs/tuto_M_generate_pedestrian_navigation.md b/Docs/tuto_M_generate_pedestrian_navigation.md index 44c965733..d4e6cb084 100644 --- a/Docs/tuto_M_generate_pedestrian_navigation.md +++ b/Docs/tuto_M_generate_pedestrian_navigation.md @@ -78,10 +78,16 @@ __6.__ A `.bin` file will be created. This file contains the informatio __7.__ Test the pedestrian navigation by starting a simulation and running the example script `generate_traffic.py` in `PythonAPI/examples`. +!!! note + **If you need to rebuild the pedestrian navigation** after updating the map, ensure to delete the CARLA cache. This is normally found in the home directory in Ubuntu (i.e. `cd ~`), or in the user directory in Windows (the directory assigned to the environment variable `USERPROFILE`), remove the folder named `carlaCache` and all of its contents, it is likely to be large in size. + + --- If you have any questions about the process, then you can ask in the [forum](https://github.com/carla-simulator/carla/discussions). + +