Commit Graph

46 Commits

Author SHA1 Message Date
Jacopo Bartiromo eacda536b4 Added Ambulance and Firetruck as unsafe vehicles in spawn_npc.py 2021-03-02 13:01:58 +01:00
Jacopo Bartiromo e7ff12fa78 Changes default behavior for OSM parameter in TM 2020-09-23 20:43:30 +02:00
Jacopo Bartiromo 7360436c9d
Determinism for Traffic Manager (#3333)
* Check for determinism

* Per-vehicle random device

* Parameterised random device seed.

* Changing next waypoint selection logic
to use bucketing random device sample.

Arranging next waypoint selections right to left.

* Change to numpy's random lib

* Sorting blueprints to ensure determinism

* New method for determinism

* ResetAllTrafficLight now works in sync mode.

* Moving recorder stuff to engine module

* Fixed recorder for traffic lights in standalone mode.

* Added check to prevent traffic light from updating during replay.

* Updating old traffic lights to use the traffic light component.

* Moved recorder to posttick.

* Small fix to elapse time function.

* Added reset group function to API.

* Merge with traffic_manager/determinism_check

* Changes in TL reset
Option to save to file for recorder script

* Added automatic signal match with OpenDRIVE.

* Fixed error that caused traffic light actors to be missing in client side.

* Added new frozen behavior.

* Updated documentation and changelog

* Updated ContentVersions.txt

* Review changes.

* fixes merge error

* fixes merge

* Update build_windows.md

Added info about command execution that toke me many time to find out

* Update build_windows.md

Updated as requested in pull request review

* Running Carla when choosing a) deb Carla install

This fixes a minor error in the documentation regarding running carla, if the deb installation was choosen.

* Fix for traffic manager freezing upon map change

* attempt to change sys clock to sim clock

* Remove manual unlock of mutex

* fixing merge error

* Changelog and review fixes

