-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsimple_spawn.py
58 lines (48 loc) · 2.18 KB
/
simple_spawn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import carla
import random
from simulation import config
from simulation.sensors import (
GnssSensor,
IMUSensor,
LidarSensor,
RgbCamera,
)
vehicle_list = [
('v1', '87.687683,145.671295,0.300000,0.000000,90.000053,0.000000'),
('v2', '92.109985,227.220001,0.300000,0.000000,-90.000298,0.000000')
]
def main():
client = carla.Client("127.0.0.1", 2000)
client.set_timeout(20.0)
sim_world = client.load_world(config.SIM_WORLD)
for (vehicle_name, position) in vehicle_list:
# vehicles settings
vehicles = sim_world.get_blueprint_library().filter("vehicle.tesla.model3")
blueprint = random.choice(vehicles)
blueprint.set_attribute('role_name', "autoware_"+vehicle_name)
if blueprint.has_attribute('color'):
color = random.choice(blueprint.get_attribute('color').recommended_values)
blueprint.set_attribute('color', color)
if blueprint.has_attribute('driver_id'):
driver_id = random.choice(blueprint.get_attribute('driver_id').recommended_values)
blueprint.set_attribute('driver_id', driver_id)
if blueprint.has_attribute('is_invincible'):
blueprint.set_attribute('is_invincible', 'true')
# spawn
position = position.split(',')
spawn_point = carla.Transform(carla.Location(x=float(position[0]), y=float(position[1]), z=float(position[2])),
carla.Rotation(pitch=float(position[3]), yaw=float(position[4]), roll=float(position[5])))
vehicle_actor = sim_world.try_spawn_actor(blueprint, spawn_point)
# Set sweep_wheel_collision
physics_control = vehicle_actor.get_physics_control()
physics_control.use_sweep_wheel_collision = True
vehicle_actor.apply_physics_control(physics_control)
# Setup sensors
gnss_sensor = GnssSensor(vehicle_actor, sensor_name='ublox')
imu_sensor = IMUSensor(vehicle_actor, sensor_name='tamagawa')
lidar_sensor = LidarSensor(vehicle_actor, sensor_name='top')
rgb_camera = RgbCamera(vehicle_actor, sensor_name='traffic_light')
while True:
sim_world.wait_for_tick()
if __name__ == '__main__':
main()