배너
닫기

산업동향

배너

산업용 로봇, 소프트웨어 발전으로 더욱 지능화

  • 등록 2013.09.02 15:02:53
URL복사

산업용 로봇, 소프트웨어 발전으로 더욱 지능화

상품을 생산하고 수집하며 발송까지 하는 로봇은 최근 몇 년 동안에 큰 진전을 보였으며 특히 하드웨어에서의 발전이 꽤 인상적이었다. 그러나 이러한 발전은 다양한 작업을 수행하고, 수행할 작업을 자동화할 수 있도록 명령하는 로봇 소프트웨어가 없었다면 불가능했을 것이다. 로봇 소프트웨어는 만약 엄지손가락을 필요로 하는 작업이 있을 때, 로봇 스스 로 그 필요성을 느끼고 인지할 수 있는 지능형 로봇을 만드는 데 사용된다고 생각하면 적절할 것이다.

로봇의 역사

로봇(robot)이라는 말은 1920년 체코슬로바키아의 극작가 카렐 차펙(Karel Capek)에 의해 처음 사용됐다. 그는 자신의 희곡 RUR에서 작업 능력이 인간과 동등하거나 그 이상인 로봇을 등장시켰으며 체코어로 노동을 의미하는 ‘robota’를 인용했다. automation(자동 장치)은 기원전 3세기 중국의 Yan Shi 라는 엔지니어에 의해 처음 사용되었다고 추정된다. 그는 사람과 똑같은 크기와 모양을 한 기계적인 수작업 장치를 왕에게 선물했다고 전해진다.
소설 속의 로봇의 인기에도 불구하고 인간의 형태에 동작을 복제한다는 것은 상상하는 것 이상으로 훨씬 어려운 일이었다. 그러나 아랍에미리트, 카타르, 바레인, 사우디아라비아 지역 등에서 사람 기수 대신 로봇을 태우거나 중국 하얼빈의 로봇 레스토랑에서 어린아이들을 대신하여 로봇이 웨이터나 주방 직원으로 사용되는 등 몇 가지 흥미로운 발전들이 있었다.
최초의 산업용 로봇은 1938년 탄생했으나 1954년이 되어서야 최초의 로봇 특허권이 출원되었다. 1956년에는 유니메이션社(Unimation Inc.)의 로봇이나 기타 프로그래밍이 가능한 전송 기계가 객체를 한 장소에서 다른 장소로 이동하는 데 사용됐다.
1973년 스웨덴에서는 세계 최초로 상업적으로 이용이 가능한 전자 마이크로-프로세서 제어로봇이 파이프를 구부리거나 연마하는 데 사용됐으며, 같은 해에 6개의 전자-기계의 축을 지닌 첫 번째 관절 로봇도 만들어졌다.
이런 로봇 팔은 2005년쯤 완성도를 지니게 되었으며, 가까운 미래에는 치과와 같은 작업대 위에서 사용할 수 있을 정도의 작은 크기와 건축 등에서 필요로 하는 정밀성과 속도를 인간과 같은 수준까지 가능한 로봇을 만들 수 있다고 기대하고 있다.


산업 자동화와 함께 매력적인 시스템으로 성장