Co-authored-by: Praveen Kumar <pravinblaze@hotmail.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Axel1092 <axellopez92@outlook.com>
Co-authored-by: Axel1092 <35765780+Axel1092@users.noreply.github.com>
Co-authored-by: Néstor Sabater <web.nsabater@gmail.com>
Co-authored-by: ll7 <32880741+ll7@users.noreply.github.com>
2020-09-22 15:20:52 +02:00
Praveen Kumar f3d357d7d0 Implemented vehicle removal in OSM mode. 2020-09-18 14:55:14 +02:00
Marc Garcia Puig 923960751f Added batch command SetVehicleLightState 2020-06-08 10:49:31 +02:00
Jacopo Bartiromo 0b0ca7ea4c fix flag from --tm_port to --tm-port (guideline) 2020-04-16 12:36:53 +02:00
doterop 5d177eb4bb set_autopilot now uses the TM port instead of the TM object 2020-04-16 12:36:53 +02:00
shiba24 af5bf9fb99 Fix variable definition
Before this commit, `synchronous_master` is defined inside
try-block so if any error happens and args.sync is true,
"ReferenceError: `synchronous_master` is not defined" is raised
in the finally-block.
2020-04-13 18:26:24 +02:00
doterop a108bf5b3b Updated default value for TM. Now should be retrocompatible. 2020-04-13 13:06:38 +02:00
doterop 64cc616938 Added changes to SetAutopilot BatchCommand 2020-04-13 13:06:38 +02:00
Jacopo Bartiromo b839cf3419
Minor changes to Traffic Manager (#2708)
* removes vertical offset
changes in radius
radius increasing with higher velocity

* changes to collision detection policy

* introducing radius as parameter
removed radius increasing with velocity
2020-04-09 09:56:04 +02:00
Jacopo Bartiromo 151e38ce8d
Hybrid mode for Traffic Manager (#2674)
* Improved braking, collision negotiation.

* Improved braking algorithm for smoother approach
to lead vehicle.

* Implemented smoother path boundary modification
to aid smoother braking.

* Re-worked collision negotiation algorithm.

* Improved collision candidate filtering.

* Added safe-guard in case of vehicle removal
in collision stage.

* Used local variable for heavily referenced object
in localization stage.

* Implemented vector relative velocities
for motion planner's collision consideration.

* Moved collision candidate sorting logic
from collision stage to localization stage.

* Sorting collision candidates using their ids
instead of shared pointers to avoid memory corruption.

* Improved conditions for collision consideration
for greater efficiency.

* Removed fps limit in async mode.

* Hybrid physics mode

* Introduced hybrid physics mode parameter
* Implemented physics independent velocity computation
* Modified localization stage to be physics agnostic

* Fixing velocity compute interval in sync and async mode.
Made motion planner stage work with internally computed velocities.

* Made collision stage agnostic to actor physics

* Sampling waypoint buffer for teleportation window

* WIP: Teleportation changes

* WIP2: Teleportation changes

* Fixes waypoint window and vehicle spawning

* hotfix to performance benchmark

* comment out debugs

* changelog

* fixes collision bug

* fixes package error and out_of_range bug

* changes after review

* Left & Right Transit of a lane: Waypoint mapping

Co-authored-by: Praveen Kumar <pravinblaze@hotmail.com>
Co-authored-by: Soumyadeep <soumyadeep.dhar@kpit.com>
2020-03-30 22:53:29 +02:00
Praveen Kumar e32e6bff93 Removing debug statements 2020-03-09 16:35:24 +01:00
Praveen Kumar e55d5750e9 Sychronous mode bug resolution 2020-03-09 16:35:24 +01:00
Praveen Kumar 4f21f94ac0 Synchronous mode bug demonstration 2020-03-09 16:35:24 +01:00
Sekhar Barua 6f892cff57 Changes to add Global distance to Leading Vehicle 2020-03-06 16:06:34 +01:00
doterop 85b192530d
Doterop/traffic manager (#2468)
* Initial implementation of t.m. performance script

* Remove redundant getLocation() calls

* Demo for inter-client communication via Carla server

* WIP: To do: For client usage needed to be changed.

* Instead or client instance episodeProxy is passed to TM

* Instead or client instance episodeProxy is passed to TM

* parmeter improvements (walkers,cars,signs,lights)

* adding section id to map setup

* fix manual_control to reload car with autopilot on

* Instead of client instance episodeProxy is passed to TM.

* WIP: Only added vehicle register via RPC server / client call in TM to
local instance from remote instance. Similarly other APIs we need to
added.

* Added all TM APIs

* carla client now can provide TM instance if required.

* While getting TM instance if server given data is not valid new TM
instace is created. Need to decide what to do with earlier registed
vehicle with previous TM.

* Updated with HealthCheckRemoteTM() function to check TM server status
instead of ResetAllTrafficLights() for any new user client.

* Dynamic port selection added to TM server instace (in case of multiple
TM serve run, it required).

* Fixed change map error

* If registered TM at carla server is not present then remote TM should be
freed and new local TM instance is created.

* Created Process for Local TM.
It cheaks with total registered vehicles in it, if no register vehicles
for 5 sec, it closes it self.

In python spawn_npc.py Client Timeout set to 10 sec. as creating Process
is system dependent call and takes time.

User has to unregister vehicle before destroying it (if activated with
TM). Also neet to check TM unregister function to remove vehicles from
register list.

* Fix for collision ignore bug

* Update TM exit function check to compare registered vehicles with world
actors that if any valid vehicle present cointinue to run the TM else
stop.

* Print removal

* Splited work of main for loop in ApplyBatchCommandsSync

* WIP! Trying to get client directly

* WIP! Trying to access episode properly without getting it from TM ctr

* Changes to BatchControlStage for Sync Mode
Changes to Parameters for Synch Mode

* Added port support for TM. Multiclient MultiTM

* Added additions for RPC Synchronous Tick to TM.
Error handeling and code organization.

* Exposed API for Sync Mode

* TMServer notifies Server that it is gonna be destroyed

* Exposed Python API for Sync Mode

* Add TM as separate process and synchronous tick calls

* SetSynchronousModeTimeOutInMiliSecond method added

* TM shutsdown and informs to the connected clients

* WIP! Map change issues again

* Updated Traffic Manager for:
1) Multi-client, Multi-TM (as required) can be reistered to server.
2) TM is not a PROCESS separated from the user-client.
3) TM will exit if user-client exit.
4) If server closed, TM also get closed by catching runtime err.

* Server side changes ...

* Fixed possible stall on TM destruction

* fixing collision stage + cybertruck not safe

* Merge branch 'master' into 'soumyadeep/traffic_manager'

* WIP! Disconnection of server has to be properly handled by clients

* format update

* Fix bug unsignalized junctions

* # WARNING: head commit changed in the meantime

Merge branch 'doterop/traffic_manager' into soumyadeep/traffic_manager
Updates for Syncronized Tick.

