|
20 | 20 | # EGO |
21 | 21 |
|
22 | 22 | state = lgsvl.AgentState() |
| 23 | +forward = lgsvl.utils.transform_to_forward(spawns[0]) |
| 24 | +right = lgsvl.utils.transform_to_right(spawns[0]) |
| 25 | +up = lgsvl.utils.transform_to_up(spawns[0]) |
23 | 26 | state.transform = spawns[0] |
24 | 27 | a = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state) |
25 | 28 |
|
26 | 29 | # NPC, 10 meters ahead |
27 | | - |
28 | | -sx = spawns[0].position.x |
29 | | -sy = spawns[0].position.y |
30 | | -sz = spawns[0].position.z + 10.0 |
31 | | - |
32 | 30 | state = lgsvl.AgentState() |
33 | | -state.transform = spawns[0] |
34 | | -state.transform.position.x = sx |
35 | | -state.transform.position.z = sz |
| 31 | +state.transform.position = spawns[0].position + 10 * forward |
| 32 | +state.transform.rotation = spawns[0].rotation |
36 | 33 | npc = sim.add_agent("Sedan", lgsvl.AgentType.NPC, state) |
37 | 34 |
|
38 | 35 |
|
|
57 | 54 | angle = lgsvl.Vector(i, 0, 3*i) |
58 | 55 |
|
59 | 56 | # Raycast the points onto the ground because BorregasAve is not flat |
60 | | - hit = sim.raycast(lgsvl.Vector(sx + px, sy, sz + pz), lgsvl.Vector(0,-1,0), layer_mask) |
| 57 | + hit = sim.raycast(spawns[0].position + px * right + pz * forward, lgsvl.Vector(0,-1,0), layer_mask) |
61 | 58 |
|
62 | | - wp = lgsvl.DriveWaypoint(lgsvl.Vector(sx + px, sy + py, sz + pz), speed, angle, 0, 0) |
| 59 | + wp = lgsvl.DriveWaypoint(spawns[0].position + px * right + py * up + pz * forward, speed, angle, 0, 0) |
63 | 60 | waypoints.append(wp) |
64 | 61 |
|
65 | 62 | # When the NPC is within 1m of the waypoint, this will be called |
|
0 commit comments