본문 바로가기

전체 글

전방향(omni-directional) 이동로봇의 기구학: 3개의 Swedish wheel을 가지는 로봇 Swedish wheel은 모터의 구동 방향과 동일하게 회전하는 바퀴에 회전축과 수직을 이루면서 자유롭게 회전 가능한 작은 바퀴들이 6개 배치되어 있습니다. 3개의 Swedish wheels을 Y자 모양으로 배치하여 전방향 이동체를 다음 그림과 같이 만들 수 있습니다. 이에 대한 정기구학(forward kinematics)과 역기구학(inverse kinemtaics)을 다음 문서에서 자세히 정리합니다. 더보기
전방향(omni-directional) 이동로봇의 기구학: 4개의 Swedish wheel을 가지는 로봇 Swedish wheel은 모터의 구동 방향과 동일하게 회전하는 바퀴에 회전축과 45도 각을 이루면서 자유롭게 회전 가능한 작은 바퀴들이 다수 배치되어 있습니다. 4개의 Swedish wheels을 배치하여 전방향 이동체를 다음 그림과 같이 만들 수 있습니다. 이에 대한 정기구학(forward kinematics)과 역기구학(inverse kinemtaics)을 다음 문서에서 자세히 정리합니다. 더보기
경로 추출을 위한 Visibility Graph 생성 Visibility Graph는 간단히 말해서 폴리곤의 볼록한 꼭지점을 잇는 선분들 중에서 폴리곤과 교차하지 않는 선분을 의미합니다. Visibility Grpah를 구하는 쉬운 방법으로 폴리곤의 모든 꼭지점을 연결하는 선분을 구한 다음(O(n^2)) 이 선분들이 폴리곤의 에지들과 교차하는지 판별(O(n^3))하면 됩니다. 이 방법은 간단하지만 복잡도가 O(n^3)으로 폴리곤을 구성하는 꼭지점이 많아지면 계산 시간이 3제곱에 비례하여 길어질 것입니다. 다른 방법으로 Howie Choset의 책 "Principles of Robot Motion - Theory, Algorithms, and Implementations"에서 소개된 Rotational Plane Sweep Algorithm (p.110 ~ .. 더보기
경로 추출을 위한 Vornoi 세선화 알고리즘 이전 글에 이어 이미지 지도로부터 경로를 추출하기 위한 방법으로 Vornoi Graph를 이용하여 보았습니다. 보르노이 그래프는 지도에서 장애물들간의 거리가 최소가 되는 점들을 이은 선이기 때문에 세선화 알고리즘과 유사한 결과를 보여줄 것입니다. Vornoi Diagram 방법으로 영역을 구분하기 위해서 OpenCV 2.1의 cvDistTransform() 함수를 사용하였습니다. 그리고 구분된 영역의 경계를 따라 선을 추출하였습니다. 구현된 소스코드를 참조하시기 바랍니다. 상기 코드를 컴파일 하기위해서는 OpenCV 2.1 라이브러리를 필요로 합니다. 다음은 Vornoi 그래프를 이용한 세선화 알고리즘의 결과입니다. 더보기
경로 추출을 위한 세선화(thinning) 알고리즘 다음 그림과 같이 이미지로 주어진 지도에서 로봇이 이동해야 할 경로를 찾아야 할 때, 하나의 방법으로 이미지에서 로봇이 이동가능한 영역을 세선화 하여 이를 따라 이동 경로를 선택할 수 있을것입니다. 여기서는 몇 가지 세선화 방법을 이용하여 경로 추출 방법에 대한 세선화 결과를 소개하도록 하겠습니다. 아래 그림은 세선화를 위한 원본 이미지 파일입니다. 검은색 영역은 벽과 같은 장애물로 로봇이 이동할 수 없는 지역이며, 흰색 영역은 로봇이 이동가능한 영역입니다. 구현된 소스코드를 참조하시기 바랍니다. 상기 코드를 컴파일 하기위해서는 OpenCV 2.1 라이브러리를 필요로 합니다. 다음은 구현된 3가지 방법의 세선화 알고리즘의 결과입니다. 1. Gonzalez and R. Woods, Digital Image.. 더보기
로봇 동역학: 오일러-랑그라지(Euler-Lagrangian) 방식 오일러-랑그라지(Euler-Lagrangian) 방식은 시스템의 동적 특성을 일과 에너지의 개념으로 나타낸 것으로 뉴튼 오일러 방식보다 간단합니다. 에너지를 기반으로 한 동역학적 모델접근 방법으로, 비교적 간단한 운동에서 로봇의 운동에 작용하는 여러 가지 변수에 의한 효과를 이해하는 데 유용하며 일반좌표에 근거하게 됩니다. 상세한 내용은 아래 첨부 파일을 참고하시기 바랍니다. 아래 파일은 예제 프로그램 입니다. 다음 동영상을 참고하시기 바랍니다. 더보기
로봇 동역학: 뉴튼-오일러(Newton-Euler) 방식 뉴튼-오일러(Newton-Euler) 방식은 동적 시스템을 뉴턴의 두 번째 법칙을 직접적으로 적용하여 각 링크의 좌표에서 링크의 힘과 모멘트로 나타내는 것입니다. 따라서 이 방식은 힘의 균형을 기반으로 한 접근 방식으로 동역학 방정식의 유도에 효율적이며, 시뮬레이션과 컴퓨터 계산을 할 때 편리합니다. 상세한 내용은 아래 첨부 파일을 참고하시기 바랍니다. 아래 파일은 예제 프로그램 입니다. 다음 동영상을 참고하시기 바랍니다. 더보기
작업의 우선순위 할당(task priority) 여유자유도를 활용하면 남는 자유도를 활용하여 여러 작업을 동시에 수행할 수 있습니다. 병렬 작업은 각 작업에 동일한 가중치를 할당하여 작업을 수행하게 됩니다. 병렬 작업에서 각 작업이 오차범위 내에서 정상적으로 수행될 때는 문제가 없습니다. 하지만 하나의 작업이 오차범위를 벗어나게 되면 이 작업의 오차를 줄이기 위해 다른 작업의 오차를 키우게 됩니다. 즉, 하나의 작업만 실패하면 되는데 모든 작업이 실패하게 되는 문제가 있습니다. 그래서 보통 작업에는 중요도에 따라 우선순위를 할당하게 됩니다. 중요한 작업을 우선순위가 높게 실행하면서 보다 덜 중요한 작업은 우선순위를 낮게 실행하게 됩니다. 그렇다면 여러 작업을 동시에 수행하다가 여건이 좋지 않으면 우선순위가 낮은 작업 순서로 실패하게 됩니다. 다음 문서.. 더보기