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