Gemma4:e4b 기반 헥사포드 에이전트
Source: Dev.to
이 프로젝트는 Gemma 4 챌린지 Build With Gemma 4에 제출된 작품입니다.
AI가 구동하는 6족 보행 로봇을 제작했으며, 자율 주행과 동적 보행 패턴 조정을 구현했습니다. 이 프로젝트는 18개의 서보 모터를 조정해 울퉁불퉁한 지형에서도 안정성을 유지하도록 하는 복잡성을 해결했으며, 로봇이 하드코딩된 패턴이 아니라 센서 피드백을 기반으로 움직임을 ‘추론’할 수 있게 합니다.
Main Repository: bradwilson331/iron-hermes
TCP Control Module: hexapod_tcp.rs
Video Handling Module: hexapod_video.rs
Server Code (Unmodified)
Hardware Server: Freenove Big Hexapod Robot Kit for Raspberry Pi
How I Used Gemma 4
gemma4:e4b 모델을 사용했습니다. e4b 모델은 내 Mac Mini에 로컬로 탑재할 수 있을 정도로 가볍지만, 고수준 명령(예: “빨간 물체로 이동”)을 구체적인 좌표 기반 보행 조정 및 파라미터 생성으로 변환하는 데 필요한 정교한 공간 추론 및 논리 정확성을 제공합니다.
hexapod 서버는 두 개의 전용 포트를 통해 동작합니다:
- Port 5000: 명령 제어 (TCP)
- Port 8000: 비디오 전송
Trigger: 사용자가 로봇에게 앞으로 이동하라 명령하고, 근접한 물체를 감지하면 멈추라는 지시를 내립니다.
Decision: 대형 언어 모델(LLM)이 안전하고 이동을 시작해도 된다고 판단합니다.
Tool Called: hexapod_tcp.rs
Execution: 에이전트는 로봇의 온보드 하드웨어가 요구하는 정확한 문자열 프로토콜(예: CMD_MOVE#FORWARD#SPEED50)을 사용해 TCP 도구를 호출합니다. 로봇이 실제로 걸어가기 시작합니다.
LLM은 연속적인 의식 흐름을 갖고 있지 않기 때문에, 에이전트는 로봇이 움직이는 동안 정기적으로 환경을 폴링합니다. 이를 위해 다음과 같은 센서 도구들을 반복 실행합니다:
- Imaging via
hexapod_video.rs: 에이전트는 이 도구를 실행해 온보드 카메라에서 최신 프레임을 캡처합니다(ENV_LOCK으로 보호됨). 모델은 이미지 매트릭스를 분석해 벽이나 낭떠러지와 같은 시각적 장애물이 있는지 판단합니다. - Sonar via
hexapod_tcp.rs: 정확한 실시간 거리 데이터를 얻기 위해 에이전트는 열린 TCP 소켓을 통해 텔레메트리 요청을 전송합니다(예:GET_SONAR_DIST). 도구는 하드웨어가 반환한 페이로드를 기다리고, 정수 거리 데이터(예:15cm)를 받아 LLM 컨텍스트 창에 문자열 형태로 전달해 이후 행동 평가에 활용합니다.