본문 바로가기

전체 글

로봇 기구학: 정기구학(Forward kinematics)과 역기구학(Inverse kinematics) 로봇의 기구학에서는 운동 그 자체만을 취급하며 운동을 일으키는 힘은 고려하지 않습니다. 로봇이 움직이면 로봇의 팔 끝이 어디에 있는가를 알아야 합니다. 로봇 팔의 끝을 나타내려면, 원점에서 얼마나 떨어져 있는가를 나타내는 위치와 얼마만큼 회전되어 있는가를 나타내는 자세로 정의 할 수 있습니다. 이를 기구학 이라고 합니다. 즉, 로봇에서 고려되는 링크의 위치, 속도 및 가속도의 관계를 다루는 것을 말합니다. 산업용 로봇을 살펴보면, 로봇은 지면에 고정된 상태에서 관절과 링크가 순차적으로 연결되어 있고 말단장치(end effector)로 그리퍼나 용접 토치, 전자석 등이 위치하게 됩니다. 로봇이 말단장치로 주어진 작업을 수행하기 위해서는 말단장치의 위치를 알아야 하는 동시에 말단장치를 원하는 곳으로 위치시킬.. 더보기
Balancing Robot LQR 제어기 설계 이전 글에서 밸런싱 로봇의 동역학 모델을 구축하고 모터 동역학 모델을 추가하여 시뮬레이터를 만들었습니다. 이제 시뮬레이터를 기반으로 LQR 제어기를 설계하려 합니다. LQR제어기는 선형 시스템에서 2차 성능 지수를 가지는 최적 제어기로 많은 장점들을 가지고 있습니다. 다음 문서는 밸런싱 로봇의 동역학 모델과 모터의 동역학 모델을 유도하고, 비선형 시스템을 선형으로 근사화 한 후, 시스템을 상태방정식으로 표현하는 과정입니다. 상기 문서대로 MATLAB에서 제어 시뮬레이션 할 수 있도록 프로그래밍 합니다. MATLAB에서 작성한 상기 블럭선도와 LQR 제어 게인을 계산하기 위한 코드를 추가합니다. balancingRobot_LQR.mdl 파일에서는 시뮬레이터와 제어기를 합친 블록을 다음과 같이 모델링 합니다.. 더보기
Balancing Robot 설계 - 모터 동역학 모델 추가 이전 글 Balancing Robot 설계 - 동역학 모델 구축과 시뮬레이션에 이어서, 이번에는 로봇의 동역학 모델에 모터 동역학 모델을 추가해 보도록 하겠습니다. 모터는 로봇에 토크를 가하기 위한 수단으로, 모터에 공급되는 전압을 제어하여 토크를 발생시키게 됩니다. 다음 문서는 밸런싱 로봇의 동역학 모델과 모터의 동역학 모델을 유도하는 과정입니다. (이전 글의 문서에서 "1.1.2. 모터 동역학"이 추가되었습니다. 이전에 MATLAB에서 설계한 balancingRobot.mdl 파일에 모터 동역학을 추가하여 로봇이 우리가 생각하는 방식대로 움직이는지 살펴보겠습니다. DrawSimResult.m 파일은 이전 문서에서의 파일과 동일합니다. balancingRobot.mdl 파일에는 다음 그림과 같이 모터에.. 더보기
Balancing Robot 설계 - 동역학 모델 구축과 시뮬레이션 Balancing Robot은 Microprocessor Control, Software, Hardware를 잘 활용하여 하나의 완전한 시스템을 구축해 볼 수 있기 때문에 로봇 공학에서의 이론과 실제를 잘 이해하고 배울 수 있는 과제라고 생각되어 동료들과 같이 로봇의 동역학 모델링과 제어기 설계, 실제 제작까지 해보기로 하였습니다. 밸런싱 로봇의 모델링을 위해 참조한 사이트와 논문은 다음과 같습니다. - KAIST 최동일 "2륜자기균형이동차의 개발 및 외란 측정기를 이용한 강인제어" - Jonsson Per "Two wheeled balancing LEGO robot" - http://pinkwink.kr/category/프로젝트/Robot 먼저 밸런싱 로봇의 동역학 모델링을 하였습니다. 다음 문서는 밸.. 더보기
로봇(Trabot-II) 실내 자율주행 아래 보시는 로봇 플랫폼은 탑승형로봇(Transportation Robot)과제의 연구 목표 중 하나인 사람을 태우거나 짐을 싣고 자율주행이 가능한 로봇 플랫폼 중 하나입니다. 아톰로봇에서 플랫폼을 만들고 생기원에서 자율주행 알고리즘을 올렸습니다. 전방에 호쿠요 레이저 스캐너가 하나 장착되어 있습니다. 이 센서로 장애물을 인식하여 장애물과 충돌을 방지하고, 벽을 인식하여 벽과 지도의 매칭으로 로봇의 위치를 추정합니다. 이동체는 4개의 바퀴를 가지며 뒤의 두 바퀴는 구동, 앞의 두 바퀴는 조향에 사용됩니다. 아래 동영상은 생기원 안산연구센터 1층 A동 복도를 왕복 운행하도록 프로그램한 로봇의 자율주행 동영상입니다. 쇠가 탁탁 부딪히는 소음이 심한데, 소음은 노트북과 노트북 바닥의 쇠판이 부딪혀 나는 소리입.. 더보기
RANSAC과 EKF를 이용한 로봇의 위치인식 이전 글에서 RANSAC 알고리즘을 사용하여 레이저 스캐너에서 읽어들인 데이터로부터 선분을 추출하는 프로그램을 작성하였습니다. 이번에는 추출한 선분과 지도의 벽(선분)을 매칭한 후 EKF(Extended Kalman Filter)를 사용하여 로봇의 위치를 추정하도록 해 보겠습니다. EKF 알고리즘은 다음 문서를 참고하세요. 소스코드를 첨부합니다. 아래 동영상을 보시면, 네 개의 벽으로 이루어진 방에 로봇이 있습니다. 네모난 파란색이 로봇이며 빨간색 점은 레이저 스캐너에서 측정한 점이고 파란색 선은 RANSAC 알고리즘으로 추출한 선분입니다. 배경의 좀 진한 회색 선이 벽입니다. 처음에는 로봇이 움직이지 않다가 오른쪽 벽에 처음으로 선분이 매칭됩니다. 이제 로봇은 오른쪽 변과의 상대적인 거리로부터 x 위치.. 더보기
RANSAC Line Fitting을 이용한 Scanning Laser Range Finder 데이터에서 직선 추출 센서에서 측정한 데이터로부터 벽면과 같은 직선을 특징으로 뽑아내기 위해 RANSAC을 용용해 보았습니다. 직선의 추출 하면 바로 떠오르는 방법이 허프 변환(Hough transform)입니다만, RANSAC의 성능도 볼 겸 해서 코드를 작성해 보았습니다. 아래 동영상은 레이저 스캐너에서 측정되는 데이터에서 두 개의 라인을 뽑아내도록 프로그램 한 코드의 실행 화면입니다. 아래 동영상에서는 여러 개의 라인을 뽑고 라인의 시작점과 끝점을 계산합니다. 두 번째 동영상의 소스코드를 추가합니다. 더보기
RFID를 이용한 SLAM 로봇이 주변 환경을 인지하고 목적지로 이동하기 위해 다양한 방법들이 사용됩니다. 특히 RFID(Radio Frequency Identification) 시스템은 사물인식과 환경인식에 대한 새로운 접근 방향을 제시하는 것으로 기존의 인지 기술의 성능을 획기적으로 개선시켰습니다. 또한 RFID 시스템을 사용한 로봇의 위치인식과 주행 기술도 몇 건의 연구결과가 있습니다. RFID 시스템을 이용한 로봇의 위치인식 방법으로 RFID 태그를 지면에 배치하고 태그의 위치를 로봇에 기록해 두었다가 로봇의 하부에 설치된 안테나가 태그를 인식하였을 때 태그의 위치로부터 로봇의 위치를 알아내는 방법이 일반적입니다. 이때 바퀴의 오도메터리 정보와 인식한 태그의 위치를 파티클 필터로 융합하여 로봇의 위치를 추정하게됩니다. RF.. 더보기