MCPcopy Create free account
hub / github.com/AdaCompNUS/summit / World

Class World

PythonAPI/examples/manual_control_rss.py:149–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147
148
149class World(object):
150 def __init__(self, carla_world, hud, actor_filter, actor_role_name='hero'):
151 self.world = carla_world
152 self.actor_role_name = actor_role_name
153 self.map = self.world.get_map()
154 self.hud = hud
155 self.player = None
156 self.collision_sensor = None
157 self.lane_invasion_sensor = None
158 self.gnss_sensor = None
159 self.rss_sensor = None
160 self.camera_manager = None
161 self._weather_presets = find_weather_presets()
162 self._weather_index = 0
163 self._actor_filter = actor_filter
164 self.restart()
165 self.world.on_tick(hud.on_world_tick)
166 self.recording_enabled = False
167 self.recording_start = 0
168
169 def restart(self):
170 # Keep same camera config if the camera manager exists.
171 cam_index = self.camera_manager.index if self.camera_manager is not None else 0
172 cam_pos_index = self.camera_manager.transform_index if self.camera_manager is not None else 0
173 # Get a random blueprint.
174 blueprint = random.choice(self.world.get_blueprint_library().filter(self._actor_filter))
175 blueprint.set_attribute('role_name', self.actor_role_name)
176 if blueprint.has_attribute('color'):
177 color = random.choice(blueprint.get_attribute('color').recommended_values)
178 blueprint.set_attribute('color', color)
179 if blueprint.has_attribute('driver_id'):
180 driver_id = random.choice(blueprint.get_attribute('driver_id').recommended_values)
181 blueprint.set_attribute('driver_id', driver_id)
182 if blueprint.has_attribute('is_invincible'):
183 blueprint.set_attribute('is_invincible', 'true')
184 # Spawn the player.
185 if self.player is not None:
186 spawn_point = self.player.get_transform()
187 spawn_point.location.z += 2.0
188 spawn_point.rotation.roll = 0.0
189 spawn_point.rotation.pitch = 0.0
190 self.destroy()
191 self.player = self.world.try_spawn_actor(blueprint, spawn_point)
192 while self.player is None:
193 spawn_points = self.map.get_spawn_points()
194 spawn_point = random.choice(spawn_points) if spawn_points else carla.Transform()
195 self.player = self.world.try_spawn_actor(blueprint, spawn_point)
196 # Set up the sensors.
197 self.collision_sensor = CollisionSensor(self.player, self.hud)
198 self.lane_invasion_sensor = LaneInvasionSensor(self.player, self.hud)
199 self.gnss_sensor = GnssSensor(self.player)
200 self.rss_sensor = RssSensor(self.player)
201 self.camera_manager = CameraManager(self.player, self.hud)
202 self.camera_manager.transform_index = cam_pos_index
203 self.camera_manager.set_sensor(cam_index, notify=False)
204 actor_type = get_actor_display_name(self.player)
205 self.hud.notification(actor_type)
206

Callers 1

game_loopFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected