Use cases / Embodied Robotics & AMRs

Spatial working memory for embodied robotics

When tools, parts, and bins move across dynamic workbenches, generic vector databases retrieve stale locations 74% of the time. / ml provides deterministic metric state tracking, atomic O(1) supersession, and microsecond reads that fit directly inside your ROS 2 behavior tree control loop.

Main Problem Solved Stale location hallucinations when items move
Control Loop Fit < 1 ms tick budget (0.98 µs in-memory)
Edge Memory Footprint 64 bytes per observation (~12 MB / 100k)
Integration ROS 2, C++, Rust, Python, HTTP/gRPC

What you are building

How it works
1. Perception Stream
SAM 2, FoundationPose, YOLO
Emits detections: label, room zone, and 6-DoF pose
2. / ml Spatial Engine
O(1) State Supersession
Tombstones old poses and indexes active metric states
3. Control Loop
ROS 2 Nav2 & MoveIt 2
Behavior trees tick at line rate with zero stale grabs

An autonomous mobile manipulator, service robot, or automated guided vehicle (AMR) operating in dynamic, shared environments:

  • Aerospace and automotive manufacturing cells where hand tools, digital calipers, and inspection fixtures are moved across assembly tables by workers.
  • Flexible fulfillment and kitting hubs where tote bins and sub-assemblies are staged in temporary buffer zones without fixed fiducial markers.
  • Laboratory automation and clinical logistics where specimen trays and reagents travel between prep benches and analytical instruments.
  • Collaborative human-robot workstations requiring natural language retrieval like "bring me the torque wrench" or "where was the inspection scanner left?".

Instead of freezing execution loops on remote vector lookups or driving to stale coordinates where a tool used to be three hours ago, your robot relies on a deterministic spatial-episodic working memory engine running on-device.

Why spatial memory decides whether it works

Autonomous robotics teams attempting to build semantic spatial memory repeatedly hit two opposing failure modes:

  • Classical Stacks (tf2 and OctoMap) are fast but semantically blind: Coordinate frames and 3D occupancy voxels compute at microsecond speeds, but have zero concept of what an object is. They cannot answer "Where is the digital caliper?" or map functional affordances.
  • Generic Vector Databases suffer catastrophic stale hallucinations: Vector stores were designed for immutable documents. In physical spaces, state mutates continuously. When a worker moves a tool from Station 1 to Station 4, appending a new vector leaves the old location active. Vector similarity retrieves the old location 74% of the time, causing robots to grasp empty tables.
  • The 15 ms to 50 ms Latency Wall: ROS 2 BehaviorTree.CPP condition nodes tick at 50 Hz to 1,000 Hz (a 1 ms to 20 ms budget). Cloud or remote vector databases require 15 ms to 50 ms per query, causing the robot's real-time motion controller to drop frames, jitter, or stall.
  • Edge Compute VRAM Starvation: Heavy multi-gigabyte embedding models and uncompressed vector indexes consume scarce memory on boards like NVIDIA Jetson Orin, competing directly with real-time perception and safety monitors.

What / ml provides

Atomic O(1) Supersession

When an object is detected at a new 6-DoF pose, prior locations are invalidated instantly in O(1) time while logging the move in the trajectory history. Active queries return current reality with 0.0% stale errors.

0.98 µs In-Memory Reads

In-memory lookups resolve in 0.98 microseconds (>1,000,000 queries/second) and local socket reads resolve in 0.38 ms, fitting safely inside strict ROS 2 Nav2 and MoveIt behavior tree budgets.

Compact 64-Byte Footprint

Observations compress into a compact compiled representation of just 64 bytes per entry. An entire workshop history of 100,000 dynamic observations occupies under 12 MB of RAM on edge hardware.

Chronological Chain of Custody

Every relocation preserves a verifiable waypoint history with timestamp, previous zone, and confidence score, enabling full provenance audits across operational shifts.

Control loop and edge economics

Evaluated on the standardized dynamic relocation benchmark across 100 physical tools and 8 assembly zones over 5 consecutive shifts with a 30% relocation rate per shift:

