Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

End-User Robot Programming

  • 다른 이름: end-user programming, EUP
  • 카테고리: Control › Human in the loop
  • 태그: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration

로봇공학이나 프로그래밍 전문 지식이 없는 사람들이 필요한 곳에서 필요한 때에 로봇 행동을 직접 만들고, 조정하고, 새 작업에 맞게 바꿀 수 있게 하는 방법과 도구.

정의

최종 사용자 로봇 프로그래밍(End-user robot programming)은 공장 작업자, 기술자, 교사, 돌봄 제공자처럼 로봇을 실제로 사용하는 사람들이 전문 프로그래밍 기술 없이도 로봇에게 할 일을 지시할 수 있게 하는 데 관심을 두는 로봇공학과 인간-컴퓨터 상호작용의 분야다. 소프트웨어의 최종 사용자 개발 개념을 로봇에 적용하는데, 로봇에서는 프로그램이 물리적 운동, 센싱, 불확실성, 안전까지 다뤄야 한다.

여러 접근법이 있으며 흔히 함께 쓰인다. 시연에 의한 프로그래밍은 사용자가 작업을 보여 주게 하는데, 예를 들어 팔을 손으로 움직이는 운동감각 교시(kinesthetic teaching)나 원격 조작을 통해서다. 블록 기반 편집기와 순서도 또는 타임라인 도구를 포함한 시각적 프로그래밍 환경은 사용자가 동작을 그래픽으로 조립하게 한다. 산업용 팔과 협동 팔의 티치 펜던트는 점점 더 마법사 방식의 작업 템플릿을 제공한다. 트리거-액션 규칙, 계획된 동작을 제자리에 보여 주는 증강 현실 인터페이스, 그리고 이제는 흔히 코드나 작업 계획을 생성하는 대규모 언어 모델 위에 구축되는 자연어 인터페이스도 다른 선택지다. 행동 트리와 상태 기계가 기반 프로그램 표현으로 자주 쓰인다.

핵심 과제는 사용자가 실제 작업을 기술할 수 있도록 하는 표현력, 사용자가 만든 것이 의도한 대로 동작하도록 하는 정확성, 그리고 비전문가가 작성한 프로그램이 충돌, 관절 한계 위반, 사람 근처에서의 과도한 속도, 끼임 지점 같은 위험을 만들지 않도록 하는 안전이다. 이러한 과제에 대한 접근법으로는 시뮬레이션 미리 보기, 프로그램의 자동 검증 및 검사, 전문가 지식을 담아 피드백을 주는 비평기나 검증기, 그리고 결과를 확인하거나 수정하도록 사용자를 루프 안에 두는 것이 있다. 이 사이트의 운동감각 교시는 최종 사용자 프로그래밍 안의 한 가지 입력 방법이며, 더 넓은 분야는 프로그램이 어떻게 표현되고, 편집되고, 검사되고, 유지되는지도 다룬다.

중요한 이유

소규모 공장, 실험실, 가정, 돌봄 환경의 로봇은 자주 새 작업에 맞게 바꿔야 하며, 변경할 때마다 로봇 전문가를 고용하는 것은 현실적이지 않다. 최종 사용자 프로그래밍은 로봇을 함께 일하는 사람들이 직접 조정할 수 있는지를 결정하며, 사용성과 안전 요구 사항이 가장 직접적으로 만나는 곳이다.

주요 응용

  • 중소 제조업에서 협동 팔을 새 작업에 맞게 재설정
  • 특정 환경을 위한 소셜 로봇과 서비스 로봇 프로그래밍
  • 교육용 로봇공학과 프로그래밍 교육
  • 돌봄 제공자나 사용자가 맞춤 설정하는 보조 로봇
  • 과학자가 구성하는 실험실 자동화

실제 사례

한 소규모 전자 작업장이 머신 텐딩에 협동 팔을 사용한다. 한 기술자가 새 작업을 평이한 말로 설명한다. 트레이에서 기판을 집어 테스터에 넣고, 결과에 따라 두 개의 통으로 분류하라는 것이다. 언어 모델이 이 설명을 로봇 작업 프레임워크의 프로그램으로 바꾼다. 실행 전에 일련의 자동 비평기가 시뮬레이션에서 충돌, 도달 가능성, 작업자 위치 근처에서의 속도, 팔과 테스터 사이의 끼임 지점을 검사하고 문제를 평이한 말로 보고한다. 기술자는 팔을 손으로 수정된 경유점으로 옮겨 표시된 단계를 고치고, AR 화면에서 동작을 미리 본 뒤, 처음 몇 사이클은 감속된 속도로 실행한다.

흔한 오해

  • 최종 사용자 프로그래밍은 더 단순한 사용자 인터페이스일 뿐이다 — 비전문가가 만든 것을 검사하고, 디버깅하고, 안전하게 실행하는 방법도 필요하다
  • 자연어 덕분에 로봇 프로그래밍은 해결되었다 — 생성된 프로그램은 틀리거나 안전하지 않을 수 있으며, 여전히 검사, 피드백, 사용자 확인이 필요하다
  • 시연에 의한 프로그래밍과 최종 사용자 프로그래밍은 같다 — 시연은 하나의 접근법이며, 다른 접근법으로 시각적, 규칙 기반, 언어 인터페이스가 있다
  • 최종 사용자는 동작을 기록하기만 하면 된다 — 실제 작업에는 조건, 센싱, 오류 처리, 반복문도 필요하다

알아야 할 사람

  • 로봇 프로그래밍 도구와 인터페이스 개발자
  • 비전문가 작업자와 함께 협동로봇을 배치하는 애플리케이션 엔지니어
  • HRI 및 HCI 연구자
  • 서비스 로봇과 협동 로봇의 제품 관리자

관련 기술

  • 시연에 의한 프로그래밍(Programming by Demonstration)
  • 블록 기반 시각적 프로그래밍(Block-Based Visual Programming)
  • 티치 펜던트(Teach Pendants)
  • 증강 현실 인터페이스(Augmented Reality Interfaces)
  • 코드 생성용 대규모 언어 모델(Large Language Models for Code Generation)
  • 트리거-액션 프로그래밍(Trigger-Action Programming)

관련 용어

  • Kinesthetic Teaching
  • Cobot
  • Behavior Tree
  • Imitation Learning
  • Pinch Point
  • Foundation Model

관련 프로젝트

  • Reachy Mini: Open-source desktop robot from Pollen and Hugging Face with an expressive 6-DoF head
  • RAI: Vendor-agnostic agent framework for ROS 2 robots and physical AI
  • Assistive Gym: Physics simulation framework for training assistive robots in caregiving tasks

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.