* Updated runtime exception in Episode for smooth exit if TN server closed
for any other user client.

* Better Exception handeling

* Merged with jackbart94/tm_reduce_getloc_calls

* Merged soumyadeep/traffic_manager.
Removed World getter and recovered Episode as a parameter of TM ctr.
Fixed syntax errors.

* Initial implementation of t.m. performance script

* Remove redundant getLocation() calls

* Demo for inter-client communication via Carla server

* WIP: To do: For client usage needed to be changed.

* Instead or client instance episodeProxy is passed to TM

* Instead or client instance episodeProxy is passed to TM

* parmeter improvements (walkers,cars,signs,lights)

* fix manual_control to reload car with autopilot on

* Instead of client instance episodeProxy is passed to TM.

* WIP: Only added vehicle register via RPC server / client call in TM to
local instance from remote instance. Similarly other APIs we need to
added.

* Added all TM APIs

* carla client now can provide TM instance if required.

* While getting TM instance if server given data is not valid new TM
instace is created. Need to decide what to do with earlier registed
vehicle with previous TM.

* Updated with HealthCheckRemoteTM() function to check TM server status
instead of ResetAllTrafficLights() for any new user client.

* Dynamic port selection added to TM server instace (in case of multiple
TM serve run, it required).

* Fixed change map error

* If registered TM at carla server is not present then remote TM should be
freed and new local TM instance is created.

* Created Process for Local TM.
It cheaks with total registered vehicles in it, if no register vehicles
for 5 sec, it closes it self.

In python spawn_npc.py Client Timeout set to 10 sec. as creating Process
is system dependent call and takes time.

User has to unregister vehicle before destroying it (if activated with
TM). Also neet to check TM unregister function to remove vehicles from
register list.

* Fix for collision ignore bug

* Update TM exit function check to compare registered vehicles with world
actors that if any valid vehicle present cointinue to run the TM else
stop.

* Splited work of main for loop in ApplyBatchCommandsSync

* WIP! Trying to get client directly

* WIP! Trying to access episode properly without getting it from TM ctr

* Changes to BatchControlStage for Sync Mode
Changes to Parameters for Synch Mode

* Added port support for TM. Multiclient MultiTM

* Added additions for RPC Synchronous Tick to TM.
Error handeling and code organization.

* Exposed API for Sync Mode

* TMServer notifies Server that it is gonna be destroyed

* Exposed Python API for Sync Mode

* Add TM as separate process and synchronous tick calls

* SetSynchronousModeTimeOutInMiliSecond method added

* TM shutsdown and informs to the connected clients

* WIP! Map change issues again

* Updated Traffic Manager for:
1) Multi-client, Multi-TM (as required) can be reistered to server.
2) TM is not a PROCESS separated from the user-client.
3) TM will exit if user-client exit.
4) If server closed, TM also get closed by catching runtime err.

* Fixed possible stall on TM destruction

* fixing collision stage + cybertruck not safe

* Merge branch 'master' into 'soumyadeep/traffic_manager'

* WIP! Disconnection of server has to be properly handled by clients

* format update

* Fix bug unsignalized junctions

* # WARNING: head commit changed in the meantime

Merge branch 'doterop/traffic_manager' into soumyadeep/traffic_manager
Updates for Syncronized Tick.

* Updated runtime exception in Episode for smooth exit if TN server closed
for any other user client.

* Better Exception handeling

* Merged with jackbart94/tm_reduce_getloc_calls

* Merged soumyadeep/traffic_manager.
Removed World getter and recovered Episode as a parameter of TM ctr.
Fixed syntax errors.

* Rebased with master

* Changes after rebase

* Solving tab errors

* Updated Changelog

* Removing Destroyed vehicle's from TM Server

* Fixed uint compatibility with Windows

* Merged soumyadeep/traffic_manager. Discarded destroyed actors

* -Removed unnecessary files

* restoring docs from rebase

* Fix windows compilation

* refactoring stage-related code

* more code refactoring

* When map change the simulation doesn't throw exception anymore

* Fixed incorrect episode

* Fixed map change and TM remote detached thread destruction

* Syntax and comments fixes

* Missed change on previous commit

* Fixed compile minor compile issue

* Cleaned and fixed some issues after merge

* fix to sync localization bugs
modified PID parameters
revamping spawn_npc

* deleted tm_spawn_npc

* fixes spawn error in sync mode

* Redoing TM sync logic

* finished performance benchmark for tm

