AWS 기술 블로그

뉴빌리티의 Amazon Kinesis Video Streams 기반 원격 관제 확장 사례

뉴빌리티는 일상 속 로봇 기술을 지향하며, 로봇 하드웨어·소프트웨어·운영 시스템을 통합 제공하는 Physical AI 기반 RX 솔루션 기업입니다. 배달과 순찰 등 실제 서비스 환경에서 로봇 서비스를 운영해 왔으며, 로봇 도입부터 운영까지 전 과정을 하나의 시스템으로 연결해 상용화하고 있습니다.

2017년 설립 이후 다양한 로봇 서비스 실증을 운영해 온 뉴빌리티는 2024년 요기요와 함께 로봇 배달 서비스를 상용화했고, 순찰 분야에서도 SK쉴더스, 성남시 등과 협력해 공공 및 사유지를 넘나드는 현장 서비스를 제공하고 있습니다. 2026년 기준 국내외 140여 개 현장에서 300대 이상의 로봇을 운영해 왔습니다.

과제: 실환경의 로봇 운영과 원격 모니터링 시스템

운영 규모가 커지면서 여러 현장에서 운영되는 로봇의 영상과 상태 정보를 NCC(Neubility Control Center)를 통해 안정적으로 확인하고, 이를 내부 운영 환경을 넘어 고객 및 외부 사용자 환경까지 확장하는 것이 중요한 과제가 되었습니다.

이 과정에서 기존 RTSP 기반 스트리밍과 포트포워딩 방식은 초기 운영에는 유효했지만, 서비스가 확장될수록 한계가 분명해졌습니다. 특정 네트워크 환경에 의존해야 하고 외부 접근이 제한되는 문제가 있었으며, 로봇 수가 증가할수록 개별 네트워크 설정에 대한 운영 부담도 커졌습니다. 실시간 대응이 필요한 서비스 특성상 저지연 영상 전송 구조에 대한 요구도 점점 높아졌습니다.

이를 개선하기 위해 뉴빌리티는 WebRTC 기반 구조를 검토했고, AWS의 관리형 서비스인 Amazon Kinesis Video Streams 서비스의 WebRTC 기능을 활용해 연결 구조를 설계했습니다. 이 글에서는 뉴빌리티가 이러한 구조를 바탕으로 로봇 원격 관제 환경을 어떻게 개선하고 확장했는지 소개합니다.

솔루션 개요: Amazon Kinesis Video Streams 서비스의 WebRTC 기능을 활용한 연결 구조

Kinesis Video Streams는 수백만 디바이스에서 비디오, 오디오 등 미디어 데이터를 AWS로 안전하게 스트리밍하여 저장, 재생, 분석할 수 있는 완전 관리형 서비스입니다. 이 서비스는 초저지연 양방향 미디어 스트리밍을 위한 개방형 표준 프로토콜인 WebRTC 기능을 제공합니다.

뉴빌리티는 기존 RTSP 기반 영상 전송 구조를 WebRTC 기반 아키텍처로 전환하면서, Kinesis Video Streams의 WebRTC 기능을 활용해 로봇과 클라이언트 간 연결 구조를 구성했습니다.

기존 방식에서 관제센터의 라우터는 공인 IP가 하나만 할당되어 있지만, 내부에는 RTSP 서버를 실행 중인 클라이언트가 여러 대 있습니다. 공인 IP로 접근했을 때, 라우터는 이 요청을 내부의 어떤 디바이스로 전달해야 할지 알 수 없습니다. IP 주소만으로는 내부 디바이스를 구분할 수 없으므로, 외부 포트 번호를 각 디바이스에 1:1로 매핑하기 위해서는 포트포워딩 설정이 필요했습니다. Kinesis Video Streams의 Signaling Channel을 사용하면 별도의 시그널링 서버를 직접 구축하지 않고도 몇 번의 API 호출로 WebRTC 기반 Peer-to-Peer(P2P) 연결을 구현할 수 있습니다.

