Odyssey Logo

Odyssey API

Odyssey trains robots through real-time data streaming. Our custom API delivers vision, language, and physics insights directly to your robot's brain, enabling continuous learning and adaptation.

Initialize Odyssey Client

Connect to Odyssey's real-time data streaming API

from odyssey import OdysseyClient

# Initialize the client with your API key
client = OdysseyClient(api_key="your_api_key_here")

# Connect to the data stream
stream = client.connect(
    modalities=["vision", "language", "physics"],
    robot_id="robot_001"
)

Stream Vision Data

Process real-time visual information for your robot

# Stream vision data to your robot
vision_stream = client.vision.stream(
    camera_id="main_camera",
    resolution=(1920, 1080),
    fps=30
)

for frame in vision_stream:
    # Process visual data
    objects = frame.detect_objects()
    depth = frame.get_depth_map()
    
    # Send to robot brain
    robot.process_vision(objects, depth)

Language Understanding

Enable natural language processing for robot commands

# Process language commands
language_stream = client.language.stream()

command = "Pick up the red cube and place it on the table"
parsed = language_stream.parse(command)

# Execute parsed command
robot.execute(
    action=parsed.action,
    target=parsed.target,
    location=parsed.location
)

Physics Simulation

Simulate and predict physical interactions in real-time

# Run physics simulation
physics = client.physics.simulate(
    objects=scene.get_objects(),
    gravity=9.81,
    timestep=0.01
)

# Predict trajectory
trajectory = physics.predict_trajectory(
    object="cube",
    force_vector=(10, 0, 5),
    duration=2.0
)

# Plan robot motion
robot.plan_motion(trajectory)

Real-Time Learning

Continuous learning from robot experiences

# Enable continuous learning
learning = client.learning.enable(
    robot_id="robot_001",
    learning_rate=0.001
)

# Stream experience data
for experience in robot.get_experiences():
    # Send to Odyssey for learning
    learning.update(
        state=experience.state,
        action=experience.action,
        reward=experience.reward,
        next_state=experience.next_state
    )
    
    # Get updated policy
    policy = learning.get_policy()
    robot.update_policy(policy)