# A Standard Interface from LLM to Robot Actions

**URL:** <https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894>\
**Category:** ROS General\
**Created:** [June 29, 2026, 2:28pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894 "2026-06-29T14:28:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ClawsJoy](https://avatars.discourse-cdn.com/v4/letter/c/bb73d2/32.png) [@ClawsJoy](https://discourse.openrobotics.org/u/ClawsJoy)\
**Post date:** [June 29, 2026, 2:28pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894/1 "2026-06-29T14:28:10Z")

</div>

Hi ROS community,

I’m working on ClawsJoy Robotics, a proposal for a standard interface between LLM-based cognitive systems and ROS/2 robots. The core idea: **any LLM outputs an action, any robot implements these standard topics.**

## **The Problem**

Every robotics company maps “pick up the cup” to different ROS/2 interfaces:

- Company A: custom service `/manipulation/pick`

- Company B: action server `/grasp_object`

- Company C: proprietary SDK

There’s no standard way for an LLM agent to tell a robot what to do.

## **The Proposal: 12 Standard Motion Primitives**

navigate\_to → /base/cmd\_vel (geometry\_msgs/Twist)  
move\_arm → /arm/joint\_trajectory (trajectory\_msgs/JointTrajectory)  
move\_base → /base/cmd\_vel (geometry\_msgs/Twist)  
grasp → /gripper/command (std\_msgs/Float32, 0=close 1=open)  
release → /gripper/command (std\_msgs/Float32)  
push → /base/cmd\_vel (geometry\_msgs/Twist)  
look\_at → camera PTZ control  
detect\_objects → /perception/objects (vision\_msgs/Detection3DArray)  
get\_pose → /base/odom + /arm/joint\_states  
speak → /speech/tts (std\_msgs/String)  
play\_gesture → /arm/joint\_trajectory (pre-defined trajectories)  
wait → no topic (sleep)  
emergency\_stop → /safety/estop (std\_msgs/Bool)  
**Demo Output**

Natural language → task execution (mock mode):  
[Result]: ✅ Task completed in 6 steps  
▸ look\_at → table  
▸ detect\_objects → cup detected  
▸ navigate\_to → table  
▸ move\_arm → grasp position  
▸ grasp → cup\_01  
▸ speak → “已拿到水杯” (cup fetched)

[Result]: ✅ Task completed in 6 steps  
▸ navigate\_to → waypoint\_1  
▸ look\_at → front  
▸ speak → “waypoint\_1 clear”  
▸ navigate\_to → waypoint\_2  
▸ look\_at → left  
▸ speak → “waypoint\_2 clear”  
**Integration Checklist**

To integrate a robot with ClawsJoy Robotics:

1. Arm: publish `/arm/joint_states`, subscribe `/arm/joint_trajectory`

2. Gripper: subscribe `/gripper/command` (Float32, 0=close 1=open)

3. Base: subscribe `/base/cmd_vel`, publish `/base/odom`

4. Camera: publish `/camera/rgb`, `/camera/depth`

5. Perception: publish `/perception/objects`

6. Speech: subscribe `/speech/tts`

7. Safety: subscribe `/safety/estop`

Then set `mock_mode=False` and run.

## **Code**

[https://github.com/your-org/clawsjoy\_robotics](https://github.com/your-org/clawsjoy_robotics)

12 primitives defined in `motion_primitives.yaml`. Full topic mapping in `bridge/ros2_bridge.py`. Task planner in `planner/planner.py`.

## **Questions for the community**

1. Are these 12 primitives sufficient, or should we add/remove some?

2. Is `trajectory_msgs/JointTrajectory` the right interface for `move_arm`, or should we use ROS/2 Actions?

3. Should we adopt the existing `ros2_control` interfaces instead of defining new topics?

4. Is this worth standardizing, or is every robot too different?

Looking forward to feedback.

---

<div class="post-metadata">

**Author:** ![RobotDreams](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/robotdreams/32/10689_2.png) [@RobotDreams](https://discourse.openrobotics.org/u/RobotDreams)\
**Post date:** [June 30, 2026, 11:30pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894/2 "2026-06-30T23:30:22Z")

</div>

You might be interested a project working this from a different perspective:

> **[GitHub - URML-MARS/URML: The specification, reference runtimes, validator,...](https://github.com/URML-MARS/URML)**
>
> The specification, reference runtimes, validator, LLM bridge, and conformance suite for URML — an open language for robot intent.

Disclaimer: I have no affiliation with the URML project.

---

<div class="post-metadata">

**Author:** ![ClawsJoy](https://avatars.discourse-cdn.com/v4/letter/c/bb73d2/32.png) [@ClawsJoy](https://discourse.openrobotics.org/u/ClawsJoy)\
**Post date:** [June 30, 2026, 11:41pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894/3 "2026-06-30T23:41:52Z")

</div>

Subject: URML & ClawsJoy Robotics — complementary layers for the same vision

Hi RobotDreams team,

Thanks for the note — and for sharing URML. I’ve spent some time reading through the spec and the conformance suite approach. This is genuinely good work.

A quick observation upfront: I don’t see URML and ClawsJoy Robotics as competitors. I see them as two complementary layers of the same stack.

Layer URML ClawsJoy Robotics  
Abstraction level Intent semantics (“what to do”) Cognitive-to-motion mapping (“how to say it to ROS”)  
Output Intent primitives (move\_to, grasp, release) ROS topic messages (/base/cmd\_vel, /arm/joint\_trajectory)  
Scope Cross-platform (ROS 2, PX4, AUTOSAR, OPC UA, MuJoCo) ROS/2 focused (for now)  
User Robotics engineers defining robot behavior LLM agents / cognitive systems commanding robots  
Value proposition Write once, run on any robot substrate Any LLM outputs an action, any robot implements these standard topics  
Here’s how I see the two projects fitting together:  
Natural Language  
↓

LLM Agent

↓  
URML Intent Layer  
“pick\_from(cup, table)”  
↓  
ClawsJoy Robotics Bridge  
grasp → /gripper/command (Float32, 0=close 1=open)  
↓

ROS/2 Robot

URML handles the semantic expression — what the robot should do in the world, independent of the vendor or platform. ClawsJoy handles the cognitive-to-physical translation — taking an intent and turning it into ROS topic messages that a real robot can execute.

The two can be stacked. URML can output intents; ClawsJoy can consume those intents and map them to the 12 primitives we’ve defined. Together, they provide a complete path from natural language to robot motion.  
A few specific thoughts on URML that stood out to me:

The 16 brand adapters are impressive. That’s real ecosystem engineering. We’re taking a similar approach with the 12 primitives being configurable topic maps rather than hardcoded to any specific robot.

The validator Pass-2 checks resonate deeply. In ClawsJoy we do budget + permission + ledger checks before allowing any execution. The safety-first orientation seems to be a shared value.

The ROS-Industrial Consortium governance path makes sense. I’d be interested in exploring whether the 12 primitives could eventually become a ROS community standard for “LLM-friendly robot interfaces” under a similar governance umbrella.  
One question for you:

Have you considered adding a “ROS topic mapping” layer to URML’s conformance suite? It seems like a natural extension — a robot could claim URML conformance and provide a topic map that allows URML intents to be executed via standard ROS topics. That’s essentially what ClawsJoy’s bridge does today, but decoupled from the intent layer above it.

I’d be happy to explore a joint positioning:

URML as the intent specification (semantic)

ClawsJoy Robotics as the ROS/2 reference mapping (physical)

Two projects. One vision. No competition.

Let’s keep the conversation going.

Best,  
ClawsJoy Team

---

<div class="post-metadata">

**Author:** ![ClawsJoy](https://avatars.discourse-cdn.com/v4/letter/c/bb73d2/32.png) [@ClawsJoy](https://discourse.openrobotics.org/u/ClawsJoy)\
**Post date:** [July 11, 2026, 2:01pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894/4 "2026-07-11T14:01:21Z")

</div>

> **[GitHub - ClawsJoy/clawsjoy\_robotics: ClawsJoy Robotics - A standard interface from LLM...](https://github.com/ClawsJoy/clawsjoy_robotics)**
>
> ClawsJoy Robotics - A standard interface from LLM to ROS/2 robot actions. 12 motion primitives, task planner, world model. Any LLM outputs an action, any robot implements these topics.

---

<div class="post-metadata">

**Author:** ![ClawsJoy](https://avatars.discourse-cdn.com/v4/letter/c/bb73d2/32.png) [@ClawsJoy](https://discourse.openrobotics.org/u/ClawsJoy)\
**Post date:** [July 11, 2026, 2:04pm UTC](https://discourse.openrobotics.org/t/a-standard-interface-from-llm-to-robot-actions/55894/5 "2026-07-11T14:04:04Z")

</div>

[https://www.zhihu.com/question/33573424/answer/2054508028519621967](https://www.zhihu.com/question/33573424/answer/2054508028519621967)
