[시리즈 02] 젠피는 어떻게 코엑스에 섰나 - 3개월간의 피지컬 AI 개발기

[시리즈 02] 젠피는 어떻게 코엑스에 섰나 - 3개월간의 피지컬 AI 개발기

Physical AI

Author

피지컬AI파트

1. Physical AI 팀, Lab에서 시작된 도전

1. Physical AI 팀, Lab에서 시작된 도전

지난 5월 코엑스에서 열린 ‘2026 국제인공지능대전(AI Expo Korea)’. 제논은 자체 생성형 AI 플랫폼인 GenOS를 필두로 GenA, GenD, One Agent 등 핵심 솔루션을 대거 선보였습니다.

그중에서도 단연 관람객들의 이목을 사로잡은 하이라이트는 제논의 Physical AI 팀이 최초로 공개한 시니어케어 로봇, ‘젠피(GenP)’였습니다. 요양 병원 환경을 그대로 재현한 공간에서 환자 돌봄 시나리오를 실시간으로 시연해 냈기 때문입니다. 이는 제논이 피지컬 AI를 단순한 기술 로드맵이 아닌, 실제 비즈니스 문제를 해결하는 강력한 수단으로 증명해 낸 순간이기도 했습니다.

앞선 현장 스케치에서 엑스포 전반의 뜨거웠던 분위기를 전해드렸다면, 이번 포스트에서는 렌즈를 조금 더 가까이 들이대 보려고 합니다. Physical AI 팀이 처음부터 꿈꿨던 목표는 무엇이었는지, 준비 과정에서 마주한 수많은 문제들을 어떻게 풀어나갔는지, 그리고 앞으로 어떤 미래를 그려나갈지— 젠피의 치열했던 무대 뒤 비하인드 스토리를 지금 공개합니다.

2. 제논이 목표로 하는 것

2. 제논이 목표로 하는 것

제논의 피지컬AI팀은 피지컬 AI 를 제조, 의료 등 다양한 산업 현장에 빠르게 상용화한다는 목적 아래 시작했습니다. 특히 가장 먼저 시도한 시니어케어의 경우 로봇의 본질적인 역할이 사람이 하던 일을 보조하거나 대신하는 것인 만큼, 사람과의 상호작용 과정에서 안전성 확보는 선택이 아니라 필수적인 전제 조건이었습니다.

그러나 현실은 단순하지 않습니다. 학습 기반의 AI 모델이 아무리 발전했다 해도, 실제 물리 세계에서 발생하는 모든 상황을 커버하기에는 아직 한계가 있습니다. 이 현실적인 제약을 인정하는 것에서 제논의 접근이 시작되었습니다. 제논은 피지컬 AI를 사람과의 상호작용 수준에 따라 크게 네 단계로 분류하고, 각 단계에 맞는 안전성과 기술 성숙도를 단계적으로 확보해 나가는 전략을 취하고 있습니다.

Physical AI 의 상호작용 4단계

1단계 (Digital Care) - 하드웨어 없이 대화만으로 수행하는 영역입니다. 음성 인식(STT)과 음성 합성(TTS)을 기반으로 대화, 정보 제공, 감정 케어, 건강 체크 등을 담당합니다. 알고리즘이 오작동하더라도 물리적인 리스크가 없어, 가장 안전하게 배포하고 검증할 수 있는 단계입니다.

2단계 (Contactless Care) - 이 단계부터 로봇은 실제 환경의 물체와 접촉하기 시작합니다. 방 청소, 설거지, 가전 조작처럼 사람과의 직접 접촉 없이 물리적 작업을 수행합니다. 물이나 약을 가져다주거나 창문을 여닫고, 공간을 순찰하는 것도 이 단계에 해당합니다.

3단계 (Semi-contact Care) - 사람의 신체 일부와 접촉하거나 물리적 활동을 간접적으로 보조하는 단계입니다. 휠체어를 밀거나 환자를 부축하고, 이동 동선의 장애물을 치우는 작업이 가능합니다. 안전 마진을 설계하는 난이도가 급격히 높아지는 구간입니다.

4단계 (Full-contact Care) - 로봇이 사람과 직접 접촉하는 최종 단계입니다. 옷 갈아입히기, 마사지, 목욕 보조 등 가장 높은 수준의 신뢰성과 정밀 제어를 요구합니다.

로봇이 도입된 대부분의 산업 현장은 사람과의 직접 신체 접촉이 없는 환경입니다. 반면 의료, 요양 분야는 사람을 직접 케어해야 하는, 로봇에게 가장 까다로운 환경입니다. 제조나 물류처럼 태스크가 명확히 정해진 환경이라면 휴머노이드가 아니라 특정 작업에 최적화된 전용 로봇으로도 충분합니다. 그러나 사람과의 접촉이 잦고 수행해야 할 태스크가 고정되지 않을수록, 사람의 신체 구조와 동작 방식을 그대로 따르는 휴머노이드의 필요성이 높아집니다. 사람을 위해 설계된 공간에서, 사람과 함께, 사람이 하던 일을 하려면 결국 사람의 형태가 가장 유리하기 때문입니다.

이번 엑스포에서 공개된 젠피는 그 여정의 중간 결과물입니다. 젠피는 현재 기본적인 의사소통, 장애물 회피 주행, 주변 환경 인식, 약통을 집어 건네주는 동작 등을 수행할 수 있습니다. 늦지 않은 시점에 실제 요양 시설과 같은 시니어케어 현장에서 단계적으로 도입될 수 있도록 기술을 고도화하고, 또 안정화하는 것이 목표입니다.

