3.1 Control

2-D Quadrotor Control

앞서 Dynamics 에 대해서는 많이 살펴보았다. 1-D Quadrotor Control 에서 처럼 system modeling 을 통한 간단한 PD 제어기를 만들어보자.

2-D Control 에서는 y-z plane 에서의 움직임만 고려한다.

이전에 Equations of motion 을 살펴보았다.

이제 Trajectory tracking 을 수행해보자. 주어진 desired trajectory 에 대해 PD 제어를 수행하기 위해서는 제어기 구조가 아래와 같이 되어야 한다.

이므로 가 된다. 여기에 Feedback 기반 PD 제어를 하므로 초록색 박스 와 같아진다.

그러므로 위치 제어기에서 이 구해지고 를 구하는데 사용한다.

에 있는 이므로 snap 에 비례한다. tracking 해야하는 궤적이 aggressive 하지 않다면 으로 여긴다. 또한, 또한 생략하여 최종적인 는 아래와 같다.

이제 기체의 state 에서 나온 current state 가 feedback 되어 2-D PD 제어를 수행할 수 있다.

3-D Quadrotor Control

이제 이를 확장하여 3D Control 을 수행해보자. 앞선 1D, 2D 와 달리 yaw 또한 고려된다.

그러므로 desired trajectory 가 된다.

그리고 Momentum 계산에 필요한 각속도 는 앞서 배운대로 Roll, Pitch, Yaw 로 부터 구할 수 있다.

이제 우리의 state 가 된다. ( = Roll, Pitch, Yaw)

제어기 구조는 위와 같다. Outer loop 는 이전에 알던대로 위치 제어기의 feedback loop 이다.

Inner loop 에서는 를 자세제어기에 넣어준 후, Dynamics 를 이용해 current state 를 얻어 의 feedback loop 가 완성된다.

Control for Hovering

3D Hovering 의 경우에는 으로 가정한다.

Linear Momentum Equation Near Hover

우선 linear momentum equation 부터 살펴보자. Z-X-Y Euler angles 를 이용하면 을 이용해 아래와 같이 표현된다.

이 때 근사를 이용해 를 넣어보면 아래와 같이 정리된다. ( 이므로 Yaw 는 근사하지 않는다.)

Angular Rates Near Hover

마찬가지로 angular rates 로 한다.

또 똑같이 근사한다.

여기서 0과 가까운 값의 곱은 0으로 근사할 수 있다. 즉, 이다.

결국 가 된다.

Angular Momentum Equation Near Hover

식을 정리하면 아래와 같다.

여기서 한번 더 정리가 가능한데, 이전처럼 0에 가까운 값들의 곱은 0으로 근사할 수 있다. 즉, 이다.

이전에 angular rates 에서 유도된 를 대입하면 아래와 같다.

Linearization of Quadrotor Equations of Motion

3.2 Planning

Time, Motion and Trajectories

이제 Quadrotor의 궤적 생성에 대해 다뤄본다.

일반적으로 아래와 같은 구성을 가진다.

  • Start, Goal positions
  • Waypoint positions (intermediate positions)
  • Smoothness criterion : Dynamical system 이므로 임의적인 궤적은 따라갈 수 없다. input 의 변화율을 최소화하는 것을 의미한다.
  • Order of the system () : -th order system 이라는 것은 위치의 차 미분을 input 으로 가진다는 것을 의미한다.

Calculus of Variations

위 수식은 을 최소화하는 함수 를 찾고자 함을 의미한다.

예를 들어, 최단거리 문제의 경우 가 되고 최소시간 문제 (Fermat’s principle (optics))의 경우 가 된다.

functional 과 관계없이 Euler Lagrange equations 를 만족해야 한다.

Euler Lagrange Equation

인 system 을 살펴보자. 이 경우 input 이므로 를 구하는 문제가 된다.

이므로 이고 이를 풀어보면 이다. 나머지 계수들은 주어진 start, goal position 인 를 이용하여 구한다.

이러한 문제는 보통 kinematic model 에서 사용가능한다. Quadrotor 와 같은 dynamics system 은 차 system 이므로 조금 더 복잡해진다.

추후에 다루겠지만 quadrotor 는 인 snap 을 input 으로 사용한다.

Minimum Jerk Trajectory

이전과 마찬가지로 에 대해 궤적을 만들면 위와 같이 6개의 계수를 갖는 polynomial 궤적이 만들어진다.

이에 대해 Boundary conditions 를 적용해 로 계수를 구한다. 이 때, 차 까지의 미분인 속도와 가속도는 0을 갖는다고 가정한다.

그러면 위와 같이 행렬로 구해낼 수 있다.

Extensions to multiple dimensions

이를 여러 차원으로 확장할 수 있다.

따라서 Quadrotor 의 planar motions 에 적용해보면 에 대해 사용하므로 아래와 같이 minimum-jerk trajectory 를 구할 수 있다.

Waypoint Navigation

실제 환경에서는 중간 경로점들을 지나도록 해야한다. 즉, multi-segment trajectories 가 필요해진다.

그리고 이러한 궤적들 간의 continuous & differentiable 을 만족해야 한다.

위와 같은 궤적 가 정의되어야 하고, 이는 각각 아래와 같이 만족해야 한다.

그리고 continuous & differentiable 을 위해 에서 차까지 각 segment 간의 값이 같아야 한다. 즉, 이어야 한다.

Motion Planning for Quadrotors

이전의 control loop 를 떠올려 보면 inner loop 에서는 attitude control 로 를 결정하고 outer loop 에서 position control 로 을 결정하였다.

위의 dynamics 에서 보다싶이, 은 position 에 대해 2차 미분 term 이다(acceleration 이므로). 는 rotation matrix 의 2차 미분 term 인데 이는 position 에 대해서는 4차 미분으로 얽혀 있음을 알 수 있다.

Linearization of Equations of Motion 참고

그러므로 quadrotor 에서는 Minimum snap trajectory 를 필요로 함을 알 수 있다.

또한 여기에 장애물 constraints 를 고려한다고 생각해보자.

이 경우 각 장애물들을 convex 한 물체로 구성한다(e.g. Sphere, Polyhedron, etc.). 다면체의 경우 각 면의 법선 벡터와 점을 이용해 inequality constraint 를 구성할 수 있다.

강의에서는 위와 같이 장애물 constraints 를 수식화하였다.

여기에 항이 붙은 이유는 장애물의 모든 face 에 대해 만족할 필요가 없고 하나에 대해서만 만족해도 되기 때문이다.

가 0 또는 1이기 때문에 1인 경우에는 매우 큰 에 의해 constraints 가 항상 만족하게 된다. 그러므로 각각의 장애물에서 적어도 한 면에 대해 constraint 를 만족해야 한다.

Solving for Coefficients of Minimum Jerk Trajectories

이전에 Minimum jerk trajectory 의 계수를 찾는 문제를 조금 구체적으로 풀어보자.

이를 행렬로 표현해보면 아래와 같다.

이 외에도 velocity constraints, acceleration constraints 가 있다. 즉, 에서 미분값이 0이어야 한다.

이를 합쳐서 한번에 행렬로 표현해보면 아래와 같음을 알 수 있다.

따라서 의 문제로 바뀌어 로 풀어낼 수 있다.