본문 바로가기

[ 프로그래밍 ]/로봇비전(Robot Vision)

포켓볼 치는 로봇 PR2

동영상 요약
공을 찾는 것은 고해상도 카메라를 이용하여 컬러블롭정보를 이용하여 찾고, 당구대에서의 위치는 conner-detector와 당구대 모서리의 다이아몬드모양을 보고 찾으며, 레이저센서를 이용 당구대 테두리를 찾는다.
공을 어떻게 맞힐까? Path에 대한 알고리즘은 Open Source Pool Physics - 검색사이트를 뒤져 보니 Physics of Pool이라는 사이트가 있었다. 이건가? - 를 이용했다고 하며 기뜩하게도 요녀석, 월요일 아침에 학습을 시작해서 금요일 오후에 성공적으로 샷을 마쳤다고 한다.
놀라운 것은 매우 멀리있는 것과 교육 한 것과 다른 각도의 공들도 척척 잘 친다는 것이라고 함.

영상 마지막 부분에 개발팀 중 한 명으로 보이는 사람의 샷은 로봇과 비교했을 때, 또는 그냥 보기에도 형편 없으며, 나는 못치는데 내가 개발한 녀석은 잘친다라는 점은 이것이 각본에 의해 짜여진, 그러니까 정해진 각도의 공을 정해진 힘으로 치는 단순한 로봇과 차별된다는 점을 더 부각시켜 보여주려는 듯 하다.




이 영상 때문에 Pool Sharks Team의 홈페이지를 찾았는데, 거기서 무료 게임도 하나 발견했다. 아직 직접 해보진 않았지만, 마우스와 키보드를 함께 이용한 게임방법이 다채롭다.


http://www.poolsharks.com/PoolSharksInstaller.exe


다시 로봇으로 시선을 돌려, PR2라는 로봇은 당구용으로 당구를 치게 하기 위해서 만들어 진 로봇은 아니고 범용으로 사용할 수 있도록 개발 된 로봇으로, 로봇의 다른 응용을 조금 찾아본 후에야 비로소 자기들이 재미있으려고 로봇을 가르쳤다는 말이 이해가기 시작했는데, 아래는 쉬지 않고 돌아가는 로봇의 모습을 담은 영상이다. 로봇이 알아서 충전을 하는데, 그게 청소기로봇 처럼 충전기의 위치로 마냥 돌아가는 것이 아니라 플러그를 찾아서 코드를 연결하는데 참 신선하다.




2009년에는 레스토랑에서 주문을 받고 음료를 서빙하고 쓰레기를 치우는 과제를 진행을 했는데, 두 개의 팀으로 나누어 대결한 이 도전에는 72시간이 주어졌다고 한다.
약 20분간 진행된 테스트에서 기대이상의 좋은 성능을 보이는 로봇. 목표된 과제를 잘 수행하는 것 뿐만 아니라 그 서비스의 질 또한 매우 좋았다는 평가이다. 주문을 받고 농담도 하는 로봇의 유쾌한 모습이 연구를 진행하는 개발자들, 바로 그들의 모습과 많이 닮아있다.




단순히 보고 넘기기엔 마냥 신기하지만 실제로 PR2는 여러가지 과학 기술의 집합체라고 할 수 있는데, 먼저
1. 로봇 자신이 있는 공간을 분석하는 기술 Mapping
2. 로봇 자신이 있는 곳을 알아내는 기술 Localization
3. 로봇 자신이 움직여야 하는 길을 알아내는 기술 Navigation 이 로봇의 이동에 필요한 기술들이다.

다음으로, 테이블과 물체를 찾고, 찾은 물체가 무엇인지 인식하는 방법으로
4. 테이블을 찾는 방법
5. 카메라를 이용하여 모서리를 찾는 방법
6. 테이블 위의 장애물을 제거하는 방법
7. 색상 등의 정보를 이용하여 물체를 찾고 어떤 물체인지 인식하는 방법 등이 물체를 찾기 위한 방법이다.

또한 로봇공학적인 요소들이 빠질 수 없는데, 인식된 물체와의 거리, 높이 정보들을 이용하여
8. 로봇 팔로 물건을 집어 드는 기술
9. 물건을 건네주고, 다른 사람이 건네 받은 사실을 아는 방법
10. 물건을 버리는 기술 등이 그런 요소 들이다.

그리고, 주문을 받는데에는
11. 주문하는 사람의 음성을 인식하는 기술
12. 주문한 메뉴의 재고가 있는지 인터넷을 이용하여 확인하는 검색 기술 등도 포함되며
13. 주문 내용을 확인하는 등의 동작을 위해 글자를 음성으로 표현하는 TTS(Text-to-Speech) 기술도 있어야 한다.


예전에 소개 되었던 수건 개는 로봇도 요녀석이고, 그 외에도 많은 분야에 응용된 모습을 http://www.willowgarage.com/ 에서 찾아볼 수 있다.

마지막으로 PR2와 ROS(Robot Operating System)를 소개하는 영상이다.
소프트웨어 개발자를 위해 개발된 PR2, 실수도 하고 - 실수야 사실 개발자가 하는 거지만 - 여러 시행착오를 거쳐가며 개발할 수 있도록 코드를 바로 로봇에 심을 수 있게 되어 있고, 개발에 필요한 프로그램들이 라이브러리 형태의 OS(ROS)로 자유롭게 사용할 수 있도록 되어 있다.




PR2의 무궁한 발전을 기대해 본다.

by 마틴