46
46
Vias ,
47
47
)
48
48
from smarts .core .plan import Plan
49
+ from smarts .core .renderer_base import RendererBase
49
50
from smarts .core .road_map import RoadMap , Waypoint
50
51
from smarts .core .signals import SignalState
51
52
from smarts .core .utils .math import squared_dist
@@ -79,8 +80,8 @@ class CameraSensor(Sensor):
79
80
80
81
def __init__ (
81
82
self ,
82
- vehicle_state ,
83
- renderer , # type Renderer or None
83
+ vehicle_state : VehicleState ,
84
+ renderer : RendererBase ,
84
85
name : str ,
85
86
mask : int ,
86
87
width : int ,
@@ -108,7 +109,7 @@ def __eq__(self, __value: object) -> bool:
108
109
)
109
110
110
111
def teardown (self , ** kwargs ):
111
- renderer = kwargs .get ("renderer" )
112
+ renderer : Optional [ RendererBase ] = kwargs .get ("renderer" )
112
113
if not renderer :
113
114
return
114
115
camera = renderer .camera_for_id (self ._camera_name )
@@ -121,7 +122,7 @@ def step(self, sim_frame, **kwargs):
121
122
sim_frame .actor_states_by_id [self ._target_actor ], kwargs .get ("renderer" )
122
123
)
123
124
124
- def _follow_actor (self , vehicle_state , renderer ):
125
+ def _follow_actor (self , vehicle_state : VehicleState , renderer : RendererBase ):
125
126
if not renderer :
126
127
return
127
128
camera = renderer .camera_for_id (self ._camera_name )
@@ -137,11 +138,11 @@ class DrivableAreaGridMapSensor(CameraSensor):
137
138
138
139
def __init__ (
139
140
self ,
140
- vehicle_state ,
141
+ vehicle_state : VehicleState ,
141
142
width : int ,
142
143
height : int ,
143
144
resolution : float ,
144
- renderer , # type Renderer or None
145
+ renderer : RendererBase ,
145
146
):
146
147
super ().__init__ (
147
148
vehicle_state ,
@@ -154,22 +155,23 @@ def __init__(
154
155
)
155
156
self ._resolution = resolution
156
157
157
- def __call__ (self , renderer ) -> DrivableAreaGridMap :
158
+ def __call__ (self , renderer : RendererBase ) -> DrivableAreaGridMap :
158
159
camera = renderer .camera_for_id (self ._camera_name )
159
160
assert camera is not None , "Drivable area grid map has not been initialized"
160
161
161
162
ram_image = camera .wait_for_ram_image (img_format = "A" )
162
163
mem_view = memoryview (ram_image )
163
- image = np .frombuffer (mem_view , np .uint8 )
164
- image .shape = (camera .tex .getYSize (), camera .tex .getXSize (), 1 )
164
+ image : np .ndarray = np .frombuffer (mem_view , np .uint8 )
165
+ width , height = camera .image_dimensions
166
+ image .shape = (height , width , 1 )
165
167
image = np .flipud (image )
166
168
167
169
metadata = GridMapMetadata (
168
170
resolution = self ._resolution ,
169
171
height = image .shape [0 ],
170
172
width = image .shape [1 ],
171
- camera_position = camera .camera_np . getPos () ,
172
- camera_heading_in_degrees = camera .camera_np . getH () ,
173
+ camera_position = camera .position ,
174
+ camera_heading = camera .heading ,
173
175
)
174
176
return DrivableAreaGridMap (data = image , metadata = metadata )
175
177
@@ -179,11 +181,11 @@ class OGMSensor(CameraSensor):
179
181
180
182
def __init__ (
181
183
self ,
182
- vehicle_state ,
184
+ vehicle_state : VehicleState ,
183
185
width : int ,
184
186
height : int ,
185
187
resolution : float ,
186
- renderer , # type Renderer or None
188
+ renderer : RendererBase ,
187
189
):
188
190
super ().__init__ (
189
191
vehicle_state ,
@@ -196,22 +198,23 @@ def __init__(
196
198
)
197
199
self ._resolution = resolution
198
200
199
- def __call__ (self , renderer ) -> OccupancyGridMap :
201
+ def __call__ (self , renderer : RendererBase ) -> OccupancyGridMap :
200
202
camera = renderer .camera_for_id (self ._camera_name )
201
203
assert camera is not None , "OGM has not been initialized"
202
204
203
205
ram_image = camera .wait_for_ram_image (img_format = "A" )
204
206
mem_view = memoryview (ram_image )
205
- grid = np .frombuffer (mem_view , np .uint8 )
206
- grid .shape = (camera .tex .getYSize (), camera .tex .getXSize (), 1 )
207
+ grid : np .ndarray = np .frombuffer (mem_view , np .uint8 )
208
+ width , height = camera .image_dimensions
209
+ grid .shape = (height , width , 1 )
207
210
grid = np .flipud (grid )
208
211
209
212
metadata = GridMapMetadata (
210
213
resolution = self ._resolution ,
211
214
height = grid .shape [0 ],
212
215
width = grid .shape [1 ],
213
- camera_position = camera .camera_np . getPos () ,
214
- camera_heading_in_degrees = camera .camera_np . getH () ,
216
+ camera_position = camera .position ,
217
+ camera_heading = camera .heading ,
215
218
)
216
219
return OccupancyGridMap (data = grid , metadata = metadata )
217
220
@@ -221,11 +224,11 @@ class RGBSensor(CameraSensor):
221
224
222
225
def __init__ (
223
226
self ,
224
- vehicle_state ,
227
+ vehicle_state : VehicleState ,
225
228
width : int ,
226
229
height : int ,
227
230
resolution : float ,
228
- renderer , # type Renderer or None
231
+ renderer : RendererBase ,
229
232
):
230
233
super ().__init__ (
231
234
vehicle_state ,
@@ -238,22 +241,23 @@ def __init__(
238
241
)
239
242
self ._resolution = resolution
240
243
241
- def __call__ (self , renderer ) -> TopDownRGB :
244
+ def __call__ (self , renderer : RendererBase ) -> TopDownRGB :
242
245
camera = renderer .camera_for_id (self ._camera_name )
243
246
assert camera is not None , "RGB has not been initialized"
244
247
245
248
ram_image = camera .wait_for_ram_image (img_format = "RGB" )
246
249
mem_view = memoryview (ram_image )
247
- image = np .frombuffer (mem_view , np .uint8 )
248
- image .shape = (camera .tex .getYSize (), camera .tex .getXSize (), 3 )
250
+ image : np .ndarray = np .frombuffer (mem_view , np .uint8 )
251
+ width , height = camera .image_dimensions
252
+ image .shape = (height , width , 3 )
249
253
image = np .flipud (image )
250
254
251
255
metadata = GridMapMetadata (
252
256
resolution = self ._resolution ,
253
257
height = image .shape [0 ],
254
258
width = image .shape [1 ],
255
- camera_position = camera .camera_np . getPos () ,
256
- camera_heading_in_degrees = camera .camera_np . getH () ,
259
+ camera_position = camera .position ,
260
+ camera_heading = camera .heading ,
257
261
)
258
262
return TopDownRGB (data = image , metadata = metadata )
259
263
0 commit comments