전시장에서 흔히 볼 수 있는 춤과 같은 로봇 시연은 대부분 리모컨 조작을 기반으로, 사전 정의된 모션을 재생하는 경우가 많습니다. 물론 젠피도 강남스타일을 추는 영상에서 보실 수 있듯, 이러한 동작 재현이 충분히 가능합니다.


젠피가 강남스타일을 추는 영상

하지만 젠피가 궁극적으로 수행하려고 하는 ‘시니어 케어’를 위한 모션은 이와는 다릅니다. 학습된 모델이 상황을 인식하고 스스로 판단해 행동하기 때문입니다. 이것이 단순한 시연과 젠피가 근본적으로 다른 지점이며, 동시에 엑스포 준비 과정에서 수많은 기술적 도전이 시작된 이유이기도 합니다.


제논의 피지컬AI팀은 피지컬 AI 를 제조, 의료 등 다양한 산업 현장에 빠르게 상용화한다는 목적 아래 시작했습니다. 특히 가장 먼저 시도한 시니어케어의 경우 로봇의 본질적인 역할이 사람이 하던 일을 보조하거나 대신하는 것인 만큼, 사람과의 상호작용 과정에서 안전성 확보는 선택이 아니라 필수적인 전제 조건이었습니다.

그러나 현실은 단순하지 않습니다. 학습 기반의 AI 모델이 아무리 발전했다 해도, 실제 물리 세계에서 발생하는 모든 상황을 커버하기에는 아직 한계가 있습니다. 이 현실적인 제약을 인정하는 것에서 제논의 접근이 시작되었습니다. 제논은 피지컬 AI를 사람과의 상호작용 수준에 따라 크게 네 단계로 분류하고, 각 단계에 맞는 안전성과 기술 성숙도를 단계적으로 확보해 나가는 전략을 취하고 있습니다.

Physical AI 의 상호작용 4단계

1단계 (Digital Care) - 하드웨어 없이 대화만으로 수행하는 영역입니다. 음성 인식(STT)과 음성 합성(TTS)을 기반으로 대화, 정보 제공, 감정 케어, 건강 체크 등을 담당합니다. 알고리즘이 오작동하더라도 물리적인 리스크가 없어, 가장 안전하게 배포하고 검증할 수 있는 단계입니다.

2단계 (Contactless Care) - 이 단계부터 로봇은 실제 환경의 물체와 접촉하기 시작합니다. 방 청소, 설거지, 가전 조작처럼 사람과의 직접 접촉 없이 물리적 작업을 수행합니다. 물이나 약을 가져다주거나 창문을 여닫고, 공간을 순찰하는 것도 이 단계에 해당합니다.

3단계 (Semi-contact Care) - 사람의 신체 일부와 접촉하거나 물리적 활동을 간접적으로 보조하는 단계입니다. 휠체어를 밀거나 환자를 부축하고, 이동 동선의 장애물을 치우는 작업이 가능합니다. 안전 마진을 설계하는 난이도가 급격히 높아지는 구간입니다.

4단계 (Full-contact Care) - 로봇이 사람과 직접 접촉하는 최종 단계입니다. 옷 갈아입히기, 마사지, 목욕 보조 등 가장 높은 수준의 신뢰성과 정밀 제어를 요구합니다.

로봇이 도입된 대부분의 산업 현장은 사람과의 직접 신체 접촉이 없는 환경입니다. 반면 의료, 요양 분야는 사람을 직접 케어해야 하는, 로봇에게 가장 까다로운 환경입니다. 제조나 물류처럼 태스크가 명확히 정해진 환경이라면 휴머노이드가 아니라 특정 작업에 최적화된 전용 로봇으로도 충분합니다. 그러나 사람과의 접촉이 잦고 수행해야 할 태스크가 고정되지 않을수록, 사람의 신체 구조와 동작 방식을 그대로 따르는 휴머노이드의 필요성이 높아집니다. 사람을 위해 설계된 공간에서, 사람과 함께, 사람이 하던 일을 하려면 결국 사람의 형태가 가장 유리하기 때문입니다.

이번 엑스포에서 공개된 젠피는 그 여정의 중간 결과물입니다. 젠피는 현재 기본적인 의사소통, 장애물 회피 주행, 주변 환경 인식, 약통을 집어 건네주는 동작 등을 수행할 수 있습니다. 늦지 않은 시점에 실제 요양 시설과 같은 시니어케어 현장에서 단계적으로 도입될 수 있도록 기술을 고도화하고, 또 안정화하는 것이 목표입니다.

전시장에서 흔히 볼 수 있는 춤과 같은 로봇 시연은 대부분 리모컨 조작을 기반으로, 사전 정의된 모션을 재생하는 경우가 많습니다. 물론 젠피도 강남스타일을 추는 영상에서 보실 수 있듯, 이러한 동작 재현이 충분히 가능합니다.


젠피가 강남스타일을 추는 영상

하지만 젠피가 궁극적으로 수행하려고 하는 ‘시니어 케어’를 위한 모션은 이와는 다릅니다. 학습된 모델이 상황을 인식하고 스스로 판단해 행동하기 때문입니다. 이것이 단순한 시연과 젠피가 근본적으로 다른 지점이며, 동시에 엑스포 준비 과정에서 수많은 기술적 도전이 시작된 이유이기도 합니다.


3. 3개월의 개발기 - 네 가지 도전

3. 3개월의 개발기 - 네 가지 도전

3. 3개월의 개발기 - 네 가지 도전

젠피를 엑스포에 선보이기까지의 준비 기간은 약 3개월로, 매우 도전적인 일정이었습니다. 지난 2월 로봇을 처음 인도받은 후 5월 초 전시를 목표로 움직여야 했기 때문입니다. 제논의 피지컬AI랩은 2026년 초에 설립되었기 때문에 휴머노이드 하드웨어 경험이 제한적이었는데, 짧은 시간 내에 극복해야 할 과제도 많았습니다.

