2018-10-29 00:46:37 +08:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
2021-07-15 21:58:28 +08:00
|
|
|
# Copyright (c) 2021 Computer Vision Center (CVC) at the Universitat Autonoma de
|
2018-10-29 00:46:37 +08:00
|
|
|
# Barcelona (UAB).
|
|
|
|
#
|
|
|
|
# This work is licensed under the terms of the MIT license.
|
|
|
|
# For a copy, see <https://opensource.org/licenses/MIT>.
|
|
|
|
|
2021-07-15 21:58:28 +08:00
|
|
|
"""Example script to generate traffic in the simulation"""
|
2018-10-29 00:46:37 +08:00
|
|
|
|
|
|
|
import glob
|
|
|
|
import os
|
|
|
|
import sys
|
2019-10-04 21:00:00 +08:00
|
|
|
import time
|
2018-10-29 00:46:37 +08:00
|
|
|
|
|
|
|
try:
|
2019-03-29 02:15:13 +08:00
|
|
|
sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
|
2018-10-29 00:46:37 +08:00
|
|
|
sys.version_info.major,
|
|
|
|
sys.version_info.minor,
|
|
|
|
'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
|
|
|
|
except IndexError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
import carla
|
|
|
|
|
2020-05-07 00:16:21 +08:00
|
|
|
from carla import VehicleLightState as vls
|
|
|
|
|
2018-10-29 00:46:37 +08:00
|
|
|
import argparse
|
2019-04-04 01:07:59 +08:00
|
|
|
import logging
|
2020-09-22 21:20:52 +08:00
|
|
|
from numpy import random
|
2018-10-29 00:46:37 +08:00
|
|
|
|
2021-07-28 23:47:15 +08:00
|
|
|
def get_actor_blueprints(world, filter, generation):
|
|
|
|
bps = world.get_blueprint_library().filter(filter)
|
|
|
|
|
2021-07-30 21:04:58 +08:00
|
|
|
if generation.lower() == "all":
|
|
|
|
return bps
|
|
|
|
|
|
|
|
# If the filter returns only one bp, we assume that this one needed
|
|
|
|
# and therefore, we ignore the generation
|
|
|
|
if len(bps) == 1:
|
2021-07-28 23:47:15 +08:00
|
|
|
return bps
|
|
|
|
|
|
|
|
try:
|
|
|
|
int_generation = int(generation)
|
|
|
|
# Check if generation is in available generations
|
2023-06-17 02:41:06 +08:00
|
|
|
if int_generation in [1, 2, 3]:
|
2021-07-28 23:47:15 +08:00
|
|
|
bps = [x for x in bps if int(x.get_attribute('generation')) == int_generation]
|
|
|
|
return bps
|
|
|
|
else:
|
|
|
|
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
|
|
|
return []
|
|
|
|
except:
|
|
|
|
print(" Warning! Actor Generation is not valid. No actor will be spawned.")
|
|
|
|
return []
|
|
|
|
|
2018-10-29 00:46:37 +08:00
|
|
|
def main():
|
|
|
|
argparser = argparse.ArgumentParser(
|
|
|
|
description=__doc__)
|
|
|
|
argparser.add_argument(
|
|
|
|
'--host',
|
|
|
|
metavar='H',
|
|
|
|
default='127.0.0.1',
|
|
|
|
help='IP of the host server (default: 127.0.0.1)')
|
|
|
|
argparser.add_argument(
|
|
|
|
'-p', '--port',
|
|
|
|
metavar='P',
|
|
|
|
default=2000,
|
|
|
|
type=int,
|
|
|
|
help='TCP port to listen to (default: 2000)')
|
|
|
|
argparser.add_argument(
|
2018-10-30 19:00:00 +08:00
|
|
|
'-n', '--number-of-vehicles',
|
2018-10-29 00:46:37 +08:00
|
|
|
metavar='N',
|
2021-07-15 21:58:28 +08:00
|
|
|
default=30,
|
2018-10-29 00:46:37 +08:00
|
|
|
type=int,
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Number of vehicles (default: 30)')
|
2019-06-14 18:40:30 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'-w', '--number-of-walkers',
|
|
|
|
metavar='W',
|
2021-07-15 21:58:28 +08:00
|
|
|
default=10,
|
2019-06-14 18:40:30 +08:00
|
|
|
type=int,
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Number of walkers (default: 10)')
|
2018-11-03 19:28:14 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--safe',
|
|
|
|
action='store_true',
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Avoid spawning vehicles prone to accidents')
|
2019-04-18 18:16:36 +08:00
|
|
|
argparser.add_argument(
|
2019-07-01 22:23:47 +08:00
|
|
|
'--filterv',
|
2019-04-18 18:16:36 +08:00
|
|
|
metavar='PATTERN',
|
|
|
|
default='vehicle.*',
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Filter vehicle model (default: "vehicle.*")')
|
2021-07-28 23:47:15 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--generationv',
|
|
|
|
metavar='G',
|
|
|
|
default='All',
|
2021-07-29 22:37:03 +08:00
|
|
|
help='restrict to certain vehicle generation (values: "1","2","All" - default: "All")')
|
2019-07-01 22:23:47 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--filterw',
|
|
|
|
metavar='PATTERN',
|
|
|
|
default='walker.pedestrian.*',
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Filter pedestrian type (default: "walker.pedestrian.*")')
|
2021-07-28 23:47:15 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--generationw',
|
|
|
|
metavar='G',
|
|
|
|
default='2',
|
|
|
|
help='restrict to certain pedestrian generation (values: "1","2","All" - default: "2")')
|
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-29 02:58:13 +08:00
|
|
|
argparser.add_argument(
|
2020-04-16 17:56:36 +08:00
|
|
|
'--tm-port',
|
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-29 02:58:13 +08:00
|
|
|
metavar='P',
|
|
|
|
default=8000,
|
|
|
|
type=int,
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Port to communicate with TM (default: 8000)')
|
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-29 02:58:13 +08:00
|
|
|
argparser.add_argument(
|
2021-07-30 06:20:12 +08:00
|
|
|
'--asynch',
|
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-29 02:58:13 +08:00
|
|
|
action='store_true',
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Activate asynchronous mode execution')
|
2020-03-31 04:53:29 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--hybrid',
|
|
|
|
action='store_true',
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Activate hybrid mode for Traffic Manager')
|
2020-09-22 21:20:52 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'-s', '--seed',
|
|
|
|
metavar='S',
|
|
|
|
type=int,
|
2021-07-15 21:58:28 +08:00
|
|
|
help='Set random device seed and deterministic mode for Traffic Manager')
|
2021-09-14 16:41:56 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--seedw',
|
|
|
|
metavar='S',
|
|
|
|
default=0,
|
|
|
|
type=int,
|
|
|
|
help='Set the seed for pedestrians module')
|
2020-05-07 00:16:21 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--car-lights-on',
|
|
|
|
action='store_true',
|
|
|
|
default=False,
|
2021-10-28 22:09:14 +08:00
|
|
|
help='Enable automatic car light management')
|
2021-07-15 21:58:28 +08:00
|
|
|
argparser.add_argument(
|
|
|
|
'--hero',
|
|
|
|
action='store_true',
|
|
|
|
default=False,
|
|
|
|
help='Set one of the vehicles as hero')
|
|
|
|
argparser.add_argument(
|
|
|
|
'--respawn',
|
|
|
|
action='store_true',
|
|
|
|
default=False,
|
|
|
|
help='Automatically respawn dormant vehicles (only in large maps)')
|
|
|
|
argparser.add_argument(
|
|
|
|
'--no-rendering',
|
|
|
|
action='store_true',
|
|
|
|
default=False,
|
|
|
|
help='Activate no rendering mode')
|
|
|
|
|
2018-10-29 00:46:37 +08:00
|
|
|
args = argparser.parse_args()
|
|
|
|
|
2019-04-04 01:07:59 +08:00
|
|
|
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
|
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
vehicles_list = []
|
2019-07-01 22:23:47 +08:00
|
|
|
walkers_list = []
|
|
|
|
all_id = []
|
2019-02-24 03:03:58 +08:00
|
|
|
client = carla.Client(args.host, args.port)
|
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-29 02:58:13 +08:00
|
|
|
client.set_timeout(10.0)
|
2020-04-12 10:06:58 +08:00
|
|
|
synchronous_master = False
|
2020-09-22 21:20:52 +08:00
|
|
|
random.seed(args.seed if args.seed is not None else int(time.time()))
|
2018-10-29 00:46:37 +08:00
|
|
|
|
|
|
|
try:
|
2020-03-31 04:53:29 +08:00
|
|
|
world = client.get_world()
|
|
|
|
|
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-29 02:58:13 +08:00
|
|
|
traffic_manager = client.get_trafficmanager(args.tm_port)
|
2021-07-15 21:58:28 +08:00
|
|
|
traffic_manager.set_global_distance_to_leading_vehicle(2.5)
|
|
|
|
if args.respawn:
|
|
|
|
traffic_manager.set_respawn_dormant_vehicles(True)
|
2020-03-31 04:53:29 +08:00
|
|
|
if args.hybrid:
|
|
|
|
traffic_manager.set_hybrid_physics_mode(True)
|
2021-07-15 21:58:28 +08:00
|
|
|
traffic_manager.set_hybrid_physics_radius(70.0)
|
2020-09-22 21:20:52 +08:00
|
|
|
if args.seed is not None:
|
|
|
|
traffic_manager.set_random_device_seed(args.seed)
|
2020-03-31 04:53:29 +08:00
|
|
|
|
2021-07-15 21:58:28 +08:00
|
|
|
settings = world.get_settings()
|
2021-07-30 06:20:12 +08:00
|
|
|
if not args.asynch:
|
2020-03-09 21:04:35 +08:00
|
|
|
traffic_manager.set_synchronous_mode(True)
|
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-29 02:58:13 +08:00
|
|
|
if not settings.synchronous_mode:
|
|
|
|
synchronous_master = True
|
|
|
|
settings.synchronous_mode = True
|
|
|
|
settings.fixed_delta_seconds = 0.05
|
|
|
|
else:
|
|
|
|
synchronous_master = False
|
2021-07-15 21:58:28 +08:00
|
|
|
else:
|
|
|
|
print("You are currently in asynchronous mode. If this is a traffic simulation, \
|
|
|
|
you could experience some issues. If it's not working correctly, switch to synchronous \
|
|
|
|
mode by using traffic_manager.set_synchronous_mode(True)")
|
|
|
|
|
|
|
|
if args.no_rendering:
|
|
|
|
settings.no_rendering_mode = True
|
|
|
|
world.apply_settings(settings)
|
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-29 02:58:13 +08:00
|
|
|
|
2021-07-28 23:47:15 +08:00
|
|
|
blueprints = get_actor_blueprints(world, args.filterv, args.generationv)
|
2023-04-21 18:58:13 +08:00
|
|
|
if not blueprints:
|
|
|
|
raise ValueError("Couldn't find any vehicles with the specified filters")
|
2021-07-28 23:47:15 +08:00
|
|
|
blueprintsWalkers = get_actor_blueprints(world, args.filterw, args.generationw)
|
2023-04-21 18:58:13 +08:00
|
|
|
if not blueprintsWalkers:
|
|
|
|
raise ValueError("Couldn't find any walkers with the specified filters")
|
2018-10-29 00:46:37 +08:00
|
|
|
|
2018-11-03 19:28:14 +08:00
|
|
|
if args.safe:
|
2022-04-12 21:57:54 +08:00
|
|
|
blueprints = [x for x in blueprints if x.get_attribute('base_type') == 'car']
|
2018-11-03 19:28:14 +08:00
|
|
|
|
2020-09-22 21:20:52 +08:00
|
|
|
blueprints = sorted(blueprints, key=lambda bp: bp.id)
|
|
|
|
|
2019-04-04 01:07:59 +08:00
|
|
|
spawn_points = world.get_map().get_spawn_points()
|
|
|
|
number_of_spawn_points = len(spawn_points)
|
|
|
|
|
|
|
|
if args.number_of_vehicles < number_of_spawn_points:
|
|
|
|
random.shuffle(spawn_points)
|
|
|
|
elif args.number_of_vehicles > number_of_spawn_points:
|
|
|
|
msg = 'requested %d vehicles, but could only find %d spawn points'
|
|
|
|
logging.warning(msg, args.number_of_vehicles, number_of_spawn_points)
|
|
|
|
args.number_of_vehicles = number_of_spawn_points
|
|
|
|
|
|
|
|
# @todo cannot import these directly.
|
|
|
|
SpawnActor = carla.command.SpawnActor
|
|
|
|
SetAutopilot = carla.command.SetAutopilot
|
|
|
|
FutureActor = carla.command.FutureActor
|
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
# --------------
|
2019-06-21 16:55:32 +08:00
|
|
|
# Spawn vehicles
|
2019-06-26 20:13:38 +08:00
|
|
|
# --------------
|
2019-04-04 01:07:59 +08:00
|
|
|
batch = []
|
2021-07-15 21:58:28 +08:00
|
|
|
hero = args.hero
|
2019-04-04 01:07:59 +08:00
|
|
|
for n, transform in enumerate(spawn_points):
|
|
|
|
if n >= args.number_of_vehicles:
|
|
|
|
break
|
2018-10-29 00:46:37 +08:00
|
|
|
blueprint = random.choice(blueprints)
|
|
|
|
if blueprint.has_attribute('color'):
|
|
|
|
color = random.choice(blueprint.get_attribute('color').recommended_values)
|
|
|
|
blueprint.set_attribute('color', color)
|
2019-06-11 23:27:02 +08:00
|
|
|
if blueprint.has_attribute('driver_id'):
|
|
|
|
driver_id = random.choice(blueprint.get_attribute('driver_id').recommended_values)
|
|
|
|
blueprint.set_attribute('driver_id', driver_id)
|
2021-07-15 21:58:28 +08:00
|
|
|
if hero:
|
|
|
|
blueprint.set_attribute('role_name', 'hero')
|
|
|
|
hero = False
|
|
|
|
else:
|
|
|
|
blueprint.set_attribute('role_name', 'autopilot')
|
2020-05-07 00:16:21 +08:00
|
|
|
|
|
|
|
# spawn the cars and set their autopilot and light state all together
|
|
|
|
batch.append(SpawnActor(blueprint, transform)
|
2021-10-28 22:09:14 +08:00
|
|
|
.then(SetAutopilot(FutureActor, True, traffic_manager.get_port())))
|
2018-10-29 22:00:46 +08:00
|
|
|
|
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-29 02:58:13 +08:00
|
|
|
for response in client.apply_batch_sync(batch, synchronous_master):
|
2019-04-04 01:07:59 +08:00
|
|
|
if response.error:
|
|
|
|
logging.error(response.error)
|
|
|
|
else:
|
2019-06-26 20:13:38 +08:00
|
|
|
vehicles_list.append(response.actor_id)
|
2018-10-30 19:00:00 +08:00
|
|
|
|
2021-10-28 22:09:14 +08:00
|
|
|
# Set automatic vehicle lights update if specified
|
|
|
|
if args.car_lights_on:
|
|
|
|
all_vehicle_actors = world.get_actors(vehicles_list)
|
|
|
|
for actor in all_vehicle_actors:
|
2021-11-03 18:06:14 +08:00
|
|
|
traffic_manager.update_vehicle_lights(actor, True)
|
2021-10-28 22:09:14 +08:00
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
# -------------
|
2019-06-14 18:40:30 +08:00
|
|
|
# Spawn Walkers
|
2019-06-26 20:13:38 +08:00
|
|
|
# -------------
|
2019-11-20 17:59:00 +08:00
|
|
|
# some settings
|
2019-11-23 01:49:02 +08:00
|
|
|
percentagePedestriansRunning = 0.0 # how many pedestrians will run
|
|
|
|
percentagePedestriansCrossing = 0.0 # how many pedestrians will walk through the road
|
2021-09-14 16:41:56 +08:00
|
|
|
if args.seedw:
|
|
|
|
world.set_pedestrians_seed(args.seedw)
|
|
|
|
random.seed(args.seedw)
|
2019-06-26 20:13:38 +08:00
|
|
|
# 1. take all the random locations to spawn
|
2019-06-14 18:40:30 +08:00
|
|
|
spawn_points = []
|
|
|
|
for i in range(args.number_of_walkers):
|
|
|
|
spawn_point = carla.Transform()
|
2019-07-04 22:52:54 +08:00
|
|
|
loc = world.get_random_location_from_navigation()
|
|
|
|
if (loc != None):
|
|
|
|
spawn_point.location = loc
|
2019-06-26 20:13:38 +08:00
|
|
|
spawn_points.append(spawn_point)
|
|
|
|
# 2. we spawn the walker object
|
2019-07-02 22:06:35 +08:00
|
|
|
batch = []
|
2019-10-04 21:00:00 +08:00
|
|
|
walker_speed = []
|
2019-06-14 18:40:30 +08:00
|
|
|
for spawn_point in spawn_points:
|
2019-07-01 22:23:47 +08:00
|
|
|
walker_bp = random.choice(blueprintsWalkers)
|
2020-02-08 00:17:18 +08:00
|
|
|
# set as not invincible
|
2024-07-31 19:10:11 +08:00
|
|
|
probability = random.randint(0,100 + 1);
|
2019-06-21 16:55:32 +08:00
|
|
|
if walker_bp.has_attribute('is_invincible'):
|
|
|
|
walker_bp.set_attribute('is_invincible', 'false')
|
2024-07-31 19:10:11 +08:00
|
|
|
if walker_bp.has_attribute('can_use_wheelchair') and probability < 11:
|
|
|
|
walker_bp.set_attribute('use_wheelchair', 'true')
|
2019-10-04 21:00:00 +08:00
|
|
|
# set the max speed
|
|
|
|
if walker_bp.has_attribute('speed'):
|
2019-11-20 17:59:00 +08:00
|
|
|
if (random.random() > percentagePedestriansRunning):
|
2019-10-09 00:30:44 +08:00
|
|
|
# walking
|
|
|
|
walker_speed.append(walker_bp.get_attribute('speed').recommended_values[1])
|
|
|
|
else:
|
|
|
|
# running
|
|
|
|
walker_speed.append(walker_bp.get_attribute('speed').recommended_values[2])
|
2019-10-04 21:00:00 +08:00
|
|
|
else:
|
|
|
|
print("Walker has no speed")
|
|
|
|
walker_speed.append(0.0)
|
2019-06-14 18:40:30 +08:00
|
|
|
batch.append(SpawnActor(walker_bp, spawn_point))
|
|
|
|
results = client.apply_batch_sync(batch, True)
|
2019-10-04 21:00:00 +08:00
|
|
|
walker_speed2 = []
|
2019-06-14 18:40:30 +08:00
|
|
|
for i in range(len(results)):
|
|
|
|
if results[i].error:
|
|
|
|
logging.error(results[i].error)
|
|
|
|
else:
|
2019-07-02 22:06:35 +08:00
|
|
|
walkers_list.append({"id": results[i].actor_id})
|
2019-10-04 21:00:00 +08:00
|
|
|
walker_speed2.append(walker_speed[i])
|
|
|
|
walker_speed = walker_speed2
|
2019-06-26 20:13:38 +08:00
|
|
|
# 3. we spawn the walker controller
|
2019-06-14 18:40:30 +08:00
|
|
|
batch = []
|
|
|
|
walker_controller_bp = world.get_blueprint_library().find('controller.ai.walker')
|
2019-06-26 20:13:38 +08:00
|
|
|
for i in range(len(walkers_list)):
|
|
|
|
batch.append(SpawnActor(walker_controller_bp, carla.Transform(), walkers_list[i]["id"]))
|
2019-06-14 18:40:30 +08:00
|
|
|
results = client.apply_batch_sync(batch, True)
|
|
|
|
for i in range(len(results)):
|
|
|
|
if results[i].error:
|
|
|
|
logging.error(results[i].error)
|
|
|
|
else:
|
2019-06-26 20:13:38 +08:00
|
|
|
walkers_list[i]["con"] = results[i].actor_id
|
2021-07-15 21:58:28 +08:00
|
|
|
# 4. we put together the walkers and controllers id to get the objects from their id
|
2019-06-26 20:13:38 +08:00
|
|
|
for i in range(len(walkers_list)):
|
|
|
|
all_id.append(walkers_list[i]["con"])
|
|
|
|
all_id.append(walkers_list[i]["id"])
|
2019-06-14 18:40:30 +08:00
|
|
|
all_actors = world.get_actors(all_id)
|
2019-07-03 21:51:26 +08:00
|
|
|
|
|
|
|
# wait for a tick to ensure client receives the last transform of the walkers we have just created
|
2021-07-30 06:20:12 +08:00
|
|
|
if args.asynch or not synchronous_master:
|
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-29 02:58:13 +08:00
|
|
|
world.wait_for_tick()
|
|
|
|
else:
|
|
|
|
world.tick()
|
2019-07-03 21:51:26 +08:00
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
# 5. initialize each controller and set target to walk to (list is [controler, actor, controller, actor ...])
|
2019-10-04 21:00:00 +08:00
|
|
|
# set how many pedestrians can cross the road
|
2019-11-20 17:59:00 +08:00
|
|
|
world.set_pedestrians_cross_factor(percentagePedestriansCrossing)
|
2019-06-19 16:22:27 +08:00
|
|
|
for i in range(0, len(all_id), 2):
|
2019-06-27 17:23:35 +08:00
|
|
|
# start walker
|
|
|
|
all_actors[i].start()
|
2019-06-26 20:13:38 +08:00
|
|
|
# set walk to random point
|
2019-06-27 17:23:35 +08:00
|
|
|
all_actors[i].go_to_location(world.get_random_location_from_navigation())
|
2019-10-04 21:00:00 +08:00
|
|
|
# max speed
|
|
|
|
all_actors[i].set_max_speed(float(walker_speed[int(i/2)]))
|
2019-06-14 18:40:30 +08:00
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
print('spawned %d vehicles and %d walkers, press Ctrl+C to exit.' % (len(vehicles_list), len(walkers_list)))
|
2019-06-14 18:40:30 +08:00
|
|
|
|
2021-07-15 21:58:28 +08:00
|
|
|
# Example of how to use Traffic Manager parameters
|
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-29 02:58:13 +08:00
|
|
|
traffic_manager.global_percentage_speed_difference(30.0)
|
|
|
|
|
2018-10-30 19:00:00 +08:00
|
|
|
while True:
|
2021-07-30 06:20:12 +08:00
|
|
|
if not args.asynch and synchronous_master:
|
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-29 02:58:13 +08:00
|
|
|
world.tick()
|
|
|
|
else:
|
|
|
|
world.wait_for_tick()
|
2018-10-29 00:46:37 +08:00
|
|
|
|
|
|
|
finally:
|
|
|
|
|
2021-07-30 06:20:12 +08:00
|
|
|
if not args.asynch and synchronous_master:
|
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-29 02:58:13 +08:00
|
|
|
settings = world.get_settings()
|
|
|
|
settings.synchronous_mode = False
|
2021-07-15 21:58:28 +08:00
|
|
|
settings.no_rendering_mode = False
|
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-29 02:58:13 +08:00
|
|
|
settings.fixed_delta_seconds = None
|
|
|
|
world.apply_settings(settings)
|
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
print('\ndestroying %d vehicles' % len(vehicles_list))
|
|
|
|
client.apply_batch([carla.command.DestroyActor(x) for x in vehicles_list])
|
2018-10-29 00:46:37 +08:00
|
|
|
|
2019-10-04 21:00:00 +08:00
|
|
|
# stop walker controllers (list is [controller, actor, controller, actor ...])
|
2019-06-19 16:22:27 +08:00
|
|
|
for i in range(0, len(all_id), 2):
|
|
|
|
all_actors[i].stop()
|
|
|
|
|
2019-06-26 20:13:38 +08:00
|
|
|
print('\ndestroying %d walkers' % len(walkers_list))
|
2019-06-14 18:40:30 +08:00
|
|
|
client.apply_batch([carla.command.DestroyActor(x) for x in all_id])
|
2019-11-20 17:59:00 +08:00
|
|
|
|
2019-10-04 21:00:00 +08:00
|
|
|
time.sleep(0.5)
|
2019-06-21 18:26:00 +08:00
|
|
|
|
2018-10-29 00:46:37 +08:00
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
|
|
try:
|
|
|
|
main()
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
pass
|
|
|
|
finally:
|
|
|
|
print('\ndone.')
|