Exemples i demostracions de contenidors

Exemples concrets i executables en esperit de les formes de contenidor d'Asset Core—demostrant la coordinació del món de manera determinista a través de la robòtica, els jocs, les simulacions i l'automatització.

0D Balance

Un pool compartit de crèdits de computació o unitats d’energia. Les transaccions debiten o acrediten un valor escalar de punt fix—sense posicions, només quantitat.

Aquest exemple és intencionadament petit. Mostra com funcionen els saldos deterministes quan la única pregunta és “quant”, no “on”. Utilitzeu-lo com a plantilla per a qualsevol recurs agrupat amb requisits d’auditoria estrictes.

Què mostra això

  • 0D quantitats algebraiques (punt fix), sense coordenades espacials
  • Ajustaments de balanç atòmic (dèbit/crèdit)
  • Reproducció determinista de la història de transaccions
  • Grups de recursos compartits multiactor

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 1001,
        "kind": { "type": "balance" },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddFungible",
      "args": {
        "class_id": 5001,
        "key": 1,
        "location": { "container_id": 1001, "kind": "balance" },
        "quantity": "100"
      }
    },
    {
      "op": "RemoveFungible",
      "args": {
        "class_id": 5001,
        "key": 1,
        "from": { "container_id": 1001, "kind": "balance" },
        "quantity": "50"
      }
    }
  ]
}

Això crea el contenidor d’equilibri 1001, acredita 100 unitats de class_id 5001 (energy_unit), després crema 50 unitats, deixant 50 a la piscina.

Llegenda del diagrama: abans = 100 unitats, després = 50 unitats al contenidor 1001 (energy_pool).

Utilitzeu un equilibri 0D quan només importa “quant”, no “on” es manté.

Garantia determinista: Les seqüències idèntiques produeixen resultats idèntics.

Escenari d’exemple: Un servei o agent d’automatització que gestiona crèdits de computació per a un clúster. Les operacions criden: Garantia determinista: Les seqüències idèntiques produeixen resultats idèntics.

  • check_balance() → consultar els crèdits actuals
  • reserve_credits(job_id, amount) → deducció atòmica
  • release_credits(job_id) → reemborsament en completar la feina

Asset Core aplica les regles de saldo que defineixes: mínims, màxims i saldos negatius opcionals, amb un registre complet de cada transacció de crèdit.

0D Slots

Una entitat exposa 8 espais per a eines. Eines com una càmera o un gripper ocupen exactament un espai; els espais no tenen geometria, només posicions etiquetades.

Els slots es tracten d’exclusivitat i intenció, no de coordenades. Aquest exemple mostra com garantir que un slot estigui ocupat o buit, sense cap estat intermedi ambigu.

Què mostra això

  • Posicions discretes sense relacions geomètriques
  • Gestió d’eines/equipament amb exclusivitat de slots
  • Estat de l’equipament determinista
  • Posicionament semàntic (no coordenades espacials)

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 2001,
        "kind": { "type": "slots", "count": 8 },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5201,
        "key": 1,
        "location": {
          "container_id": 2001,
          "kind": "slot",
          "slot_index": 3
        }
      }
    }
  ]
}

Això crea el contenidor de slots 2001 i col·loca class_id 5201 (camera_head) a slot_index 3.

Diagrama llegenda: el slot 3 conté la càmera cap.

Utilitzeu slots quan necessiteu posicions mútuament excloents amb etiquetes, però sense geometria espacial.

Garantia determinista: Les seqüències idèntiques produeixen configuracions de slot idèntiques.

Escenari d’exemple: Un controlador o agent de robot gestionant 8 espais d’eines. Crides d’operació:

  • list_equipped_tools() → consultar l’equipament actual
  • equip_tool(slot_id, tool_name) → assignació atòmica de slot
  • swap_tools(slot_a, slot_b) → intercanvi transaccional

Asset Core imposa l’exclusivitat de slots: sense eines fantasma, sense doble equipament i amb plena procedència de cada canvi d’equipament.

Reixeta 1D

Una cinta transportadora amb posicions 1..5. Els sistemes col·loquen i mouen paquets al llarg d’un únic eix; dos elements no poden ocupar la mateixa posició.

El punt aquí és la seqüenciació i la prevenció de col·lisions al llarg d’un únic eix. És el cas espacial més senzill on l’ordre és important i els moviments no vàlids han de ser rebutjats de manera determinista.

Què mostra això

  • Semàntica espacial lineal (posicionament d’eix únic)
  • Detecció de col·lisions i exclusivitat de posició
  • Operacions de moviment seqüencial
  • Col·locació i ordenació de moviments deterministes

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 3001,
        "kind": {
          "type": "grid",
          "capacity": 5,
          "grid_width": null
        },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5301,
        "key": 1,
        "location": {
          "container_id": 3001,
          "kind": "grid_cell",
          "position": 3,
          "rotation": "none"
        }
      }
    }
  ]
}

