[C++] 각도 제한 [ -pi ~ pi ]

Robotics 분야에서 각도 표현은 굉장히 중요하다 !!
로봇의 heading angle이 200도라도 표현하기 보단 -160도라고 표현하는 것이 일반적이다.

즉, -180 ~ 180도 사이에서 모든 각도를 표현할 수 있어야 한다. 따라서 그 사이값으로 각도를 제한해보자.

1. pi_to_pi 코드

double pi_to_pi(double angle)
{
  while(angle >= M_PI)
  {
    angle -= 2.*M_PI;

    while(angle < -M_PI)
    angle += 2.*M_PI;

    return angle;
  }
}

이렇게 하면 -180도 ~ 180도 사이로 각도가 들어온다.