오픈AI의 ChatGPT가 불러온 생성형AI 신드롬은 많은 산업 분야에서 새로운 가능성을 제시했다. 그중 특히 기대감이 고조되고 있는 분야가 바로 로봇산업이다. 자연어 입력을 처리하고, 학습한 내용을 기반으로다음 단어를 예측하는 대규모 언어 모델(LLM, Large Language Models)은, 사전에 프로그래밍된 질문에 대한 정보만을 답변했던 이전의 기술을 아득히 초월함으로써 인간-로봇 상호작용(HRI, Human Robot Interaction) 기술의 새 지평을 열었다. 이와 같은 생성형AI의 가능성은 사람과 일상적인 대화를 필요로 하는 서비스로봇이나 실제 인간의 형태를 본 딴 휴머노이드 로봇 연구자들에게 강력한 영감을 줬다.
산업 분야에서는 일부 빅테크 기업들이 휴머노이드 타입의 산업용 로봇에 생성형AI를 탑재하는 연구를 추진한다고 알려졌으며, 자본시장에서 생존을 도모하는 상장기업들 또한 미래가치 창출을 위해 생성형AI를 연구하고 있다.
사진. 로봇기술
전통적인 산업용 로봇에 대한 생성형AI 적용
정해진 규칙 속에서 운용되는 전통적인 산업용 로봇 시스템 분야에서는 상대적으로 생성형AI의 접목이 더딘 상황이다. 몇 가지 이유가 있겠지만, 사실과 다르거나 맥락과 무관한 잘못된 응답을 출력하는 생성형AI의 할루시네이션 현상이 다른 분야보다 사용자에게 더 큰 리스크를 준다는 점, 그리고 당장 현업에서 매출을 일으키며 비즈니스를 전개해나가야 하는 로봇 메이커 및 로봇SI 입장에서 언제가 될지 알 수 없는 미래 기술보다 현재 로봇 시스템을 운용하는 이들에게 그때그때 곧 도움이 되는 기능 및 기술 개발이 더 중요하다는 점 등을 꼽을 수 있다. 이와 같은 이유로 전통적인 산업용 로봇 분야에서는 LLM이 아닌 경량화된 거대 언어 모델(SLM, Small Language Models)이 더 유효할 수 있다.
최근에는 많은 신생기업들이 SLM 분야에 뛰어들면서 각 분야에 전문성을 부여하는 생성형AI 솔루션의 기틀을 다지고자 하지만 ChatGPT와 같은 누구나 인정할 만한 대표성을 지닌 툴이 등장하지 않은 상황에서 옥석을 가려내는 것이 쉽지 않은 상황이다.
(주)엑트엔지니어링(이하 엑트엔지니어링)의 경우에는 이 같은 이유로 ChatGPT가 제공하는 GPTs 플랫폼을 사용해 시바우라머신(舊 도시바머신) 로봇에 최적화된 생성형AI 솔루션을 개발했다. GPTs는 오픈AI가 제공하는 맞춤형 챗봇 개발 기능이다. 사용자가 GPT 빌더를 통해 기본 대화 스타일과 응답 방식을 설정함으로써 전문화된 맞춤형 AI 솔루션을 빠르게 개발할 수 있다. 오픈AI의 완성도 높은 자연어 처리 기술을 활용할 수 있으며, 올해 초 오픈AI가 출시한 GPT스토어를 활용해 마치 스마트폰 앱처럼 고객들에게 공유할 수 있다는 것이 특징이다.
스카라로봇 프로그램 ASSISTANT
엑트엔지니어링은 시바우라머신의 로봇 부문 국내 공식 파트너사로서, 시바우라머신을 대표하는 스카라로봇의 프로그래밍과 유지보수가 가능한 생성형AI ‘스카라로봇 프로그램 ASSISTANT’를 GPTs 플랫폼으로 개발했다.
스카라로봇 프로그램 ASSISTANT는 고객이 스카라로봇을 사용하는 중에 발생하는 여러 형태의 돌발상황에 대한 원인과 문제 해결 방법 등 보수 매뉴얼을 제공하며, 시바우라로봇 명령어 정보나 로봇 티칭을 위한 기초적인 프로그래밍까지 답변을 제공한다.
GPTs는 노코드 기반으로 생성형AI 기반 챗봇을 만들 수 있어 기술적인 진입 장벽이 높지는 않지만, 사용자들에게 정확한 정보를 제공하려면 오랜 시간 해당 분야의 전문성을 바탕으로 데이터를 학습시켜야 한다. 당사의 경우 시바우라머신 국내 로봇 파트너사 중 가장 방대한 스카라로봇 판매 실적과 경험, 나아가 프로그램 개발 이력을 총 집약해 스카라로봇 프로그램 ASSISTANT을 학습시켰다.
메인터넌스 적용 사례
산업용 로봇 커뮤니티에서 자주 보이는 질문 중 하나는 “ㅇㅇ로봇 매뉴얼 좀 구할 수 있을까요?”이다. 로봇을 운용하는 작업자들이 로봇 매뉴얼을 필요로 하는 경우 중의 상당수는 로봇 사용 중 자신이 모르는 알람이 발생했을 때다. 로봇에 이상이 발생했을 때, 부랴부랴 인터넷을 검색하거나 매뉴얼을 수소문하고, 페이지를 뒤져가며 원인을 찾아내 트러블을 해결하는 것은 그리 낯선 모습이 아니다.
반면 스카라로봇 프로그램 ASSISTANT를 사용하는 시바우라머신 스카라로봇 사용자들의 트러블슈팅은 사뭇 다를 것으로 기대하고 있다. 만약 작업 중에 로봇 패널에서 ‘8-014(비상정지 버튼 눌림)’ 알람이 발생했다고 가정해보자.
시바우라머신 스카라로봇 사용자는 엑트엔지니어링이 제공하는 스카라로봇 프로그램 ASSISTANT에 단지 8-014가 뭔지를 물어보면 이 알람은 어떤 문제로 발생하는 알람인지, 이 알람을 발생시키는 요인에는 어떤 것들이 있는지, 이걸 해결하려면 어디를 확인해야 하는지, 그리고 어떻게 해결해야 하는지를 상세하게 답변해준다.
그림1. ‘8-014 설명해줘’라고 질문했을 때의 결과 예시
<그림1>은 스카라로봇 프로그램 ASSISTANT에 ‘8-014 설명해줘’라고 입력했을 때 얻은 답변이다. 알람의 종류와 문제의 원인, 그리고 해당 알람 발생 시 체크해야 될 다양한 포인트들을 디테일하게 설명한다. 비상정지 버튼이 눌려졌다고 단순히 버튼만 확인하는 것은 제대로 된 해결이 아니다. 스카라로봇 프로그램 ASSISTANT는 비상정지 버튼의 개수와 위치를 안내하고, 이 알람이 발생할 수 있는 여러 원인과 그에 대한 해결책을 꼼꼼하게 제시한다. 스위치 외에 배선이나 커넥터와 같이 쉽게 지나칠 수 있는 요소까지 짚어주는 것이다.
그림2. ‘8레벨 알람 설명해줘’라고 질문했을 때의 결과 예시
한편 <그림2>와 같이 특정 알람뿐만 아니라 8레벨 알람 전반에 대한 정보도 획득할 수 있으며, <그림3> <그림4>처럼 정기 점검 사항이나 로봇 보수에 필요한 일반적인 정도 등도 얻을 수 있다.
그림3. ‘정기 점검 사항 알려줘’라고 질문했을 때의 결과 예시
그림4. ‘보수의 일반사항 설명해줘’라고 질문했을 때의 결과 예시
프로그래밍 적용 사례
ChatGPT가 처음 등장했을 때 많은 사람들을 놀라게 했던 부분 중 하나는 어떤 프로그램에 대한 코딩을 요구했을 때 정확하게 코드를 짜서 제공했다는 점이다.
스카라로봇 프로그램 ASSISTANT 또한 시바우라머신 스카라로봇의 프로그래밍과 관련된 여러 질문에 답변할 수 있다.
예를 들어 단순히 특정한 명령어를 물어볼 수도 있고(그림5), 또는 이동이나 정지 등 로봇의 특정한 동작을 위해 필요한 명령어(그림6)나, 시바우라머신 로봇을 프로그래밍하는 언어(그림7)에 대해 질문할 수도 있다. 나아가 명령어 단계를 넘어 로봇에 특정한 움직임을 구현하는 방법에 대해 질문하면 이를 위한 코드를 즉석에서 만들어 보여주기도 한다. 이 코드를 그대로 복사해서 입력하는 것만으로도 로봇 가동이 가능하다(그림8).
그림5. ‘MOVJ 설명해줘'라고 질문했을 때의 결과 예시
그림6. ‘이동명령 설명해줘'라고 질문했을 때의 결과 예시
그림7. ‘scol 설명해줘’라고 질문했을 때의 결과 예시
<그림8>은 ‘2개의 지점을 왕복하는 프로그램 작성해줘’라고 질문했을 때 스카라로봇 프로그램 ASSISTANT가 제공한 답변이다. 단순히 정해진 명령어만을 활용해 동작만 수행하는 것이 아니라, 스카라로봇의 가동에 영향을 주는 요소들, 예를 들면 특정 위치로 이동해 일정 시간 대기하고, 다음 지점으로 이동하는 등 실제 현장에서 필요한 부분들까지 고려해 코드를 짠다.
그림8. ‘2개의 지점을 왕복하는 프로그램 작성해줘’라고 질문했을 때의 결과 예시
스카라로봇 프로그램 ASSISTANT 개발 초기에는 다른 프로그래밍 언어를 섞는 다거나, 전혀 상관이 없는 프로그램을 노출시키는 등 정확도 문제가 있었지만, 지속적으로 명령어 오류를 수정하고, 학습시키면서 이제는 로봇 교육 시 입문 레벨 수준의 코드는 정확하게 도출할 수 있게 됐다.
현재는 이전에 답변하지 못 했던 3점을 왕복하는 무한루프 프로그램이나 두 개의 검사 지점에 OK/NG에 따라 분기하는 프로그램 등과 같은 더 어려운 문장에 대한 프로그램도 생성할 수 있는데, 아직까지는 그 완성도를 높여야 하는 수준이므로 지속적인 학습을 실시 중이다.
산업용 로봇의 생성형AI가 지닌 가능성
사용자의 입장에서 산업용 로봇 관련 장비를 운용할 때 처음 해야 할 일은 로봇의 사용법을 숙지하고, 그에 따른 언어와 프로그램을 익히는 것이다. 사용자들은 이를 위해서 로봇 교육을 받고, 실제로 로봇을 작동하며 실습할 수 있는 공간에서 자신의 프로그램을 테스트하면서 기술을 습득한다. 많은 사용자들이 이러한 과정을 거지만 사실 개념을 우선 정립하고, 프로그래밍을 위한 언어를 익히기까지 많은 고생을 한다.
요즘에는 생성형AI가 파이썬과 같은 프로그래밍 언어로 샘플 프로그램을 만들어주는 것이 흔한 일이다. 심지어 생성형AI가 만들어낸 프로그램이 꽤 유용한 루틴을 보여주는 경우도 많다. 스카라로봇 프로그램 ASSISTANT 개발은 사용자들에게 이와 같은 형태로 산업용 로봇 프로그램을 만들어 설명해줄 수 있으면 좋겠다는 아이디어에서 시작했다. 아직은 초기 콘셉트를 만들어가는 단계이지만, 근시일 내 제대로 된 프로그램을 지원하는 기능을 보여줄 수 있을 것으로 예상된다.
한편 프로그램 생성과 함께 스카라로봇 프로그램 ASSISTANT의 또 다른 중요한 기능은 유지보수와 관련된 부분이다. 산업용 로봇을 사용하면서 발생하는 알람이나 트러블 관련 내용을 숙지하는 사용자들은 아주 드물다. 바쁜 생산 현장에서 문제가 발생한 뒤에 매뉴얼을 찾아 일일이 들춰보는 것은 의외로 답답한 일이다. 그런데 만약 현장에 트러블 슈팅이 가능한 엔지니어가 있다면 굳이 매뉴얼을 찾아 뒤적일 필요 없이 바로 물어보면 될 일이다. 스카라로봇 프로그램 ASSISTANT가 바로 그런 역할을 해준다. 알람이 발생하거나 문제가 생겼을 때, 직관적으로 물어보고, 문제를 해결할 수 있는 가이드를 받을 수 있다.
이런 측면에서 생성형AI의 적용은 산업용 로봇 또는 장비의 사용 및 보전 작업을 수월하게 할 수 있는 좋은 지침서를 만드는 데 도움이 될 수 있다. 아직은 시작하는 단계이다 보니 더 다듬고, 만들어가야 하는 시간이 필요하지만, 아마 그리 멀지 않아 엑트엔지니어링이 공급하는 산업용 로봇과 장비에서 친숙하게 생성형AI를 만날 수 있을 것이다.
엑트엔지니어링(주) 최영수 대표이사