SDK Overview

Intro PythonVariables, loops, functions, imports, dictionaries, and basic debugging.

Before you start

  • Complete Robot Access on an assigned Gather developer robot
  • Know how to open Terminal and run a Python command
  • Basic Python variables, functions, imports, and with blocks

The prepared gather-sdk workspace gives you two simple starting points:

  • Camera for projects that need images, depth, pose, or motion-sensor data.
  • Robot for projects that need the camera, robot safety state, and supervised movement.

Your work belongs in ~/gather-sdk/projects. The SDK source and examples are available to inspect, but the platform manages them for you.

Learning Goals

By the end of this guide, you will be able to:

  • Verify the prepared SDK installation.
  • Choose between Camera and Robot.
  • Create and run a Python file in your projects folder.
  • Find the next guide when something does not work.

Vocabulary

  • SDK: Reusable classes and tools for programming a device.
  • Distribution: The installed Python project named gather-sdk.
  • Module: A Python file or package that you can import.
  • Class: A reusable blueprint such as Camera or Robot.
  • Context manager: A with block that opens hardware and guarantees cleanup.

Verify The Prepared SDK

Open Terminal on the robot:

cd ~/gather-sdk/projects
python3.10 -c "from gather_sdk import Robot, Camera; print('Gather SDK ready')"

The expected output is Gather SDK ready. Importing these classes does not open the camera, connect to the controller, enable motors, or move the robot.

Platform staff install the SDK from the prepared ~/gather-sdk folder. Do not run installation commands or copy packages from another source tree.

Choose A Starting Point

I want to...Start with
Read an image or depth mapCamera
Make a vision-only projectCamera
Read camera and robot safety state togetherRobot
Move the robot under instructor supervisionRobot
Use selected low-level hardware optionsgather_sdk.advanced

Your First Program

Create ~/gather-sdk/projects/my_first_camera.py:

from gather_sdk import Camera
 
with Camera() as camera:
    frame = camera.capture()
    print("Image size:", frame.rgb.shape)
    print("Capture time:", frame.timestamp)

Run it:

cd ~/gather-sdk/projects
python3.10 my_first_camera.py

What Each Line Does

  1. from gather_sdk import Camera loads the beginner camera interface.
  2. with Camera() as camera opens the ZED and guarantees it closes afterward.
  3. camera.capture() asks for one fresh camera update.
  4. frame.rgb.shape reports image height, width, and three color channels.

This program does not enable or move the motors.

Build It With An AI Coding Agent

Build a first Gather project

AI coding promptbuild

Create a small Python project in the prepared robot workspace using Camera or Robot.

Verify before running

Review the created file and run the compile command before deciding whether to run it with hardware.

Preview the prompt
You are a coding agent working on an assigned Gather robot. Work only inside ~/gather-sdk/projects. Inspect the existing files before changing anything, then create the smallest useful Python program for the goal I provide. Start with from gather_sdk import Camera or Robot and prefer Camera unless the project needs robot safety state. Do not use advanced backends or edit the installed SDK source. Keep hardware cleanup explicit with a context manager. Run python3.10 -m py_compile on every Python file you create or change. Never initiate physical motion, run the program against hardware, or claim a camera, controller, or robot action succeeded without reported evidence. Summarize the files changed, explain the important code in plain language, and leave one concrete output or behavior for me to verify before the project continues.

Paste this into an AI coding tool opened in ~/gather-sdk/projects.

Two Learning Paths

Beginner path

Use Robot and Camera from gather_sdk. Their defaults are intentionally small and consistent.

Advanced camera backends

Projects that need lower-level ZED options can use:

from gather_sdk.advanced import (
    ZEDCameraImpl,
    ZEDStreamClientImpl,
)

Continue using Robot from gather_sdk for all controller and motion access. You may create your own files using the preinstalled pyzed.sl API when a camera project needs raw ZED behavior. The developer bundle does not include installed robot applications.

Education Levels

  • Intro Python: variables, loops, functions, imports, dictionaries, and basic debugging.
  • Intermediate Robotics: Intro Python plus classes, NumPy arrays, sensor data, physical units, and supervised hardware use.
  • Advanced Autonomy: Intermediate Robotics plus perception pipelines, control loops, coordinate frames, and real-time behavior.

These labels describe expected skills. They are not scores and do not limit what you can learn.

Troubleshooting

No module named gather_sdk

Confirm you ran python3.10 on the assigned robot. Platform staff manage the editable installation; ask an instructor to repair it.

A ZED, CUDA, CuPy, or OpenCV dependency is missing

These libraries are preinstalled on developer robots. Do not download replacements into your project folder; ask an instructor to repair the platform environment.

The camera will not open

Check its cable and power, then close any other program using the ZED. Ask an instructor before restarting robot services.

Next Guides