@@ -131,6 +131,13 @@ def check_frame(self, frame):
131131 frame in self .frames
132132 ), f"Candidate frame, { frame } , not in frame set { self .frames } "
133133
134+ def get_agents (self , frame : int ) -> "DataContainer" :
135+ return self ._load_agents (frame )
136+
137+ def get_agent (self , frame : int , agent : int ):
138+ agents = self .get_agents (frame )
139+ return [ag for ag in agents if ag .ID == agent ][0 ]
140+
134141 def get_agent_set (self , frame : int ) -> set :
135142 return self ._load_agent_set (frame = frame )
136143
@@ -337,19 +344,25 @@ def save_objects(self, frame, objects, folder, file=None):
337344 os .makedirs (folder )
338345 self ._save_objects (frame , objects , folder , file = file )
339346
347+ def _load_agents (self , frame ):
348+ raise NotImplementedError
349+
350+ def _load_ego (self , frame , agent = None ):
351+ raise NotImplementedError
352+
340353 def _load_frames (self , sensor ):
341354 raise NotImplementedError
342355
343356 def _load_calibration (self , frame , sensor , reference ):
344357 raise NotImplementedError
345358
346- def _load_image (self , frame , camera , agent = None ):
359+ def _load_image (self , frame , sensor , agent = None ):
347360 raise NotImplementedError
348361
349- def _load_semseg_image (self , frame , camera , agent = None ):
362+ def _load_semseg_image (self , frame , sensor , agent = None ):
350363 raise NotImplementedError
351364
352- def _load_depth_image (self , frame , camera , agent = None ):
365+ def _load_depth_image (self , frame , sensor , agent = None ):
353366 raise NotImplementedError
354367
355368 def _load_lidar (self , frame , sensor , agent = None ):
@@ -631,7 +644,7 @@ def __init__(
631644 self .nuX = nuX
632645 self .nuX_can = nuX_can
633646 if nuX_can is not None :
634- self .vehicle_pose = self .nuX_can .get_messages (self .scene [ "name" ] , "pose" )
647+ self .vehicle_pose = self .nuX_can .get_messages (self .scene , "pose" )
635648 self .vehicle_pose_utime = np .array (
636649 [vp ["utime" ] for vp in self .vehicle_pose ]
637650 )
@@ -695,6 +708,10 @@ def _get_sensor_file_name(self, frame, sensor=None, agent=None):
695708 def _load_frames (self , ** kwargs ):
696709 return self .frames
697710
711+ def _load_agent_set (self , frame : int ) -> set :
712+ # TODO: this is slow...improve
713+ return {ag .ID for ag in self .get_agents (frame )}
714+
698715 def _load_calibration (self , frame , ego_reference , sensor = None , ** kwargs ):
699716 """
700717 W := global "world" frame
@@ -775,7 +792,7 @@ def _load_ego(self, frame, **kwargs):
775792 box3d = Box3D (x_G_to_E_in_G , q_G_to_E , self .hwl , ID = - 1 )
776793
777794 # -- set up ego in global reference frame
778- veh = VehicleState (obj_type = "car" )
795+ veh = VehicleState (obj_type = "car" , ID = 1000 )
779796 veh .set (
780797 t = t ,
781798 position = x_G_to_E_in_G ,
0 commit comments