Això crea el contenidor de graella 3001 amb 5 posicions i col·loca class_id 5301 (package_42) a la posició 3.

Llegenda del diagrama: P42 marca class_id 5301 (package_42) a la posició 3.

Utilitzeu una graella 1D quan l’ordre al llarg d’un sol carril és important i cal prevenir les col·lisions.

Garantia determinista: Les seqüències idèntiques produeixen resultats idèntics.

Escenari d’exemple: Un controlador de transportador gestionant una cinta. Crides d’operació:

  • get_item_position(item_id) → consultar la ubicació a la cinta
  • move_item(item_id, target_position) → moviment segur contra col·lisions
  • remove_item(item_id) → eliminació atòmica del cinturó

Asset Core evita la doble ocupació, rastreja l’ordre dels articles i permet la reproducció perfecta de les operacions del transportador.

1D Continu

Un rail calibrat amb resolució en mil·límetres. Un carro robotitzat es desplaça al llarg d’un eix continu utilitzant coordenades de punt fix.

Els contenidors continus són de punt fix, no de punt flotant. Aquesta elecció fa que la reproducció sigui determinista i elimina el desplaçament de redoniment a través de llargues seqüències de moviments.

Què mostra això

  • Coordenades de punt fix amb arrodoniment determinista
  • Col·locació verificada dins d’un sol eix
  • Comprovacions de col·lisió contínues per a intervals superposats
  • Semàntiques de compromís/repetició idèntiques a contenidors discretes

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 4001,
        "kind": {
          "type": "continuous_line_1d",
          "min_x": 0,
          "max_x": 200000,
          "quantization_inv": 1000,
          "bucket_cell_size": 10000
        },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5401,
        "key": 1,
        "location": {
          "container_id": 4001,
          "kind": "continuous_1d",
          "coord": { "x": 25000 }
        }
      }
    }
  ]
}

Això crea el contenidor continuous_line_1d 4001 i col·loca class_id 5401 a x=25.000 (quantization_inv=1000).

Llegenda del diagrama: C = carriage_A.

Utilitzeu una línia contínua 1D quan les distàncies del món real al llarg d’un únic eix han de ser preservades.

Garantia determinista: Les seqüències idèntiques produeixen resultats idèntics.

Escenari d’exemple: Un controlador de ferrocarril lineal gestionant un eix únic. Crides d’operació:

  • get_carriage_position(carriage_id) → consulta la coordenada actual
  • move_carriage(carriage_id, target_x) → moviment segur davant de col·lisions
  • reserve_span(start_x, end_x) → assegurar una finestra de viatge exclusiva

Asset Core aplica una col·locació determinista, evita la superposició i proporciona una reproducció exacta del moviment del ferrocarril.

Reixeta 2D

Una petita graella d’emmagatzematge (5×5). Els robots i els paquets ocupen coordenades discretes; els moviments compromesos es serialitzen per evitar col·lisions.

Aquest exemple demostra la coordinació entre múltiples actors en una xarxa compartida on cada col·locació és autoritzada. És un bon model per a magatzems, plaques de laboratori i dissenys de taulers tàctics.

Què mostra això

  • Semàntica espacial bidimensional (coordenades x, y)
  • Detecció de col·lisions entre múltiples entitats
  • Col·locació i moviment basats en coordenades
  • Estat de gra autoritzatiu per a la coordinació multiactor

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 5001,
        "kind": {
          "type": "grid",
          "capacity": 25,
          "grid_width": 5
        },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5501,
        "key": 1,
        "location": {
          "container_id": 5001,
          "kind": "grid_cell",
          "position": 21,
          "rotation": "none"
        }
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5502,
        "key": 1,
        "location": {
          "container_id": 5001,
          "kind": "grid_cell",
          "position": 22,
          "rotation": "none"
        }
      }
    }
  ]
}

Això crea un contenidor de graella de 5×5 5001 i col·loca class_id 5501 (robot_A) a la posició 21 i class_id 5502 (package_12) a la posició 22.

Llegenda del diagrama: R = class_id 5501 (robot_A), P = class_id 5502 (package_12).

Utilitzeu una graella 2D quan els sistemes necessiten coordenades compartides, consciència del veïnat i moviment segur contra col·lisions.

Garantia determinista: Les seqüències idèntiques produeixen estats del món idèntics.

Escenari d’exemple: Múltiples actors autònoms (robots, serveis o agents) navegant per un pis d’emmagatzematge compartit. Crides d’operació:

  • get_robot_position(robot_id) → consultar les coordenades actuals
  • plan_path(start, goal) → cerca de camins amb consciència de col·lisions
  • move_robot(robot_id, target_coords) → moviment atòmic i segur contra col·lisions

Asset Core proporciona un estat espacial autoritzat: sense posicions fantasma, sense col·lisions i amb un historial de coordinació complet entre tots els participants.

2D Continu

Una cel·la de treball delimitada per a robòtica de recollida i col·locació. Les col·locacions utilitzen coordenades x/y de punt fix amb rotació determinista en milidegrets.

La geometria 2D contínua és on la geometria determinista és més important. Aquest exemple destaca com les coordenades de punt fix i les regles de rotació mantenen la repetició exacta, fins i tot en cèl·lules de treball denses.

Què mostra això

  • Coordenades x/y de punt fix amb quantització explícita
  • Comprovacions de col·lisió de rectangles orientats (OBB)
  • Col·locacions, moviments i rotacions amb comprovació de límits
  • Reproducció determinista de plans de moviment multiactor

Exemples d’operacions

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 6001,
        "kind": {
          "type": "continuous_grid_2d",
          "min_x": 0,
          "min_y": 0,
          "max_x": 200000,
          "max_y": 120000,
          "quantization_inv": 1000,
          "bucket_cell_size": 10000
        },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5601,
        "key": 1,
        "location": {
          "container_id": 6001,
          "kind": "continuous_2d",
          "coord": { "x": 25000, "y": 40000 },
          "rotation_millideg": 0
        }
      }
    },
    {
      "op": "AddInstance",
      "args": {
        "class_id": 5602,
        "key": 1,
        "location": {
          "container_id": 6001,
          "kind": "continuous_2d",
          "coord": { "x": 110000, "y": 30000 },
          "rotation_millideg": 90000
        }
      }
    }
  ]
}

Això crea el contenidor continuous_grid_2d 6001, col·loca class_id 5601 (gripper_A) a (25.000, 40.000) i col·loca class_id 5602 (part_17) a (110.000, 30.000).

Llegenda del diagrama: G = class_id 5601 (gripper_A), P = class_id 5602 (part_17).

Utilitzeu un contenidor continu 2D quan cal preservar les coordenades físiques i la rotació.

Garantia determinista: Les seqüències idèntiques produeixen estats del món idèntics.

Escenari d’exemple: Un planificador de robots coordinant recollides en una cel·la de treball compartida. Crides d’operació:

  • preflight_commit(pick_plan) → valida la seqüència sense mutació
  • commit(pick_plan) → executar un cop que el preflight tingui èxit
  • read_workcell_region(bounds) → consulta ubicacions properes per a comprovacions de col·lisió

Asset Core garanteix que el preflight i el commit es mantinguin sincronitzats mentre es preserva un rastre d’auditoria determinista.

Transferència Universal

Les operacions d’Asset Core funcionen de manera consistent entre tipus de contenidors. La mateixa gramàtica s’aplica tant si es transfereixen entre balances, slots o graelles, demostrant el model d’operació universal.

Aquesta secció és útil quan cal explicar el sistema als interessats que assumeixen API separades per a cada tipus de contenidor. El punt és que les operacions es mantenen estables mentre la geometria canvia.

Què mostra això

  • Semàntica d’operació unificada a través de dimensions
  • Transicions d’estat entre contenidors
  • Registre de compromisos consistent per a fluxos de treball amb múltiples contenidors
  • Transformacions de l’estat del món composables

Exemple: Equilibri → Transferència de Reixeta 2D

{
  "operations": [
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 7001,
        "kind": { "type": "balance" },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "CreateContainer",
      "args": {
        "container_id": 7002,
        "kind": {
          "type": "grid",
          "capacity": 25,
          "grid_width": 5
        },
        "owner": null,
        "policies": null
      }
    },
    {
      "op": "MoveFungible",
      "args": {
        "class_id": 5701,
        "key": 1,
        "quantity": "1",
        "from": { "container_id": 7001, "kind": "balance" },
        "to": {
          "container_id": 7002,
          "kind": "grid_cell",
          "position": 13,
          "rotation": "none"
        }
      }
    }
  ]
}

Això mou la quantitat per class_id 5701 (widget) del contenidor de saldo 7001 a una col·locació de graella en el contenidor 7002—mateixa gramàtica d’operació, diferents tipus de contenidors.

Mateixa gramàtica (class_id, ubicacions, quantitats) a través dels tipus de contenidors; l’ordenació determinista vincula ambdós canvis a una història de compromisos.

Escenari d’exemple: Un controlador de cèl·lula de treball transfereix peces d’una piscina (equilibri 0D) a posicions d’assemblatge (graella 2D). Crides d’operació:

  • check_parts_available() → consultar saldo
  • reserve_and_place(part_type, grid_coords) → operació atòmica entre contenidors

Asset Core compromet ambdós canvis de manera atòmica—sense inventari fantasma, sense peces perdudes i un registre d’auditoria unificat a través dels tipus de contenidors.

Aprendre més

Per a detalls tècnics, consulteu Basics per a l’arquitectura i els tipus de contenidors, o la Docs per a una documentació tècnica més profunda. Per a un flux de treball de principi a fi amb trucades reals i registres, consulteu el Robotic Arm Continuous scenario.