scenario_runner
scenario_runner copied to clipboard
Fix dead actor accumulation in CDP
I realized that in the CarlaDataProvider._carla_actor_pool
more and more dead actors accumulated over time when scenarios run. The reason is that actors are created over the CDP and are added to the pool, however, they are not destroyed over the CDP.
I think I located most of the locations where this is the case - however I think there is still at least one missing.
As a side result it the remove_actor_by_id
function is now also slightly more informative. If the return value is None
the users needs to take care of the destruction.
I also propose an update to the CarlaDataProvider._actor_[velocity, location, transform]_map
, while this new code is in itself more expensive it was in the long run still faster as the sizes were overall smaller. Of course, just talking about a few ms.
Tested on
Platform(s): Ubuntu
Python version(s): 3.7 and 3.10
Unreal Engine version(s): 4.24
CARLA version: 0.9.15 dev