유통센터는 상품을 검사, 납품, 보관 등을 행하며 일반 고객 또는 소매점이나 대리점 등으로 선별, 포장 및 배송하는 대규모의 창고를 뜻한다. 상품은 기저귀부터 책, 약국 용품, 의류, 오피스 용품, 식품, 음료, 신발, 생활용품, 애완용품 등 다양한 종류로 되어 있으며 그 수량은 1~2개의 낱개에서부터 20~100개의 묶음까지 다양하다.
유통센터가 변화하고 확대하도록 이끌어 준 것은 4가지가 있는데, (1)온라인 판매를 통한 빠른 납품으로 소비자의 만족도를 충족, (2)향상된 데이터 조작 기능과 다차원적인 제조 과정, 자재 관리와 최첨단 모바일 로봇을 결합, (3)goods-to-man 방식이 비용 감소, 노동력 절감, 생산성 향상에 도움이 됨을 입증, 그리고 (4)지금보다 더 비용 효율적인 센터 개발의 필요성(경제 위기 상황에서 자본 투자의 감소와 불확실성 때문) 등이다.
전자 상거래 판매는 창고형 마켓, 클럽, 달러 상점 등에서 연간 8.5%의 복합 성장률을 보여주고 있다. 슈퍼마켓과 편의점에서도 마찬가지이다. 매일 유통센터를 통하여 운송되는 상품의 수량은 어마어마해서 데이터와 알고리즘 분석을 통한 흐름을 분석해야 하는 것이 필수적이다. [출처: 닐슨 TDLinx & 닐슨 분석]
아마도 아마존이 세계 최대의 전자 상거래 유통업체라는 것을 부인하는 사람은 없을 것이다. 아마존은 사용자(직원)가 창고에서 필요한 물건을 카트에 담고 이것을 컨베이어 벨트로 이동시키는 pick-to-cart(일명 man-to-goods) 방식을 개척해왔다. 반면에 키바 시스템(Kiva System)은 이러한 과정을 역으로 하는 goods-to-man 방식이다. 이 시스템은 이름 그대로 사용자는 같은 자리에 있고 로봇이 상품을 가져다주는 형태이다. 아마존이 새로운 창고에 키바 시스템을 구축한 이후로, 대략 2,000명에서 1,000명 정도의 직원을 감소가 예상되었다.
키바社가 이러한 방식을 제공하는 유일한 회사는 아니며 또, 정교한 소프트웨어를 사용하지 않는 회사는 어디에도 없을 것이다. 어떤 제품이 어떤 카트로 들어가야 하는지, 어떤 순서를 통해 제품이 어떤 위치로 가야 하는지, 각각의 로봇들이 어떤 역할을 해야 하는지 등 자원 배분과 관련된 알고리즘을 생각해보자. 그리고 나면 SAP, IBM, Oracle, Manhattan Associates나 Red Prairie 등과 같은 주문 처리 시스템을 해당 솔루션과 연동시켜야 하는 문제들도 있다. 그런 다음 이 시스템을 여러분이 가지고 있는 복잡한 소프트웨어 패키지와 합쳐서 고객 맞춤 배달 서비스를 위한 최적의 솔루션을 완성시켜야 한다.
이것은 인공지능 기술과 제어 시스템, 기계 학습, 운영 연구 및 기타 소프트웨어와 엔지니어링 분야의 기술과 모바일 로봇 플랫폼과의 조화이며 결합물이다. 앞선 모든 것들을 통해 goods-to-man 방식을 실현시킬 수 있다.
그러므로 이것이 가장 ‘매력적인’ 유형의 로봇임은 부정할 수 없다. 산업용 로봇은 그 어느 때보다 가장 적은 오류를 지니고 우리가 주문한 상품을 우리에게 안전하고 정확하게 전달해주는 방식으로 변화와 성장을 거듭하고 있다.

로봇 소프트웨어가 지능화 견인

상품을 생산하고 수집하며 발송까지 하는 로봇은 최근 몇 년 동안에 큰 진전을 보였으며 특히 하드웨어에서의 발전이 꽤 인상적이었다. 그러나 최근 이러한 발전은 다양한 작업을 수행하고, 수행할 작업을 자동화할 수 있도록 명령하는 로봇 소프트웨어가 없었다면 불가능했을 것이다.
로봇 소프트웨어는 만약 엄지손가락을 필요로 하는 작업이 있을 때, 로봇 스스로 그 필요성을 느끼고 인지할 수 있는 지능형 로봇을 만드는 데 사용된다고 생각하면 적절할 것이다. 본질적으로 오늘날의 로봇은 말 잘 듣는 아이가 할 수 있는 간단한 작업 정도는 무엇을 할 것인지에 관한 일련의 지침을 통한 프로그래밍이 가능하다. 그러나 항상 말을 잘 듣거나 순종적인 아이는 없으며 아동 노동 법률이 존재하기 때문에 로봇이 가장 최선의 방법이 된다. 그 외에도 로봇은 아프거나 불평을 하지 않는다. 그래서 이것이 윈-윈 전략인 것 이다.
그러나 30개가 넘는 산업용 로봇 제조업체가 그들마다 각각의 프로그래밍 언어를 사용하기 때문에 매우 산업용 로봇을 프로그래밍 하는 것은 상당히 까다로운 일이다. 자신들의 언어로 프로그래밍 된 응용 프로그램을 유지해야 하는 누구라도 이러한 불편함을 호소하고 있다는 것은 명백하지만, 다행히도 이들 사이에는 유사점이 있다.
최초의 로봇 언어 중의 하나는 VAL(Variable Assembly Language)이며, 1950년대 포드 자동차에서 다이캐스팅 머신으로부터 주물 부품을 하역하는 데서 최초로 사용된 공장용 팔로 불리는 유니메이트 로봇에서 최초로 개발되었다. 그들의 독창성으로 인하여 2003년에 유니메이트는 명예의 로봇 전당에 들어가게 되었다.
로봇 기본 언어에서는 몇 가지 유사성이 존재하지만, 코드들이 수천 가지의 라인으로 연결되면 복잡해지기 시작한다. 그리고 지금은 로봇 프로그래밍이 어셈블러에서 비주얼 프로그래밍 언어, 스크립트 언어 및 병렬 언어 쪽으로 넘어가고 있는 추세이다.
비주얼 프로그래밍 언어는 응용 프로그램을 구축하는 GUI를 사용하며, LabVIEW를 사용하는 레고 마인드 스톰을 사용하는 첫 번째 중의 하나이다. 이 프로그램은 프로그램 영역에 아이콘을 드래그하여 추가하거나 순서에 삽입하여 구성된다. 예를 들어, 모터 드라이브 아이콘의 경우, 어떤 모터가 얼마만큼 이동했는지에 따라 모터를 지정할 수 있다. 프로그램이 작성될 때, 테스트를 위한 Lego NXT ‘brick’(microcontroller)에 다운된다.
스크립트 언어는 컴파일하지 않고 작성해서 바로 실행할 수 있는 높은 수준의 프로그래밍 언어이다. 스크립트 언어는 응용프로그램과 독립하여 사용되고 일반적으로 응용프로그램의 언어와 다른 언어로 사용되어 최종 사용자가 응용프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해 준다.
RoboLogix는 데이터 객체가 레지스터에 상주해 있으면서 목록에 있는 프로그램 흐름을 보여주며, URBI는 로봇과 인공지능 애플리케이션 개발을 위한 크로스 플랫폼형 소프트웨어 플랫폼이며 병렬 처리와 이벤트 처리를 지원하는 URBI 스크립트 언어(C++ 문법과 유사함)를 기반으로 하고 있다. 모든 로봇 응용프로그램은 이벤트 기반의 프로그래밍과 병렬 처리가 필요하다.
병렬 처리란 로봇이 복수의 명령이나 데이터를 처리하는 것이며, 적절한 하드웨어와 소프트웨어가 필요하다. 대부분의 프로그래밍 언어는 병렬 처리와 함께 예를 들면 공유 리소스나 동시 액세스와 같은 복잡성을 처리하기 위하여 스레드 또는 복잡한 추출 클래스에 의존한다.

whenever(face.visible)
{
headPan.val += camera.xfov * face.x
&
headTilt.val += camera.yfov * face.y
}

위의 코드는 헤드 팬과 헤드 틸트 모터가 병렬로 이동하도록 하여, 로봇이 얼굴을 볼 때마다 로봇에 달린 카메라를 통하여 계속해서 사람의 얼굴을 따라 이동할 수 있도록 하는 명령어이다.
어떤 언어를 사용하느냐에 관계없이, 로봇 소프트웨어의 목적은 로봇 응용프로그램을 개발하여 사람들을 돕거나 즐겁게 해주기 위함이다. 이러한 목적을 지니고 하드웨어가 창의적인 도구로 사용되게끔 하며 다양한 형태의 산업자동화 모습으로 변화를 시도하고 있다.

자료 제공 : 어드밴텍

정리 임근난 기자 (fa@hellot.net)










배너










주요파트너/추천기업