1. Odometry 소개
- Odometer: 차량이나 로봇이 주행하며 이동한 거리를 측정하는 기기
- Odometry: Odometer의 측정값으로 움직이는 사물의 위치를 측정하는 방법
- 자동차는 바퀴의 회전수로 이동 거리를 계산한다.
- 자동차의 회전
- 자동차가 회전할 때 앞바퀴가 꺾이는 각도는 다르다. 자동차가 제자리를 맴돌 때 두 바퀴가 그리는 원을 상상해보자. 회전 방향의 안쪽 바퀴가 바깥쪽 바퀴보다 작은 원을 그려야 하기 때문에 안쪽 바퀴가 바깥쪽 바퀴보다 많이 꺾여야 한다. 아래 그림의 왼쪽처럼 두 뒷바퀴를 연결한 평행선에 각 앞바퀴의 수직선이 한 점에서 만나야 한다.
- Ackermann Steering
계산식 없이 아래 그림의 오른쪽처럼 설계하면 앞바퀴가 왼쪽처럼 동심원을 그리는 서로 다른 각도로 꺾이게 된다.

- 자동차의 위치 정보
- 현재 위치: 두 뒷바퀴의 중점(x,y) + 각도(θ)
- 이동 속도: 선속도(v) + 각속도(w)
- 조향각(δ)
2. Odometry 정보 Publish
3. RVIZ 가상 공간에서 3D 자동차 주행시키기
강의에서 설명한 3.3.의 odom 노드 코드에 오류가 있어 보여 다른 구조로 수정하였다.
- 전체 흐름
① driver 노드가 xycar_motor 토픽을 발행
② converter 코드가 xycar_motor 토픽을 받아 JointState 포맷으로 변환하여 joint_states 토픽을 발행
③ odom 코드가 joint_states 토픽을 받아 몇 가지 수학 계산 후 odom 토픽을 발행
④ RVIZ 가상 공간에서 3D 자동차가 8자로 주행한다.


📙강의 - (주)자이트론 대표이사 허성민