이 구조에서 로봇은 영상 데이터를 전송하고, 클라이언트는 Kinesis Video Streams에서 시그널링 정보를 교환한 뒤 직접 P2P 연결을 형성합니다. 구현 과정에서는 Amazon Kinesis Video Streams WebRTC SDK에서 제공하는 예제와 API가 도움이 되었습니다. 뉴빌리티는 SDK 기반 구현으로 Peer Connection 상태를 확인하고, roundTripTime, fractionLost 등 연결 품질과 관련된 지표를 수집할 수 있었습니다. 이 지표를 바탕으로 WebRTC 연결 상태를 확인하고, 데이터 드롭이나 송수신 지연과 같은 문제를 파악하는 데 활용했습니다. 이는 구현 복잡도를 낮추면서도 특정 네트워크 환경에 묶이지 않는 보다 유연한 원격 관제 구조를 가능하게 했습니다.

Peer Connection metric 수집 코드 스니펫

RtcStats rtcStats;
rtcStats.requestedTypeOfStats = RTC_STATS_TYPE_REMOTE_INBOUND_RTP;

STATUS retStatus = rtcPeerConnectionGetMetrics(
    pPeerConnection,
    rtcRtpTransceiverPointer,
    &rtcStats
);

if (retStatus != STATUS_SUCCESS) {
    std::cout << "rtcPeerConnectionGetMetrics() failed with "
              << retStatus << std::endl;
} else {
    std::cout << "roundTripTime: "
              << rtcStats.rtcStatsObject.roundTripTime << "\n"
              << "fractionLost: "
              << rtcStats.rtcStatsObject.fractionLost << "\n";
}

위와 같은 방식으로 Peer Connection의 상태를 확인하면, 원격 관제 환경에서 영상 품질에 영향을 줄 수 있는 네트워크 상태를 운영과 동시에 점검할 수 있습니다.

무엇보다 이번 전환은 단순히 스트리밍 방식을 바꾼 것이 아니라, 내부 환경에 한정돼 있던 영상 접근 구조를 외부 사용자 환경까지 확장할 수 있는 기반을 마련했다는 점에서 의미가 있었습니다.

가변 네트워크 환경에서의 영상 품질 관리

로봇의 원격 관제는 고정된 사무실 네트워크뿐만 아니라 LTE와 같은 외부 네트워크 환경에서도 안정적으로 동작해야 합니다. 특히 이동형 로봇의 경우 현장 환경에 따라 네트워크 대역폭이 변동될 수 있기 때문에, 단순히 연결을 구성하는 것을 넘어 영상 품질을 지속적으로 관리할 수 있는 구조가 필요했습니다.

뉴빌리티는 WebRTC 연결 상태를 모니터링하기 위해 Peer Connection metric을 수집하고, LTE 환경에서 대역폭이 변동될 경우 TWCC(Transport-wide Congestion Control)를 활용한 bitrate 조정 방식을 적용했습니다. 이를 통해 네트워크 상태 변화에 대응하면서 원격 관제 영상 품질을 관리할 수 있는 운영 기반을 마련했습니다.

GStreamer bitrate 조정 코드 스니펫

if (pSampleStreamingSession->pSampleConfiguration->enableTwcc && senderPipeline != NULL) {
    GstElement* encoder = gst_bin_get_by_name(GST_BIN(senderPipeline), "sampleVideoEncoder");
    if (encoder != NULL) {
        g_object_get(G_OBJECT(encoder), "bitrate", &bitrate, NULL);
        MUTEX_LOCK(pSampleStreamingSession->twccMetadata.updateLock);
        pSampleStreamingSession->twccMetadata.currentVideoBitrate = (UINT64) bitrate;
        if (pSampleStreamingSession->twccMetadata.newVideoBitrate != 0) {
            bitrate = (guint) (pSampleStreamingSession->twccMetadata.newVideoBitrate);
            pSampleStreamingSession->twccMetadata.newVideoBitrate = 0;
            g_object_set(G_OBJECT(encoder), "bitrate", bitrate, NULL);
        }
        MUTEX_UNLOCK(pSampleStreamingSession->twccMetadata.updateLock);
    }
}