이 짧고도 강렬했던 개발 과정을 크게 보행, 내비게이션, 조작, 그리고 통합의 네 가지 파트로 나누어 소개합니다. 복잡한 기술적 깊이보다는, 제한된 시간 속에서 팀이 어떤 방향성을 가지고 문제를 해결해 나갔는지 그 전반적인 궤적을 담았습니다.


3-1. 휴머노이드의 기초 - 보행(Locomotion)

3-1. 휴머노이드의 기초 - 보행(Locomotion)

일반적인 로봇과 달리, 휴머노이드가 아직까지 대중화되지 못한 데에는 보행이라는 근본적인 난관이 있습니다. 모바일 로봇이나 고정형 로봇은 태스크 자체에만 집중하면 되지만, 휴머노이드는 평상시에도 균형을 잡으면서 서 있어야 하고, 태스크를 수행하는 동안에도 넘어지지 않도록 끊임없이 무게 중심을 조정해야 합니다.

보행은 휴머노이드에게 가장 필수적인 태스크이자, 모든 다른 기능의 전제 조건입니다. 팔로 물건을 집으려면 먼저 그 자리까지 걸어가야 하고, 대화를 나누는 동안에도 몸은 안정적으로 서 있어야 합니다. 처음 로봇을 받았을 때 가장 먼저 착수한 것도, 결과적으로 가장 오래 붙잡고 있었던 것도 보행이었습니다.

로봇을 구매하면 기본 이동을 위한 컨트롤러가 동봉됩니다. 저희는 로봇이 물체를 더 잘 집을 수 있도록 기본 손 대신 Inspire Hand 를 장착했는데, 이 손의 무게가 상당해서인지 기본 제공된 보행조차 제대로 작동하지 않았습니다. 설상가상으로 Unitree G1 로봇의 컨트롤러 기반 보행은 내부에 감춰져 있어 RPC 로만 호출할 수 있었고, 학습된 파라미터를 직접 꺼내 파인튜닝하는 것도 불가능했습니다. 결국 저희는 Unitree 에서 제공하는 강화학습 코드를 사용하여 보행을 처음부터 다시 학습하는 방향을 택했습니다.

손 제거 후 보행 영상


학습한 모델을 실제 로봇에 올리면 누구나 한 번쯤 마주하는 장면이 있습니다. 시뮬레이션에서 경험하지 못한 상황에 놓인 로봇의 관절 명령이 발산하기 시작하는 것입니다. 이럴 때는 팔다리가 제멋대로 요동치며 로봇이 제대로 동작을 수행하기 어려운 상황이 생기기도 합니다. 저희도 이런 경험을 몇 차례 겪으면서, 로봇을 다루는 것이 저희가 기존에 수행하던 소프트웨어 중심의 개발과는 전혀 다른 경험임을 깨닫게 되었습니다. Sim2Real의 복잡성을 체감하게 된 순간이기도 합니다.

처음에는 IsaacLab 에서 학습한 모델을 IsaacLab 에서 테스트하고 바로 배포했지만, 이후부터는 MuJoCo 에서 검증하는 Sim2Sim 과정을 거쳤습니다. 학습 환경과 다른 시뮬레이터에서 다양한 Domain Randomization(DR) 을 적용해, 로봇이 낯선 조건에서도 버틸 수 있는지 먼저 확인하는 과정입니다. 그럼에도 처음 학습한 모델들은 실제 로봇에서 초기 자세가 조금이라도 어긋나면 바로 발산했고, 운 좋게 버텨도 한두 걸음을 넘기지 못하고 무너지는 일이 반복됐습니다.

보행 Sim2Real 실패 영상


로봇의 초기 자세에 DR 을 크게 적용하고 Reward 파라미터를 조정하는 등 여러 시도를 반복했지만 실패가 이어졌습니다. 그러다 Unitree 에서 제공하는 보행 알고리즘의 범위를 벗어나, 다른 보행 논문들을 직접 리서치하기 시작했습니다.

그 과정에서 여러 보행 논문이 공통적으로 상하체를 분리하는 설계를 채택하고 있다는 것을 알게 됐습니다. 상체가 어떤 동작을 하든 하체는 오직 균형 유지에만 집중하는 방식입니다. 다만 이 구조에는 트레이드오프가 있습니다. 하체가 중심을 잡기 위해 발을 내딛다가 바로 앞 테이블 같은 물체와 충돌할 수 있고, 태스크 수행 중 상체의 무게 중심이 지나치게 이동하면 하체만으로는 균형을 감당하기 어려워집니다. 또한, 상하체의 컨트롤이 분리되는 만큼 사람 눈에 부자연스러운 모션이 나타날 수 있습니다. 걷는 것과 일하는 것을 완전히 분리하는 것처럼 보이지만, 결국 둘은 서로 영향을 주고받을 수밖에 없습니다.

그럼에도 제논은 상하체 분리를 선택했습니다. 저희는 태스크별로 Policy 를 나누는 모듈 방식을 채택하고 있는데, 상하체를 분리하지 않으면 모든 태스크의 Policy 가 균형 유지까지 함께 학습해야 합니다. 태스크 자체를 학습하는 것만으로도 충분히 어려운 상황에서, 균형까지 동시에 요구하는 것은 학습을 지나치게 복잡하게 만드는 일이었습니다.

