Singularity in orientation

Research/Robotics 2015. 3. 12. 10:19



A singularity occurs when the middle rotation in the sequence makes the rotation axes of the first and third rotations parallel.

(A singularity in a three-angle sequence is sometimes referred to as gimbal lock.)



Think about the PUMA560 robot whose 4th joint and 6th joint are aligned. If 4th joint increases and 6th joint decreases with same rates at the same time, the orientation of end effector will not be changed.

So, we lose some degree of freedom!



* Ref :

[1] https://moocs.qut.edu.au/courses/814/learn

설정

트랙백

댓글

How many rotational parameters are required for 4D space?

Research/Robotics 2015. 3. 11. 11:49

For N-dimensional space the number of angles required is quadratic N(N-1)/2. The Wikipedia page for Euler angles has the explanation.


* Ref :

[1] https://moocs.qut.edu.au/courses/814/learn

설정

트랙백

댓글

Euler angles and Cardan angles

Research/Robotics 2015. 3. 11. 11:49

Extrinsic rotation (fixed angle)

  • 12 representations


Intrinsic rotation

  • Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y)
  • Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z).
    (cardan angles, roll-pitch-yaw, ...)


* Ref :

[1] https://moocs.qut.edu.au/courses/814/learn

[2] http://en.wikipedia.org/wiki/Euler_angles

설정

트랙백

댓글

why column vectors of rotation matrix is new axis ?

Research/Robotics 2015. 3. 11. 11:08



We can recognize the rotation matrix is the transposed matrix of the upper equation.


* Ref :

[1] https://moocs.qut.edu.au/courses/814/learn

설정

트랙백

댓글

why use a homogeneous transform matrix?

Research/Robotics 2015. 3. 9. 11:47

Pose is described by just 3 numbers:

    • Offset in the x-direction
    • Offset in the y-direction
    • A rotation angle

The homogeneous transformation is inefficient in this respect, requiring three times as many numbers as actually required. Some of those 9 numbers have fixed values like 0 or 1, and others repeated or repeated with a different sign. Its advantage is the ability to compound poses by matrix-matrix multiplication, or transform vectors by matrix-vector multiplication. These operations are very convenient to express in an environment like MATLAB, and with modern computers the extra computation required is almost insignificant.



* Ref :

[1] https://moocs.qut.edu.au/courses/814/learn

설정

트랙백

댓글

difference between Euclidean and Cartesian

Research/Robotics 2015. 3. 4. 11:25

Euclidean geometry 

The description of 2D and 3D geometrical shapes in terms of fundamental axioms


Cartesian geometry 

The description of 2D and 3D geometrical shapes in terms of algebraic equations



* Ref 

[1] https://moocs.qut.edu.au/courses/814/learn?edcast_ref=16351

[2] https://moocs.qut.edu.au/courses/791/learn

설정

트랙백

댓글

Eigen Vectors and Eigen Values

Research/Mathmatics 2015. 2. 27. 11:43

아래 사이트의 동영상을 보면 정말 좋다.





https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example


'Research > Mathmatics' 카테고리의 다른 글

Skew symmetric matrix  (0) 2015.04.15
What is homogeneous transform?  (0) 2015.01.16
Atan2 에 대하여.. (what is atan2?)  (0) 2015.01.08
Fourier Transform (푸리에 변환)  (0) 2014.12.02

설정

트랙백

댓글

문장을 깔끔하게 쓰기 위한 9가지 팁

카테고리 없음 2015. 2. 8. 15:50


경영 카운셀러 '유정식' 님의 글에 의하면 깔끔하지 못한 글의 습관은 아래와 같다. 

이에대한 수정이 함께 제시되어 있어 간략하게 요약해 보았다. 


  1. '및' 
    • '~와(과)', '~하고' 
  2. '~시',  '~하도록 한다.' 
    • '~할 때', '~한다.'
  3. '~대하여', '~관하여'
    • 최대한 사용하지 않는다.
  4. '~할 수 있다.'
    • '~한다.'
  5. '~하고 있다.'
    • '~한다.'
  6. '~시킨다.'
    • '~한다.'
  7. 명사형의 나열
    • 명사형을 지양하고 서술어를 적절히 사용한다.
  8. '~성'
    • 남용을 지양한다.



* Ref

[1] http://www.infuture.kr/338

설정

트랙백

댓글

부모와 자식의 관계는 영원히 남아서 - 최선옥 시인

