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

Class World

PythonAPI/examples/manual_control.py:157–273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

155
156
157class World(object):
158 def __init__(self, carla_world, hud, args):
159 self.world = carla_world
160 self.actor_role_name = args.rolename
161 try:
162 self.map = self.world.get_map()
163 except RuntimeError as error:
164 print('RuntimeError: {}'.format(error))
165 print(' The server could not send the OpenDRIVE (.xodr) file:')
166 print(' Make sure it exists, has the same name of your town, and is correct.')
167 sys.exit(1)
168 self.hud = hud
169 self.player = None
170 self.collision_sensor = None
171 self.lane_invasion_sensor = None
172 self.gnss_sensor = None
173 self.imu_sensor = None
174 self.radar_sensor = None
175 self.camera_manager = None
176 self._weather_presets = find_weather_presets()
177 self._weather_index = 0
178 self._actor_filter = args.filter
179 self._gamma = args.gamma
180 self.restart()
181 self.world.on_tick(hud.on_world_tick)
182 self.recording_enabled = False
183 self.recording_start = 0
184
185 def restart(self):
186 self.player_max_speed = 1.589
187 self.player_max_speed_fast = 3.713
188 # Keep same camera config if the camera manager exists.
189 cam_index = self.camera_manager.index if self.camera_manager is not None else 0
190 cam_pos_index = self.camera_manager.transform_index if self.camera_manager is not None else 0
191 # Get a random blueprint.
192 blueprint = random.choice(self.world.get_blueprint_library().filter(self._actor_filter))
193 blueprint.set_attribute('role_name', self.actor_role_name)
194 if blueprint.has_attribute('color'):
195 color = random.choice(blueprint.get_attribute('color').recommended_values)
196 blueprint.set_attribute('color', color)
197 if blueprint.has_attribute('driver_id'):
198 driver_id = random.choice(blueprint.get_attribute('driver_id').recommended_values)
199 blueprint.set_attribute('driver_id', driver_id)
200 if blueprint.has_attribute('is_invincible'):
201 blueprint.set_attribute('is_invincible', 'true')
202 # set the max speed
203 if blueprint.has_attribute('speed'):
204 self.player_max_speed = float(blueprint.get_attribute('speed').recommended_values[1])
205 self.player_max_speed_fast = float(blueprint.get_attribute('speed').recommended_values[2])
206 else:
207 print("No recommended values for 'speed' attribute")
208 # Spawn the player.
209 if self.player is not None:
210 spawn_point = self.player.get_transform()
211 spawn_point.location.z += 2.0
212 spawn_point.rotation.roll = 0.0
213 spawn_point.rotation.pitch = 0.0
214 self.destroy()

Callers 1

game_loopFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected