PlaiPin/rosclaw

ROS2 meets OpenClaw 💗

554
GitHub 스타
64
포크
TypeScript
언어
Apache-2.0
라이선스
2026.03.03
최근 푸시
2026.03.23
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
ROS2 로봇을 자연어로 제어하려는 개발자나 연구자에게 적합합니다. 특히 메시징 앱을 통한 원격 제어가 필요한 프로젝트에 유용하며, AI 에이전트 통합을 고려 중이라면 참고할 가치가 있습니다.

강점

  • 메시징 앱을 통해 ROS2 로봇을 자연어로 제어할 수 있어 사용자 접근성이 높습니다.
  • OpenClaw와 ROS2를 연결하는 플러그인 아키텍처로 확장성이 뛰어납니다.
  • 다양한 ROS2 도구(토픽 발행, 서비스 호출, 액션 목표 등)를 AI 에이전트가 활용할 수 있습니다.

약점

  • 프로젝트가 대규모 재구성 중이므로 현재 상태가 불안정할 수 있습니다.
  • Phase 2/3 기능(액션 피드백, 대시보드)이 아직 완전히 구현되지 않았습니다.
  • 의존성이 많아(Node.js, pnpm, Docker, ROS2) 초기 설정이 복잡할 수 있습니다.

주의사항

  • README에 명시된 대로 프로젝트가 마이그레이션 중이므로 코드가 변경될 수 있습니다.
  • 실제 로봇 사용 시 안전을 위해 `/estop` 명령어를 숙지해야 합니다.
  • OpenClaw 인스턴스 설정이 필요하며, WebSocket 주소를 올바르게 구성해야 합니다.

시작 가이드

  • 프로젝트의 최신 상태를 확인하기 위해 저장소를 주시하거나 X 계정을 팔로우하세요.
  • Docker Compose를 사용하여 데모 스택을 실행해보고 기본 동작을 테스트하세요.
  • OpenClaw 플러그인을 구성하고 자신의 ROS2 로봇에 연결해보세요.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

RosClaw

[!IMPORTANT]

이 프로젝트는 대규모 재구성 및 별도 저장소로의 마이그레이션을 진행 중입니다. 업데이트를 기다리거나 X @irvinxyz에서 연락주세요.

AI 에이전트를 통해 메시징 앱으로 ROS2 로봇을 자연어로 제어합니다.

RosClaw는 OpenClawROS2(로봇 운영 체제)에 지능형 플러그인 계층을 통해 연결합니다. Telegram, WhatsApp, Discord 또는 Slack으로 메시지를 보내면 로봇이 움직입니다. 자신의 로봇에 연결하거나 포털에 등록된 전 세계 로봇을 "임대"할 수 있습니다. 각 로봇은 자신의 기능 프로필을 등록합니다.

귀여운 데스크 로봇이든 휴머노이드 로봇이든, OpenClaw 확장을 설치하고 ROS2 패키지를 실행하기만 하면 됩니다.

<p align="center"> <a href="https://x.com/livinoffwater/status/2017172436119331133"> <img src="assets/thumbnail-1.jpg" alt="RosClaw 데모 비디오" width="380" /> </a> &nbsp;&nbsp; <a href=""> <img src="assets/thumbnail-2.jpg" alt="RosClaw 데모" width="380" /> </a> <br /> <em>클릭하여 데모 시청</em> </p>

작동 방식

사용자 (WhatsApp/Telegram/Discord/Slack)
        |
        v
OpenClaw 게이트웨이 (AI 에이전트 + 도구 + 메모리)
        |
        v  RosClaw 플러그인
rosbridge_server (WebSocket)
        |
        v  ROS2 DDS
로봇: Nav2, MoveIt2, 카메라, 센서
  1. 사용자가 메시징 앱을 통해 자연어 메시지를 보냅니다.
  2. OpenClaw의 AI 에이전트가 메시지를 수신하고 RosClaw 플러그인이 등록한 ROS2 도구를 사용합니다.
  3. 에이전트가 의도를 ROS2 작업(토픽 발행, 서비스 호출, 액션 목표)으로 변환합니다.
  4. 로봇이 행동하고, 에이전트가 피드백을 채팅으로 스트리밍합니다.

프로젝트 구조

rosclaw/
├── packages/
│   └── rosbridge-client/         # @rosclaw/rosbridge-client — TypeScript rosbridge WebSocket 클라이언트
├── extensions/
│   ├── openclaw-plugin/          # @rosclaw/openclaw-plugin — 핵심 OpenClaw 확장
│   └── openclaw-canvas/          # @rosclaw/openclaw-canvas — 실시간 대시보드 (3단계)
├── ros2_ws/src/
│   ├── rosclaw_discovery/        # ROS2 기능 자동 발견 노드
│   └── rosclaw_msgs/             # 사용자 정의 ROS2 메시지/서비스 정의
├── docker/                       # Docker Compose 스택
└── examples/                     # 데모 프로젝트

빠른 시작

사전 요구 사항

  • Node.js 20+
  • pnpm 9+
  • Docker (시뮬레이션용)

설치 및 빌드

pnpm install
pnpm build

데모 스택 실행

cd docker
docker compose up

이 명령은 ROS2 + rosbridge + Gazebo를 시작합니다. 그런 다음 OpenClaw 인스턴스를 구성하여 ws://localhost:9090으로 RosClaw 플러그인을 사용하도록 설정합니다.

사용해보기

  • "Move forward 1 meter"/cmd_vel에 속도 발행
  • "Navigate to the kitchen" — Nav2 목표 전송
  • "What do you see?" — 카메라 프레임 캡처
  • "Check the battery"/battery_state 읽기
  • /estop — 긴급 정지 (AI 우회)

로봇에 메시지를 보내보세요:

패키지

패키지 설명
@rosclaw/rosbridge-client rosbridge WebSocket 프로토콜용 독립형 TypeScript 클라이언트
@rosclaw/openclaw-plugin OpenClaw 확장: ROS2 제어를 위한 도구, 훅, 스킬, 명령어
@rosclaw/openclaw-canvas 실시간 로봇 대시보드 (3단계)
rosclawdiscovery 기능 자동 발견을 위한 ROS2 Python 노드
rosclawmsgs 사용자 정의 ROS2 메시지/서비스 정의

에이전트 도구

AI 에이전트는 다음 ROS2 도구에 접근할 수 있습니다:

도구 설명
ros2_publish 모든 ROS2 토픽에 메시지 발행
ros2subscribeonce 토픽에서 최신 메시지 읽기
ros2servicecall ROS2 서비스 호출
ros2actiongoal 피드백과 함께 액션 목표 전송 (2단계)
ros2paramget/set ROS2 노드 파라미터 가져오기/설정
ros2listtopics 사용 가능한 토픽 발견
ros2camerasnapshot 카메라 프레임 캡처

개발

pnpm install          # 의존성 설치
pnpm build            # 모든 패키지 빌드
pnpm typecheck        # 타입 검사 (출력 없음)
pnpm clean            # 빌드 아티팩트 제거

라이선스

Apache-2.0

원본 저장소: PlaiPin/rosclaw

라이선스: Apache-2.0

게재 제외를 원하시면 삭제 요청을 보내주세요.