오늘부터는 C++ 코드를 짜면서 새로 알게 된 사실들에 대해 메모를 하려고 한다.

사실 PCL 시지르와 다르게 이 시지르는 전적으로 나의 짧은 기억력을 보강하기 위해 작성하는 글이다. 그래서 내가 겪은 시행착오들과 그에 대한 해결책에 대해 쓰기 때문에 틀린 부분이 있을 수도 있다. 만약 이 글을 읽다가 잘못된 부분이 있다면, 메일로 알려주면 즉각적으로 고치도록 하겠다.

Motivation

21세기 초와 비교할 때, 로봇 분야는 대대적인 변화를 겪었다. 20세기 연구와 21세기 연구에서 가장 큰 차이점은 정보 접근성의 획기적인 향상이다. 20세기에는 연구자들이 논문을 통해 연구 결과를 공유하고, 그 논문이 널리 읽히기를 기대했다면, 21세기에는 논문 발표가 연구의 시작점이 되었고, 이후에는 연구자가 자신의 연구를 적극적으로 홍보하는 시대가 되었다.

이러한 변화에 발맞추어, 나도 공개되어 있는 오픈 소스 코드를 많이 보는데, 이러한 오픈 소스 중에서는 ‘우와 진짜 잘 짰다’ 싶은 코드들도 수두룩하다. 그래서 이번 시리즈에서는 이를 기반으로 학습한 내용을 공유할 계획이다. ‘For Robotics’라고 거창하게 제목을 지었지만, 사실 Eigen, TBB, tsl::robin 등 C++ 자체에 좀더 초점을 맞춘 글이 되지 않을까 싶다. C++은 로보틱스에서 성능과 효율성이 중요한 요소로 자리 잡고 있으며, Eigen은 행렬 연산과 선형 대수에 필수적인 강력한 도구로 인정받고 있다. 또한 최근에는 컴퓨터 하드웨어의 발달로 TBB 같은 병렬처리나 CUDA programming까지도 사용하여서 오픈소스를 publish하기 때문이다.

특히, STL(Standard Template Library)은 다양한 데이터 구조와 알고리즘을 제공하여 로보틱스 시스템의 효율적인 구현을 가능하게 한다. 로보틱스에 특화된 이러한 도구들의 활용 예를 소개하면서, 이 분야에 관심이 있는 독자들에게 유용한 정보를 제공할 예정이다.

새해의 끄적끄적 끝!