Skip to content
Embodied AI · Independent lab project

Sophy: LLM Meets Robot

A local language model connected to a six-legged robot.

Sophy uses local inference to interpret sensor readings and propose actions. Software checks and operator approval control which commands reach the motors.

Local inference · Real sensors · Supervised motion

Explore the architecture Sophy documentation

Top view of a six-legged hexapod with a central sensor tower Hiwonder JetHexa Local AI with supervised movement

From observation to authorized action

The model proposes. The agent validates. The operator authorizes physical movement. The robot checks its own permissions and clearance before executing.

System architecture

Observation and approved movement

PerceptionAuthorized action
01 / OPERATOR

Operator & development

macOS workstation

Intent & development
DevelopmentCode, tests, simulation & deployment
Terminal / chatAsk a question or set an objective

Instructions → agent
Answer ← agent

Human authorization
Approve this actionExplicit approval for the exact forward command

Approval → agent safety gate

The operator selects the mode. The model cannot enable motion.

02 / AI BRAIN

Local AI workstation

Inference, agent & MCP

Read upward · observations arrive below
Ollama · Qwen3.5 35BInterpret a fresh RGB snapshot & sensor facts
Agent · perceptionRead sensor data and reject stale images
MCP · observationsModel Context Protocol tool adapter
Read downward · proposals become requests
Model · propose a toolStructured calls, never raw servo commands
Agent · validate & authorizeAllowlist, refreshed gates & clearance, operator approval
MCP · command requestSend once and check execution status
SSHtunnel
Observations↑ To AI brain
Requests↓ To robot
03 / PHYSICAL BODY

Jetson robot

NVIDIA Jetson Nano · JetHexa

Read downward · sensors to gateway
LiDAR & RGB / depthReal-world range readings & camera frames
ROS Melodic → bridgeDashboard records samples & timestamps
Gateway · freshnessDecides whether sensor data is fresh
Read upward · gateway to servos
18 bus servos · six legsForward gait tested with chassis supported
Python gait controllerGuarded motion outside ROS
Gateway · safety gatesMotion permission, supported chassis & LiDAR clearance
Observe again after an actionStatus returns through gateway → SSH → MCP → agent. The agent reads new sensor data after each action. A completed command does not confirm how far the robot moved.
No direct model-to-servo path.Motion permissions remain on the robot.
Blue shows sensor data flowing to the model. Amber shows approved requests flowing to the robot. Both paths use the same MCP service on the AI workstation and the same SSH tunnel.

ROS publishes sensor data to the dashboard bridge. The gateway checks its age. MCP and the agent reject images with missing or stale metadata. After a slow model response, the agent reads safety observations again before requesting approval. The robot repeats its safety checks before executing.

How a request works

  1. Ask: the operator types “What is in front of you?” in the terminal or chat interface.
  2. Observe: ROS publishes LiDAR and camera data. The bridge records the readings and timestamps.
  3. Check freshness: the robot gateway rejects stale or unavailable frames. MCP exposes accepted observations to the agent.
  4. Reason locally: the agent supplies sensor facts and, when available, a fresh RGB snapshot to Qwen through Ollama. An image is a captured moment, not a continuous video feed.
  5. Respond or propose: the model answers, requests another allowed observation, or proposes a structured action. The agent validates the tool and its arguments.
  6. Authorize and act: in supervised mode, the agent refreshes safety observations and asks for approval of the exact forward command. Robot-side gates and clearance still apply. The agent then checks the execution status and reads new sensor data.

What works today

Implemented software

Local Ollama inference, structured tool calling, fresh-image handling, MCP observation tools, deterministic authorization, execution tracking, and operator-selected observe, plan, and supervised modes. Observe and plan never move the motors.

Physically verified

LiDAR, RGB/depth/IR sensing, servo telemetry and guarded tests. Forward gait testing was performed with the chassis supported and feet clear. Loaded-floor locomotion has not been verified.

Supervised / experimental

The agent can request one to five forward gait cycles after explicit approval and robot-side permission checks. The planner can describe a route without moving the robot. Other motion capabilities remain outside the agent’s allowlist.

Planned autonomy

Autonomous navigation is not implemented. Calibrated localization, loaded-floor gait validation, and continuous collision monitoring are prerequisites for future unsupervised movement.

Limitations

  • Uncalibrated odometry. Position is estimated from commanded motion. A completed command does not measure how far the robot moved.
  • Clearance checks run between movement segments. Obstacles are not continuously monitored during motion.
  • Motion permissions are controlled outside the model. It cannot enable motion, change its mode, approve its own action, or start the sensors.
  • Software stop and physical emergency stop are separate. Use the power switch for immediate physical intervention.
  • Uncertain motion outcomes are not automatically retried. The agent checks the request ID for execution status.

Technical architecture

Layer Responsibility
Local inference Ollama serves qwen3.5:35b on the AI workstation. The Jetson runs no LLM.
Perception & reasoning The agent combines structured sensor facts with an optional RGB snapshot and validates each proposed tool call.
MCP tools A local adapter exposes observations and permitted requests. The agent uses a restricted subset of the MCP tools.
ROS integration ROS Melodic carries sensor topics. A dashboard bridge records samples. Freshness decisions belong to the gateway.
Physical actuation A Python controller runs the gait and drives 18 bus servos outside ROS.
Safety boundaries Operator-selected mode, per-action approval, robot-side motion gates, freshness checks, and stationary clearance checks.

For implementation details, read the agent, MCP tools, and hardware status. Future work focuses on physical validation, measured localization, and collision monitoring before autonomous navigation.

Sophy is an independent Agentic Systems Lab project. Explore Agentic Experimentation Factory for the lab’s simulation and data infrastructure work.