* 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>
* Destroy actor when the waypoint buffer is not updated
The actor is destroyed when the buffer is not updated in a given time.
* Add elapsed time to avoid destroying multiple vehicles at the same time.
* Avoid reseting waypoint buffer when a vehicle is destroyed
* Geodesic boundaries are only computed once during collision stage
* Destroying vehicles with simulation time instead of world clock
* Fix slow down issues when destroying actors.
Avoid processing destroyed vehicles as unregistered actors.
* Remove debugging messages and code formatting.
* Remove false junctions and fix the building of segments maps
* Extend SimpleWaypoint to allow setting if it belongs to a junction
* Update TrafficManager according to new InMemoryMap
* Fix InMemoryMap links (i.e., next and previous waypoints)
* Remove check junction closest waypoint
* Refactor code InMemoryMap
* Add constant parameter stopped velocity threshold
* Fix PR
* Update CHANGELOG
* Windows compatibility changes
* Windows compatibility changes pt2
* Updated docs regarding Traffic Manager
* Fixed Import folder in gitignore
* Namespaces fix
* WIP:TM modified to run synchronously with carla
* Synchronised all stages of TrafficManager
Removed redundant fps cap in BatchControl
Tuned PID values for synchronised mode
* Fix for LibCarla build error
* Fixed collision handling with unregistered actors
Fixed buffer data passed from localization stage to collision stage
* WIP:Geodesic map gridding
* WIP:Integrating geodesic griding with localization and collision stage
* Moved unregistered actor handling logic
to localization stage
Temporary patch for ignoring unregistered actors during lane change
Fixes for geodesic gridding logic
Added exception handling logic to PipelineStage class
Setting simulator back to variable time step asyncrhonous mode
in TrafficManager's destructor
* Modified PerformanceDiagnostics class
to work in synchronous execution
* Fixed incorrect overlap vehicle accumulation
Implemented geodesic grid centering logic
* WIP:Improvements to collision stage throughput
* Fixed incorrect memory handoff between stages
Modified messenger class to a blocking queue implementation
* Seg fault fixes for lane changes
* Removed logic for altering world settings from traffic manager
Fixed SnippetProfiler to work on multiple snippet
Using larger waypoint grids for pedestrian localization
* Set timeout for RPC calls to 5 seconds instead of 1 second, to get time to create Traffic Manager if needed
* Disable autopilot in server
* Fix type int to int64_t for windows compilation
* Fixing command batch autopilot
* Fix uint to uint64_t for windows
* Fix variable type and add parenthesis
* Pipeline changes + cleaning syncr changes
* Velocity dependent pedestrian bbox extension
Removed snippet profiling code from localization stage
(cherry picked from commit 4192906e655ad6f7ea48eda8e1a68ed317d67238)
* Fixing segmentation fault in AssignLaneChange
(cherry picked from commit 57da8b52bcccc359ff3dd27a10261cc724f26203)
* Fixed S.F when forcing lane changes
(cherry picked from commit db0516c8295bdc15993d9c4e1bec517a927ea33d)
* Added UnNotifyWheeledVehicle()
* Set some limits to the parameters.
* Fixed TM delete process
(cherry picked from commit cdd9178f2cbba7cbbc79b389e193517d07ba489e)
* Fixed merge error
* WIP PID Changes
Fixed FPS for PID to 20
Changes to waypoint buffer size
* Final PID + Waypoint buffer default settings.
* Junction anticipation algorithm
* WIP
* WIP: merging with carla 0.9.7
* WIP: merging with carla 0.9.7
* WIP: Intersection anticipation algorithm
* WIP: Intersection anticipation algorithm
* WIP: Intersection anticipation
* Intersection Anticipation algorithm (With debugging tools)
* Implementation of an intersection anticipation algorithm
* Changelog modified
* Removed some unused variables
* PR Changes
* More PR changes
* More minor changes
* Added some checks to detect failures
Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
Co-authored-by: Praveen Kumar <35625166+pravinblaze@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: doterop <daniel.oterop@gmail.com>
* Added IMU sensor to the client-server pipeline
* Fixed lane_explorer.py with the new debug API
* Changed compass output to standard compass degrees
* - Added accelerometer calculation to IMU.
* Added angular velocity to the IMU
* Changed IMU acceleration from world to local
* Updated changelog
* Updated accelerometer. Now uses vehicle movement component information instead of pawn information.
* Added docs regardings new sensors
* Fixed SI units in Lidar
* Fixed core dumped when using other python modules
* Explicitly deleted Vec3D from FVec constructors
* Removed redundant DeltaTime calculation
* Initial commit
This commit imports files from scenario_runner repository
* WIP TrafficDistributor
Set horizontal integral component to 0
Fixed startup concurrency issue
* TrafficDistributor first crude version
* Code asthetics, Uncrustified.
* Code clean up
* Fixed more concurrency bugs
* Reduced number of vehicles per core
Fixed some unhandled exceptions
* EOD commit 29AUG2018
* Re-organizing directory structure
* WIP code re-organization
* Redesigned PipelineStage
Implemented Messenger to communicate between stages
Implemented LocalizationStage
Added StageEnum
Removed unecessary files
* WIP Testing LocalizationStage
* Implemented and benchmarked LocalizationStage
Achieved single stage throughput of 600,000,000
* Implemented CopyBufferList() in LocalizationStage
* Fixed stage stalling and corrected benchmark
* Setting worker thread count to 1
* Code re-organization for porting MotionPlannerStage
* WIP - porting MotionPlanner
* Moved thread management logic into PipelineStage base class
* Implemented output data frame switching
Moved relavent structures and types from MotionPlannerStage.h to PIDController.h
* Re-organized directory structure to be consistent with rest of the project
Initialized frame_selector in constructor
* WIP - EOD commit 02SEP209
* WIP - managed to break deadlock between sender and receiver
* Implemented common mutex sharing for thread management in PipelineStage
Added small timeout for thread locking in PipelineStage
Finally broke deadlocks in stage integration
* Porting BatchControlStage to new design
* Ported BatchControlStage to new design
Fixed array indexing bug
Messaging actor_id instead of actor pointer to BatchControlStage
Improved thread co-ordination logic in PipelineStage
* Fixed array exetreme indexing issue
* Fixed thread co-ordination logic for multiple worker thread case
* Ported PID state map to dynamically allocated vector
Changed thread co-ordination time out to 1ms
* WIP - EOD 03092019
* Ported CollisionStage to new design
Added debug helper parameter
Added directionality pre-condition to check polygon overlap
Streamlined boundary functions
Fixed actor id to array index map
Passing individual buffers from localization
Using unsigned int keys in VicinityGrid
* WIP - fixing localization conflict on frame switching
* Fixed localization frame switching bug
* Ported TrafficLightStage to new design (#2078)
* Implemented TrafficLightStage with new architecture
* Implemented slowdown on approaching junction
* Integrated all stages into Pipeline class
* Ported PipelineExecutable.cpp to work with new Pipeline
* WIP - Fixing TrafficDistributor
* Switching to single thread stage actions
Added release options to CMakeLists.txt
Changed vicinity grid keys to string
* Changed TrafficDistributor to TrafficDistribution
This class only meant to keep track of vehicles acrros different road positions
* Changed TrafficDistributor declaration in LocalizationStage
* WIP - Lane changes
* Streamlined traffic distribution implementation
* Implemented a working lane change policy
* Fixed const correctness for ActionThreadManager and Action methods
Chaned varialbe++ to ++variable wherever suitable
* Using STL's numeric_limits instead of arbitrary high values for infinity
Made suitable constants static
Camelcase starting with uppercase for InMemoryMap methods
Fixed comment notions in all files
* Streamlined boolean return values from methods in CollisionStage.cpp
Using short hand for boost::geometry
More comments on boundary calculation logic
Camelcasing for methods
* Fixed TrafficDistribution vehicle tracking logic
Removed distance limit for lane change
* Moved lane change logic to TrafficDistributor.cpp
* Implemented logic to avoid collisions with unregistered actors
* Implemented graceful stop functionality for traffic manager
* Code aesthetics
* Added debug support for TrafficDistributor.cpp
Fixed Test.cpp
* Defined constants in TrafficDistributor.cpp
Code aesthetic changes
* Update README.md
* Aphabetical ordering of header include statements
* Code streamlining and aesthetic changes
* Review comment changes (#2116)
Review comment changes
Removed frame_map from TrafficLightStage
* Made changes for review comments (#2117)
* Fixed implicit private inheritence for LocalizationStage
Removed unecessary using <method> statements in concrete stage classes
* Removed break logic from all loops
* Added detailed comments to all header files
* Minor review comment changes to collision stage
* Detailed comments for all .cpp files
* Implemented batch spawn and delete
* Added minimum distance check for lane change
Increased wait time after sending batch spawn command
* Simplified geodesic boundary creation in collision stage
* Changing to unsigned integers when appropriate
Shorter name aliasing
* Changes for code reveiw comments
* Removed white spaces
* Code review changes
Using carla::geom::Math::DistanceSquared whenever possible
Better name aliasing
Function signature checks
* Code aesthetics, text formatting
* Changes for appropriate auto keyword usage
* Grammar check
* Grammatical correction
* Distance based check points and boundary generation
instead of index based checks
* Using explicit typing wherever possible instead of auto
* Review comment changes
* Review comment changes
* Added time margin for approaching vehicles for lane change
Increased minimum collision boundary
Streamlined InMemoryMap::StructuredWaypoints
Implemented gradual braking in PIDController
Added left right checks in SimpleWaypoint
Removed redundant method in SimpleWaypoint
* Initial implementation for reproducibility
* Fixed radomization during path selection
* Added Vicinity grid-key checker for grid to actor_id map
* WIP: junction negotiation enhancement
* Polygon to polygon distance based collision negotiation
* Update Linux.mk
* Update CMakeLists.txt
* Update Vars.mk
* Update README.md
* Update getting_started.md
* Review comment changes
Namespace aliasing checks
Redundant function call checks
Default constants defined in motion planner stage
Removed hard braking to slow down near junctions
Lane change approaching vehicle check time margin
Added -h option to get help on traffic manager
* Reverting to carla::client::Vehicle::GetTrafficlightState non-signalised junctions
* Added communication timeout and implemented stopping when carla stops
Removed throughtput measurement logic from PipelineExecutable
* Updated gitignore
* updated CHANGELOG.md
* updated CHANGELOG.md
* WIP: negotiating non-signalised junction
* Time duration ticketing system for non-signalised junctions
Changed from pre-randomised to run time randomised decisions at junctions
* Removing debug draw statements
* Fixed make and cmake, more work required
* Added traffic manager build to jenkins
* updated docs
* Refactor Commandlet + made small fix
* fixed scale of assets when importing them
* Fixed bug of adding assets automatically, but semantic segmentation to be fixed
* small fix + hiding movemeshes call until its stable
* Meshes are moved to semantic segmentation folders
* Retagging semantic segmentation
* Redefined tags, refactor and added comments
* Updated Changelog
* created a move assets commandlet
* Removing RoadRunnerFiles folder
* readded flag of only prepare maps in import script
* Removing ContentBrowser module
* Added Import folder
* updated readme
* Apply zero rotation
* updated doc link
* updated readme
* refactoring
* Adding more comments and refactoring
* Removed unnecesary include header files
* Remove unnecessary includes in source files
* Exposed DOF and Exposure in Python for RGB sensor
* Fixed blueprint waypoint functions
* Added Tonemapper settings
* Exposed camera temperature and tint
* Updated Changelog
* Adding TemporalAA
* Setting alpha values of pixels in buffer to 255 to account for TemporalAA
* Alpha now removed from pixels on the client side in the image deserialize function
* Adding motion blur
* BasicSynchronousClient for client side bounding boxes done
* client-side bounding boxes done
* Updated CHANGELOG.md and client_bounding_boxes with appropriate imports for development build
* moved client_bounding_boxes.py to examples/
* attempt to fix strange pylint error
* fix attempt for pylint2
* Disabled pylint E1126 as it is getting confused with numpy matrix slice
* Using RoadOption from local planner
Modified local planner:
* Increased waypoint que max length
* Re organised buffering code
Modified misc:
* Added vector function
Modified global route planner:
* Using RoadOption from local_planner
- Fix naming: Use 'LaneInvasionSensor'/'lane_invasion' instead of mixture with 'LaneDetector'/'lane_detector'
- Create server-side LaneInvasionSensor (to be able to access it via ROS bridge)
If the local_planner is used by other Python modules the cleanup causes
a destruction of the actor, handed over to the local_planner. As this
may be undesired, an additional reset_vehicle() method was added to the
local_planner.
* Using RoadOption from local planner
Modified local planner:
* Increased waypoint que max length
* Re organised buffering code
Modified misc:
* Added vector function
Modified global route planner:
* Using RoadOption from local_planner
An initial reference location is read from the header of the OpenDRIVE definition (/OpenDRIVE/header/geoReference)
The expected format is based on the Proj4 syntax:
+lat_0=<LATITUDE as double> +lon_0=<LONGITUDE as double)
Example (Town01):
<OpenDRIVE>
<header revMajor="1" revMinor="4" name="" version="1" date="2018-10-26T12:17:35" north="2.0479999989271146e+1" south="-3.4888998413085938e+2" east="4.1446086126736287e+2" west="-2.0712774024007370e+1" vendor="VectorZero">
<geoReference><![CDATA[+lat_0=4.9000000000000000e+1 +lon_0=8.0000000000000000e+0]]></geoReference>
</header>
...