Journal of Korea Robotics Society
[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 21, No. 2, pp.131-139
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date 29 May 2026
Received 25 Aug 2025 Accepted 11 Feb 2026
DOI: https://doi.org/10.7746/jkros.2026.21.2.131

대형언어모델을 활용한 자연어 기반 자율주행 로봇 제어 시스템 설계 및 구현

구세완1 ; 김영재
Design and Implementation of a Natural Language-Based Autonomous Robot Control System Using Large Language Models
Sewan Gu1 ; Youngjae Kim
1Chief Research Engineer, LG Electronics, Seoul, Korea sewan.gu@lge.com

Correspondence to: Senior Research Fellow, Corresponding author: LG Electronics, Seoul, Korea ( yjae.kim@lge.com)

CopyrightⓒKROS

Abstract

This paper presents the development and implementation of an AI agent system that leverages a large language model (LLM) to control an autonomous driving robot through natural language commands. The system processes voice-input requests via the speech-to-text engine, translates them into robot navigation commands by LLM, and provides audible feedback to the user. To manage and monitor the overall workflow, we employ a control flow diagram and incorporate a human-in-the-loop mechanism that enables intervention when issues arise. To enhance natural language accuracy, the system integrates additional LLM modules that improve speech-to-text and text-to-speech performance. Experimental validation confirms the feasibility and effectiveness of the proposed design, demonstrating seamless human–robot interaction for advanced navigation and control in autonomous robotic.

Keywords:

LLM, Language-Driven Robotics, AzureOpenAI, Tool Calling, ROS 2, Stretch3, EXAONE, LnagChain, LangGraph

1. 서 론

최근 로봇 시스템의 지능화와 함께 이를 보다 체계적으로 활용하여 자동화하려는 시도가 증가하고 있으며, 대형언어모델(Large Language Models, LLM)을 도입을 통해 AI 에이전트를 구성함으로써 자율적인 로봇 시스템(Autonomous Robotics Systems)을 구현하려는 연구가 활발히 진행되고 있다. AI 에이전트의 주요 기능은 자연어 명령을 해석하고, 환경을 이해하며, 계획(Planning) 하고, 이에 따라서 활용 가능한 도구(Tool)를 검색하여 수행함과 더불어 수행한 결과를 관찰(Observation)하여 답변을 생성하는 것이다[1,2].

AI 에이전트를 구성하는 구성 요소들을 하나씩 살펴보면 다음과 같다. 첫째, 자연어 명령을 해석하는 기능은 사전 학습된 모델(pre-trained model)의 성능과도 관련이 있으며, 사용하려는 도메인 지식을 이해시키기 위한 시스템 프롬프트 작성 기술과도 밀접한 관계가 있다[1-7]. 이를 통해 환경을 이해하고, 계획하며, 적절한 도구를 사용할 수 있도록 한다. 둘째, 계획 단계 역시 시스템 프롬프트와 관련되며, 주어진 명령을 단계별로 나누어 실행 가능하게 하고, 각 단계에서 적절한 도구를 선택하도록 한다[8]. 셋째, LLM에게 사용 가능한 도구의 존재를 인식시키는 단계로, LLM이 스스로 해결할 수 없는 요청에 대해 외부 도구를 활용하여 문제를 해결하도록 하는 것을 목표로 한다[9-13]. 넷째, LLM이 생성한 결과를 관찰하고 필요 시 이를 바탕으로 정제된 질문을 다시 요청하여 원하는 답변이나 액션을 생성하도록 한다[11,12].

이러한 AI 에이전트를 구성하는 다양한 방법론 중에서 랭체인(LangChain), 랭그래프(LangGraph) 가 있으며, AI 에이전트의 전체 동작 흐름을 효율적으로 제어하고, 다양한 LLM을 확장성(Scalability) 및 호환성(Compatibility) 있게 적용할 수 있다[13].

본 논문에서는 대형언어모델을 활용한 자연어 기반 자율주행 로봇 제어 시스템을 설계하여, 음성으로 입력된 요청을 LLM이 해석하고 자율주행 로봇에 명령을 전달하며, 로봇이 목적지 주행을 완료한 후 그 결과를 사용자에게 음성으로 피드백하는 AI 에이전트 시스템을 설계 및 구현하고 실험을 통해 그 효용성을 검증한다. AI 에이전트의 전체 흐름을 제어하고 관찰하는 시스템을 설계하기 위해서 랭그래프를 활용하며, 문제가 있다고 판단할 때는 인간이 그 흐름에 관련 할 수 있도록 인간개입 루프(Human-in-the-loop)를 구성한다. 특히, 음성-텍스트 변환, 텍스트-음성 변환기능의 정확도를 향상시키기 위해 추가적인 인공지능 모델을 도입하여 자연어 처리 성능을 개선한다.

논문의 구성은 다음과 같다. 2장에서 관련된 선행 연구들에 대해 살펴보고, 3장은 제안하는 대형언어모델을 활용한 자연어 기반 자율주행 로봇 제어 시스템에 대하여 논한다. 제안한 시스템의 실험과 결과에 대해서는 4장에서 설명하고, 끝으로 5장에서 결론을 맺는다.


2. 선행 연구

본 장에서는 자율적인 로봇 시스템에 LLM을 접목한 선행 연구들에 대하여 살펴보며, 사전 학습된 LLM 모델의 기능 이외에 추가적인 로봇 제어 능력을 증강 시키는 방법에 대한 연구들을 살펴본다. 또한 자연어 기반의 로봇 시스템을 통합 운영하기 위한 흐름을 제어하기 위한 구조 기술에 대하여 소개한다.

우선 지능 로봇에 LLM 과 접목하여 통합하는 다양한 접근에 대해 폭넓게 고찰한 연구[1]가 있는데, 이 연구는 분야별, 응용별로 핵심요소 – 통신(communication), 인식(perception), 계획(planning), and 제어(control) – 를 분석하여 로보틱스 시스템 적용에 대한 방법론을 예제를 통해 제시한다. 한편, 자율 주행 로봇에 LLM을 도입한 연구들을 살펴보면 다음과 같다. 연구[3]에서는 사용자와 다이얼로그(Dialog) 기반으로 목적지 주행을 단계별로 유도하는 방법을 소개하며, 이때 로봇의 움직임은 프롬프트에 의해 생성한 API 함수들을 사용하여 시뮬레이션을 통해 검증을 진행 한다. 그러나 대화 중에 API 가이드를 벗어나는 요청에 대한 환각(hallucination) 현상이 발생할 수 있는데, 이는 폐루프 제어를 통해 ChatGPT 를 적절히 사용하는 방법에 대한 연구를 추가 연구 과제로서 남긴다. 둘째, NavGPT (purely LLM-based instruction-following navigation)를 소개한 연구[4]에서는 LLM기반으로 사용자 명령에 따라 목적지를 찾아 주행하도록 하는 추론 기반의 AI 에이전트를 구현하고, 목적지 주행을 위한 고수준 계획 수행(High-level planning)에 대해 논하고, 프롬프트 기반 출력 결과를 실험적으로 검증하나, 로봇 연동에 대한 연구는 다소 미흡한 점이 있다. 셋째, 연구[5]는 의미 기반의 맵을 생성하고 이를 LLM과 연동하여, 맵에 인식된 의미 정보를 활용한 LLM 기반 주행 방법을 제안한다. 다만, 실패 발생 시 LLM을 통한 보정이 필요함을 향후 연구 과제로 제시한다. 넷째, LLM 기반의 임무 재계획 파이프라인(Task replanning pipeline)을 제안하여 업무(Task) 수행시 재 프롬프트 기법(reprompting)을 통해 오류와 환각(Hallucination) 현상을 줄이는 연구[6]와 로컬 LLM을 활용하여 빈피킹(Bin-Picking) 로봇 시스템에 적용하기 위해 프롬프트 구조 설계를 수행한 연구[7]가 있다.

사전 학습된 LLM 모델 기반의 로봇 제어 능력을 증강 시키는 방법에 대한 연구들에 대해 살펴보면, 다음과 같다. 연구[8]는 프롬프트 엔지니어링의 중요성 및 효과에 대하여 설명하고 특히 해당 논문의 [Fig. 1]에서는 다양한 프롬프트 방법에 대해 계층적으로 상세히 기술하는데, 답변 공학(Answer Engineering), 멀티 프롬프트 학습(Multi-Prompt Learning) 등을 소개하며 그 하위에 계층적인 다양한 방법에 대하여 기술한다. 도구 보조 언어 모델(Tool Augmented Language Model)을 제안한 논문[9]에서는 두 가지 방법을 통해 도구를 사용하는 언어모델의 성능이 우수함을 보였는데, 첫번째는 텍스트-텍스트 인터페이스를 통해 외부 도구를 호출하여 결과의 성능을 높이는 방법이고, 두번째 새로운 도구를 추가할 때, 자기 플레이 방식(self-play approach)을 통해 도구 API와의 상호 작용하는 모델을 논의한다. 또한, 연구[10]에서는 Toolformer라는 언어모델을 제안하는데, 이 모델은 언제, 어떤 API를 호출하고, 어떤 인자를 사용할지, 그리고 최적의 결과를 생성하기 위한 방법을 학습한 모델로 정의한다. 이를 통해 사전 학습 언어 모델의 일반화된 핵심 능력을 희생하더라도 다양한 다운스트림 태스크(downstream task)에서 제로샷 학습(Zero-shot learning) 성능이 향상됨 보인다.

[Fig. 1]

Flow diagram of LangGraph

마지막으로 자연어 기반 로봇 시스템의 통합 운영을 위한 흐름 제어 기술을 제안한 연구들을 살펴본다. 먼저 인간과의 상호 작용을 위한 LLM 기반의 인터랙션을 제안하는 연구가 있다[11]. 이 연구는 인터넷, 뉴스, 위키피디어 검색등을 각각 LLM 도구로 등록하고 활용하며, 그 결과에 대한 것을 인간에게 보여주기 위한 반응으로 로봇의 표정과 행동을 묘사하는데, 이때 Behaviour Generation을 활용하여 로봇의 표정과 행동을 제어하는 API를 호출하는 방식을 제시한다. 연구[12]에서는 LLM기반의 AI 에이전트가 갖추어야 할 구성요소와 아키텍처를 제안하는데, 이는 복잡한 외부 환경에도 연속적으로 대응하기 위한 AI 에이전트를 갖추기 위한 것으로, LLM 통합 메커니즘, 태스크 수행 프로토콜, 지속적인 학습 프로세스와 인터랙션 모델을 포함한다. 해당 연구의 [Table 1]에서 소프트웨어 개발 프로세스에 적용하여 유의미한 개선 효과가 있음을 입증한다. 연구[13]에서는 LATM (LLMs as Tool Makers)라는 프레임워크를 소개함으로 LLM에 주어진 도구와 더불어 또 다른 LLM이 활용할 수 있는 도구를 생성하여 이를 재사용할 수 있음을 보인다. 연구[13]에서 랭체인과 랭그래프를 활용하여 서비스 수준의 AI 에이전트 구조를 설계하여 강인성, 모듈화, 멀티 에이전트(Multi-agent) 워크 플로우(workflows)를 구현할 수 있음을 보이며, 향후 다양한 산업에서 LLM 을 활용한 응용 프로그램과 서비스가 가능함을 설명한다.

Tool Name & Usage

다음 장에서는 LLM 기반의 자연어 음성 인식을 기반으로 하는 목적지 자율 주행 방법을 제안하는데, 이를 위하여 로봇을 구동하기 위한 API를 호출하기 위해 LLM에 도구를 접목하고 이를 통합 하는 흐름 제어를 위해 랭그래프를 활용하는 방법을 논한다..


3. 시스템 구성

본 장에서는 LLM을 활용한 자연어 기반 자율주행 로봇 제어 시스템 설계 및 구현 방법을 제안하여, 음성 요청에 의해 모바일 로봇을 구동하여 해당 로봇이 목적지 주행을 실행하고 해당 결과를 음성으로 알려주는 일련의 과정을 설명한다. 이를 위해 로봇 기능들을 호출할 수 있는 API 들을 사전 학습된 LLM에 도구로 등록하고, 자연어 요청 프롬프트에 대응하여 적절한 도구들을 호출하여 로봇을 구동할 수 있도록 퓨샷 학습(Few-shot learning)을 실행하는 방법을 소개한다. 추가로 로봇이 지속적으로 인간과 상호 작용하며 동작할 수 있도록 전체 구조와 기능적인 동적 흐름 제어를 위한 설계, 구현을 위해 랭체인과 랭그래프를 활용한다[13].

3.1 LLM에 주행을 위한 도구 등록

사전 학습된 LLM은 일반화된 성능은 우수하지만, 특정 로봇 도메인에 대한 지식은 부족할 수 있다. 따라서, 로봇에 대한 도메인 지식과 로봇을 제어할 수 있는 API를 도구로 등록하여 LLM이 필요할 때 사용할 수 있도록 한다. 이를 위해 먼저 사용할 수 있는 API 를 정의 하고 등록하는 절차를 수행한다. 다음 [Table 1]은 대표적인 로봇 주행에서 사용하는 도구들이다.

이러한 도구 등록 절차는 랭체인 모듈을 활용하는데 [Table 2]에서 단계별 파이썬 코드로 보여주고 있으며, 각 단계별로 살펴보면 다음과 같다. 단계 1과 단계 2 는 일반적인 LLM 을 사용하기 위한 설정 단계 이며, 단계 3과 단계 4는 LLM에 바인딩할 도구 노드 객체를 생성하는 단계이다. 단계 5에서 LLM에 도구들을 연결하여 LLM에 도구의 존재를 인식 시키는 단계이다. 단계 6은 LLM에 입력되는 프롬프트에서 원하는 도구를 검색하여 메타 데이터와 함께 가져오는 단계이고, 마지막으로 단계 7에서는 검색된 도구를 호출하여 실행하는 역할을 한다. 이때 단계 6에서 시스템 프롬프트와 사용자 프롬프트를 함께 조합하여 입력하는데, 시스템 프롬프트에 의한 퓨샷 학습이 전체 시스템 성능에 영향을 준다. 다음 절에서는 이에 대한 방법에 대하여 논하도록 한다.

Tool Binding of LangChain

3.2 퓨샷 학습(Few-shot Learning)

퓨샷 학습은 몇 개의 적은 예시로 학습을 하는 방법으로 특정 도메인에서 사전 학습된 LLM을 미세조정하거나 재학습하는 것에 비해 적은 비용과 시간으로 높은 효과를 볼 수 있는 방법이다[5]. 본 논문에서 자율주행 로봇 구동을 위한 도구를 선택하고, 실행 결과 분석을 위해 퓨샷 학습 기반의 프롬프트 엔지니어링을 수행한다. 본 연구에서는 세 가지의 시스템 프롬프트를 활용하여 실험을 수행 한다. 프롬프트에 대한 내용은 4장 실험에서 다루도록 한다.

3.3 랭그래프(LangGraph)의 흐름 제어

LLM을 채팅이나 단순한 답변을 요구하는 응용을 넘어서 자동화된 업무 프로세스와 로봇과 같은 디바이스 제어를 통한 서비스 등에 활용 하려 한다면, 입력, 출력, 출력에 대한 성공, 실패와 이에 따른 로그 등을 분석하여 자동적으로 재요청을 수행하는 프로세스나 서비스가 동작하도록 해야 한다. 우리는 이것을 자율 AI 에이전트(autonomous agent)라고 부른다[11]. 이러한 자율 AI 에이전트를 구현하기 위한 전체 흐름 제어는 랭그래프를 활용하는데, 랭그래프는 노드(node), 엣지(Edge), 상태(State)로 구성된다. 본 논문에서 정의한 상태값은 [Table 3]과 같은데, 전체 노드가 공유하며, 각 상태값에 따라서 엣지로 분기되어 다른 노드로 이동하여 해당 노드를 수행하는 방법으로 전체 흐름을 통해 로봇 주행을 제어한다. 이에 대한 전체 흐름도는 [Fig. 1]에 보이며, 각 노드와 에지로 분기하는 과정을 [Table 4]의 의사코드에서 설명한다. 각 노드가 실행할 때 마다 관련한 상태값이 변경되며 이를 통해 어떤 엣지로 분기하여 실행할지 결정하는데, 특히 Do_act 에서는 사용해야 할 도구와 관련된 파라미터 정보를 순서대로 리스트로 받는다. 결국 리스트의 순서가 로봇이 실행해야 할 계획이 되는 것이다.

State shared among nodes in Langgraph’s flow

Pseudo code for flow diagram in Fig. 1

다음 [Fig. 2]는 본 논문에서 설계한 모바일 로봇의 주행을 위한 AI Agent 의 전체 구조를 블록도로 보이는데, 각 블록에 대해 차례로 설명하도록 한다. 첫째, AI Agent는 LLM 과의 대화를 통해 로봇 실행 계획을 수립하고, 계획된 업무를 관찰하여 재 계획을 수립해야 할지에 대한 결정을 한다. 이를 위해서 요청에 따라 로봇을 제어하기 위한 도구를 선택하여 이를 로봇의 실제 기능을 호출하는 API에 대응시킨다. 이때 [Fig. 2]의 Navigation Proxy Client를 통해 대응하는 Navigation Proxy Server 내의 함수를 호출하여 로봇 내부의 구동부 함수 호출을 통해 로봇을 움직이게 된다. 사용하는 LLM으로는 AzureOpenAI를 사용하였으며, 관찰(Observation)을 통해서 재요청할지를 결정하게 된다.

[Fig. 2]

Block diagram of Autonomous AI Agent for mobile robot’s navigation

다음 절에서는 실험을 고려한 전체 구조도를 살펴보는데, 사용자 음성을 통한 요청부터 로봇이 움직인 결과를 발화하는 흐름을 설명한다.

3.4 전체 기능 구조도

제안한 AI Agent를 로봇과 함께 실험하기 위한 전체 구조도는 [Fig. 3]에 보인다. 음성요청을 음성-텍스트 변환기(STT: Speech-to-Text)를 통하여 텍스트로 변환하고 문법과 문맥을 보정하기 위한 LLM 기반 보정 과정을 수행한다. 이후에 AI Agent를 통해 도구를 호출하여 로봇을 제어하고, 실행 결과는 다시 텍스트로 처리된 후 음성으로 변환되어 사용자에게 전달된다. 이때 텍스트로 받은 결과를 음성으로 변환하기 전에 문법과 문맥을 보정하기 위해 추가적인 LLM 처리를 수행하며, 이후에 텍스트-음성 변환기(TTS: Text-to-Speech)를 통하여 음성으로 발화하게 된다.

[Fig. 3]

Overall sequence diagram for operation of robot navigation AI Agent

전체 동작을 위한 기능별 블록도를 구분하여 좀 더 상세하게 [Fig. 4]에서 보여준다. 랭그래프로 구성된 AI Agent를 중심으로 음성을 텍스트로 변환 후에 프롬프트로 입력되고, Retrieval에 의해 계획된 도구를 선택하여 로봇의 액션이 되기까지의 과정을 설명하고 있다. 도구 호출을 위한 LLM은 AzureOpenAI를 사용하고, 음성명령을 위한 STT 엔진은 wav2vec2-large-xlsr-korean 모델을 사용하며[14], TTS 엔진은 MeloTTS-Korean 모델을 활용한다[15]. 또한 각각의 텍스트의 문법과 문맥을 보정하기 위한 LLM으로 엑사원 4.0-1.2B (EXAONE 4.0-1.2B)를 활용한다[16].

[Fig. 4]

Functional block diagram for experimental setup


4. 실 험

4.1 실험 준비

본 실험은 단위 블록 및 모듈별 사전 검증을 거친 후 통합 테스트를 수행하는 절차로 진행된다. 구체적인 실험 환경 준비 및 시스템 구현 과정은 다음과 같다.

첫째, 시스템의 전체 워크플로우를 설계하기 위해 랭그래프를 활용한다. 둘째, AI 에이전트의 LLM을 퓨샷 프롬프팅으로 튜닝하기 위한 시스템 프롬프트와, STT 및 TTS 처리 과정에서 텍스트를 교정하기 위한 전용 프롬프트를 각각 설계 및 검증한다. 각 프롬프트의 세부 구성은 [Table 5]와 같다. 셋째, 에이전트가 사용할 기능적 도구(Tools)를 시스템에 등록하고, 단위 테스트를 통해 정상 호출 여부를 확인한다. 넷째, 에이전트와 로봇 간의 통신 환경을 구축하기 위해 gRPC를 활용하여 프록시 서버와 클라이언트를 구현한다. 이때 로봇 측에서 구동되는 프록시 서버는 ROS 2 플랫폼 기반의 내비게이션 주행 함수를 호출하는 역할을 수행한다. 다섯째, 관찰(Observation) 모듈을 설계하여 로봇의 임무 정상 종료, 주행 중 오류 발생 등의 상태를 실시간으로 모니터링하고 상황에 맞는 후속 조치가 이루어지도록 제어한다. 여섯째, 로봇의 자율 주행을 위해 물리적 실험 공간에 대한 2D 지도 매핑(Mapping)을 수행한다. [Fig. 5]의 (a)와 (b)는 각각 실제 실험 환경의 형상과 2D LiDAR를 통해 생성된 환경 지도를 나타낸다. 해당 실험 공간은 발코니, 원점, 거실, 창고, 주방의 다섯 구역으로 분류되며, 각 위치는 지도의 (x, y) 좌표로 매핑된다. 따라서 자연어로 입력된 대상 목적지는 시스템 내에서 (x, y) 좌표로 변환되어 로봇에 전달되며, 로봇은 이를 기반으로 자율 주행을 수행하게 된다. 한편, 본 실험의 하드웨어 플랫폼으로는 모바일 매니퓰레이터인 Stretch 3[17]가 사용되었으며, 본 연구의 목적에 부합하도록 매니퓰레이션 기능은 배제하고 자율 주행 기능만을 제한적으로 활용한다.

Template of System Prompt

[Fig. 5]

Experimental environment

4.2 실험

실험 상세 절차는 [Fig. 6]와 [Fig. 7]에 나타낸다. [Fig. 6]의 중앙에 위치한 노트북이 전체 실험을 진행하기 위한 호스트 터미널 역할을 하며, 랭그래프와 TTS모델이 노트북에서 실행된다. 사용자의 음성 요청이 “싱크대 앞으로 가줘” 인 경우에 STT, 문맥 보정 LLM인 EXAONE을 거쳐서 “싱크대 근처로 이동해줘”로 변환되어 로봇 액션을 추출하는 LLM인 AzureOpenAI에 입력이 되고, 최종적으로 “tool_move_ to_waypoint” 와 목적지인 “주방”이 도구와 인자로 추출되어 로봇에 요청할 해당 API 를 호출하기 까지의 과정을 나타낸다. 로봇은 이에 따른 목적지 주행을 완료 한 후에 도착 후에 최종 결과를 사용자에게 반환 하는데, 이때도 텍스트를 TTS 에 입력하기 전에 문맥을 보정하기 위하여 EXAONE 에 입력하고 결과로 나온 문장을 노트북 터미널의 TTS 에 입력하여 음성으로 발화한다.

[Fig. 6]

Block diagram for navigation with LLM

[Fig. 7]

Sequence diagram for navigation with LLM

사용자의 음성을 통한 요청부터 로봇이 요청에 대한 주행을 완료하고 사용자에게 결과를 발화하는 전체 과정을 좀 더 상세히 단계별로 표현하기 위해 [Fig. 7]에 시퀀스 다이어그램을 제시한다. 이때 단계 8 에서는 로봇 주행 중에도 로봇의 상태를 점검하기 위해 관찰(Observation)하는 단계이며, 문제가 발생했다고 판단하면 인간 개입 루프 노드(Human-in-the-loop)로 전달되어 처리된다.

실험은 영어보다 상대적으로 처리 난이도가 높은 한국어를 대상으로 수행한다. 이는 대부분 LLM이 영어 환경에서 높은 성능을 보이므로, 한국어에서의 성능이 확보되면 영어에서도 충분히 동작할 수 있다는 가정에 기반한다. 테스트 케이스는 첫째, 단순 작업과 복합 작업으로 나누어 진행을 했고, 요청을 하는 문장 동사도 “가줘”, “주행해줘” 와 “이동해” 등등으로 나누어 수행한다. 둘째, 스스로 해석 능력을 보기 위해 퓨삿 학습에 의해 학습되지 않은 용어를 통해서도 특정 장소로 이동을 결정할 수 있는지를 검증한다. 또한 [Fig. 8]는 랭스미스(langsmith)라는 웹기반의 서비스로서, 랭그래프에 의해 실행된 결과를 실시간으로 추적하고 노드에서 실행된 단계별 결과를 바로 볼 수 있는 유용한 서비스이다[18]. 이를 통해서도 가시적인 동작 뿐만 아니라 각 단계별 동작을 검증하였다. 이에 대한 실험 결과를 다음 절에서 확인 하도록 한다.

[Fig. 8]

Langgraph’s flow diagram used in experiment

4.3 실험 결과

랭그래프를 기반으로 구현된 코드를 실행시키면 입력 방법에 대한 질문을 시작으로 사용자 요청을 받아서 실행되게 된다. 앞장에서 설명한 [Fig. 3]의 순서대로 실행되어 음성으로 발화하는 일련의 과정이 프로그램의 로그로 남은 내용이 [Fig. 9]에 단계적으로 표현되어 있다. 또한 라인 1~4를 통해 세 가지 입력 요청을 처리할 수 있음을 확인할 수 있다.

[Fig. 9]

Langgraph program running results

실험을 위한 음성에 의한 테스트 케이스와 결과는 다음 [Table 6]와 같은데, 1번에서 19번까지는 단순 작업에 대한 것이고, 20번부터 25번까지는 복합작업에 해당한다. 복합 작업에 대한 것도 해당하는 도구와 장소들을 추출하여 성공적으로 수행함을 확인하였다. 특이 사항이 한가지 발견되었는데, 요청 내용 중 14번 예제 “싱크대로 이동해”에 대해서는 최종적으로 LLM (AzureOpenAI)에서 “go to sink” 와 같은 문장으로 의미를 해석하여 안전에 관련한 유해한 요청으로 받아들이고 “content management policy”로 인해 오류를 반환하는 경우가 발생하였는데, 이에 대한 오류 로그는 [Fig. 10]에 보인다. 이후 요청 내용을 “주방에 있는 싱크대로 이동해” 로 변경하여 성공적으로 주행을 했는데, 이후에는 단순히 “싱크대로 이동해”라고 해도 문제 없이 주행함을 확인하였다. 복합작업의 입력인 경우는 다음과 같이 LLM이 출력을 해서 로봇이 차례대로 액션을 수행하고 결과를 반환한다.

Testcases and results

[Fig. 10]

Contents Filtering Log

지금까지 제안한 구조에 대한 실험 및 결과에 대한 논의를 마치고, 다음 장에서 결론을 통해 본 논문 전체를 정리하고, 향후 연구 방향에 대해 논한다.


5. 결 론

최근 로봇 시스템의 지능화와 함께 이를 좀 더 체계적으로 활용하여 자동화하려는 시도가 증가하고 있으며, LLM 도입을 통해 AI 에이전트를 구성하여 자율적인 로봇 시스템을 구현하려는 연구가 활발히 진행되고 있다. AI 에이전트를 구성하는 주요 요소들은 프롬프트 엔지니어링 기술, 프롬프트에 의해 주어진 요청을 받아서 주어진 도구들을 검색하는 기술, LLM에게 사용가능한 도구 리스트를 각인 시키는 기술, LLM의 결과를 관찰을 통해 정제하고 필요시 재요청을 통해 피드백을 수행하며 전체 서비스 구성을 자동화 하는 기술이 있다.

본 논문에서는 대형언어모델을 활용한 자연어 기반 자율주행 로봇 제어 시스템을 설계하여, 음성으로 입력된 요청을 LLM에서 해석하여 자율주행 로봇에 명령을 보내고 로봇이 주어진 목적지 주행을 하는 액션을 끝내면 결과를 다시 음성으로 피드백하는 AI 에이전트 시스템을 설계 및 구현하고 실험을 통해 유효성을 검증하였다. 이러한 AI 에이전트를 구현하는 다양한 방법론 중에서 랭체인, 랭그래프를 활용하여 AI 에이전트를 활용하는 방법을 통해 자율적인 로봇 시스템이 동작하는 전체 흐름과 구조에 대해 확인하였다. 특히 AI 에이전트의 전체 흐름을 제어하고 관찰하는 시스템을 설계함에 있어, 흐름에 문제가 있다고 판단할 때는 인간이 그 흐름에 개입할 수 있도록 인간 개입 루프(Human-in-the-loop)를 구성하여 운영을 위한 안전성을 향상시키고자 하였다. 또한, 음성-텍스트 변환, 텍스트-음성 변환 기능의 정확도를 향상시키기 위한 보정 방법으로 추가적인 인공지능 모델을 도입하여 자연어 처리 성능을 개선하였다.

향후는 매니퓰레이션을 구동 시킬 수 있는 도구를 추가하고, 관련 내용을 퓨샷 학습을 통해 LLM이 해당 도메인에 보다 적합하도록 고도화할 필요가 있다. 이를 통해 일상생활 공간에서 자율적인 이동뿐만 아니라 사용자 요청과 더불어 상황을 인지하여 매니퓰레이터를 이용한 다양한 서비스를 수행할 수 있는 로보틱스 AI 에이전트로 확장할 수 있을 것으로 기대된다.

Acknowledgments

This work was supported by the ICT R&D program of RS-2024-00346798, Development of Edge AI SW technology for autonomous robotics to improve the success rate of complex tasks in daily life spaces.

References

  • Y. Kim et al., “A Survey on Integration of Large Language Models with Intelligent Robots,” Intelligent Service Robotics, vol. 17, no. 5, pp. 1091-1107. [https://doi.org/10.1007/s11370-024-00550-5]
  • S. H. Vemprala et al., “ChatGPT for Robotics: Design Principles and Model Abilities,” IEEE Access, vol. 12, pp. 55682-55696. [https://doi.org/10.1109/ACCESS.2024.3387941]
  • G. Zhou et al., “NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models,” Proceedings of the 38th AAAI Conference on Artificial Intelligence, Vancouver, Canada, pp. 7641-7649, 2024. [https://doi.org/10.48550/arXiv.2305.16986]
  • Z. Zhong et al., “A Language-Driven Navigation Strategy Integrating Semantic Maps and Large Language Models,” 2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Abu Dhabi, UAE, pp. 9753-9760, 2024. [https://doi.org/10.1109/IROS58592.2024.10802631]
  • P. Liu et al., “Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing,” ACM Computing Surveys, vol. 55, no. 9, pp. 1-35. [https://doi.org/10.48550/arXiv.2107.13586]
  • M. Kwon and Y. J. Kim, “Neuro-Symbolic Task Replanning using Large Language Models,” Journal of Korea Robotics Society, vol. 20, no. 1, pp. 52-60. [https://doi.org/10.7746/jkros.2025.20.1.052]
  • Y.-T. Oh and J.-B. Song, “Unstructured Bin-Picking System Based on Korean Speech Recognition,” Journal of Korea Robotics Society, vol. 20, no. 2, pp. 331-336. [https://doi.org/10.7746/jkros.2025.20.2.331]
  • A. Parisi et al., “TALM: Tool Augmented Language Models,” arXiv:2205.12255, 2022. [https://doi.org/10.48550/arXiv.2205.12255]
  • T. Schick et al., “Toolformer: Language Models Can Teach Themselves to Use Tools,” NIPS '23: Proceedings of the 37th International Conference on Neural Information Processing Systems, New Orleans, USA, pp. 68539-68551, 2023. [https://doi.org/10.48550/arXiv.2302.04761]
  • H. Kang et al., “Nadine: An LLM-driven Intelligent Social Robot with Affective Capabilities and Human-like Memory,” arXiv:2405.20189, 2024. [https://doi.org/10.48550/arXiv.2405.20189]
  • P. Garg and D. Beeram, “Large Language Model-Based Autonomous Agents,” International Journal of Computer Trends and Technology, vol. 72, no. 5, pp. 151-162, May, 2024. [https://doi.org/10.14445/22312803/IJCTT-V72I5P118]
  • T. Cai et al., “Large Language Models as Tool Makers,” The 24th International Conference on Learning Representations, Vienna, Austria, 2024. [https://doi.org/10.48550/arXiv.2305.17126]
  • K. Pelluru, “LangChain and LangGraph in Production: Architectures for Multi-Agent LLM Systems,” Journal of Data & Digital Innovation, vol. 2, no. 3, pp. 1-9, 2025, [Online], https://datalensjourna.com/index.php/JDDI/article/view/35, .
  • Hugging Face, wav2vec2-large-xlsr-korean, [Online], https://huggingface.co/kresnik/wav2vec2-large-xlsr-korean, , Accessed: Feb. 12, 2025.
  • Hugging Face, MeloTTS-Korean, [Online], https://huggingface.co/myshell-ai/MeloTTS-Korean, , Accessed: Feb. 12, 2025.
  • LG AI Research, EXAONE 4.0, [Online], https://huggingface.co/LGAI-EXAONE/EXAONE-4.0-1.2B, , Accessed: Feb. 20, 2025.
  • Hello Robot, Stretch 3, [Online], https://hello-robot.com/stretch-3-product, , Accessed: Feb. 12, 2025.
  • LangChain, Langsmith Observability, [Online], https://docs.langchain.com/langsmith/observability, , Accessed: Feb. 20, 2025.
구 세 완

1994 한양대학교 전자통신공학과(학사)

1996 한양대학교 전자통신공학과(석사)

2023 한양대학교 전자컴퓨터통신공학과(박사)

1997~2000 한국철도기술연구원

2000~현재 LG전자 책임연구원

관심분야: Cloud Robotic, Robot Platform, Language-Driven-Robotics

김 영 재

1999 서울대학교 전기공학부(학사)

2003 Stanford Univ. 전기공학과(석사)

2007 Stanford Univ. 전기공학과(박사)

2009~2017 Apple Inc. 시니어SW엔지니어

2017~2018 Velodyne LiDAR, 수석엔지니어

2019~현재 LG전자, 수석연구위원

관심분야: Cloud Robotic, Robot Operating System

[Fig. 1]

[Fig. 1]
Flow diagram of LangGraph

[Fig. 2]

[Fig. 2]
Block diagram of Autonomous AI Agent for mobile robot’s navigation

[Fig. 3]

[Fig. 3]
Overall sequence diagram for operation of robot navigation AI Agent

[Fig. 4]

[Fig. 4]
Functional block diagram for experimental setup

[Fig. 5]

[Fig. 5]
Experimental environment

[Fig. 6]

[Fig. 6]
Block diagram for navigation with LLM

[Fig. 7]

[Fig. 7]
Sequence diagram for navigation with LLM

[Fig. 8]

[Fig. 8]
Langgraph’s flow diagram used in experiment

[Fig. 9]

[Fig. 9]
Langgraph program running results

[Fig. 10]

[Fig. 10]
Contents Filtering Log

[Table 1]

Tool Name & Usage

No. Tool Name Usage
1 tool_move_to_waypoint Call robot API for robot to move to “location”
2 tool_stop_movement Call robot API for robot to stop
3 tool_return_original_position Call robot API for robot to home location

[Table 2]

Tool Binding of LangChain

// 1. Load model name and API key from environment variables
MODEL_NAME = load_environment_variable("MODEL_NAME")
 
// 2. Initialize the Large Language Model (LLM)
llm = ChatOpenAI(model=MODEL_NAME)
 
// 3. Define the list of tools to be used
tools = [tool_move_to_waypoint,
tools = tool_stop_movement,
tools = tool_return_original_position]
 
// 4. Create a ToolNode object
tool_node = ToolNode(tools)
 
// 5. Bind tools to the LLM
llm_with_tools = llm.bind_tools(tools)
 
// 6. Invoke the LLM with the user prompt
user_prompt = input("User Prompt : ")
output = llm_with_tools.invoke(prompt)
 
// 7. Pass the LLM output to the ToolNode for execution
tool_node.invoke({"message": [output]})

[Table 3]

State shared among nodes in Langgraph’s flow

No. State Name Type Usage
1 request String User prompt
2 context String Reserved
3 answer String LLM’s answer
4 messages List[String] System Prompt + User prompt
5 relevance_check Bool Relevance for the result of LLM’s search for Tools
6 location List[String] Target location for robot to move
7 action List[String] Robot’s action resulted from tools
8 action_result List[dic] Results from a sequence of actions
9 action_check bool if any action_result is False, then action_check is False
10 observation String Observation outcome for Action_result & Action_check
11 status String Reserved
12 human_decision Bool Whether human intervene or not

[Table 4]

Pseudo code for flow diagram in Fig. 1

BEGIN  
  INITIALIZE graph_state
RECEIVE User_request
TRANSCRIBE speech_to_text INTO user_text
CALL LLM with (user_text, conversation_state)
RETRIEVE action with (tool, parameters)
IF Relevance_check == True THEN
  CALL Do_act
CALL Observation
  IF action_check == False THEN
  CALL Human_intheloop
IF Human_decision == True THEN
  END
ELSE
  CALL Re_request
ENDIF
ELSE
  END
ENDIF
ELSE
  CALL Re_request
ENDIF
END

[Table 5]

Template of System Prompt

No. Prompt name Contents
1 SYSTEM_PROMPT Role, Cautions, location info, Location list, Location axis, Tool list, Output format, examples
2 SYSTEM_PROMPT_FOR_STT Role, Objectives, Input format, Output format, examples
3 SYSTEM_PROMPT_FOR_TTS Role, Objectives, Input format, Output format, examples

- Input : Go to the kitchen, then to the living room, and come back to where you were.
- LLM Output:
{
 "tool": ["tool_move_to_waypoint",
  "tool_move_to_waypoint",
  "tool_return_original_position"],
 "location": ["Kitchen", "Living room"]
}

[Table 6]

Testcases and results

No User Request (Voice) Result
1 Go to the kitchen OK
2 Move to the kitchen OK
3 Drive to the living room OK
4 Go to the living room OK
5 Move to the living room OK
6 Drive to the balcony OK
7 Go to the balcony OK
8 Move to the balcony OK
9 Move to the sofa OK
10 Drive to the sofa OK
11 Go near the sofa OK
12 Drive near the sofa OK
13 Move near the sofa OK
14 Move to the sink Partial OK
15 Drive to the sink OK
16 Go to the sink OK
17 Move near the sink OK
18 Drive near the sink OK
19 Go near the sink OK
20 Move to the kitchen, then go to the veranda OK
21 Move to the kitchen, then drive to the veranda OK
22 Drive to the veranda, and then go to the living room OK
23 Drive to the veranda, and then move to the living room OK
24 Go to the living room, and move to the kitchen OK
25 Go to the living room, then drive to the kitchen OK