몇가지 사이트와 논문을 참조했습니다만 설명은 아래 사이트로 하겠습니다.
참조 사이트 : How to control omni-direction wheel
Vw 는 옴니휠의 속도
Vin 은 옴니휠의 바깥쪽 롤러에 의해 움직이는 속도
Vb 는 로봇의 속도 (위 사진상에서 V)
θ는 기준벡터(reference vector)와 옴니휠의 속도 사이의 각
φ는 기준벡터와 로봇 속도 사이의 각
Vin 과 Vw는 수직입니다. 따라서 Vb는 (1)과 같이 나타낼 수 있습니다.
Vb = Vin + Vw ………….(1)
또한 Vin은 Vw와 Vb로 나타낼 수 있습니다.
Vin = Vb + Vw – 2Vb *cos(θ – φ) ………..(2)
( (2) 식이 이해가 되지 않을 때는 댓글을 남겨주세요.)
(2) 를 (1)에 대입하면
Vw = Vb *cos(θ – φ) …………..(3)
최종식 (3)을 얻을 수 있습니다.
바퀴가 몇개가 되든 바퀴와 기준벡터 θ값을 알면 각 바퀴가 로봇의 속도 Vb에 대해 제어되어야 할 양에 대해 알 수 있습니다.
예를 들어 바퀴 3개의 θ값이 각각 0°, 120°, 240°라면
Vw1 = Vb *cos(φ)
Vw2 = Vb *cos(120 – φ)
Vw3 = Vb *cos(240 – φ)
* 위 사이트에서 (2)식 뒷 부분이 2Vw *Vb *cos(θ – φ) 로 Vw가 포함되어 있는데 오타로 추정됩니다.
*기타 참고 자료
THREE OMNI-DIRECTIONAL WHEELS CONTROL ON A MOBILE ROBOT
논문 모음 다운로드 : paper about omniwheel
유투브에는 다른 방식으로 유도한 동영상이 있어서 첨부 해봤습니다.
추가 내용 (18.03.03)
무게 중심이 높을수록 더 안정적일 것이다라는 내용에 대해 그림판으로 나름 열심히 그려봤습니다…
R : 공의 반지름
C1, C2 : 공으로부터 로봇바디의 무게 중심.
a) : 초기에는 무게중심과 지표면과 수직인 상황 즉 θ = 0, 이고 공 위에서 정지인 상황.
b) : 공의 반지름 R에 무게중심의 길이만큼 더한 즉 R+C1, R+C2인 원 위를 움직이는 원운동으로 볼 수 있음.
a)에서 어느 방향으로 같은 속도로 기울기 시작했다고 가정했을 때 잠시 후의 위치를 보면 무게중심이 낮은 상황에서의 θ값이 더 큽니다. (원운동에서 원호를 움직이는 속도가 같을 때 직경이 클수록 변화한 θ값은 작음.) 시간이 지날수록 이 차이가 더 커지게 되는데 이는 중력가속도가 작용하기 때문입니다. 따라서 무게 중심이 낮을수록 더 빨리 기울어지게 되죠.
충분한 설명이 되었는지 모르겠습니다.. 혹시 제가 틀린 부분이 있닫면 알려주세요.