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

Class World

PythonAPI/examples/manual_control_steeringwheel.py:128–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

126
127
128class World(object):
129 def __init__(self, carla_world, hud, actor_filter):
130 self.world = carla_world
131 self.hud = hud
132 self.player = None
133 self.collision_sensor = None
134 self.lane_invasion_sensor = None
135 self.gnss_sensor = None
136 self.camera_manager = None
137 self._weather_presets = find_weather_presets()
138 self._weather_index = 0
139 self._actor_filter = actor_filter
140 self.restart()
141 self.world.on_tick(hud.on_world_tick)
142
143 def restart(self):
144 # Keep same camera config if the camera manager exists.
145 cam_index = self.camera_manager.index if self.camera_manager is not None else 0
146 cam_pos_index = self.camera_manager.transform_index if self.camera_manager is not None else 0
147 # Get a random blueprint.
148 blueprint = random.choice(self.world.get_blueprint_library().filter(self._actor_filter))
149 blueprint.set_attribute('role_name', 'hero')
150 if blueprint.has_attribute('color'):
151 color = random.choice(blueprint.get_attribute('color').recommended_values)
152 blueprint.set_attribute('color', color)
153 # Spawn the player.
154 if self.player is not None:
155 spawn_point = self.player.get_transform()
156 spawn_point.location.z += 2.0
157 spawn_point.rotation.roll = 0.0
158 spawn_point.rotation.pitch = 0.0
159 self.destroy()
160 self.player = self.world.try_spawn_actor(blueprint, spawn_point)
161 while self.player is None:
162 spawn_points = self.world.get_map().get_spawn_points()
163 spawn_point = random.choice(spawn_points) if spawn_points else carla.Transform()
164 self.player = self.world.try_spawn_actor(blueprint, spawn_point)
165 # Set up the sensors.
166 self.collision_sensor = CollisionSensor(self.player, self.hud)
167 self.lane_invasion_sensor = LaneInvasionSensor(self.player, self.hud)
168 self.gnss_sensor = GnssSensor(self.player)
169 self.camera_manager = CameraManager(self.player, self.hud)
170 self.camera_manager.transform_index = cam_pos_index
171 self.camera_manager.set_sensor(cam_index, notify=False)
172 actor_type = get_actor_display_name(self.player)
173 self.hud.notification(actor_type)
174
175 def next_weather(self, reverse=False):
176 self._weather_index += -1 if reverse else 1
177 self._weather_index %= len(self._weather_presets)
178 preset = self._weather_presets[self._weather_index]
179 self.hud.notification('Weather: %s' % preset[1])
180 self.player.get_world().set_weather(preset[0])
181
182 def tick(self, clock):
183 self.hud.tick(self, clock)
184
185 def render(self, display):

Callers 1

game_loopFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected