{ "cells": [ { "cell_type": "markdown", "id": "robot-intro", "metadata": {}, "source": "# Plan a Robot without claiming physical safety\n\nAsk the public deterministic planner for a source-backed Rover One starting plan. The result keeps verified, declared, derived, and unknown evidence separate and never grants physical safety approval." }, { "cell_type": "code", "execution_count": null, "id": "robot-plan-request", "metadata": {}, "outputs": [], "source": [ "import json\n", "from urllib.request import Request, urlopen\n", "\n", "ORIGIN = \"https://superii.site\"\n", "planner_input = {\n", " \"goal\": \"learn\",\n", " \"experience\": \"new\",\n", " \"compute\": \"recommend\",\n", " \"environment\": \"indoor\",\n", " \"budget\": \"not-sure\",\n", " \"owned_components\": [],\n", "}\n", "request = Request(\n", " f\"{ORIGIN}/api/robot/plan\",\n", " data=json.dumps(planner_input).encode(\"utf-8\"),\n", " headers={\"Content-Type\": \"application/json\", \"Accept\": \"application/json\"},\n", " method=\"POST\",\n", ")\n", "with urlopen(request, timeout=20) as response:\n", " plan = json.load(response)[\"plan\"]\n", "print(plan[\"title\"], plan[\"catalog_revision\"])" ] }, { "cell_type": "markdown", "id": "evidence-review", "metadata": {}, "source": "## Review evidence and unknowns\n\nA component listing is not a guarantee that an assembled robot will be mechanically, electrically, thermally, or operationally safe. Empty compatibility evidence means unknown—not compatible." }, { "cell_type": "code", "execution_count": null, "id": "evidence-summary", "metadata": {}, "outputs": [], "source": "assert plan[\"safety_approval\"] is False\nstates = {}\nfor component in plan[\"components\"]:\n states[component[\"evidenceStatus\"]] = states.get(component[\"evidenceStatus\"], 0) + 1\nprint(\"Evidence states:\", states)\nprint(\"Open requirements:\")\nfor requirement in plan[\"open_requirements\"]:\n print(\"-\", requirement)\nprint(\"Robot Check:\")\nfor check in plan[\"robot_check\"]:\n print(f\"- {check['dimension']}: {check['status']} — {check['explanation']}\")" }, { "cell_type": "markdown", "id": "physical-boundary", "metadata": {}, "source": "## Keep the physical boundary explicit\n\nBefore buying or energizing hardware, verify manufacturer documentation, voltage and current, connectors, cooling, mounting, payload and center of gravity, battery protection, emergency stop, environment, supervision, and local rules with qualified people." }, { "cell_type": "code", "execution_count": null, "id": "robot-checklist", "metadata": {}, "outputs": [], "source": "physical_review = {\n \"manufacturer_sources_opened\": False,\n \"electrical_review_completed\": False,\n \"mechanical_review_completed\": False,\n \"thermal_review_completed\": False,\n \"battery_and_emergency_stop_reviewed\": False,\n \"qualified_human_approval\": False,\n}\nprint(json.dumps(physical_review, indent=2))\nprint(\"No purchase, actuator command, or hardware control was performed.\")" } ], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"name": "python", "version": "3.12"}}, "nbformat": 4, "nbformat_minor": 5 }