Skip to content

PlaiPin/rosclaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RosClaw

Important

This project is undergoing a major re-architecture and migration to separate repos. Check back soon for updates, or reach out on X @irvinxyz to follow along.

Natural language control of ROS2 robots through messaging apps, powered by AI agents.

RosClaw connects OpenClaw to ROS2 (the Robot Operating System) through an intelligent plugin layer. Send a message on Telegram, WhatsApp, Discord, or Slack β€” the robot moves. Connect to your own robot or "lease" any robot registered into our portal globally. Each robot registers their own profile with capabilitie.

Whethere it's a cute desk robot or a humanoid robot, all you have to do is install our OpenClaw extension and run our ROS2 packakge.

RosClaw Demo Video Β Β  RosClaw Demo
Click to watch the demos

How It Works

User (WhatsApp/Telegram/Discord/Slack)
        |
        v
OpenClaw Gateway (AI Agent + Tools + Memory)
        |
        v  RosClaw Plugin
rosbridge_server (WebSocket)
        |
        v  ROS2 DDS
Robots: Nav2, MoveIt2, cameras, sensors
  1. A user sends a natural language message through any messaging app
  2. OpenClaw's AI agent receives the message and uses ROS2 tools registered by the RosClaw plugin
  3. The agent translates intent into ROS2 operations (topic publish, service call, action goal)
  4. The robot acts, and the agent streams feedback back to the chat

Project Structure

rosclaw/
β”œβ”€β”€ packages/
β”‚   └── rosbridge-client/         # @rosclaw/rosbridge-client β€” TypeScript rosbridge WebSocket client
β”œβ”€β”€ extensions/
β”‚   β”œβ”€β”€ openclaw-plugin/          # @rosclaw/openclaw-plugin β€” Core OpenClaw extension
β”‚   └── openclaw-canvas/          # @rosclaw/openclaw-canvas β€” Real-time dashboard (Phase 3)
β”œβ”€β”€ ros2_ws/src/
β”‚   β”œβ”€β”€ rosclaw_discovery/        # ROS2 capability auto-discovery node
β”‚   └── rosclaw_msgs/             # Custom ROS2 message/service definitions
β”œβ”€β”€ docker/                       # Docker Compose stack
└── examples/                     # Demo projects

Quick Start

Prerequisites

  • Node.js 20+
  • pnpm 9+
  • Docker (for simulation)

Install & Build

pnpm install
pnpm build

Run the Demo Stack

cd docker
docker compose up

This starts ROS2 + rosbridge + Gazebo. Then configure your OpenClaw instance to use the RosClaw plugin with ws://localhost:9090.

Try It

Send a message to your robot:

  • "Move forward 1 meter" β€” publishes velocity to /cmd_vel
  • "Navigate to the kitchen" β€” sends a Nav2 goal
  • "What do you see?" β€” captures a camera frame
  • "Check the battery" β€” reads /battery_state
  • /estop β€” emergency stop (bypasses AI)

Packages

Package Description
@rosclaw/rosbridge-client Standalone TypeScript client for the rosbridge WebSocket protocol
@rosclaw/openclaw-plugin OpenClaw extension: tools, hooks, skills, commands for ROS2 control
@rosclaw/openclaw-canvas Real-time robot dashboard (Phase 3)
rosclaw_discovery ROS2 Python node for capability auto-discovery
rosclaw_msgs Custom ROS2 message/service definitions

Agent Tools

The AI agent has access to these ROS2 tools:

Tool Description
ros2_publish Publish messages to any ROS2 topic
ros2_subscribe_once Read the latest message from a topic
ros2_service_call Call a ROS2 service
ros2_action_goal Send action goals with feedback (Phase 2)
ros2_param_get/set Get/set ROS2 node parameters
ros2_list_topics Discover available topics
ros2_camera_snapshot Capture a camera frame

Development

pnpm install          # Install dependencies
pnpm build            # Build all packages
pnpm typecheck        # Type-check without emitting
pnpm clean            # Remove build artifacts

License

Apache-2.0

About

ROS2 meets OpenClaw πŸ’—

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors