Commit Graph

246 Commits

Author SHA1 Message Date
Jacopo Bartiromo 151e38ce8d
Hybrid mode for Traffic Manager (#2674)
* Improved braking, collision negotiation.

* Improved braking algorithm for smoother approach
to lead vehicle.

* Implemented smoother path boundary modification
to aid smoother braking.

* Re-worked collision negotiation algorithm.

* Improved collision candidate filtering.

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

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

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

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

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

* Improved conditions for collision consideration
for greater efficiency.

* Removed fps limit in async mode.

* Hybrid physics mode

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

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

* Made collision stage agnostic to actor physics

* Sampling waypoint buffer for teleportation window

* WIP: Teleportation changes

* WIP2: Teleportation changes

* Fixes waypoint window and vehicle spawning

* hotfix to performance benchmark

* comment out debugs

* changelog

* fixes collision bug

* fixes package error and out_of_range bug

* changes after review

* Left & Right Transit of a lane: Waypoint mapping

Co-authored-by: Praveen Kumar <pravinblaze@hotmail.com>
Co-authored-by: Soumyadeep <soumyadeep.dhar@kpit.com>
2020-03-30 22:53:29 +02:00
Joel Moriana 4ed014a2fe CHANGELOG updated 2020-03-30 20:30:11 +02:00
Joel Moriana 06e6357e65 CHANGELOG updated 2020-03-30 18:50:18 +02:00
Axel1092 3f96494966 Updated CHANGELOG. 2020-03-30 14:40:39 +02:00
Marc Garcia Puig d467bbb1da Used new tri strip function to generate road mesh 2020-03-27 12:51:34 +01:00
Marc Garcia Puig 77c043d55e Fixed and updated CHANGELOG 2020-03-27 12:51:34 +01:00
Axel1092 901c6171e0 Updated changelog. 2020-03-20 12:01:30 +01:00
Jacopo Bartiromo 4bc53a7f6c
New behavior agent + small changes to manual and automatic control. (#2508)
* pr agent behaviors

* pr agent behaviors

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* limits for steering

* Add files via upload

* pylint formatting

* pylint formatting

* seed flag for repeatability

* seed flag for repeatability

* Add files via upload

* Add files via upload

* first pr review corrections

* Add files via upload

* Add files via upload

* Delete parameters.py

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* start of pedestrian avoidance + minor fixes

* start of pedestrian avoidance + minor fixes

* get_map check

* get_map check

* get_map check.

* Delete basic_agent.py

* Delete roaming_agent.py

* pylint final changes

* Pylint final check

* more pylint

* minor fix

* minor changes

* Add files via upload

* changes in PID + old models

* trying to stabilize waypoint distance

* fixed step in sampling radius

* folder structure change and more stuff

* pylint fix

* re-introducing pedestrian avoidance

* minor things

* deleted unused folder

* restore basic folder

* resurrected behavior agent

* set debug to false

* remove prints + open PR

* changelog

* setting behavior agent as default in auto_control
changing manual_control to have slower increasing braking too

* Requested modifications PR

The vehicle can now accelerate and brake at the same time again.
Removed unnecessary  variable.

* Fix frame rate display for the client

* removing unnecessary duplication
reordering folders
code cleanup for codacity

* unused import

* codacity and travis changes

Co-authored-by: Joel Moriana <joel.moriana@gmail.com>
2020-03-17 11:31:05 +01:00
Rowan McAllister 91f5d909b6 Updated changelog. 2020-03-16 17:05:01 +01:00
Guillermo 51621a9848 CHANGELOG 2020-03-13 18:04:20 +01:00
bernatx 7509e9d8de Changing version to 0.9.8 2020-03-06 16:11:51 +01:00
Jacopo Bartiromo aff8fe8fc3 changelog and remove print 2020-03-06 16:06:34 +01:00
doterop 94affd9b79
Added timeout to World Tick (#2556)
* Added timeout to World Tick

* Updated Changelog

* Fixed timeout on SetEpisodeSettings

Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-03-06 13:04:04 +01:00
Joel Moriana 276720b4ca CHANGELOG updated 2020-03-06 12:57:12 +01:00
Marc Garcia Puig 37837ed484 Updated changelog 2020-03-06 09:49:38 +01:00
germanros1987 9c70de31b1
Taking account of the very last waypoint buffer (#2407)
* Taking account for the very last waypoint buffer

* Update CHANGELOG.md

* Removing unused variables (Travis)

* Update CHANGELOG.md

Co-authored-by: Praveen Kumar <35625166+pravinblaze@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-03-05 08:10:17 -08:00
doterop 85b192530d
Doterop/traffic manager (#2468)
* Initial implementation of t.m. performance script

* Remove redundant getLocation() calls

* Demo for inter-client communication via Carla server

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

* Instead or client instance episodeProxy is passed to TM

* Instead or client instance episodeProxy is passed to TM

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

* adding section id to map setup

* fix manual_control to reload car with autopilot on

* Instead of client instance episodeProxy is passed to TM.

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

* Added all TM APIs

* carla client now can provide TM instance if required.

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

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

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

* Fixed change map error

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

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

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

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

* Fix for collision ignore bug

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

* Print removal

* Splited work of main for loop in ApplyBatchCommandsSync

* WIP! Trying to get client directly

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

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

* Added port support for TM. Multiclient MultiTM

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

* Exposed API for Sync Mode

* TMServer notifies Server that it is gonna be destroyed

* Exposed Python API for Sync Mode

* Add TM as separate process and synchronous tick calls

* SetSynchronousModeTimeOutInMiliSecond method added

* TM shutsdown and informs to the connected clients

* WIP! Map change issues again

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

* Server side changes ...

* Fixed possible stall on TM destruction

* fixing collision stage + cybertruck not safe

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

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

* format update

* Fix bug unsignalized junctions

* # WARNING: head commit changed in the meantime

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

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

* Better Exception handeling

* Merged with jackbart94/tm_reduce_getloc_calls

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

* Initial implementation of t.m. performance script

* Remove redundant getLocation() calls

* Demo for inter-client communication via Carla server

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

* Instead or client instance episodeProxy is passed to TM

* Instead or client instance episodeProxy is passed to TM

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

* fix manual_control to reload car with autopilot on

* Instead of client instance episodeProxy is passed to TM.

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

* Added all TM APIs

* carla client now can provide TM instance if required.

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

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

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

* Fixed change map error

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

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

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

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

* Fix for collision ignore bug

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

* Splited work of main for loop in ApplyBatchCommandsSync

* WIP! Trying to get client directly

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

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

* Added port support for TM. Multiclient MultiTM

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

* Exposed API for Sync Mode

* TMServer notifies Server that it is gonna be destroyed

* Exposed Python API for Sync Mode

* Add TM as separate process and synchronous tick calls

* SetSynchronousModeTimeOutInMiliSecond method added

* TM shutsdown and informs to the connected clients

* WIP! Map change issues again

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

* Fixed possible stall on TM destruction

* fixing collision stage + cybertruck not safe

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

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

* format update

* Fix bug unsignalized junctions

* # WARNING: head commit changed in the meantime

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

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

* Better Exception handeling

* Merged with jackbart94/tm_reduce_getloc_calls

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

* Rebased with master

* Changes after rebase

* Solving tab errors

* Updated Changelog

* Removing Destroyed vehicle's from TM Server

* Fixed uint compatibility with Windows

* Merged soumyadeep/traffic_manager. Discarded destroyed actors

* -Removed unnecessary files

* restoring docs from rebase

* Fix windows compilation

* refactoring stage-related code

* more code refactoring

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

* Fixed incorrect episode

* Fixed map change and TM remote detached thread destruction

* Syntax and comments fixes

* Missed change on previous commit

* Fixed compile minor compile issue

* Cleaned and fixed some issues after merge

* fix to sync localization bugs
modified PID parameters
revamping spawn_npc

* deleted tm_spawn_npc

* fixes spawn error in sync mode

* Redoing TM sync logic

* finished performance benchmark for tm

* deprecated wrapped methods:
register_vehicle
unregister_vehicle

* New TM management

* Fixed sync mode on TM

* Cleaned TM of prints and unussed functions

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

* changelog

* added more connection retries

* fixed changelog + comments (see reviewable)

* Moved socket include's to single header

* Added missing line at the end of the file

* Fixed syntax errors

* final commit

* Minor correction in comment

* update copyright year to 2020 + removed break

* restoring unwanted changes

* patch for smoke test error

* Removed "todo" for pylint

Co-authored-by: Jacopo Bartiromo <32928804+jackbart94@users.noreply.github.com>
Co-authored-by: Praveen Kumar <35625166+pravinblaze@users.noreply.github.com>
Co-authored-by: Soumyadeep <soumyadeep.dhar@kpit.com>
Co-authored-by: joel-mb <joel.moriana@gmail.com>
Co-authored-by: Sekhar Barua <58979936+sekhar2912@users.noreply.github.com>
Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-28 19:58:13 +01:00
Michele Bianchi a521eef213 Updated CHANGELOG 2020-02-28 16:01:47 +01:00
Axel 876e353210 Updated changelog. 2020-02-28 12:48:50 +01:00
Marc Garcia Puig c64a2f24ba Removed comments 2020-02-28 11:02:45 +01:00
Marc Garcia Puig 537e66410c Updated CHANGELOG 2020-02-28 11:02:45 +01:00
bernat e5e85f9fae Changelog 2020-02-27 10:10:21 +01:00
Denis 090a39855d
Forward header offset directly to the Array constructor (#2194)
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-25 13:10:29 +01:00
nsubiron c27aa1e40b Upgrade Boost to 1.72.0 2020-02-25 12:07:45 +01:00
Marc Garcia Puig 731451d43e Updated changelog with the fix 2020-02-21 15:45:04 +01:00
Robert Jan Schlimbach 18e65f3eca
Fixed some urls in how_to_make_a_new_map.md (#2469)
* Fixed links in how_to_make_a_new_map.md

* appended changelog

* moved  to the EOF because codacy was complaining
2020-02-14 18:07:48 +01:00
Marc Garcia Puig 744a2d47e0 Fixed style 2020-02-07 17:16:48 +01:00
Axel e4da746b31 Added fully poly3. 2020-02-07 17:16:48 +01:00
Axel 762be63bfd Updated changelog. 2020-02-07 17:16:48 +01:00
Axel1092 49a09ff841
Axel1092/extend map api (#2380)
* Added GetPrevious function

* Added functions GetNextUntilLaneEnd and GetPreviousUntilLaneStart. Fixed GetPrevious issue.

* Added junction class.

* Added documentation for the python API. Fixed a bug regarding bounding box computation.

* Fixed formatting.

* Updated CHANGELOG.md.

* Fixed python format.

* Added GetPrevious function

* Added functions GetNextUntilLaneEnd and GetPreviousUntilLaneStart. Fixed GetPrevious issue.

* Added junction class.

* Added documentation for the python API. Fixed a bug regarding bounding box computation.

* Fixed formatting.

* Updated CHANGELOG.md.

* Fixed python format.

* Updated map API documentation

* updated mkdocs

* Prettified code.

* Removed nested carla repository

* Review fixes.

* Fixed small tab issues

* Improved code and comments.

* Small code fixes

* Small fix.

* Fixed until lane end and until lane start.

* Style fix

Co-authored-by: bernat <bernatx@gmail.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
2020-02-06 16:43:23 +01:00
joel-mb 1449b1d139
Joel mb/traffic manager (#2385)
* 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
2020-02-06 10:13:56 +01:00
glopezdiest 2f27cd368b
Glopez/intersection anticipation (#2355)
* 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>
2020-02-05 20:55:53 +01:00
bernatx 5a904579af Fixing wrong comparison in 'if' clause 2020-02-03 18:14:10 +01:00
bernatx db8e312546 changelog 2020-02-03 16:03:57 +01:00
Shubham Paul 7a06645fe4 Updated CHANGELOG.md 2020-02-03 11:54:45 +01:00
victor.anton f4f980b779 Updated CHANGELOG.md 2020-02-03 09:50:54 +01:00
Fabian Oboril 1f7669e4b3 Fixed agent crashes due to API changes in is_within_distance_ahead (#2386)
* Fixed agent crashes due to API changes in is_within_distance_ahead
2020-01-22 17:10:02 -08:00
Marc Garcia Puig f270aa5949 Updated changelog & fix dynamic weather altitude 2020-01-20 20:53:58 +01:00
bernatx 73f91e0bfc Changelog 2020-01-15 15:12:34 +01:00
germanros1987 ab97355040
Upgraded parameters of Unreal/CarlaUE4/Config/DefaultInput.ini to prevent mouse freeze (#2308) 2019-12-18 18:31:53 -08:00
Marc Garcia Puig 1d71ecb9a8 Fixed NumLock error automatic_control.py (#2306)
* Fixed NumLock error aut_cntrl.py

* Updated Chaneglog & reduced unused imports
2019-12-17 10:40:27 -08:00
bernatx 47a2d82738 Release Linux 0.9.7 2019-12-11 18:17:36 +01:00
bernatx df457cd467 Changelog 2019-12-11 15:17:51 +01:00
German Ros f9c365864c * Updated changelog.md 2019-12-11 14:56:29 +01:00
bernatx da661a3854 Changelog 2019-12-11 14:51:47 +01:00
Marc Garcia Puig e93c938fbd Updated Changelog 2019-12-11 13:37:35 +01:00
bernatx 855ebda6e2 Updating ChangeLog 2019-12-11 12:07:59 +01:00
bernatx 676c1cbc5d Changelog 2019-12-11 02:54:21 +01:00
Alexander Weidinger 13fbd5a0e9 Add ObstacleSensor fix to CHANGELOG.md 2019-12-10 14:48:59 +01:00
Marc Garcia Puig 140ad0f0b5 Added Radar docs & updated Changelog 2019-12-10 13:29:14 +01:00