* deprecated wrapped methods:
register_vehicle
unregister_vehicle

* New TM management

* Fixed sync mode on TM

* Cleaned TM of prints and unussed functions

* collision stage checks for (0,0,0) to ignore.
in memory map has an # between keys to avoid possible mixup.
fixed spawn_npc with new sync mode

* changelog

* added more connection retries

* fixed changelog + comments (see reviewable)

* Moved socket include's to single header

* Added missing line at the end of the file

* Fixed syntax errors

* final commit

* Minor correction in comment

* update copyright year to 2020 + removed break

* restoring unwanted changes

* patch for smoke test error

* Removed "todo" for pylint

Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
Co-authored-by: Praveen Kumar <35625166+pravinblaze@users.noreply.github.com>
Co-authored-by: Soumyadeep <soumyadeep.dhar@kpit.com>
Co-authored-by: joel-mb <joel.moriana@gmail.com>
Co-authored-by: Sekhar Barua <58979936+sekhar2912@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-28 19:58:13 +01:00
cassfalg 3f6021dff3
Add german / international keyboard support to manual_control.py (#1984)
* changed next sensor key from backquote to n

* fixed typo in spawn_npc.py

* reenabled backquote to switch sensor

Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-07 17:17:18 +01:00
bernatx 780f0b0b75 Fixes from PR. Added distance to check for vehicles. 2019-12-11 12:07:59 +01:00
bernatx 41f47ed8a9 Fixes from Pull Request review 2019-12-11 12:07:59 +01:00
bernatx 51a7bf8588 Adding 'cross' zones for the pedestrians 2019-12-11 12:07:59 +01:00
bernatx 0ee3dd0305 Unblocking walkers when they are blocked by something 2019-12-11 12:07:59 +01:00
bernatx 5b7fcbd689 Controlling how many pedestrians can cross the road 2019-12-11 12:07:59 +01:00
Xavi c5465c250f Change default pedestrian speed (#1924)
* Change default pedestrian speed

* Changing a comment
2019-09-06 17:14:35 +02:00
bernatx 8886422a78 Fix a comment about default filter 2019-07-08 18:42:45 +02:00
bernatx cd91e25fd4 Protect script in case navigation mesh binary is not there 2019-07-08 18:42:45 +02:00
bernatx e0cdc80cc1 Changes from PR 2019-07-08 18:42:45 +02:00
bernatx 07f1601689 Little changes in script 2019-07-08 18:42:45 +02:00
bernatx b652e67295 Fixes from PR 2019-07-08 18:42:45 +02:00
bernatx 29027cde4c Fixing unused variable in script 2019-07-08 18:42:45 +02:00
bernatx 0e91e19c32 Remove the location argument when calling start() 2019-07-08 18:42:45 +02:00
bernatx 8ce3daadbe Commenting and renaming some variables to 'spawn_npc' script 2019-07-08 18:42:45 +02:00
bernatx 32358b069e Prettifying files 2019-07-08 18:42:45 +02:00
bernatx 65fb808f9b Set pedestrians as not invincibles from script 2019-07-08 18:42:45 +02:00
bernatx 38fef38f62 Added more checks on code, and removed some logs 2019-07-08 18:42:45 +02:00
bernatx a3b7594ef8 Added function to remove walkers 2019-07-08 18:42:45 +02:00
bernatx 23e0243e44 Removing script 2019-07-08 18:42:45 +02:00
bernatx 8a6ab631f1 Fixes from PR 2019-07-08 18:42:45 +02:00
Manish 4e333b44bd Merged spawn pedestrians in spawn npc 2019-07-08 18:42:45 +02:00
nsubiron 96b8cc1265 Randomize drivers in the Python examples 2019-06-13 18:32:04 +02:00
bernatx f4beec9407 Walker animations added to recorder
Wheels also rotate using inertia of movement only
2019-04-26 17:15:37 +02:00
nsubiron 2a50786c62 Update spawn_npc.py to use batch commands 2019-04-04 14:42:28 +02:00
nsubiron 5fd463d7aa Remove CarlaCola truck from the list of safe vehicles 2019-03-30 14:36:44 +01:00
nsubiron 30cc42686b Update license year 2019-03-30 14:29:57 +01:00
nsubiron b10484f5c6 Fix path to egg file 2019-03-30 14:29:57 +01:00
nsubiron e683007aeb Reorganize PythonAPI folder 2019-03-30 14:29:57 +01:00