Daily life/Impressive quotes 2015. 2. 6. 15:42

부모와 자식의 관계는 영원히 남아서


친구들과의 이야기 중, 피해갈 수 없는 것이
부모님의 건강에 관한 것입니다.
특히 치매를 앓는 부모님 얘기가 나오면
그동안 못해드렸던 생각에 눈시울이 붉어지기도 합니다.
과거 자식들과 함께 했던 일은 어렴풋 기억하면서도
현재 자신의 위치나 가족관계를 지운 안타까운 사연들입니다.

과거를 잊으라는 말도 있지만,
우리는 공유하는 기억으로 더욱 돈독해지곤 합니다.
이런저런 기억들은 미련과 여운을 동반하지만
그리움으로 다가서고,
기억을 바라보는 시각은 과거에 한정된 기억자체로만 저장되기보다는
현재를 유지하는 힘이 되기도 합니다.
완전히 지우지 못한 과거의 흔적이
때로 회한과 상처로 남는다 하여도 기억은,
현재 자신의 동일성을 확보하는데 중요한 역할을 하기 때문입니다.

어느 부분을 하얗게 지웠다고 해도
부모와 자식의 관계는 영원히 남아서
다시금 부족한 부분을 채워드리고 싶은 마음을 친구들에게서 읽습니다.


-
최선옥 시인


설정

트랙백

댓글

Automatic Differentiation

카테고리 없음 2015. 2. 4. 15:57

* 아래 내용은 아직 본인도 명확히 이해를 하지 못하고 있으며, 생각을 하면서 끄적인 글이라 타인에게 오히려 혼란을 줄 수도 있으나, 생각의 과정이 의외로 타인에게 도움이 되는 경우가 있으므로 공개한다. 
(결론은, 결코 추천할 만한 글이 아님.. T.T)

최적화 문제를 풀기 위해서 partial derivative 문제를 풀 일이 발생하였다.

나는 linear algebra의 편리한 사용을 위해 Eigen을 사용하고 있다.

(다른 좋은 tool도 많겠지만.)

일단 Eigen에서는 partial derivative를 따로 제공하고 있지는 않다.


다만 Automatic Differentiation 기능을 제공한다.


그렇다면 Automatic Differentiation 기능이란 무엇일까?

http://en.wikipedia.org/wiki/Automatic_differentiation 를 참조하면 아주 잘 설명되어 있다.

\frac{df}{dx} = \frac{dg}{dh} \frac{dh}{dx}    와 같은 chain rule을 사용하여 numerical하게 differentiation 계산을 한다고 보면 된다. 


이 때 주의해야 할 점은, 기존의 numerical differentiation 방법과는 차이가 있다는 것이다. 

기존의 방식 중에 forward 방식을 예로 들어 생각해 보자. 

f'(x)=\lim_{h\to 0}{f(x+h)-f(x)\over h}.  와 같이 표현된다.

따라서 이 h를 얼마나 미소하게 쪼갤 수 있느냐에 따라 그 성능이 결정된다고 볼 수 있다.

물론 이 때 발생하는 오류에 대한 분석이 없는 것은 아니다.

R = {{-f^{(3)}(c)}\over {6}}h^2 ( 이 때, c는 물론 양 쪽 input 값의 중간 값을 의미한다.)


하지만, 우리는 일반적으로 간단한 하나의 함수에 대해서 문제를 풀기 보다는 복잡한 차원의 문제를 풀다보니 matrix 형태로 표현된 문제를 풀 때가 많다. (예를 들자면 Jacobian matrix를 생각해 볼 수 있겠다.)

따라서 직접 c/c++ 코드 등으로 구현을 하려면 matrix 차원에 따라 어마어마한 코딩량이 발생할 수도 있다.


이에 우리는 이러한 문제를 쉽게 풀 수 있는 Tool은 없는지 찾게 되는 것이 본능이다!

Wiki에 보면 다양한 AD Tool이 비교되어 있다. 그러나 우리에게 필요한 것은 Eigen과 함께 사용할 수 있는 Tool이 있느냐는 것!!

https://justindomke.wordpress.com/2009/02/17/automatic-differentiation-the-most-criminally-underused-tool-in-the-potential-machine-learning-toolbox/

와 같은 페이지에서 Eigen과 함께 사용할 수 있는 지에 대한 고민을 토론하고 있으나 아직 해답은 없는 것으로 보인다.


설정

트랙백

댓글