using namespace std
를 모두 삭제하여 네임스페이스를 정확하게 명시함. 앞으로도, 모든 서드 파티(Eigen
,Sophus
,Pangolin
,OpenCV
)의namespace
들을 명시하여 네임스페이스 혼동을 없앰.
ctime
같은 C언어 기반의 헤더파일로 알고리즘의 시간 측정을 하는 것이 아닌,chrono
를 사용해 C++ 언어에 맞게 수정.std::chrono::system_clock
이 아닌std::chrono::steady_clock
을 사용해 보다 정확하게 시간을 측정.
Vector6d
를Eigen::Vector6d
로 타입을 변경하여Eigen
라이브러리 형태의 자료형임을 명시.- Exponential Mapping 뿐만이 아닌 Logarithmic Mapping 또한 추가하여
SE(3) <-> se(3)
,SO(3) <-> so(3)
간의 매핑을 모두 증명.
- 인자 오류를
return
이 아닌throw
방식의 예외처리 방식으로 변경 steroVision.cpp
흑백의 RGBD point cloud를 시각화하는 게 아닌 원본 이미지의 RGB값을 이용해 Colored point cloud를 시각화 하도록 개량.
- Levenberg Marquardt Method를 직접 Eigen을 활용하여 구현.
orb_cv.cpp
: 기존 ORB Descriptor 매칭 알고리즘을 KNN 알고리즘의 k=2일 경우의 알고리즘으로 변환하고,rowe ratio test
와sort
알고리즘을 사용해 bad matching을 필터링하는 하는 방법으로 수정.orb_self.cpp
:BFMatch
함수를 KNN 알고리즘의 k=1인 경우의 알고리즘으로 변경orb_self.cpp
:BFMatch
함수의 인자 최대 Hamming distance(int d_max
)를 40의 고정 값이 아닌 가변 값으로 수정