제논이 택한 방식은 처음에는 상체를 완전히 고정한 상태에서 보행만 학습하고, 정책이 안정화될수록 상체 관절의 움직임 범위를 점진적으로 넓혀가는 접근입니다. 단순히 상하체를 분리하는 것에서 한 걸음 더 나아가, 하체가 다양한 동작에 점진적으로 적응하도록 유도하는 것이죠. 팔을 뻗어 약통을 집고, 고개를 돌려 환자와 대화하면서도 넘어지지 않아야 하는 젠피에게는 이 접근이 결정적이었습니다.

일반적인 로봇과 달리, 휴머노이드가 아직까지 대중화되지 못한 데에는 보행이라는 근본적인 난관이 있습니다. 모바일 로봇이나 고정형 로봇은 태스크 자체에만 집중하면 되지만, 휴머노이드는 평상시에도 균형을 잡으면서 서 있어야 하고, 태스크를 수행하는 동안에도 넘어지지 않도록 끊임없이 무게 중심을 조정해야 합니다.

보행은 휴머노이드에게 가장 필수적인 태스크이자, 모든 다른 기능의 전제 조건입니다. 팔로 물건을 집으려면 먼저 그 자리까지 걸어가야 하고, 대화를 나누는 동안에도 몸은 안정적으로 서 있어야 합니다. 처음 로봇을 받았을 때 가장 먼저 착수한 것도, 결과적으로 가장 오래 붙잡고 있었던 것도 보행이었습니다.

로봇을 구매하면 기본 이동을 위한 컨트롤러가 동봉됩니다. 저희는 로봇이 물체를 더 잘 집을 수 있도록 기본 손 대신 Inspire Hand 를 장착했는데, 이 손의 무게가 상당해서인지 기본 제공된 보행조차 제대로 작동하지 않았습니다. 설상가상으로 Unitree G1 로봇의 컨트롤러 기반 보행은 내부에 감춰져 있어 RPC 로만 호출할 수 있었고, 학습된 파라미터를 직접 꺼내 파인튜닝하는 것도 불가능했습니다. 결국 저희는 Unitree 에서 제공하는 강화학습 코드를 사용하여 보행을 처음부터 다시 학습하는 방향을 택했습니다.

손 제거 후 보행 영상


학습한 모델을 실제 로봇에 올리면 누구나 한 번쯤 마주하는 장면이 있습니다. 시뮬레이션에서 경험하지 못한 상황에 놓인 로봇의 관절 명령이 발산하기 시작하는 것입니다. 이럴 때는 팔다리가 제멋대로 요동치며 로봇이 제대로 동작을 수행하기 어려운 상황이 생기기도 합니다. 저희도 이런 경험을 몇 차례 겪으면서, 로봇을 다루는 것이 저희가 기존에 수행하던 소프트웨어 중심의 개발과는 전혀 다른 경험임을 깨닫게 되었습니다. Sim2Real의 복잡성을 체감하게 된 순간이기도 합니다.

처음에는 IsaacLab 에서 학습한 모델을 IsaacLab 에서 테스트하고 바로 배포했지만, 이후부터는 MuJoCo 에서 검증하는 Sim2Sim 과정을 거쳤습니다. 학습 환경과 다른 시뮬레이터에서 다양한 Domain Randomization(DR) 을 적용해, 로봇이 낯선 조건에서도 버틸 수 있는지 먼저 확인하는 과정입니다. 그럼에도 처음 학습한 모델들은 실제 로봇에서 초기 자세가 조금이라도 어긋나면 바로 발산했고, 운 좋게 버텨도 한두 걸음을 넘기지 못하고 무너지는 일이 반복됐습니다.

보행 Sim2Real 실패 영상


로봇의 초기 자세에 DR 을 크게 적용하고 Reward 파라미터를 조정하는 등 여러 시도를 반복했지만 실패가 이어졌습니다. 그러다 Unitree 에서 제공하는 보행 알고리즘의 범위를 벗어나, 다른 보행 논문들을 직접 리서치하기 시작했습니다.

그 과정에서 여러 보행 논문이 공통적으로 상하체를 분리하는 설계를 채택하고 있다는 것을 알게 됐습니다. 상체가 어떤 동작을 하든 하체는 오직 균형 유지에만 집중하는 방식입니다. 다만 이 구조에는 트레이드오프가 있습니다. 하체가 중심을 잡기 위해 발을 내딛다가 바로 앞 테이블 같은 물체와 충돌할 수 있고, 태스크 수행 중 상체의 무게 중심이 지나치게 이동하면 하체만으로는 균형을 감당하기 어려워집니다. 또한, 상하체의 컨트롤이 분리되는 만큼 사람 눈에 부자연스러운 모션이 나타날 수 있습니다. 걷는 것과 일하는 것을 완전히 분리하는 것처럼 보이지만, 결국 둘은 서로 영향을 주고받을 수밖에 없습니다.

그럼에도 제논은 상하체 분리를 선택했습니다. 저희는 태스크별로 Policy 를 나누는 모듈 방식을 채택하고 있는데, 상하체를 분리하지 않으면 모든 태스크의 Policy 가 균형 유지까지 함께 학습해야 합니다. 태스크 자체를 학습하는 것만으로도 충분히 어려운 상황에서, 균형까지 동시에 요구하는 것은 학습을 지나치게 복잡하게 만드는 일이었습니다.

제논이 택한 방식은 처음에는 상체를 완전히 고정한 상태에서 보행만 학습하고, 정책이 안정화될수록 상체 관절의 움직임 범위를 점진적으로 넓혀가는 접근입니다. 단순히 상하체를 분리하는 것에서 한 걸음 더 나아가, 하체가 다양한 동작에 점진적으로 적응하도록 유도하는 것이죠. 팔을 뻗어 약통을 집고, 고개를 돌려 환자와 대화하면서도 넘어지지 않아야 하는 젠피에게는 이 접근이 결정적이었습니다.

3-2. 공간을 이해하다 - 네비게이션(Navigation)

3-2. 공간을 이해하다 - 네비게이션(Navigation)

걸을 수 있게 됐다고 해서 원하는 곳으로 갈 수 있는건 아닙니다. 네비게이션은 로봇이 공간을 이해하고, 목적지까지 경로를 계획하며, 도중에 나타나는 장애물을 피해가는 전 과정을 포함합니다.

전시장은 사전에 완벽히 통제할 수 없는 공간입니다. 관람객이 동선을 막아서거나, 미처 예상하지 못한 위치에 물체가 놓이는 일이 수시로 발생합니다. 사전에 맵을 구성해두더라도 실시간으로 변하는 환경에 대응할 수 있어야 했고, 특히 사람이 많은 공간에서 현재 위치를 인식하고 충돌 없이 안전하게 이동하는 것이 기술적으로도, 안전 측면에서도 중요한 요구사항이었습니다.

네비게이션의 시작은 매핑(Mapping)입니다. 로봇 청소기가 주변을 돌며 환경을 저장하듯, 주변 공간을 인식하는 과정이 필요합니다. 매핑은 단순히 주변 맵만 저장하는 방식과, 사물들의 위치를 함께 저장하는 Semantic Mapping 으로 나뉩니다. 매핑이 완료되면 다음 단계는 Localization 입니다. 저장한 맵을 사용해 지금 내가 어느 위치에 있는지를 실시간으로 추론하는 단계로, 내 위치를 정확히 추정할 수 있어야 비로소 장애물 회피가 가능하기에 매우 중요합니다.

VLMaps 을 사용한 Semantic Mapping

제논은 처음 Mapping 과 Localization 알고리즘으로 FAST-LIO 를 시도하였습니다. 이 알고리즘은 LiDAR 와 IMU 를 함께 사용하고 반복적으로 이터레이션을 돌려 현재 위치를 정확하게 추정합니다. 주변에 사람이 있더라도 지속적으로 현재 위치를 수렴시키기 때문에, 동적인 환경에서 훨씬 안정적이라고 판단하였습니다. 가장 많이 쓰이는 알고리즘 중 하나이기도 해서 파이썬으로 구현하고 Jetson 에서 실행했는데, 로봇이 회전 시 맵에 잔상이 남으면서 함께 돌아가는 현상이 있었습니다. 알고리즘을 개선해보려고 했지만 회전 시 같은 문제가 계속 발생해, 결국 이 알고리즘을 포기하고 KISS-ICP 를 사용했습니다. KISS-ICP 는 LiDAR 스캔 정합 기반이라, 주변 환경이 동적일 경우 매핑이나 위치 추정이 어렵습니다. 사람이 끊임없이 움직이는 엑스포 같은 전시장 환경에는 FAST-LIO 보다는 적합하지 않았던 것이죠.

FAST-LIO Mapping 시 잔상

KISS-ICP Mapping 과 Localization

FAST-LIO 를 개발하고 처음 연구실에서 KISS-ICP 로 네비게이션을 테스트할 때는, 타 부서 인원까지 동원해 실제 관람객처럼 주변을 움직이게 하면서 다수가 움직이는 환경에서의 동작을 검증했습니다. 이러한 테스트에서도 로봇은 잘 작동했고, 엑스포장에는 고정된 가벽이 있어서 현장에서도 괜찮을거라 생각했습니다. 하지만 큰 착각이었습니다. 엑스포 첫날 매핑이 되지 않아 사실상 원활한 주행 시연이 어려웠습니다. 결국 첫날은 제자리에서 약통을 집는 시연만 반복 진행하였습니다.

첫날 시연이 끝나고 로봇을 다시 연구실로 들고 돌아와 FAST-LIO 알고리즘을 다시 검토하기 시작했습니다. 왜 회전 시 맵이 제대로 잡히지 않을까를 고민하다가 한 가지 가능성을 떠올렸습니다. 혹시 Python 이 느려서 회전 시 회전각을 제대로 잡지 못하는거 아닐까? 그래서 전체 알고리즘을 다시 C++ 로 다시 구현했습니다.

이 모든 작업을 끝내고, 다음날 엑스포 현장에서 매핑을 진행하였습니다. 결과는 성공적이었습니다. 전날 밤까지만 해도 팀 전체가 안절부절 못하며 속을 태웠는데, 그 긴장이 한순간에 안도로 바뀌던 순간이었습니다.

걸을 수 있게 됐다고 해서 원하는 곳으로 갈 수 있는건 아닙니다. 네비게이션은 로봇이 공간을 이해하고, 목적지까지 경로를 계획하며, 도중에 나타나는 장애물을 피해가는 전 과정을 포함합니다.

전시장은 사전에 완벽히 통제할 수 없는 공간입니다. 관람객이 동선을 막아서거나, 미처 예상하지 못한 위치에 물체가 놓이는 일이 수시로 발생합니다. 사전에 맵을 구성해두더라도 실시간으로 변하는 환경에 대응할 수 있어야 했고, 특히 사람이 많은 공간에서 현재 위치를 인식하고 충돌 없이 안전하게 이동하는 것이 기술적으로도, 안전 측면에서도 중요한 요구사항이었습니다.

