레이블이 Path planning인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Path planning인 게시물을 표시합니다. 모든 게시물 표시

2014년 10월 1일 수요일

Rsimulator

github에서 Rsimulator 보기


Rsimulator 소개

 Rsimulator는 Visual studio 2010, C++, opencv 기반으로 만들어진 이동 로봇 시뮬레이터입니다.

라이센스

 Rsimulator는 GPL을 따릅니다.(GPL 한글 번역 전문)

 기업, 학교, 개인이 마음대로 개작하고 재배포해도 좋지만, 개작된 소프트웨어의 소스코드는 GPL에 따라 공개되어야 하고 Rsimluator를 사용했다는 것을 밝혀야 합니다.. Rsimulator를 공공의 목적으로 공개하는 이유이기도 합니다.

기능 명세

  • 로봇 설정(두 개의 바퀴와 하나의 캐스터)
  • 장애물 환경 디자인(사각형, 원형, 직선 등)
  • 초음파, 레이저 센서 스캔 시뮬레이션
  • 점유 격자 지도 작성 시뮬레이션
  • 전역 경로 계획 시뮬레이션
  • 지역 경로 계획 시뮬레이션
  • UKF SLAM 시뮬레이션

소스 다운로드 방법

 git에 대해 익숙하신 분은 본 글 상단의 링크를 참고하시면 됩니다.

 처음이신 분은 본 글 상단의 링크를 통해 Rsimulator git을 fork하고

 github for windows를 통해 clone을 받으시면 됩니다.

간단 사용 방법

 처음 화면에 몇 개의 원이 뿌려져 있습니다. 랜덤하게 생성된 35의 점(랜드마크 입니다.) r 키로 적당한 크기의 로봇의 생성시키고 space bar를 누르면 정해진 궤적을 따라가면서 SLAM을 수행합니다.
 왼쪽 메뉴의 DT, VFF, VFH를 선택하면 로봇이 다르게 반응합니다. 자세한 설명서는 시간이 허락하면 작성할 계획입니다.

시뮬레이터 개선 계획

  현재는 없습니다. 다만, 본 프로그램을 사용하시는 분이 좋은 아이디어를 바탕으로 개선한 내용을 github에 pull하고 싶으시다면 적극 환영합니다. 공동으로 작업하고 싶은 의향도 있습니다. 그것이 공중 소프트웨어의 본질이라고 생각합니다.

시뮬레이터 실행 화면






2014년 8월 19일 화요일

VFF(Virtual Force Field), VFH(Vector Field Histogram)

VFF(Virtual Force Field), VFH(Vector Field Histogram)

 VFF또는 APF(Artificial Potential Field)는 가상 중력 벡터장 정도로 번역해서 사용된다. 기본적인 개념은 국소지역에서 장애물을 회피하기 위해서는 장애물에서 밀어내는 힘이 발생하고, 목적지에서 당기는 힘이 발생되는 단위 벡터장을 만드는 것이다. 벡터장위의 로봇은 물이 아래로 흐르는 것처럼 자연스럽게 목적지로 인도된다.

VFF
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm
 VFF 방법의 약점은 좁은 통로와 같이 장애물이 빈번하게 자리 잡고 있는 지역을 통과해야 하는 경우에 척력의 힘이 교차하기 때문에 아래 그림 처럼 진동하는 성향을 보인다는 것이다.

VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm
 그 대안이 VFH이다. 그림에서 보는 것처럼 극좌표로 형성된 히스토그램의 굴곡에서 계곡으로 진행하면 장애물이 가장 없는 방향으로 진행하는 것이 되고 그 중에서 목적지와 가장 가까운 방향을 선택하면 된다.


VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm

VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm

어떻게 갈 것인가?(How do I get there? - Path planning)

어떻게 갈 것인가?(How do I get there? - Path planning)


 어디를 가고 있는지, 어디에 있는 문제가 해결되고 나면 정말로 지능화된 행동을 취할 수 있는 필요조건을 갖춘 셈이다. 정보만 있다고 이동을 할 수 있는 것은 아니니 어떻게 갈 것 인가의 문제가 대두된다. Path planning은 Localization과 Mapping문제와는 조금 다른 성향을 가지는데, 실제로 운동을 하기 때문에 로봇의 움직임을 제어 해야하고, 실험실내의 환경이 아니라면 위험한 상황이 발생할 수 있기 때문이다.

 다른 분야의 연구와 마찬가지로 다른 전제 조건이 주어진 상태에서 출발된 개념이 많다. 크게는 국소지역에서 장애물을 회피 주행하는 기법과 출발점과 도착점이 주어졌을 경우 최단거리를 계산하는 방법으로 나누어 볼 수 있으며 몇 가지 대표적인 방법에 대해서만 소개한다.

드라마 '카이스트'와 VFF

 VFF를 우리나라에서 일반인들에게 친숙하게(?) 만든 것은 드라마 '카이스트'에서 였을 것이다.

 당시 모래시계로 이름을 알린 김정현씨가 게으른 천재 느낌으로 출연하는데, 로봇 축구에서 상대 로봇을 회피해서 골을 넣은 방법을 회의하는 장면이 나온다. 그 때 김정현씨가 외치는 말 "Magnetic force field!" 정확한 대사는 기억이 나지 않지만 비슷한 느낌으로 말했던 것 같다.
 장애물에서는 척력(repulsive force)이 발생하고 목적지에서는 인력(attractive force)가 발생하는 방법을 사용하면 되지 않냐고 말한다. 사실 드라마의 배경이 되었던, 카이스트의 전자과의 김종환 교수는 우리나라 로봇축구를 세계에 알린 인물이다. 실제로 그 연구실에서 기법을 개발했던 사람은 어떤 기분이 들었을까? VFF(Virtual Force Field)를 우리나라에서 처음 만든 것은 아니지만 로봇 축구에 실제 적용으로 당시에 많은 호응을 얻었던 것으로 기억한다.
 의학, 법학과 관련된 드라마는 많지만 공학에 관련된 드라마는 그리 많지 않다. 미국의 'Big bang theory'의 출연자들이 차기작을 엄청난 거액의 출연료로 계약한 사례를 보면 우리도 공학분야로도 충분히 재미있는 작품을 만들 수 있을 거라는 기대가 든다.(출연자의 계약 금액이 드라마의 질과 반드시 비례하지는 않지만 인기가 반영된 결과라는 추정에서) 꼭 미국식 nerd 개그가 아니라도 말이다.