https://github.com/neokii/nTune/tree/master/release
1.1.8 부터 cameraOffset이 추가되어 앱(apk), ntune.py 둘다 업데이트해야 합니다.
1. ntune.py를 이온의 /data/openpilot/selfdrive 위치로 복사합니다.
2. 각차량 interface에서 lqr 또는 indi가 지정되어야 동작합니다. 예) ret.lateralTuning.init('lqr')
selfdrive/controls/lib/latcontrol_lqr.py
selfdrive/controls/lib/latcontrol_indi.py
의 파일을 아래와 같이 몇가지 추가합니다.
1) 맨상단에 아래를 추가합니다.
from selfdrive.ntune import nTune
2) lqr:27라인, indi:46라인 근처 self.reset() 아래에
self.reset()
self.tune = nTune(CP, self) # 추가
3) lqr:47라인, indi:66라인 근처 update 함수블럭 첫 줄에 추가합니다.
def update(self, ..........):
self.tune.check() # 추가
4) steerRatio, steerActuatorDelay 추가
pathplanner.py 의 상단
from selfdrive.ntune import ntune_get
102라인 근처 VM.update_params(...) 호출되는 바로 아래에
VM.sR = ntune_get('steerRatio') # 추가
118라인 근처 calc_states_after_delay 함수 호출부분 마지막 인자를
CP.steerActuatorDelay -> ntune_get('steerActuatorDelay') 로 수정
5) cameraOffset 추가
selfdrive/controls/lib/lane_planner.py
selfdrive/controls/controlsd.py
두 파일의 상단에 import 추가
from selfdrive.ntune import ntune_get
버전마다 약간의 차이가 있을 수 있으니
cameraOffset = ntune_get("cameraOffset") 를 추가하고
CAMERA_OFFSET -> cameraOffset 으로 대체만 하시기 바랍니다.
* controlsd.py 435라인 근처 CAMERA_OFFSET 을 아래와 같이 수정합니다.
cameraOffset = ntune_get("cameraOffset")
l_lane_close = left_lane_visible and (self.sm['pathPlan'].lPoly[3] < (1.08 - cameraOffset))
r_lane_close = right_lane_visible and (self.sm['pathPlan'].rPoly[3] > -(1.08 + cameraOffset))
* lane_planner.py 의 90라인 근처
cameraOffset = ntune_get("cameraOffset")
self.l_poly[3] += cameraOffset
self.r_poly[3] += cameraOffset
3. 이온을 재부팅 후 최초한번 판다와 연결합니다.
4. release폴더에 있는 apk파일을 안드로이드 기기에 설치에 실행하여 사용합니다.
5. 버튼을 길게 누르면 기존 Step의 x10로 증가 또는 감소합니다.
6. 설정 파일은 이온의 /data/ntune 위치에 저장됩니다.