Skip to main content

Pensenova safety spine — auditable trust layer between an AI policy and a physical robot

Project description

pensenova-safety

A espinha de segurança da Pensenova — uma camada de confiança auditável entre a política de IA (não confiável) e o robô físico.

A política propõe. A espinha dispõe — e prova.

O que é

Uma política de IA (ACT, GR00T, difusão) é uma caixa-preta estatística: acerta na maior parte do tempo, mas pode mandar um comando fora do limite, um NaN, um salto brusco. Num robô que exerce força real, "quase sempre seguro" não basta.

A pensenova-safety fica entre a política e o robô. A cada comando ela:

  1. Contém — nenhum comando fora do envelope de segurança do robô chega ao hardware.
  2. Vigia — observa o comportamento ao longo do tempo; risco dispara resposta graduada.
  3. Registra — cada decisão vai para um log imutável, encadeado e à prova de adulteração.
  4. Prova — cada sessão gera um relatório de conformidade verificável.

É agnóstica ao robô: funciona com qualquer embodiment, do Unitree G1 a um cobô de base fixa. O robô é descrito por um SafetyProfile — não há nada acoplado a um modelo específico.

Uso mínimo

import numpy as np
import pensenova_safety as ps

# 1. descreva o robô (limites por junta)
prof = ps.SafetyProfile.from_limits(
    "meu_robo",
    joint_names=["j0", "j1", "j2"],
    lo=np.array([-1.0, -1.0, -1.0]),
    hi=np.array([ 1.0,  1.0,  1.0]),
    max_vel=np.array([2.0, 2.0, 2.0]),
)

# 2. abra uma sessão protegida
env = ps.protect(prof, operator="joao")

# 3. filtre cada comando da política
safe, report = env.filter(comando_da_politica, estado_atual, dt)
#    -> `safe` está garantidamente dentro do envelope
#    -> `report` diz o que foi feito (clamp, hold, e-stop)

# 4. encerre e obtenha a prova
env.stop()
prova = ps.build_report(env.logger.records, profile=prof)

Veja examples/robo_generico.py para uma demonstração completa com uma política hostil.

Resposta graduada

Nível Efeito
Observar risco leve: registra e acompanha, sem interferir
Conter risco crescente: segura o robô, sem parar a sessão
Interromper risco real: e-stop até liberação manual

Garantias

  • Determinismo — o mesmo perfil gera sempre o mesmo hash, em qualquer máquina.
  • Rastreabilidade — o log prende o hash do perfil; prova quais limites valiam.
  • Imutabilidade — a cadeia detecta qualquer adulteração do histórico.
  • Núcleo puro — apenas numpy + stdlib; sem hardware, sem simulador.

Licença

Proprietário. Software confidencial da Pensenova. Ver LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pensenova_safety-0.1.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pensenova_safety-0.1.0-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file pensenova_safety-0.1.0.tar.gz.

File metadata

  • Download URL: pensenova_safety-0.1.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for pensenova_safety-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a12b9ab878c6d68cd044172bcc43098ba3770a357e9c18bcabd39305e5c9c45
MD5 fe76d166ecf3a4e60e5a52b42ef20e51
BLAKE2b-256 117d76441d6543d2dd1f453f06b4e6a4ab2550577119f784427dd89c72716459

See more details on using hashes here.

File details

Details for the file pensenova_safety-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pensenova_safety-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b54017c519f92e6da4d50122d4a564aae16bf0d62dbe6656dc487f25af43e35
MD5 21e6f0ef1643bcc458d17bf7911bc96f
BLAKE2b-256 c626e0890e44c5eef96e78e12657cc61da48cbeb4eb691b476e8bfbfc0f0e8b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page