Goose MQTT Java Docker Makeblock 로버 제어 가이드
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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도로 변경
  • spinblink 명령어 추가
  • 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 파일에 정의하여 자연어 대화 확장 가능