Pensenova

pip install pensenova-safety

01

import numpy as np
import pensenova_safety as ps

profile = ps.SafetyProfile.from_limits(
    "my_robot",
    joint_names=["j0", "j1", "j2"],
    lo=np.array([-1.0, -1.0, -1.0]),   # min angle per joint (rad)
    hi=np.array([ 1.0,  1.0,  1.0]),   # max angle per joint
    max_vel=np.array([2.0, 2.0, 2.0]),   # max speed (rad/s)
)

02

env = ps.protect(profile, operator="line_A")

for step in range(n_steps):
    state = robot.get_state()
    cmd   = policy(state)              # your AI / teleop / retargeted command
    safe, report = env.filter(cmd, state, dt)
    robot.send(safe)                 # only the safe command is ever sent

env.stop()

03

from pensenova_safety import cloud

submission = cloud.package_session(env, robot_id="my_robot")
seal = cloud.submit_session(submission, "https://rhdpwxwqzyjlxegxmnlu.supabase.co/functions/v1")

print(seal["payload"]["verdict"])   # APROVADO / REPROVADO
print(seal["seal_id"])            # registered, verifiable by anyone

reset()
get_state()
get_observation()
send(cmd)
close()