MCPcopy Create free account
hub / github.com/OpenDriveLab/DriveAdapter / _get_control

Method _get_control

leaderboard/team_code/auto_pilot.py:131–165  ·  view source on GitHub ↗
(self, target, far_target, tick_data)

Source from the content-addressed store, hash-verified

129 return angle
130
131 def _get_control(self, target, far_target, tick_data):
132 pos = self._get_position(tick_data)
133 theta = tick_data['compass']
134 speed = tick_data['speed']
135
136 # Steering.
137 angle_unnorm = self._get_angle_to(pos, theta, target)
138 angle = angle_unnorm / 90
139
140 steer = self._turn_controller.step(angle)
141 steer = np.clip(steer, -1.0, 1.0)
142 steer = round(steer, 3)
143
144 # Acceleration.
145 angle_far_unnorm = self._get_angle_to(pos, theta, far_target)
146 should_slow = abs(angle_far_unnorm) > 45.0 or abs(angle_unnorm) > 5.0
147 target_speed = 4.0 if should_slow else 7.0
148 brake = self._should_brake()
149 target_speed = target_speed if not brake else 0.0
150
151 self.should_slow = int(should_slow)
152 self.should_brake = int(brake)
153 self.angle = angle
154 self.angle_unnorm = angle_unnorm
155 self.angle_far_unnorm = angle_far_unnorm
156
157 delta = np.clip(target_speed - speed, 0.0, 0.25)
158 throttle = self._speed_controller.step(delta)
159 throttle = np.clip(throttle, 0.0, 0.75)
160
161 if brake:
162 steer *= 0.5
163 throttle = 0.0
164
165 return steer, throttle, brake, target_speed
166
167 def run_step(self, input_data, timestamp):
168 if not self.initialized:

Callers 1

run_stepMethod · 0.95

Calls 4

_get_angle_toMethod · 0.95
_should_brakeMethod · 0.95
_get_positionMethod · 0.45
stepMethod · 0.45

Tested by

no test coverage detected