Commit Graph

279 Commits

Author SHA1 Message Date
bernatx c9552887a0 Some sensors are forced to be always on the primary server in multi-gpu mode 2022-12-20 13:18:19 +01:00
Marcel Pi 182a48a2f9
Marcel/empty gbuffer fix (#6013)
* Change handling of empty gbuffers.

Now, instead of sending an empty image, a black one with the size of the viewport is sent if the target gbuffer is unavailable.

* Add more GBufferID checks + improve empty gbuffer handling.

* Fix manual_control_gbuffer.py error on repeated listen_to_gbuffer.

* Expose is_listening and is_listening_gbuffer to the PythonAPI.

* Fix data race + autoremove unused gbuffers in manual_control_gbuffer.

* Update PythonAPI docs.

* Remove magic number.

* Switch from error to warning on invalid sensor type when requesting gbuffers.
2022-12-07 18:51:17 +01:00
Marcel Pi a880df37df Further improve the gbuffer error handling. 2022-12-01 17:01:15 +01:00
Marcel Pi 02d55758a2 Further improve error messages. 2022-12-01 17:01:15 +01:00
Marcel Pi 714f24f428 Add error message when attempting to get the gbuffers from an unsupported sensor. 2022-12-01 17:01:15 +01:00
Axel 26524eed4d Fixed manual control for pedestrians 2022-11-30 14:39:32 +01:00
Marcel Pi a152863b11
Merge GBuffer features. (#5960)
* Add Misc/GBuffer

* Add EnqueueRenderSceneImmediateWithGBuffer.

* Modified ASceneCaptureSensor to allow gbuffer recording.

* Minor GBuffer progress.

* More GBuffer changes.

* Removed unnecessary files.

* Add FRHITexture* functions to FPixelReader + temporarily disabled non-gbuffer rendering in ASceneCaptureSensor.

* Add missing FPixelReader functions.

* Minor changes (Switching to Windows).

* Remove FRHITexture functions from FPixelReader, added the file ImageUtil.

* Remove FRHITexture functions from FPixelReader, added the file ImageUtil. (2)

* Added API to listen GBuffer data.

* Added gbuffer serializer classes

* Temporarily remove ViewRect hack.

* Add USceneCaptureComponent* derived classes.

* Disable USceneCaptureComponent*_CARLA and add initial FRHIGPUTextureReadBack-based code.

* Fix and re-enable custom SceneCaptureComponents.

* Fully switch to FRHIGPUTextureReadback.

* Remove unnecessary call to FlushRenderingCommands.

* Minor API changes.

* Add support for PF_DepthStencil in ImageUtil.

* More API progress...

* More API progress... (2)

* Removed testing code.

* Minor changes for testing.

* GBuffer API fixes.

* Improve GBuffer capture code.

* Fixed SceneDepth transfer issues and added SceneStencil, CustomDepth and CustomStencil to the GBuffer capture.

* Fix compilation error due to the usage of C++17 features.

* Removed major memory leak and added manual_control_gbuffer.py.

* Fixed a silly mistake.

* Minor changes to manual_control_gbuffer and SceneCaptureSensor.

* Fix compilation error on some versions of Ubuntu.

* Disable TAA when reading GBuffers to avoid jitter.

* Improve memory usage.

* Progress towards automatically detecting when a GBuffer stream is unused.

* Fix includes in SceneCaptureSensor + minor change in manual_control_gbuffer.py

* Progress on automatically detecting which GBuffers aren't needed.

* Remove unneeded __declspec.

* Revert ASensor changes + fix tutorial_gbuffer.py

* Update CHANGELOG.md

* Apply requested changes for the PR, add gitignore for the file OptionalModules.ini and add a GBufferTextureID enum to the Python API.

* Remove OptionalModules.ini.

* Fix indentation.

* Fix indentation (2).

* Fix indentation (3).

* Add documentation and more indentation fixes.

* Remove commented includes.

* Add missing line break.

* Fix memory leak + remove unneeded files.

* Add .uproject again, fix EngineAssociation.

* Remove unneeded ENQUEUE_RENDER_COMMAND.

* Fix manual_control_gbuffer.py.

* Add `stop_gbuffer` to the Python API.

* Minor fixes.

* Fix performance bug.

Previously, when a client requested a gbuffer that is unused it would stay open, even after stopping it explicitly. This commit fixes this issue.

* Fix indentation.

* Add missing braces, more indentation fixes and simplify some of the code.

* Update sensor.yml docs.

* Update docs.

* Remove unnecessary UE_Log + changed one verbosity level.

Co-authored-by: Axel <axellopez92@outlook.com>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
2022-11-29 11:24:26 +01:00
Axel 16ec77d5e4 Added terramechanics flag to manual_control.py 2022-10-18 09:58:10 +02:00
bernatx e9a7c321cd Adding new attachment type 'SpringArmGhost' 2022-09-28 13:54:04 +02:00
Axel1092 a6be1a67f3
Pytorch integration with terramechanics (#5684)
* Added sparse map reprsentation

* Added pytorch for terramechanics modules

* Added saving loading particles in independent thread

* Added blank space at the EOF

* Added texture creation lambda

* Moving function to component

* Added input/output architecture for neural network

* Filling heightmap with particles data. Adding Logging to debug

* Updating Texture data at realtime

* Connected 3 stages, using MPC Position to Update and Texture

* Added square particle sampling. Added second model input/output scheme. Fixed start up crash.

* Added new flags and fixes

* Position to update not updating in material but yes in MPC

* Fixed coordinate frame issues and crashes

* Prepared to follow position in the 1st vehicle in map

* Fixed height map alignment

* Fixed large map and terrain tiles alignment

* Fixed inputs for new model

* Added scale factor

* Fixed slow read write operations

* Bug fixes

* Removed debug output

* Removed nvidia profinling marks

* Preparing merge debug code removed, runtime working by rounding the loading data properly

* Made pytorch optional module

* Added TRACE_CPUPROFILER_EVENT_SCOPE to Update and UpdateTexture

* Added optional pytorch conditions and macros

* Removed static Path

* Fixed #ifdef clause. Added missing include.

* Deformation on vehicle working. Ready to start optimisation

* First optimsation done. Heightmap per Tile

* Updated tiles'heightmap to make their size relative to texture and tilesize

* Fixed slow frames. Added functionality

* Removed unecessary library links

* Fixed pytorch link

* Limited search to relevant tiles

* Added multithreaded particle search. Fixed cuda architectures compilation

* Deformation plane added

* Added missing resources

* Updated particle movement update methods

* Spawn on runtime deformation plane

* Added cachemap lock when initializing a region

* Added UHeightMapDataAsset to hold heightmap data

* Fixing some settings

Co-authored-by: Aaron <samaniegoaaron112@gmail.com>
Co-authored-by: bernatx <bernatx@gmail.com>
2022-09-23 15:39:09 +02:00
glopezdiest bf2815ec58
Improved Python agent performance (#5555)
* Improved agent performance

* CHANGELOG
2022-07-01 18:30:56 +02:00
glopezdiest 5003e58d7c
New ConstantVelocityAgent and TM parameter (#5290) 2022-04-20 14:44:27 +02:00
glopezdiest c977075b90
Added 4 new attributes to the vehicle blueprints (#5258)
* Added 4 new vehicle attributes
2022-04-12 15:57:54 +02:00
Marcel Pi 3b45bfd165 Added new sensor with camera normals 2022-02-18 11:42:32 +01:00
Joel Moriana 0e67ca23fd Handle steer speed in the ackermann controller 2022-02-08 20:15:57 +01:00
Joel Moriana 702bf9db50 removed tunning ackermann pid 2022-02-08 20:15:57 +01:00
Joel Moriana 8cc6f132fc First iteration ackermann controller 2022-02-08 20:15:57 +01:00
Anshumaan Singh 50abe1218f Update manual_control_steeringwheel.py 2021-11-10 14:54:45 +01:00
Anshumaan Singh 39d6ede417 Fixed an error caused during map name being called
An incorrect attribute call was being made, so `map_name` was changed to `get_map().name` to fix it
2021-11-10 14:54:45 +01:00
bernatx fa51e45e16 Adding example of python script to draw skeleton bones 2021-11-09 17:10:06 +01:00
Axel 63d5b314c6 Added instance semantic segmentation sensors 2021-11-08 09:30:35 +01:00
bernatx 328cfca118 Adding seed for better pedestrians reproducibility 2021-11-05 18:49:11 +01:00
berndgassmann 6fc187f4b3
RssSensor fixes (#4604)
* RssSensor fixes

RssSensor:
- make client side calculations threaded to ensure it is not
incrementally delaying the whole client
- support multiple instances of RssSensor
- initialize _last_processed_frame properly

RssRestrictor:
- enable python set_log_level

General:
- Update to RSS v4.4.2 and map v2.4.5_hotfix supporting elevation
- manual_control_rss: enalbe dynamics log level switching

* Update to ad-rss-lib 4.4.3

* really go to ad-rss-lib 4.4.3
2021-11-05 18:12:49 +01:00
Jacopo Bartiromo 5f07128176
New Traffic Manager features for 0.9.13 (#4786)
* Changes in constant values
Added new constants

* Added Ambulance and Firetruck as unsafe vehicles in spawn_npc.py

* WIP: Rerouting algorithm

* Removing rerouting algorithm.
Fixed collisions at high speed.

* Changes to constant values and cleaning up.

* Users can now set their own path by giving a list of locations.
Implementation of RoadOption for SimpleWaypoints
Implementation of GetNextAction and GetActionBuffer for TM actions
Parameters for setting the path import and starting the import process.
Other minor changes

* Users now only need to use one parameter to import path

* added road option to the cache map

* Introduced RoadOption in InMemoryMap for each swp
Introduced getter in PythonAPI for high level path
Introduced getter in PythonAPI for next high level action
Introduced parameters for random lane changes
Fixed keep right parameter

* Introduced parameter SetImportedRoute to set a RoadOption path for TM controlled vehicles.
Method in Localization Stage to compute a path using RoadOptions.

* CHANGELOG.

* Changing names of methods
Cleanup

* Small changes to Collision Stage
Cleanup of SetRoadOption
Added debug_helper in Loc Stage (to be removed)

* Changes to get_next_action and get_all_actions
Fixed lane changes representation in those methods
Now get_next_action and get_all_actions need the Actor in Python

* Remove debug_helper
Set MAX_BRAKE to 0.7

* Constant values in Loc stage

* Code fixes

* Small changes in collision stage
Adding constants for VLStage
Changes in VLStage

* Choose randomly a right or left lane change if forcing both.

* Reviewable changes
Changes name of variables in Loc stage
Removed unnecessary import

* Minor final changes

* Change of method name in generate_traffic

* Change in Latest ContentVersion.txt

Co-authored-by: Joel Moriana <joel.moriana@gmail.com>
2021-11-03 11:06:14 +01:00
Luca 85da613f51
Vehicle lights state in traffic manager (#4717)
* added vehicle lights stage to the traffic manager under the dev branch

* update CHANGELOG to lastest version and added vehicle lights stage for automatically turn on-off lights

* added vehicle lights stage to the traffic manager under the dev branch

* removed commented code

* cleanups to the code, adding some comments to explain how the trafficmanagerlocal handles the command buffer

* fixing missing reference in ALSM constructor, disabling vehicle light state for dormant vehicles

* bugfix in vehicle_id_list access, added fix to avoid blinking brake lights due to throttle control

* requested changes in the vehicle light stage code

* missing namespace qualifier for constants

* Added explicit method to enable the vehicle lights management by the TM, on a per-vehicle basis. Changed generate_traffic.py to use the new vehicle lights stage instead of just setting a fixed, constant vehicle light status. Docs are updated, accordingly.

Co-authored-by: npunito <npunito>
Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
2021-10-28 16:09:14 +02:00
Daniel Santos-Olivan e4243c890a manual_control: reset telemetry state when spawning new cars 2021-10-05 10:59:09 +02:00
Daniel Santos-Olivan 0913a7b053 Open/Close door added to PythonAPI and manual_control 2021-09-16 11:28:46 +02:00
Sid1057 9e0e04aae4 replaced os.system approach with os.mkdir 2021-08-10 09:16:52 +02:00
Sid1057 97e40a2aed vehicle name bugfix 2021-08-10 09:16:52 +02:00
Sid1057 08570d5fe1 'No such directory _out' bugfix 2021-08-10 09:16:52 +02:00
Guillermo 592eec0377 Fixed enter bug 2021-08-02 16:36:28 +02:00
Guillermo 5127b63d91 Fixed issues with new map.name 2021-08-02 16:36:28 +02:00
Daniel Santos-Olivan 4d9af29506 Modified also start_recording script 2021-08-02 16:36:28 +02:00
Daniel Santos-Olivan 3fa0c21e2a Added microlino and sprinter to safe vehicles 2021-08-02 16:36:28 +02:00
Daniel Santos-Olivan fd661cdbf4 Script changes
- Increase max throttle to manual control to 1.0
 - In manual control and generate traffic, ignore the generation
   if the filter only returns one blueprint
2021-07-30 15:11:09 +02:00
bernatx 756e753826 Revert "Refactor argument synch -> sync", because async is reserved word in Python
This reverts commit 48bd1b45c0.
2021-07-30 01:08:15 +02:00
Guillermo d40f787e68 Minor warning changes 2021-07-30 01:08:15 +02:00
Daniel Santos-Olivan b9bfa88fab Refactor argument synch -> sync 2021-07-30 01:08:15 +02:00
Daniel Santos-Olivan bc386b35da Remove path in map text 2021-07-30 01:08:15 +02:00
Guillermo 015f1c6d43 Unified more functions and exposed some parameters. 2021-07-29 15:34:20 +02:00
Guillermo 605a129638 Unified some functions and removed redundant arguments 2021-07-29 15:34:20 +02:00
Guillermo 0207ec6f72 Improved local planner 2021-07-29 15:34:20 +02:00
Guillermo f94afe9630 WIP: Unify local planner + local planner behavior 2021-07-29 15:34:20 +02:00
Guillermo 43bd2adc1a Initial changes 2021-07-29 15:34:20 +02:00
Daniel Santos-Olivan bb8e6b08c5 Added generation to manual_control and generate_traffic 2021-07-28 22:05:48 +02:00
Guillermo c611c1b464 Smoothed TM's PID 2021-07-28 18:19:02 +02:00
bernat cb1c38a8d4 Fixing some vehicle names 2021-07-28 09:11:53 +02:00
Daniel Santos-Olivan 1ce08fcaae Minor fixes to manual control
- radar is not located in relation to the box of the car.
   This fixes the cases where the radar was located inside the car
 - removed annoying warning about speed
2021-07-27 19:23:16 +02:00
Jacopo Bartiromo 13c08e8e9c
Landmark and Curvature Anticipation for Traffic Manager and other updates (#4428)
* Added LargeMapManager

* Added DVector Vector of doubles

* Declaration of interface

* Added AUncenteredPivotPointMesh

* Added map generation from assets folder

* Updates on FDVector

* Added tile load on demand

* Fixed load tile issues after rebasing origin

* Updated FDVector

* Added some auxiliary functions

* Added conversion and operator

* Added methods to check and configure the state

* Removed const and updated printed info

* Added macro to avoid logs

* Added info dump functions

* The asset spawn check was added to the tick

* LargeMapManager added to CarlaGM

* Moving to level load autocontrol

* Updated with new function name, AddNewClientToConsider

* Fixing forced tile load

* Added operator*(float)

* Disabled Localplayer

* Now the streaming is handled by us

* Fixed remove of considered actors

* Fixed typo

* Added MapOrigin to the Episode

* Added Vector3DInt to LibCarla

* Removed floats in Vector3DInt

* Added offset to client actor's location

* Fixed old cast warning

* Removed float

* Added explicit cast to avoid warning

* Fixed client actor transform

* Removed unnecessary code

* Added origin offset to spawn_actor

* Adding spawn points generation

* Added spawn points folder in editor

* Changed Spawnpoint for only Transforms

* World rebase is triggered directly

* Added offset when attaching actors

* Detecting hero vehicle

* Added LargeMapManager

* Added DVector Vector of doubles

* Declaration of interface

* Added AUncenteredPivotPointMesh

* Added map generation from assets folder

* Updates on FDVector

* Added tile load on demand

* Fixed load tile issues after rebasing origin

* Updated FDVector

* Added some auxiliary functions

* Added conversion and operator

* Added methods to check and configure the state

* Removed const and updated printed info

* Added macro to avoid logs

* Added info dump functions

* The asset spawn check was added to the tick

* LargeMapManager added to CarlaGM

* Moving to level load autocontrol

* Updated with new function name, AddNewClientToConsider

* Fixing forced tile load

* Added operator*(float)

* Disabled Localplayer

* Now the streaming is handled by us

* Fixed remove of considered actors

* Fixed typo

* Added MapOrigin to the Episode

* Added Vector3DInt to LibCarla

* Removed floats in Vector3DInt

* Added offset to client actor's location

* Fixed old cast warning

* Removed float

* Added explicit cast to avoid warning

* Fixed client actor transform

* Removed unnecessary code

* Added origin offset to spawn_actor

* Adding spawn points generation

* Added spawn points folder in editor

* Changed Spawnpoint for only Transforms

* World rebase is triggered directly

* Added offset when attaching actors

* Detecting hero vehicle

* Only hero vehicles are considered to stream tiles

* Little update on log macro

* Adding support for ghost actors

* Refactored LargeMap classes

* Refactored LargeMap classes

* Revert refactor

* Remove files

* Added dormant state to actors

* Fixed spawn+rebase on new OnActorSpawn

* Removed circular dependency warning

* Converted FActorView into an USTRUCT

* Added actor state conversion to dormant

* Removed ConvertActorDormant

* Added spawn and transition of dormants

* Ghost to Dormant working

* Replicated dormant actors

* Add substraction operators

* Added dormant to ghost conversion

* Fixed some issues in dormant to ghost conversion

* WIP! Attached actors not working properly

* WIP! Attached actors not working properly

* Changing several constant variables
Removing sorting in LocalizationStage.cpp

* Fixing variable name

* Fixing variable name

* WIP: Fixing hybrid mode

* Added tiles loaded from umaps.

* Fixed Missing includes

* Debug settings are still on.
Added extra points in tight curves for PID improvement.
Fixed Hybrid Mode, now moves in the direction of the next waypoint.
Reduced calculations in MotionPlanningStage.cpp

* Removed all debug helper functions

* Added FActorData classes to save and restore actor state for dormant actors. Edited all client - server calls to recognize the dormant state. FActorView now can hold null AActor* when is dormant. Large Maps now load tiled umaps instead of assets.

* Fixed dormant check for attached actors

* Expanded FActorData classes. Added world observer aware of dormant actors.

* Extended FActorData classes with walker data.

* Fixed missing includes

* Removed some with editor macros.

* Added virtual destructor to FActorData.

* Adding includes

* Fixed warnings. Added UNoWorldOffsetSceneComponent to have unreal actors unnafected by rebase.

* Fixed tile alingment.

* Added sensor data to restore the comunication.

* Added parent hierarchy consideration to sleep/wakeup of ghost/dormant actors.

* Fixed crash for sensor destruction.

* Changed InMemoryMap to generate more points if two waypoints are even further than a multiple of the limit.
Removed SetSimulatePhysics call when not needed.
Changed PID functions to inline.

* Fixed child-parent when waking up dormant actors. Added profiling traces. Fixed transformation of debug shapes in large maps.

* WIP: Relocating TM-controlled vehicles near the hero vehicle

* WIP: Vehicle teleportation near hero vehicle.
Missing a way to place them in a better order around the map.
Fixes non-deterministic seed setup.

* Fixes bug where the hero vehicle was also set to not have physics.

* Introduces parameter SetRespawnDormantVehicles
WIP Respawning dormant vehicles

* Fixed child-parent when waking up dormant actors. Added profiling traces. Fixed transformation of debug shapes in large maps.

* WIP: renaming FActorView to FCarlaActor. Changing calls related to FCarlaActor to acomodate new typing.

* Renaming FActorView to FCarlaActor. Changing calls related to FCarlaActor to acomodate new typing.

* Now traffic lights can be spawned without controllers inside junctions.

* Added functions to interface the FCarlaActor object with recorder. Started adapting recorder to new FCarlaActor object.

* Fixed missing includes.

* Updated CarlaRecorder and CarlaReplayer to use new FCarlaActor interface for vehicles, walkers and sensors.

* Fixed missing includes.

* Streaming level list now is persistant and can be saved for unreal to detect the dependencies.

* Enabled packages for large maps.

* Added Tiles to the MapPath.txt file. Removed debug warnings.

* WIP: Fix seed when setting deterministic mode.
WIP: Respawn actors when dormant
Added --hero and --respawn to spawn_npc.py

* Fixed traffic light trigger box placement in large maps.

* Fixed traffic light warning. Set speed limit for dormant actors to 30. Fixed semantic segmentation on streaming levels.

* added server bind for set_respawn_dormant_vehicles parameter

* TM doesn't destroy hero vehicle if idle.
ALSM stage will now update hero vehicles first.
MP stage will treat dormant vehicles like physics-less in hybrid mode.
Added fixed seed increment in deterministic mode.

* Fixed Traffic Light issue with recorder and dormant state. Removed old ActorView files.

* handles scenario where the hero vehicle does not exist

* Fixing line markings semantics

* Fixed recorder issues with traffic lights.

* Filter out the base large map as available map

* Added tile_stream_distance and actor_stream_distance to world settings.

* removed unused comments.

* Added IsActive functions. Dormant actors that cannot be respawned now remain dormant.

* Fixed missing includes.

* Fixed missing includes

* Review fixes. Missing includes.

* Fixed link errors.

* Fixes issue with Hybrid mode in async mode.
Introduces new set_boundaries_respawn_dormant_vehicles parameter.
Fixes issue when reloading map.

* WIP: New algorithm to move vehicles from dormant to active

* Finished new policy for teleporting vehicles.
Created new generate_traffic.py script, which works in sync mode.
Removed spawn_npc.py script.
General cleanup in Traffic Manager.

* Cleanup.

* Set FXAA antialiasing method

* Added automatic generation of speed limit signals.

* Adding some includes

* Fixed speed limit component crash when waking up.

* Fixed speed limit component wrong check.

* Fixed speed limit not reset when waking up actors.

* Fixed rare crash when traffic lights become dormant.

* Added speed limit to FActorData.

* Fixed generating waypoints when angle is tight

* Added warning when using asynchronous mode in generate traffic.
Lane changes now require more space.
Vehicle switching from no physics to physics in hybrid mode will have an initial speed.
Changed lower bound to 20 meters for respawn in Large Maps.

* WIP: Landmark anticipation using waypoints

* WIP: anticipation landmark

* Added lane check to landmark search

* Fixed excluded lanes

* WIP: landmark anticipation

* WIP: landmark anticipation

* Changes to constants for path buffer and max speed
Bug fix for landmarks that return nullptr
Included prints for debugging

* Updating constants
Changed collision radius check value
New max_distance for GetAllLandmakrsInDistance

* Incoming turns now make vehicles break

* Added variable radius when finding possible collisions
Added GetMap in InMemoryMap
Added TLMap in MPStage to cache TL
Finished GetLandmarkTargetVelocity function
General cleanup

* Fix merge error
Change constant for collision detection

* Improved lateral PID

* More PID improvements

* Improved longitudinal PID + minor fixes

* Tuned PID parameters

* Changed algorithm for respawn using GeoGrid IDs.

* Fix merge error

* Fixes intersection anticipation algorithm

* Removed print and debug helper init

Co-authored-by: doterop <daniel.oterop@gmail.com>
Co-authored-by: Axel <axellopez92@outlook.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Joel Moriana <joel.moriana@gmail.com>
Co-authored-by: Axel1092 <lopez1092@hotmail.com>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
Co-authored-by: Guillermo <glopez@cvc.uab.es>
2021-07-26 10:24:45 +02:00
Daniel Santos-Oliván d88f2ddd82 Added telemetry for vehicles to manual_control 2021-07-23 10:34:54 +02:00