네비게이션의 시작은 매핑(Mapping)입니다. 로봇 청소기가 주변을 돌며 환경을 저장하듯, 주변 공간을 인식하는 과정이 필요합니다. 매핑은 단순히 주변 맵만 저장하는 방식과, 사물들의 위치를 함께 저장하는 Semantic Mapping 으로 나뉩니다. 매핑이 완료되면 다음 단계는 Localization 입니다. 저장한 맵을 사용해 지금 내가 어느 위치에 있는지를 실시간으로 추론하는 단계로, 내 위치를 정확히 추정할 수 있어야 비로소 장애물 회피가 가능하기에 매우 중요합니다.

VLMaps 을 사용한 Semantic Mapping

제논은 처음 Mapping 과 Localization 알고리즘으로 FAST-LIO 를 시도하였습니다. 이 알고리즘은 LiDAR 와 IMU 를 함께 사용하고 반복적으로 이터레이션을 돌려 현재 위치를 정확하게 추정합니다. 주변에 사람이 있더라도 지속적으로 현재 위치를 수렴시키기 때문에, 동적인 환경에서 훨씬 안정적이라고 판단하였습니다. 가장 많이 쓰이는 알고리즘 중 하나이기도 해서 파이썬으로 구현하고 Jetson 에서 실행했는데, 로봇이 회전 시 맵에 잔상이 남으면서 함께 돌아가는 현상이 있었습니다. 알고리즘을 개선해보려고 했지만 회전 시 같은 문제가 계속 발생해, 결국 이 알고리즘을 포기하고 KISS-ICP 를 사용했습니다. KISS-ICP 는 LiDAR 스캔 정합 기반이라, 주변 환경이 동적일 경우 매핑이나 위치 추정이 어렵습니다. 사람이 끊임없이 움직이는 엑스포 같은 전시장 환경에는 FAST-LIO 보다는 적합하지 않았던 것이죠.

FAST-LIO Mapping 시 잔상

KISS-ICP Mapping 과 Localization

FAST-LIO 를 개발하고 처음 연구실에서 KISS-ICP 로 네비게이션을 테스트할 때는, 타 부서 인원까지 동원해 실제 관람객처럼 주변을 움직이게 하면서 다수가 움직이는 환경에서의 동작을 검증했습니다. 이러한 테스트에서도 로봇은 잘 작동했고, 엑스포장에는 고정된 가벽이 있어서 현장에서도 괜찮을거라 생각했습니다. 하지만 큰 착각이었습니다. 엑스포 첫날 매핑이 되지 않아 사실상 원활한 주행 시연이 어려웠습니다. 결국 첫날은 제자리에서 약통을 집는 시연만 반복 진행하였습니다.

첫날 시연이 끝나고 로봇을 다시 연구실로 들고 돌아와 FAST-LIO 알고리즘을 다시 검토하기 시작했습니다. 왜 회전 시 맵이 제대로 잡히지 않을까를 고민하다가 한 가지 가능성을 떠올렸습니다. 혹시 Python 이 느려서 회전 시 회전각을 제대로 잡지 못하는거 아닐까? 그래서 전체 알고리즘을 다시 C++ 로 다시 구현했습니다.

이 모든 작업을 끝내고, 다음날 엑스포 현장에서 매핑을 진행하였습니다. 결과는 성공적이었습니다. 전날 밤까지만 해도 팀 전체가 안절부절 못하며 속을 태웠는데, 그 긴장이 한순간에 안도로 바뀌던 순간이었습니다.

3-3. 약통을 환자에게 전달하다 - 조작(Manipulation)

3-3. 약통을 환자에게 전달하다 - 조작(Manipulation)

보행이 “이동”의 문제라면, 약통 집기는 “조작(Manipulation)” 의 문제입니다. 단순해 보이지만 실제로는 그렇지 않습니다. 로봇이 약통을 집으려면 먼저 카메라로 약통의 위치를 인식하고 팔과 손가락의 궤적을 생성한 뒤, 떨어뜨리거나 부수지 않을 만큼 적절한 힘으로 쥐어야 합니다. 이 세 가지가 매끄럽게 이어져야 비로소 “집었다”고 말할 수 있습니다.

약통을 잡는 작업은 처음에 강화학습(RL) 기반으로 접근하였습니다. 강화학습으로 물체를 잡는 기술은 역사가 오래된 만큼 레퍼런스가 많을 것이라 생각했고, 공개된 코드들을 가져와 구현해보려 했죠. 하지만 이는 오산이었습니다. Unitree G1 에 Inspire Hand 를 장착해 Pick and place 를 구현한 레퍼런스는 찾기 어려웠고, Dex3 Hand 를 사용한 레포들은 물리 연산 라이브러리인 pinocchio 의 버전 문제 등으로 이미 IsaacLab 에서는 예제에서 제거되고 Hide 된 상태였습니다.

이런 로직들을 참고해 학습해도, 물체를 잡고 들어 올리는 것은 강화학습으로 다루기는 너무 어려웠습니다. 물체까지 손을 뻗게 하면 손 등을 가져다 대기 일쑤였고, 이를 개선해 손바닥이 근처까지 가도 막상 집으려 하면 손가락 끝만 대면서 보상(Reward)을 빨아먹고 있었습니다. 물체를 잡는 과정들을 여러 Stage 로 나눠서 단계적으로 학습해도, 물체를 쥐고 들어 올리는 마지막 고비는 좀처럼 넘기지 못했습니다. Reward 하나가 추가되면 처음부터 다시 학습해야하고, 학습이 제대로 되지 않으면 파라미터를 바꿔 또 학습하는 과정이 끝없이 반복됐습니다.

강화학습 기반의 Pick 에만 한 달을 넘게 투자하던 중 Physical AI 팀은 고민에 빠졌습니다.

❓: 이 방향이 맞는 걸까? 다른 방법은 없을까?

