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:
- Contém — nenhum comando fora do envelope de segurança do robô chega ao hardware.
- Vigia — observa o comportamento ao longo do tempo; risco dispara resposta graduada.
- Registra — cada decisão vai para um log imutável, encadeado e à prova de adulteração.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a12b9ab878c6d68cd044172bcc43098ba3770a357e9c18bcabd39305e5c9c45
|
|
| MD5 |
fe76d166ecf3a4e60e5a52b42ef20e51
|
|
| BLAKE2b-256 |
117d76441d6543d2dd1f453f06b4e6a4ab2550577119f784427dd89c72716459
|
File details
Details for the file pensenova_safety-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pensenova_safety-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b54017c519f92e6da4d50122d4a564aae16bf0d62dbe6656dc487f25af43e35
|
|
| MD5 |
21e6f0ef1643bcc458d17bf7911bc96f
|
|
| BLAKE2b-256 |
c626e0890e44c5eef96e78e12657cc61da48cbeb4eb691b476e8bfbfc0f0e8b0
|