[데브코스 자율주행 TIL] DAY 56 (12/06)

happy_quokka·2023년 12월 6일
0
post-thumbnail

2023.12.06 DAY56

어제 profiler를 거의 다 해서 오늘은 profiler를 조금 더 손보고 분석했다. 또한 evo를 설치해서 성능도 분석해보았다. evo를 설치하는 과정에서 python 버전으로 인해 설치가 제대로 진행되지 않았다ㅠㅠ python 사이에 심볼릭 설정이 조금 꼬여있어서 안쓰는 버전을 제거하고 결국 2.7 버전으로 하여 설치하였다. 버전 맞추는게 가장 어려운 것 같다ㅠㅠ

profiler와 evo 모두 프로그램을 분석해서 구조, 성능을 파악하는 도구들인데 어떻게 분석해야하는지, 어떤 부분을 유심히 봐야하는지, 그 의미가 무엇인지에 대해 정확히 감이 잡히지 않아서 팀워, 강사님에게 질문하고 이야기를 나누었다. 오프라인으로 진행하면 언제든 물어볼 사람이 있어서 좋은 것 같다!


SLAM project & 알게된 점

easy profiler

  • ORB SLAM2의 경우 크게 3개의 thread로 나누어서 진행된다
  • 추가로 full BA를 진행하는 thread는 특정 경우에 할당, 해제된다
  • 크게 3개로 나누어 진행되기 때문에 EASY_THREAD로 thread를 나누었다

분석

  • Local Mapping, Loop Closure 부분에서 빈 곳
    • 차가 정지해있는 경우 keyframe이 생성되지 않기 때문에 비어있다
    • 반대로 촘촘한 경우는 회전하는 경우가 많다
  • tracking에서는 다음 frame을 기다리는 시간이 길다
  • full BA은 thread 할당, 해제가 반복되기 때문에 여러개로 나타난다
    • 할당, 해제를 하는 이유는 full BA를 수행하는 시간이 짧기 때문에 그 외의 시간에는 다른 프로그램이 사용할 수 있도록 해제해 준다
    • 자율주행 자동차의 경우 thread 하나를 아에 할당해서 사용한다

profiler tip

  • block에 마우스를 가져가댔을 때 나오는 time을 통해 어떤 부분이 시간이 오래걸리는지 파악할 수 있다(보통 avg/thread를 보는 것 같다)
  • 여러 block을 씌우고 할 때 tracking의 경우 빈곳이 없이 촘촘하게 되면 좋다
  • block들이 아래로 쌓일 수 있도록 표현되는 것이 좋다

evo

  • python 2.7에서 설치
  • orb slam의 결과 파일은 'TUM' trajectory files로 나온다
  • ground truth 파일은 'KITTI' pose files 형식이기 때문에 이를 tum 파일로 변경한 후 같이 사용해야한다


  • 1차 확인을 할 때는 rmse를 주로 본다
  • mean은 전체를 확인하는 것으로 튀는 값이 반영되기 때문에 보통 median 값보다 높다
  • mean와 median이 비슷할 수록 튀는 값이 없는 것이다

0개의 댓글