얼마전 무인운전차량의 자율주행에 대한 글을 썼는데, 이번에는 이 무인운전차량의 조향 핸들의 캘리브레이션 방법에 대해 설명드리도록 하겠습니다. 실제로 차량을 자율주행할 때, 조향 핸들이 캘리브레이션 되어있지 않은 경우 데드레쿠닝에 많은 오차를 발생하게 됩니다. 물론 Fiber Optic Gyro센서(http://blog.daum.net/pg365/247)와 같이 정밀한 자이로 센서가 장착되어 있다면 이러한 과정이 필요하지 않겠지만, FOG센서가 가격이 만만찮습니다.
차량 핸들과 종단의 바퀴가 연결되는 기구적 메커니즘을 살펴보면 차량 핸들의 회전각과 전륜의 조향각은 선형으로 비례하지 않는 구조입니다. 그래서 실험으로 이 둘의 관계식을 구해보는 수밖에 없습니다. 이를 위해서는 정밀하게 차량의 회전을 측정할 수 있는 Fiber Optic Gyro 센서가 필요합니다. 본 실험에서는 1축 FOG 센서인 KVH DSP3000 센서를 사용하였습니다. 다음 문서를 참고하시기 바랍니다.
캘리브레이션을 하기 위해서는 차량의 주행 데이터 수집이 필요합니다. 그래서 넓은 운동장이나 주차장 같은 곳에서 수동운전으로 차량을 주행하면서 핸들의 회전 각과 실제 조향 방향각을 측정해야 합니다. 데이터는 다음과 같은 구조로 저장하였습니다.
<car_log.txt 파일>
# id time robot_x robot_y robot_theta 주행거리 주행속도 조향각 FOG 측정각도
0 91616.820 0.000 0.000 -0.000 10.367 0.000 -0.024 -0.000
0 91625.508 21.991 23.387 0.464 11.395 1.073 -0.009 -0.011
0 91626.201 22.900 23.842 0.467 12.412 1.887 0.006 -0.009
0 91626.663 23.834 24.314 0.470 13.458 2.571 0.008 -0.005
0 91627.062 24.794 24.805 0.475 14.536 2.966 0.008 -0.001
0 91627.423 25.766 25.308 0.480 15.630 3.102 0.009 -6.279
0 91627.755 26.673 25.783 0.484 16.654 3.288 0.009 -6.274
0 91628.083 27.629 26.291 0.493 17.737 3.277 0.011 -6.266
0 91628.416 28.576 26.804 0.501 18.815 3.243 0.011 -6.258
0 91628.748 29.460 27.293 0.509 19.824 3.130 0.011 -6.250
0 91629.114 30.405 27.826 0.517 20.910 2.949 0.006 -6.242
0 91629.477 31.295 28.332 0.519 21.933 2.802 0.001 -6.240
0 91629.870 32.222 28.862 0.518 23.001 2.717 -0.003 -6.241
........
그리고 다음 프로그램을 사용하여 핸들의 조향각과 차량이 회전하는 각을 계산하였습니다.
마지막으로 엑셀에서 읽어와 데이터를 플롯하고 다항식 추세선을 구해 보았습니다.
y = 0.8108x5 + 0.046x4 + 0.1851x3 - 0.0209x2 + 0.9736x + 0.002