결국 대안으로 모방학습(Imitation Learning) 을 검토하기 시작했습니다. 강화학습의 Reward 는 사실상 규칙처럼 일일이 정해줘야 하는 느낌이 강했던 만큼, 실제 사람이 하는 행동을 모방해 학습하는 방식을 새 카드로 꺼낸 것이죠. 강화학습은 시뮬레이션 상에서 물체까지 손을 가져가서 잡는 데까지는 성공했지만 끝내 Sim2Real 의 벽을 넘지 못했고, 저희는 모방학습으로 방향을 변경하게 되었습니다.

물론 모방 학습이라고 항상 잘 되는 것은 아니었습니다. 실험실의 고정된 환경에서는 잘 작동하던 것이 조명이 달라지거나 약통의 위치가 조금만 틀어져도 실패하는 경우가 잦았습니다. 전시 환경은 조명과 배경이 매번 바뀌는 데다, 보행하다 멈출 때 다리 각도에 따라 로봇의 높이가 달라져 물체를 제대로 잡지 못하는 일까지 겹쳤습니다. 결국 얼마나 다양한 조건에서도 안정적으로 동작하게 만드느냐가 핵심 과제였습니다. 제논은 인식 단계에서 다양한 조명과 배경 조건을 학습에 반영하고, 약통 위치의 변동을 폭넓게 가정해 팔의 궤적이 한쪽 조건에만 과적합되지 않도록 만드는 데 집중했습니다. 그리고 정밀한 손가락 제어는, 5개 손가락에 촉각 센서가 탑재된 Inspire Hand 가 든든하게 받쳐줬습니다.

보행이 “이동”의 문제라면, 약통 집기는 “조작(Manipulation)” 의 문제입니다. 단순해 보이지만 실제로는 그렇지 않습니다. 로봇이 약통을 집으려면 먼저 카메라로 약통의 위치를 인식하고 팔과 손가락의 궤적을 생성한 뒤, 떨어뜨리거나 부수지 않을 만큼 적절한 힘으로 쥐어야 합니다. 이 세 가지가 매끄럽게 이어져야 비로소 “집었다”고 말할 수 있습니다.

약통을 잡는 작업은 처음에 강화학습(RL) 기반으로 접근하였습니다. 강화학습으로 물체를 잡는 기술은 역사가 오래된 만큼 레퍼런스가 많을 것이라 생각했고, 공개된 코드들을 가져와 구현해보려 했죠. 하지만 이는 오산이었습니다. Unitree G1 에 Inspire Hand 를 장착해 Pick and place 를 구현한 레퍼런스는 찾기 어려웠고, Dex3 Hand 를 사용한 레포들은 물리 연산 라이브러리인 pinocchio 의 버전 문제 등으로 이미 IsaacLab 에서는 예제에서 제거되고 Hide 된 상태였습니다.

이런 로직들을 참고해 학습해도, 물체를 잡고 들어 올리는 것은 강화학습으로 다루기는 너무 어려웠습니다. 물체까지 손을 뻗게 하면 손 등을 가져다 대기 일쑤였고, 이를 개선해 손바닥이 근처까지 가도 막상 집으려 하면 손가락 끝만 대면서 보상(Reward)을 빨아먹고 있었습니다. 물체를 잡는 과정들을 여러 Stage 로 나눠서 단계적으로 학습해도, 물체를 쥐고 들어 올리는 마지막 고비는 좀처럼 넘기지 못했습니다. Reward 하나가 추가되면 처음부터 다시 학습해야하고, 학습이 제대로 되지 않으면 파라미터를 바꿔 또 학습하는 과정이 끝없이 반복됐습니다.

강화학습 기반의 Pick 에만 한 달을 넘게 투자하던 중 Physical AI 팀은 고민에 빠졌습니다.

❓: 이 방향이 맞는 걸까? 다른 방법은 없을까?

결국 대안으로 모방학습(Imitation Learning) 을 검토하기 시작했습니다. 강화학습의 Reward 는 사실상 규칙처럼 일일이 정해줘야 하는 느낌이 강했던 만큼, 실제 사람이 하는 행동을 모방해 학습하는 방식을 새 카드로 꺼낸 것이죠. 강화학습은 시뮬레이션 상에서 물체까지 손을 가져가서 잡는 데까지는 성공했지만 끝내 Sim2Real 의 벽을 넘지 못했고, 저희는 모방학습으로 방향을 변경하게 되었습니다.

물론 모방 학습이라고 항상 잘 되는 것은 아니었습니다. 실험실의 고정된 환경에서는 잘 작동하던 것이 조명이 달라지거나 약통의 위치가 조금만 틀어져도 실패하는 경우가 잦았습니다. 전시 환경은 조명과 배경이 매번 바뀌는 데다, 보행하다 멈출 때 다리 각도에 따라 로봇의 높이가 달라져 물체를 제대로 잡지 못하는 일까지 겹쳤습니다. 결국 얼마나 다양한 조건에서도 안정적으로 동작하게 만드느냐가 핵심 과제였습니다. 제논은 인식 단계에서 다양한 조명과 배경 조건을 학습에 반영하고, 약통 위치의 변동을 폭넓게 가정해 팔의 궤적이 한쪽 조건에만 과적합되지 않도록 만드는 데 집중했습니다. 그리고 정밀한 손가락 제어는, 5개 손가락에 촉각 센서가 탑재된 Inspire Hand 가 든든하게 받쳐줬습니다.

3-4. 따로 도는 것과 함께 도는 것 - 통합(Integration)

3-4. 따로 도는 것과 함께 도는 것 - 통합(Integration)

