Untitled.png

AI 로봇 자율주행 개발자 양성과정 · 2023.06.07 – 06.26 · 2인 팀

시연 영상 보기 · GitHub 저장소

문제

LLM은 "목이 말라" 같은 막연한 요청에도 그럴듯한 행동 계획을 말할 수 있습니다. 하지만 그 문장을 로봇이 실제로 실행하려면, 기기와 동작과 값이 정해진 형식으로 나와야 했습니다.

흐름

① 음성

마이크 입력을 Google STT로 텍스트로 바꿉니다

② GPT 에이전트

요청을 "기기:행동:값" 동작 목록으로 바꿉니다

③ 스케줄러

우선도에 따라 동작을 끼워 넣고 하나씩 꺼내 실행합니다

④ 로봇 두 대

이동 로봇과 로봇팔이 움직이고 success 신호로 완료를 알립니다

명령 문법

기기, 행동, 값은 콜론(:)으로, 동작과 동작은 별표(*)로 나눴습니다. 실제 few-shot 예시입니다.

user request: Can you dance?
GOAP: turtlebot:priority:low* turtlebot:emotion:curious*
      turtlebot:speak:I'm robot so I can not dance but I'll do my best*
      turtlebot:turn:left* turtlebot:turn:right* turtlebot:turn:left*

모델 선택

ChatGPT GPT-3 (few-shot, fine-tuning)
성향 맡긴 역할을 지키려 하고, 행동 순서가 논리적 예시의 형식과 말투를 잘 따라 함
문제 정해 둔 문법에서 자주 벗어남 행동 순서의 논리성은 떨어짐

시연에서는 안정성이 더 중요해서, fine-tuning이 가능한 GPT-3를 골랐습니다.

결과

"목이 마르다"고 말하면 우선도를 높게 잡고 병 찾기 → 병 바라보기 → 다가가기 → 잡기 → 사람 찾기 → 다가가기 → 내려놓기 → 기쁨 표현 순서로 움직였습니다.

제가 맡은 일