@@ -242,26 +242,30 @@ def _set_actor_information(self):
242242 value = prop .get ('value' )
243243 args [key ] = value
244244
245+ actor_controller = []
246+ for controller in obj .iter ("ObjectController" ):
247+ actor_controller .append (controller )
248+
245249 for catalog_reference in obj .iter ("CatalogReference" ):
246250 entry = OpenScenarioParser .get_catalog_entry (self .catalogs , catalog_reference )
247251 if entry .tag == "Vehicle" :
248- self ._extract_vehicle_information (entry , rolename , entry , args )
252+ self ._extract_vehicle_information (entry , rolename , entry , args , actor_controller )
249253 elif entry .tag == "Pedestrian" :
250- self ._extract_pedestrian_information (entry , rolename , entry , args )
254+ self ._extract_pedestrian_information (entry , rolename , entry , args , actor_controller )
251255 elif entry .tag == "MiscObject" :
252- self ._extract_misc_information (entry , rolename , entry , args )
256+ self ._extract_misc_information (entry , rolename , entry , args , actor_controller )
253257 else :
254258 self .logger .debug (
255259 " A CatalogReference specifies a reference that is not an Entity. Skipping..." )
256260
257261 for vehicle in obj .iter ("Vehicle" ):
258- self ._extract_vehicle_information (obj , rolename , vehicle , args )
262+ self ._extract_vehicle_information (obj , rolename , vehicle , args , actor_controller )
259263
260264 for pedestrian in obj .iter ("Pedestrian" ):
261- self ._extract_pedestrian_information (obj , rolename , pedestrian , args )
265+ self ._extract_pedestrian_information (obj , rolename , pedestrian , args , actor_controller )
262266
263267 for misc in obj .iter ("MiscObject" ):
264- self ._extract_misc_information (obj , rolename , misc , args )
268+ self ._extract_misc_information (obj , rolename , misc , args , actor_controller )
265269
266270 # Set transform for all actors
267271 # This has to be done in a multi-stage loop to resolve relative position settings
@@ -285,7 +289,7 @@ def _set_actor_information(self):
285289 if actor .transform is None :
286290 all_actor_transforms_set = False
287291
288- def _extract_vehicle_information (self , obj , rolename , vehicle , args ):
292+ def _extract_vehicle_information (self , obj , rolename , vehicle , args , actor_controller ):
289293 """
290294 Helper function to _set_actor_information for getting vehicle information from XML tree
291295 """
@@ -301,25 +305,26 @@ def _extract_vehicle_information(self, obj, rolename, vehicle, args):
301305
302306 speed = self ._get_actor_speed (rolename )
303307 new_actor = ActorConfigurationData (
304- model , None , rolename , speed , color = color , category = category , args = args )
308+ model , None , rolename , speed , color = color , category = category , args = args , controller = actor_controller )
305309
306310 if ego_vehicle :
307311 self .ego_vehicles .append (new_actor )
308312 else :
309313 self .other_actors .append (new_actor )
310314
311- def _extract_pedestrian_information (self , obj , rolename , pedestrian , args ):
315+ def _extract_pedestrian_information (self , obj , rolename , pedestrian , args , actor_controller ):
312316 """
313317 Helper function to _set_actor_information for getting pedestrian information from XML tree
314318 """
315319 model = pedestrian .attrib .get ('model' , "walker.*" )
316320
317321 speed = self ._get_actor_speed (rolename )
318- new_actor = ActorConfigurationData (model , None , rolename , speed , category = "pedestrian" , args = args )
322+ new_actor = ActorConfigurationData (model , None , rolename , speed ,
323+ category = "pedestrian" , args = args , controller = actor_controller )
319324
320325 self .other_actors .append (new_actor )
321326
322- def _extract_misc_information (self , obj , rolename , misc , args ):
327+ def _extract_misc_information (self , obj , rolename , misc , args , actor_controller ):
323328 """
324329 Helper function to _set_actor_information for getting vehicle information from XML tree
325330 """
@@ -330,7 +335,8 @@ def _extract_misc_information(self, obj, rolename, misc, args):
330335 model = "static.prop.chainbarrier"
331336 else :
332337 model = misc .attrib .get ('name' )
333- new_actor = ActorConfigurationData (model , None , rolename , category = "misc" , args = args )
338+ new_actor = ActorConfigurationData (model , None , rolename , category = "misc" ,
339+ args = args , controller = actor_controller )
334340
335341 self .other_actors .append (new_actor )
336342
0 commit comments