보행, 조작, 네비게이션이 각각 따로 동작하는 것과 하나의 로봇에서 동시에 맞물려 돌아가는 것은 완전히 다른 문제입니다. 각 모듈이 독립적으로는 잘 작동하다가도, 함께 돌리면 타이밍이 어긋나거나 하나의 연산이 다른 모듈의 응답 속도를 잡아먹어 비틀거리면서 보행하는 경우가 생겼습니다. 그뿐만 아니라 학습된 모델들을 서로 전환할 때는 초기 자세와 함께 모터의 Kp, Kd 와 같은 제어 파라미터들을 맞물려 고려해야 합니다. 여러 제어 시스템이 동시에 돌아가다 충돌이 나서 진동하는 일은 흔했습니다.

통합 단계에서는 단순한 버그 수정을 넘어 각 모듈 간의 우선순위와 리소스 배분을 다시 설계하는 작업이 필요했습니다. 젠피가 대화를 하면서 걷고, 걸으면서 주변을 인식하고, 목적지에 도착하면 물건을 집는 일련의 흐름이 자연스럽게 이어지려면, 각 컴포넌트가 연산량을 최소로 하면서 서로를 방해하지 않고 협력해야 했습니다.

로봇의 상태 관리에는 흔히 FSM(Finite State Machine)을 많이 사용합니다. 휴머노이드처럼 여러 능력을 동시에 가진 로봇은 매 순간 “지금 무엇을 하는 상태인지” 가 명확해야 합니다. 보행 중인지, 멈춰 서서 물건을 집는 중인지, 대화에 응답하는 중인지에 따라 활성화되어야 할 모델과 제어 파라미터가 전부 달라지기 때문입니다. FSM 은 로봇이 가질 수 있는 상태들(예시로 Idle, Move, Stop, Pick 등)과, 어떤 조건에서 한 상태에서 다음 상태로 넘어갈 수 있는지를 명시적으로 정의해두는 구조입니다.

FSM 과 같은 모듈이 없으면 어떤 일이 벌어질까요? 여러 조작 정책이 실행되면 각각 개별적인 관절 명령을 내려 서로 부딪히고, 앞서 말한 진동이 그대로 재현됩니다. 이전 태스크를 수행하는 도중에 사람이 새 명령을 내리면, 로봇이 물건을 집다 말고 엉뚱한 목적지로 움직여버릴 수도 있습니다. 반대로 FSM 이 상태를 한번에 하나만 활성화하도록 보장하면, 각 모듈은 자기 차례에만 로봇을 제어합니다. 상태가 전환되는 순간에는 이전 상태의 마지막 자세를 다음 상태의 초기 자세로 매끄럽게 인계하고, 그에 맞춰 제어 파라미터를 함께 바꿔주면서 전환 충격을 줄입니다. 젠피가 걷다가 자연스럽게 멈춰 서서 약통을 집고 다시 환자에게 건네는 일련의 흐름은, 결국 이 상태 전환들이 빈틈없이 이어진 결과인 셈입니다.

4. 물리적 한계의 순간, 협업이 만들어낸 돌파구

4. 물리적 한계의 순간, 협업이 만들어낸 돌파구

지난 3개월 동안 저희를 시험에 들게 한 것은 알고리즘뿐만이 아니었습니다. 하드웨어의 물리적인 변수 역시 만만치 않은 도전 과제였습니다. 예기치 못한 고장이 나거나 일부 부품에 문제가 생겼을 때는 대체 부품을 확보하거나 기존 메커니즘을 유연하게 변경해 시연의 완성도를 확보하는 등 수많은 시행착오를 거쳐야 했습니다.

경험해 보지 못한 이슈를 끊임 없이 극복하고, 단 3개월 만에 네 가지 복합 기능을 한 대의 로봇에 완벽히 통합할 수 있었던 원동력은 결국 팀워크에 있었습니다. 매 순간 마주한 고비마다 각자의 전문성을 발휘하고 긴밀하게 협업한 끝에, 저희 팀은 단순한 기술 구현을 넘어 '함께 문제를 해결하는 방식'을 배우며 한 단계 더 성장할 수 있었습니다.

5. 피지컬 AI의 여정, 현실 공간을 채울 다음 혁신

5. 피지컬 AI의 여정, 현실 공간을 채울 다음 혁신

이번 엑스포에서 선보인 약통 집기와 시니어 돌봄 대화는 제논 피지컬 AI 여정의 첫 줄에 불과합니다. 젠피는 지금도 보행의 안정성을 끌어올리고 조작의 정밀도를 높이며, 실제 시니어케어가 필요한 환경의 복잡성을 고려하여 전체적인 통합 안정성을 다듬어 나가고 있습니다.

특히 각 기능이 모듈화되어 있는 현재의 방식에서 한 걸음 더 나아가, 이들을 하나의 제어 정책으로 통합하는 방향을 준비하고 있습니다. 이를 통해 더 자연스러운 모션을 생성하고, 기존에 따로 학습되지 않은 다양한 기능까지 하나의 제어 정책으로 안정적으로 수행할 수 있게 만드는 것이 목표입니다.

나아가 사람의 신체와 간접적으로 맞닿는 Semi-contact Care 단계로의 진입도 준비하고 있습니다. 바닥에 흩어진 물건들을 정리하고, 빨래통을 수거하여 세탁기 앞으로 옮기고, 음료나 물을 사람에게 건네는 기능처럼요. 화면 밖으로 나온 AI가 현실 공간에서 사람을 돕기까지, 그 사이를 메우는 수많은 엔지니어링의 순간들을 앞으로도 이 시리즈에서 주기적으로 공유하겠습니다.

©2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|

|

©2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|

|

©2026 GenON

13F, 2621 Nambusunhwan-ro, Gangnam-gu, Seoul, 06267, Republic of Korea

|

|

|