SDK Examples

Code examples for common use cases

Basic Decision

from thalosforge import ATA

ata = ATA()

result = ata.decide(
    actions=[0, 1, 2],
    policy_conf=[0.9, 0.7, 0.5]
)

print(f"Action: {result.action_id}")

With Safety Checks

def check_safety(state):
    # Your safety logic here
    return state.distance_to_obstacle > 1.0

result = ata.decide(
    actions=[0, 1, 2],
    policy_conf=[0.9, 0.7, 0.5],
    safety_ok=check_safety(current_state)
)

if result.is_safety_override:
    execute_emergency_stop()

Batch Decisions

decisions = [
    {"actions": [0, 1], "policy_conf": [0.9, 0.7]},
    {"actions": [0, 1], "policy_conf": [0.5, 0.8]},
    {"actions": [0, 1], "policy_conf": [0.6, 0.6]}
]

results = ata.decide_batch(decisions)

for r in results:
    print(f"Action: {r.action_id}, Override: {r.overridden}")

Custom Configuration

from thalosforge import ATA, ATAConfig

# Favor confidence over coherence
ata = ATA(config=ATAConfig(
    weight_c=0.6,
    weight_h=0.2,
    weight_k=0.2,
    conf_min=0.3
))

result = ata.decide(actions=[0, 1, 2])

ROS Integration

import rospy
from thalosforge import ATA

ata = ATA()

def state_callback(msg):
    actions = get_candidate_actions(msg)
    
    result = ata.decide(
        actions=actions,
        policy_conf=get_confidences(msg),
        safety_ok=msg.is_safe
    )
    
    if result.is_success:
        publish_action(result.action_id)

rospy.Subscriber("/state", State, state_callback)