Definition
- topologically equivalent : 어떤 space를 자르기와 붙이기 없이 다른 space로 변경이 가능하다면 두 space는 topologically equivalent라고 한다. (어떤 물체를 변경하는데 구부리거나, 늘이거나, 줄일 수 있지만 구멍을 뚫을 수는 없다고 할 때, 찰흙공은 적절한 변형을 통해 접시와 같은 형태로 만들 수 있고 도넛 모양의 찰흙 모형은 적절한 변경을 통해 컵과 같은 형태로 만들 수 있다.)
- explicit representation : n-dimensional space를 표현하기 위해 n-coordinates를 선택하는 방법. (구 표면 위의 한 점을 latitude, longitude로 표현)
- implicit representation : n-dimensional space를 n보다 큰 유클리안 space의 일부로 보고, 유클리안 좌표계와 constraint로 표현하는 방법. (구 표면 위의 한 점은 2-dimesional C-space이지만, 3차원 유클리안 좌표계(x, y, z)와 \( x^2 + y^2 + z^2= 1 \)라는 constraint로 표현. (constraint를 추가해줌으로써, dof는 2가 된다.) )
- holonomic constraints : C-space의 diemension을 줄여주는 constraint.
- non-holonomic constraints : C-space의 dimension을 줄여주지 못하는 constraint.
Topology and Representation
이전 시간에서 robot의 c-space의 중요한 특성으로 dimension(또는 dof)에 대해서 배웠다. 이번에는 또 다른 중요한 특성 중 하나인 shape에 대해서 학습할 것이다.
C-space의 shape이 구 모양이라면, C-space의 한 점은 2차원(lon,lat)으로 표현할 수 있다. C-space이 평면이라면, 이 C-space의 함 점 또한 2차원(x, y)으로 표현할 수 있다. 둘 다 2차원으로 표현할 수 있지만 두 space의 shape이 동일하다고 하지는 않는다. "topologically equivalent"한 두 space를 shape이 동일하다고 표현한다. (Definition 참조)
1차원에서는 아래 3가지를 topologically distinct(topologically equivalent하지 않다)하다고 한다.
- the circle : S 또는 \( S^1 \) (1차원 구 sphere)
- the line : E 또는 \( E^1 \) (1차원 유클리시안) 또는 R 또는 \( R^1 \)
- closed interval of the line : \( \left [ a, b \right ]\subset R^{1} \)
고차원 space의 topology는 이 3가지를 활용하여 Cartesian product \(\times\)로 표현할 수 있다.
- 평면 위에 있는 rigid body의 c-space는 \( R^2 \times S^1 \)로 표현 가능하다. ( (x, y)와 angle \( \theta \))
- 2R 로봇 팔의 c-space는 \( S^1 \times S^1 = T^2 \)로 표현 가능하다. \( T^n \)은 (n+1) dimensional space의 n-dimensional torus(도넛 모양) surface이다. \( S^1 \times S^1 \times \cdots \times S^1 \) (\(S^1\) n개)는 \(T^n\)으로 표현 가능하다. 참고로, \(S^2\)와 \(T^2\)는 topologically equivalent하지 않다.
- 2차원 평면에 2R 로봇 팔이 붙어있는 rigid body의 c-space는 \( R^2 \times S^1 \times T^2 \)로 표현 가능하다. 이는 다시 \( R^2 \times S^1 \times T^2 = R^2 \times T^3 \)로 표현할 수 있다.
topology는 space의 핵심적인 특성이지만, 실제로 우리가 space의 point를 표현하기 위해 어떤 좌표계를 선택할지와는 무관한다. 예를 들어, 원의 한 점을 \( \left ( \Theta \right ) \)로 표현할 수도 있지만 \( \{ (x,y) | x^2 + y^2 = 1 \} \)으로도 표현 가능하다. (어떤 좌표계를 선택하든 space의 topology는 변하지 않는다.)
구 표면의 한 점을 표현하는데 있어서 explicit representation인 latitude, longitude 좌표계를 선택했다고 가정해보자. Pole 근처에서 한 점이 움직이고 있다면, 아주 작은 움직임에도 매우 큰 좌표 변화가 발생할 것이다. 이러한 North/South Pole을 representation의 singularities(특이성)라고 한다. 이러한 singularities는 구 자체에서 야기되는 것이 아니다. 단지 representation 선택(latitude, longitude 좌표계)에 따른 결과이다. 이러한 singularities는 속도를 표현할 때 특히 문제가 된다. 동일한 속도로 움직이더라도 singularities (구의 pole) 근처에서는 속도가 무한대에 가까워질 것이다.
만약 configuration이 singularities 근처로 가지 않는다고 가정할 수 있다면 이러한 문제를 무시해도 된다. 하지만 그러한 가정을 할 수 없다면 representation 선택을 달리하여 이 문제를 극복해야 한다. explicit representation에서 발생하는 singularities문제는 implicit representation을 선택하여 극복이 가능하다. (이러한 이유로 modern robotics 강의에서는 implicit representation을 사용)
- explicit representation
- 장점 : 최소한의 좌표로 표시할 수 있음. (simple)
- 단점 : singularities 근처에서 실제 움직임(속도)을 충분히 표현하지 못함.
- implicit representation
- 장점 : 실제 움직임(속도)을 잘 반영함. (구의 표면의 point 움직임이 pole에서도 (x, y, z)의 변화로 잘 반영된다.)
- 단점 : dof보다 많은 coordinates가 필요.
다음은 로봇의 system, topology 그리고 representation을 보여주는 그림이다.
참고 : 로봇이 움직일 수 있는 다양한 위치(자세)는 configuration space로 표현할 수 있다. 동작 계획의 영역에서 configuration space의 두 점 사이의 경로가 로봇의 위치(자세)를 변경하기 위한 로봇의 움직임을 나타낸다. 참고로, 위의 그림에서 System과 Topology의 좌표는 연속적으로(smooth 하게) 움직이지만 Representation의 좌표는 비연속적으로 움직이는 것을 볼 수 있다.
Configuration and Velocity Constraints
위와 같은 four bar linkage가 있다면, 아래와 같이 4개의 변수( \(\theta_{1}, \theta_{2}, \theta_{3}, \theta_{4}\) )와 3개의 식으로 표현될 수 있다. (이러한 식을 loop-closure equation이라고 한다.) 4개의 변수와 3개의 constraint로 인해 결국 dof는 1이 된다.
- \(L_{1}cos(\theta_{1}) + L_{2}cos(\theta_{1}+\theta_{2}) + \cdots + L_{4}cos(\theta_{1} + \cdots + \theta_{4}) = 0 \),
- \(L_{1}sin(\theta_{1}) + L_{2}sin(\theta_{1}+\theta_{2}) + \cdots + L_{4}sin(\theta_{1} + \cdots + \theta_{4}) = 0 \),
- \(\theta_{1} + \theta_{2} + \theta_{3} + \theta_{4} =0\),
이를 좀 더 일반적으로 표현하면, configuration space는 아래와 같이 표현할 수 있다. 아래의 경우 dof는 (n-k)가 되며, loop-closure equation같이 k개의 독립적인 equation을 holonomic constraint라고 한다.
- column vector \(\theta = [\theta_{1} \cdots \theta_{n}]^T \in R^n\)
- loop-closure equation \(g(\theta) = \begin{bmatrix} g_{1}(\theta_{1}, \cdots, \theta_{n})\\ \vdots \\ g_{k}(\theta_{1}, \cdots, \theta_{n}) \end{bmatrix} = 0, k \leq n\)
loop-closure equation을 적용받는 closed-chain robot이 움직인다고 가정해보자. loop-closure equation \(g(\theta)\)를 시간 t로 미분하면 다음과 같다.
\(\frac{\mathrm{d} }{\mathrm{d} t}g(\theta(t)) = \begin{bmatrix} \frac{\partial g_{1}}{\partial \theta_{1}}(\theta)\dot{\theta_{1}} + \cdots + \frac{\partial g_{1}}{\partial \theta_{n}}(\theta)\dot{\theta_{n}}\\ \vdots \\ \frac{\partial g_{k}}{\partial \theta_{1}}(\theta)\dot{\theta_{1}} + \cdots + \frac{\partial g_{k}}{\partial \theta_{n}}(\theta)\dot{\theta_{n}} \end{bmatrix} = 0\)
이 식을 다시 column vector \(\left [ \dot{\theta_{1}} \cdots \dot{\theta_{n}}\right ]^T\)와의 곱으로 표현하면 다음과 같다.
\(\begin{bmatrix} \frac{\partial g_{1}}{\partial \theta_{1}}(\theta) + \cdots + \frac{\partial g_{1}}{\partial \theta_{n}}(\theta)\\ \vdots \\ \frac{\partial g_{k}}{\partial \theta_{1}}(\theta) + \cdots + \frac{\partial g_{k}}{\partial \theta_{n}}(\theta) \end{bmatrix} \begin{bmatrix} \dot{\theta_{1}}\\ \vdots \\ \dot{\theta_{n}}\end{bmatrix} = \frac{\partial g}{\partial \theta}(\theta)\dot{\theta} = A(\theta)\dot{\theta} = 0\)
\(\dot{\theta}\)는 \(\theta_{i}\)를 시간 t로 미분한 joint velocity vector이고, \(A(\theta) = \frac{\partial g(\theta)}{\partial \theta} \in R^{k \times n}\) 이다.
이러한 형식( \(A(\theta)\dot{\theta} = 0\))의 velocity constraint를 Pfaffian constraint라고 한다.
여기서 \(A(\theta)\dot{\theta} = \frac{\partial g(\theta)}{\partial \theta}\) 식을 보면 미분성분이 있는 것을 볼 수 있다. 다시 말하면, \(g(\theta)\)를 \(A(\theta)\)의 적분으로도 생각할 수 있다. holonomic type의 Pfaffian constraint는 적분이 가능하고, 이를 적분을 하면 configuration constraint가 된다.
다음으로 holonomic type과 다른 경우의 Pfaffian constraint를 살펴보자. 아래와 같이 real wheel의 중심을 (x, y) 라고 하고, chassis angle을 \(\phi\)로 하는 자동차가 있다.
이 자동차의 configuration은 \( q = (\phi, x, y)\)로 표현할 수 있다. 이 때,
x를 시간 t로 미분하면 \(\dot{x} = v cos(\phi)\) 이 되고,
y를 시간 t로 미분하면 \(\dot{y} = v sin(\phi)\) 이 되므로,
이를 정리하면 \(\dot{x}sin(\phi) - \dot{y}cos(\phi) = 0\) 식을 얻을 수 있다.
이 식을 Pfaffian constraint으로 표현하면 \(A(q)\dot{q} = A(q)\begin{bmatrix}\phi\\x\\y\end{bmatrix} = 0\) 이 되고, A(q)는 아래와 같이 된다.
\(A(q) = \begin{bmatrix}0&sin\phi&-cos\phi\end{bmatrix} \in R^{1 \times 3}\)
여기서 구한 A(q)는 적분 가능하지가 않다. (\(\frac{\partial g(q)}{\partial q}\)가 없다) 이러한 Pfaffian constraint를 non-holonomic constraint라고 한다. 즉, velocity constraint가 자동차의 움직이에는 제한을 줄 수 있지만 (수평(->)으로 이동하는 움직임 제한), 결국 자동차는 configuration space \((\phi, x, y)\)의 어떤 점에도 도달할 수 있다.
Task Space and Workspace
로봇의 end-effector와 관련된 configuration으로 task space와 workspace가 있다. 이는 로봇의 c-space과 구분하여야 한다. task space 또는 worksapce의 한 점을 통해 로봇의 configuration을 정의할 수는 없다. 즉, task space 또는 workspace의 한 점은 로봇의 여러 configuraion(자세)을 통해 도달 가능할 수 있다. 그리고 task space의 어떤 점들은 로봇이 도달하지 못 할 수도 있다. (workspace는 최소 하나의 configuration을 통해 도달 가능하다.)
- Task space : 로봇과 관계없이 task를 가장 잘 표현할 수 있는 space. 예를 들어 로봇의 task가 칠판에 글을 적는 것이라면 이 task를 가장 잘 표현할 수 있는 space는 2차원 유클리안 space일 것이다.
- Workspace : task와 상관없이 robot의 구조에 따라 end-effector가 도달할 수 있는 space.
'Robotics > Modern Robotics' 카테고리의 다른 글
Modern Robotics - Configuration Space (1) - degree of freedom (0) | 2022.02.01 |
---|---|
Modern Robotics - 강의 정보 (0) | 2022.02.01 |