Skip to content

[mlir] [dialect] [robotics] Implementation of roboIR #5

@copparihollmann

Description

@copparihollmann

Motivation

Standard NN operator-based IRs are insufficient for comprehensively representing and optimizing robotics applications. The robo dialect is intended to bridge these gaps by introducing a higher-level, robotics-aware abstraction.

The primary motivations are to:

  • Represent Complex Control Flow: Robotics algorithms heavily rely on control flow (loops, branches) that is often poorly represented or abstracted away in purely data-flow graphs. The robo dialect must natively represent this, enabling "Memory and Op Optimization Through Control Flow" and covering ops not found in standard NN libraries.
  • Exploit Workload Characteristics: Robotic computations have unique structural properties. The dialect must be designed to:
    1. Take advantage of sparsity in data
    2. Expose robot morphology to computation allowing the compiler to leverage the robot's physical structure for optimization.
    3. Serve as a Transpilation Target: The robo dialect will act as a unified high-level IR for Workload Transpilation. It must be capable of representing entire applications—spanning perception , trajectory planning , and control —from existing C++/Python libraries into a cohesive MLIR graph.

Design Goals

Based on this motivation, the initial design of the robo dialect must prioritize:

  • High-Level Abstraction: Operations should represent "computation tasks" (e.g., planning, control solvers) rather than just low-level math.
  • Control Flow Integration: The dialect must integrate seamlessly with scf and other control flow representations.
  • Metadata Representation: The type system and attributes must be able to encode high-level information about sparsity and robot morphology.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions