직진 주행하다 회전을 할 때의 교차로의 어느 부분에서 회전 하는 지에 따라 회전 이 끝나고 난 위치가 달라집니다.

다음 예시는 직진 주행 중 왼쪽 이미지의 위치에서 회전(lt2) 하게 되면 회전이 끝나고 난 로봇의 위치를 오른쪽에 표시 했습니다.

lt 명령은 양쪽바퀴가 같은 속도로 역회전과 정회전을 하여 제자리 회전하는 동작을 합니다.

Untitled

교차로 진입 후에 바로 회전을 하게 되면 2번 센서가 검은색 감지 이후에 정지 하며 이런 형태로 정지 합니다. 왼쪽 라인과 로봇이 일직선이 아닌 형태로 정지 합니다.

교차로를 바퀴의 위치가 지난 상태에서 회전을 하 하면 이런 형태로 정지하게 되며 왼쪽 라인과 로봇이 일직선이 아닌 형태로 정지 합니다.

교차로와 로봇의 바퀴가 일치하는 지점에서 회전을 하면 이런 형태로 정지하며 왼쪽라인과 로봇이 일직선 형태로 정지합니다.

위의 그림은 이론적인 형태로 로봇의 위치를 표시 했습니다.

실제는 로봇의 무게 중심과 바퀴의 마찰력에 따라 변동이 있으며 모터의 속도와 토크, 모터드라이버의 용량에 따라 변동이 있습니다.

또한 직진하다 제자리 좌회전을 하면 왼쪽 모터는 직진하다 역회전을 해야 하고 오른쪽 모터는 직진하다 직진을 하기에 오른쪽이 속도가 더 빠르게 적용 됩니다.

또한 로봇의 무게에 따라 관성이 적용 됩니다.

2번 센서를 사용해서 정지 할 경우 2번 센서가 검은색은 감지하고 흰색을 감지하면 정지 하지만 관성으로 예상보다 더 많이 회전하게 됩니다. 그래서 회전 명령의 마지막 인자값의 시간만큼 역회전 하여 관성으로 더 회전 하는 것을 방지 하도록 설정 합니다.

이처럼 많은 변수가 있기에 내 로봇에 맞는 적절한 값을 찾는 게 중요 합니다.

위의 3가지 회전 이후에 line 명령으로 직진을 하면 모두 직진이 잘 됩니다.

하지만 회전 이후 직진하는 구간의 길이가 짧으면 다음 교차로 진입이 불안하여 주행 오류가 발생할 확률이 있기에 이를 줄이기 위해 처음에는 직각 회전을 연습 하는게 좋습니다.

Untitled

위의 두 회전 이후 다음 라인까지 주행을 잘 하지만 아래 형태로 회전을 해야 다음 구간의 동작이 잘 됩니다.