Performance Dimension / ml Robotic Memory Generic Vector RAG 3D Neural Scene Graphs
Active Zone Accuracy (Hit@1) 100.0% 26.0% < 20.0% (drift)
Stale Waypoint Hallucinations 0.0% (Atomic supersession) 74.0% (Stale vectors) High over repeated moves
P50 Read Latency 0.98 µs (RAM) / 0.38 ms (HTTP) 18.5 ms 2,400 ms
ROS 2 Control Loop Budget (< 1 ms) PASSES (≤ 0.1% budget) FAILS by 18.5× FAILS by 2,400×
Storage per 10k Observations 0.64 MB (64 B/obs) 61.4 MB (6 KB/obs) > 10 GB (point clouds)

By resolving queries locally in sub-microsecond time, / ml prevents motion controller pipeline stalls while freeing onboard GPU VRAM for perception and path planning.

Getting there

1

Connect perception node to / ml

Deploy the / ml spatial engine as a local edge binary or onboard ROS 2 node using C++, Rust, or Python bindings.

2

Ingest 6-DoF bounding box detections

When SAM 2, FoundationPose, or YOLO-World emits detections, push the label, room zone, and metric 6-DoF pose into memory.

3

Query inside ROS 2 behavior tree condition nodes

Call where_is(object_name) directly inside Nav2 or MoveIt action nodes with sub-microsecond return times.

4

Audit shift trajectories and chain of custody

Query chronological waypoints to inspect who moved what, when it changed locations, and which room zones are currently occupied.

Code example

Ingesting perception detections and querying active coordinates inside a ROS 2 behavior tree or Python service node:

python / ros 2
# 1. Ingesting perception observations (pip install slashml-robotics)
from slashml_robotics import RoboticMemory

# Connect to local embedded engine or network socket
memory = RoboticMemory(base_url="http://127.0.0.1:8000")

# Ingest detection with 6-DoF pose [x, y, z, qx, qy, qz, qw]
memory.add_observation(
    object_name="digital_caliper",
    room_zone="assembly_station_2",
    pose=[1.42, 0.85, 0.91, 0.0, 0.0, 0.7071, 0.7071],
    confidence=0.98,
    tags=["caliper", "measuring_tool", "hardware"]
)

# 2. Sub-microsecond active state lookup in a ROS 2 Action Node
location = memory.where_is("digital_caliper")

if location:
    print(f"Active Zone: {location.room_zone}")
    print(f"Target Coordinates: x={location.pose.x:.2f}, y={location.pose.y:.2f}, z={location.pose.z:.2f}")
    # Dispatch navigation goal to Nav2 or arm pose to MoveIt 2
    nav2_client.send_goal(location.pose)

# 3. Auditing chronological relocation chain of custody
trajectory = memory.get_trajectory("digital_caliper")
for waypoint in trajectory:
    print(f"Time {waypoint.timestamp}: {waypoint.room_zone} (Superseded: {waypoint.is_superseded})")

Frequently asked questions

Q Does / ml replace ROS 2 tf2?

No. tf2 calculates real-time kinematic coordinate transforms between robot links (e.g. base_link, camera_optical_frame, and gripper_link). / ml sits above tf2 as the semantic entity index: it resolves questions like "Where is the digital caliper?" to a global frame coordinate, which is then fed into tf2 and MoveIt for inverse kinematics.

Q Can / ml run completely offline on an edge board like NVIDIA Jetson Orin?

Yes. / ml sovereign compiles into a single standalone binary with C++, Rust, and Python bindings that runs 100% locally on edge hardware with zero external internet dependencies, ensuring robots never stall during facility Wi-Fi blackouts.

Q Does / ml replace vision models like FoundationPose or SAM 2?

No. Upstream detectors perceive pixel bounding boxes and poses. / ml ingests these detections, tracks entity identities over time, supersedes moved items in O(1) time, and serves verified metric coordinates to downstream planners.

Q How does / ml handle multi-robot fleet synchronization?

By scoping spatial records with shared zone identifiers or a facility ID, multiple mobile manipulators and transport AMRs contribute observations to and query active object waypoints from a shared local edge appliance without conflicting states.

Supercharge your robotics stack

Connect / ml to your ROS 2 behavior tree or mobile manipulation planner in under 5 minutes.