pRtcRtpTransceiver = pSampleStreamingSession->pVideoRtcRtpTransceiver;
frame.presentationTs = pSampleStreamingSession->videoTimestamp;
frame.decodingTs = frame.presentationTs;
pSampleStreamingSession->videoTimestamp += SAMPLE_VIDEO_FRAME_DURATION;

status = writeFrame(pRtcRtpTransceiver, &frame);

뉴빌리티는 AWS 예제 코드를 참고해 GStreamer pipeline의 encoder bitrate를 네트워크 상태에 따라 조정하는 방식을 검토·적용했으며, 이를 통해 LTE와 같이 대역폭이 변동되는 환경에서도 영상 송출 품질을 관리할 수 있었습니다.

도입 후: 내부 환경 중심에서 외부 확장 구조로

Kinesis Video Streams의 WebRTC 기능을 도입한 이후, 뉴빌리티의 관제 구조는 내부 환경 중심에서 외부 확장형 구조로 전환되었습니다.

기존 관제 시스템은 내부 네트워크 환경에 종속되어 특정 환경에서만 접근 가능했기 때문에, 클라이언트가 추가될 때마다 해당 환경별 네트워크 설정과 라우터의 포트포워딩 설정이 필요했습니다. 이로 인해 현장 조건에 따라 최소 20분에서 길게는 수 시간까지 초기 설정 시간이 소요될 수 있었습니다.

Kinesis Video Streams WebRTC 도입 이후에는 별도 포트포워딩 설정 없이 연결을 구성할 수 있게 되면서, 신규 클라이언트 추가 시 필요한 초기 설정 부담을 줄일 수 있었습니다. 이와 함께 확장형 관제 구조를 도입하면서 고객 및 외부 사용자 환경에서도 관제 시스템을 활용할 수 있게 되었습니다. 로봇 서비스 운영 과정에서 고객과 운영 주체가 보다 유연하게 연결될 수 있는 기반이 마련됐습니다.

또한 다양한 로봇 또는 클라이언트 환경에 적용하기 위해 반복적으로 수행해야 했던 네트워크 환경 확인, 포트 매핑, 연결 테스트 등의 작업 범위가 줄어들면서 운영 효율성도 개선되었습니다. 이는 로봇 운영 규모가 커질수록 더욱 중요해지는 부분으로, 실제 운영 측면에서 의미 있는 변화였습니다.

WebRTC 기반의 저지연 구조를 확보함으로써 실시간 대응이 필요한 운영 환경에서도 보다 안정적인 모니터링이 가능해졌습니다. 다만 이번 전환의 주요 개선점은 영상 지연 시간 자체의 단축보다는, 다양한 네트워크 환경에서도 별도 설정 없이 연결을 구성하고 운영할 수 있게 된 점에 있습니다. 뉴빌리티는 이를 통해 현재의 로봇 운영 환경뿐 아니라, 향후 외부 관제 센터 구축과 운영 확장까지 염두에 둔 구조적 기반을 마련할 수 있었습니다.

정리하며

뉴빌리티는 Kinesis Video Streams WebRTC를 활용해 로봇 원격 관제 구조를 개선하고 운영 확장성을 확보할 수 있었습니다. 특히 별도의 시그널링 인프라를 직접 구축하지 않고도 WebRTC 기반 연결 구조를 구현한다는 점에서, 빠르고 효율적인 도입이 가능했습니다. 또한, 초기 테스트 및 도입 시 뉴빌리티의 운영 환경에 적합한지 검증하는 단계에서는 AWS 크레딧 역시 도움이 되었습니다.

또한 LTE 등 외부 네트워크 환경에서 발생할 수 있는 대역폭 변화에 대응하기 위해 Peer Connection metric 수집과 TWCC 기반 bitrate 조정 방식을 함께 활용하며, 원격 관제 영상 품질을 운영 관점에서 관리할 수 있는 기반을 마련했습니다.

로봇 서비스처럼 실시간 영상 기반 운영이 중요한 환경에서는 안정적이고 확장 가능한 스트리밍 구조가 필수적입니다. Kinesis Video Streams는 이러한 요구사항을 충족시키는 효과적인 선택지가 될 수 있을 것입니다. Kinesis Video Streams를 활용한 실시간 스트리밍 구축에 관심이 있으시다면, 아래 자료를 참고하시기 바랍니다.

Amazon Kinesis Video Streams 시작하기

Amazon Kinesis Video Streams 개발자 가이드

뉴빌리티는 올해 하이브리드 휴머노이드, 고중량 로봇, 4족보행 로봇 등으로 포트폴리오를 확장해 나갈 계획입니다. 이번 사례에서 구축한 원격 관제 및 운영 구조는 이러한 과정에서도 다양한 로봇 서비스 운영을 뒷받침하는 기반이 될 것으로 보고 있습니다.

강기혁

강기혁

강기혁님은 뉴빌리티의 CEO로, 뉴빌리티의 기술과 사업을 총괄하고 있습니다. 공동창업자로서 사업 초기의 기술 개발과 아키텍처 설계를 이끌어왔으며, 현재는 로봇 하드웨어와 소프트웨어, 운영 시스템이 RX 솔루션으로 고객에게 전달될 수 있도록 제품 전략과 기술 방향성, 사업 적용 구조를 그려가고 있습니다. 이를 바탕으로 Physical AI 기반 로봇 서비스의 상용화와 확장을 이끌고 있습니다.

김형진

김범석

김범석님은 뉴빌리티 Platform Dev팀 Lead로, RX 솔루션 운영 및 관제를 위한 NCC(Neubility Control Center) 소프트웨어 개발을 총괄하고 있습니다. 이번 사례의 핵심이 되는 원격 관제 연결 구조와 서비스 운영 관점의 아키텍처 정리에 참여했으며, Amazon Kinesis Video Streams Signaling을 활용한 NCC 기반 관제 구조가 실제 운영 환경에서 안정적으로 활용될 수 있도록 플랫폼 구현과 고도화를 이끌고 있습니다.

김범석

김형진

김형진님은 뉴빌리티 공동창업자이자, 현 Physical AI Software 팀장으로, 로봇 소프트웨어 개발을 책임지고 있습니다. 로봇과 관제 시스템 간 영상 연결 구조를 구축하던 초기 단계부터 참여했으며, Amazon Kinesis Video Streams Signaling 도입 및 WebRTC 기반 연결 구조 구현에 기여했습니다. 현재는 Physical AI 소프트웨어 전반의 안정성과 확장성을 높이는 역할을 맡고 있습니다.

YongHwan Yoo

YongHwan Yoo

유용환님은 AWS 스타트업팀 GenAI Solutions Architect입니다. 기업 고객이 생성형 AI를 비롯한 기계 학습(ML) 기술을 비즈니스에 효과적으로 도입할 수 있도록 아키텍처 설계와 최적화를 지원하고 있으며, 사내에서 AI/ML TFC(Technical Field Communities) 멤버로 활동하고 있습니다.

Jinseon Lee

Jinseon Lee

이진선은 IoT 및 Robotics 서비스 담당 Senior IoT Solutions Architect로서, 다양한 산업군 고객들의 Workload에 맞는 IoT 서비스들을 소개하고 IoT 서비스들을 적용한 최적의 아키텍쳐를 구성하도록 기술적인 도움을 제공해드리고 있습니다.