MCPcopy Create free account
hub / github.com/PJLab-ADG/OASim / Vehicle

Class Vehicle

limsim/simModel/common/carFactory.py:28–473  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26
27
28class Vehicle:
29 def __init__(self, id: str) -> None:
30 self.id = id
31 # store the last 10[s] x position for scenario rebuild
32 # x, y: position(two doubles) of the named vehicle (center) within the last step
33 self.xQ = deque(maxlen=100)
34 self.yQ = deque(maxlen=100)
35 self.yawQ = deque(maxlen=100)
36 self.speedQ = deque(maxlen=100)
37 self.accelQ = deque(maxlen=100)
38 self.laneIDQ = deque(maxlen=100)
39 # lanePos: The position of the vehicle along the lane (the distance
40 # from the center of the car to the start of the lane in [m])
41 self.lanePosQ = deque(maxlen=100)
42 self.routeIdxQ = deque(maxlen=100)
43 self.routes: list[str] = None
44 self.LLRSet: set[str] = None
45 self.LLRDict: dict[str, dict[str, set[str]]] = None
46 self.LCRDict: dict[str, str] = None
47 self.length: float = 5.0 # SUMO default value
48 self.width: float = 1.8 # SUMO default value
49 self.maxAccel: float = 3.0 # SUMO default value
50 self.maxDecel: float = 4.5 # SUMO default value
51 self.maxSpeed: float = 13.89
52 self.vTypeID: str = None
53 self._iscontroled: bool = 0
54 # the follow three parameters are used to obtain available lanes
55 self.lookForward: float = 100
56 self.noChange: float = 5.0
57 self.plannedTrajectory: Trajectory = None
58 self.dbTrajectory: Trajectory = None
59 self.end_lane: str = None
60
61 # LLR: lane-level route
62 def getLaneLevelRoute(self, nb: NetworkBuild) -> tuple[set, dict]:
63 LLRSet: set[str] = set()
64 LLRDict: dict[str, dict[str, set[str]]] = {}
65 for i in range(len(self.routes)-1):
66 eid = self.routes[i]
67 LLRDict[eid] = {}
68 edgeIns = nb.getEdge(eid)
69 LLRSet = LLRSet | edgeIns.lanes
70 LLRDict[eid]['edgeLanes'] = edgeIns.lanes
71 nextEid = self.routes[i+1]
72 changeLanes = edgeIns.next_edge_info[nextEid]
73 LLRDict[eid]['changeLanes'] = changeLanes
74 nextEdge = nb.getEdge(nextEid)
75 changeJuncLanes = set()
76 for targetLane in nextEdge.lanes:
77 for cl in changeLanes:
78 clIns = nb.getLane(cl)
79 try:
80 changeJuncLanes.add(clIns.next_lanes[targetLane][0])
81 except KeyError:
82 pass
83
84 LLRSet = LLRSet | changeJuncLanes
85 LLRDict[eid]['junctionLanes'] = changeJuncLanes

Callers 6

addVehMethod · 0.90
initVehMethod · 0.90
initVehMethod · 0.90
addVehMethod · 0.90
initVehMethod · 0.90
initVehMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected