Feather SDK Documentation

Documentation for SDK version 0.2.0.

Installation

The Feather SDK is a Python package (Python 3.9–3.14) for controlling Feather robots. Install it from PyPI:

pip install feathersdk

Quickstart

feathercli is the SDK command-line tool. See FeatherCLI for how it works and the full command reference. For how the robot object and its modules fit together, see Overview. For commanding the neck, torso, base, and arms, see Actuator systems.

1. System Installation

On a fresh device, we must do a one-time feathersdk system install. You can check if everything is installed using:

feathercli install --verify

You can install system files using:

sudo feathercli install --all -v YOUR_VERSION

Where YOUR_VERSION is the version of the Feather robot you have, eg: “v0.5.1”.

Note

If feathersdk is not installed in your system /usr/bin/python environment, sudo won’t be able to find the correct feathercli. You would instead need to activate your environment you wish to use and run:

sudo -E $(which feathercli) install --all -v YOUR_VERSION

Note

We only support Python 3.9+ for full feathersdk usage, however you should be able to pip-install and use feathercli install on 3.7+ just for installation. This way, you can use the default shipped python on a fresh jetson install by just running:

pip install --upgrade pip && pip install feathersdk && sudo feathercli install --all -v YOUR_VERSION

2. Configs

Configs are python files. Their default location is /feathersys/configs. Edit those configs as needed. Setting a system in FeatherRobotConfig() to None will disable that system.

3. Keyboard Control

Control the robot with your keyboard by running:

feathercli control keyboard

4. Example File

Create an example .ipynb file showing the feathersdk API by running:

feathercli example

5. Example Code

initialize_feather_system loads your config file and returns a ready-to-use FeatherRobot.

# Initialize the feather robot 
from feathersdk.robot.robot import initialize_feather_system, FeatherRobot

robot: FeatherRobot = initialize_feather_system()

nav = robot.navigation_system
neck = robot.neck_system
torso = robot.torso_system
monitor = robot.data_monitor_service
manip = robot.manipulation_system
camera = robot.camera_service
odom = robot.odometry_service

Anything not present in your config is None, so only the systems and services you enabled are available.

Guides

API Reference

Release Notes

Release Notes