Goose가 운전 면허를 받다
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 중급~고급 개발자 (Docker, MQTT, Java 기반 시스템 구축 경험이 필요)
- IoT 및 임베디드 시스템 개발자 (로봇 제어 및 MQTT 통신 이해 필요)
핵심 요약
- Goose는 MCP 서버와 MQTT를 통해 Makeblock mBot2 로버를 자연어로 제어
mosquitto_sub
,mosquitto_pub
명령어로 MQTT 토픽 테스트mbotBeep
,mbotExplore
등 MCP API 활용 가능- Java 기반 MCP 서버 컴파일 및 환경 설정
mvn clean package -DskipTests
로 JAR 파일 생성export MQTT_SERVER_URI=tcp://localhost:1883
등 환경 변수 설정- 로버 행동 커스터마이징
SPINLEFT
,BLINKRED
등 새로운 명령어 추가- 초음파 센서 방향 코드 역전으로 "눈" 위치 조정
섹션별 세부 요약
1. 개발 환경 설정
- Docker Compose로 MQTT 서버 구축
version: '3.8'
기반 mosquitto 이미지 사용./mosquitto/data
,./mosquitto/log
볼륨 마운트- MQTT 테스트 명령어 실행
mosquitto_sub -h localhost -p 1883 -t MBOT/TOPIC -v
mosquitto_pub -h localhost -p 1883 -t MBOT/TOPIC -m "BEEP"
2. Java MCP 서버 구동
- Maven을 이용한 JAR 파일 생성
mvn clean package -DskipTests
명령어 사용- 환경 변수 설정:
MQTT_SERVER_URI
,MQTT_USERNAME
,MQTT_PASSWORD
- MCP Inspector로 서버 테스트
npx @modelcontextprotocol/inspector
명령어 실행localhost:6274
포트에서 웹 인터페이스 접근
3. 로버 행동 커스터마이징
- Python 코드 수정
turn
각도 90도 → 45도로 변경spin
및blink
명령어 추가- Java MCP 서버에 새로운 명령어 통합
SPINLEFT
,BLINKRED
등 API 호출 추가- 초음파 센서 방향 역전
deemkeen
기존 코드의 방향 로직 반전
4. "Evil AI" 기능 추가
.goosehints
파일에 커스텀 명령어 정의"The same thing we do every night, Ian. TRY TO TAKE OVER THE WORLD!!!!"
응답blink
명령어로 로버의 LED 색상 변경
결론
- MCP + MQTT 기반 시스템 구축 시 Docker Compose와 환경 변수 설정 필수
- 로봇 제어 확장성 확보를 위해 Java MCP 서버의 API 확장 및 센서 로직 수정 필요
- 커스텀 명령어는
.goosehints
파일에 정의하여 자연어 대화 확장 가능