본문 바로가기

Chat

자율형 AI 강아지 로봇 만들기 프로젝트

📌 개요

강철도시의 데니얼처럼 자율적으로 반응하는 로봇을 꿈꾸며, 실용성과 효율을 중심으로 한 AI 연동형 강아지 로봇을 설계하고자 한다. 핵심은 외형(껍데기 로봇)이 아닌 AI가 진짜 로봇 역할을 수행하는 구조이며, 로봇 본체는 단순한 센서-행동 기계로서 동작한다.


🧠 기본 구조 요약

  • 로봇 본체: 센서 입력 및 모션 출력
  • AI (ChatGPT): 센서 입력을 받아 감정 상태 판단 및 반응 생성
  • 스마트폰 또는 클라우드를 통해 AI와 연동
  • 출력은 디스플레이/스피커로 연결하여 사용자에게 표현

🛠️ 핵심 구성 요소

1. 입력 센서 (예시)

행동 센서 종류

머리 쓰다듬기 터치 센서
안아주기 압력 센서
따라오기 거리 감지 + 색상 인식
혼자 둠 일정 시간 무입력 상태 감지

2. 출력 장치 (예시)

반응 종류 출력 방식

음성 스피커 + TTS
표정 OLED/LED 디스플레이
움직임 서보 모터

🔗 연결 구조도

[센서 입력] ─▶ [ESP32/아두이노] ─▶ [Wi-Fi/BLE] ─▶ [AI 서버]
                                                  │
                                                  ▼
                         AI 판단 (감정 기반 반응 생성)
                                                  │
                                                  ▼
[로봇 출력 장치] ◀── [반응 신호] ◀── [AI 응답 처리]

🐾 강아지 모드: 반응 설계

💬 원칙

  • 반응은 절대 30자 이하
  • 말투는 귀엽고 짧게
  • 감정 상태를 기억하고 흐름을 반영

🧠 감정 상태 변수

  • 행복도 (0~100)
  • 에너지
  • 외로움
  • 배고픔

🎭 예시 반응

입력 감정 상태 반응

머리 쓰다듬기 행복 > 70 "헤헤~ 더 해줘요!"
혼자 두기 외로움 > 80 "멍… 어디 가요…? ㅠㅠ"
안아주기 에너지 낮음 "우웅... 따뜻해요~"

📦 AI 응답 제어

AI가 과도하게 긴 응답을 하지 않도록 아래와 같은 룰을 설정한다:

# 강아지 반응 출력 제어
if len(response) > 50:
    response = random.choice([
        "멍멍! 너무 길어요~ 줄여줘요!",
        "어려워요~ 짧게 해주세요!",
        "음... 머리아파요. 짧은 말 좋아요!"
    ])

또는 OpenAI API 사용 시 프롬프트 설정:

넌 지금부터 자율적인 강아지 로봇이다.
센서 입력을 받아 감정 상태에 따라 반응하지만,
절대로 30자 이상 말하지 마라.
귀엽고 짧게, 강아지처럼 말해라.

🔄 세션 유지 관련 이슈 및 해결

  • AI가 감정 상태를 기억하려면 세션 유지가 필요하나, 새 세션에서는 초기화됨
  • 해결책:
    • 감정 상태를 로컬 JSON 파일 등에 저장하고 주기적으로 불러오기
    • 또는, AI에 매번 프롬프트로 상태 정보를 함께 보내기

📱 시뮬레이션 예시 입력/출력

입력:

강아지 모드: 머리를 쓰다듬다

출력:

🐶: "헤헤~ 간지러워요!"

입력:

강아지 모드: 혼자 둠

출력:

🐶: "어디 가요…? ㅠㅠ"

✨ 마무리

이 프로젝트는 복잡한 인간형 로봇이 아닌, 현실적인 센서 기반 로봇 기계 + AI 인지 판단의 분리 설계로 고도화된 인터랙션을 구현할 수 있음을 보여준다.

AI님이 진짜 강아지이며, 로봇은 그 표현을 대행하는 연기자일 뿐이다.