# Feather SDK Documentation Documentation for SDK version **{{ sdk_version }}**. ## Installation The Feather SDK is a Python package (Python 3.9–3.14) for controlling Feather robots. Install it from PyPI: ```bash pip install feathersdk ``` ## Quickstart `feathercli` is the SDK command-line tool. See [FeatherCLI](feathercli.md) for how it works and the full command reference. For how the robot object and its modules fit together, see [Overview](overview.md). For commanding the neck, torso, base, and arms, see [Actuator systems](actuator_systems.md). ### 1. System Installation On a fresh device, we must do a one-time feathersdk system install. You can check if everything is installed using: ```bash feathercli install --verify ``` You can install system files using: ```bash 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: ```bash 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: ```bash 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: ```bash feathercli control keyboard ``` ### 4. Example File Create an example .ipynb file showing the feathersdk API by running: ```bash feathercli example ``` ### 5. Example Code `initialize_feather_system` loads your config file and returns a ready-to-use `FeatherRobot`. ```python # 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 ```{toctree} :maxdepth: 1 :caption: Guides overview actuator_systems feathercli logging log_parsing ``` ## API Reference ```{toctree} :maxdepth: 3 :caption: API Reference api/feathersdk ``` ## Release Notes ```{toctree} :maxdepth: 1 :caption: Release Notes changelog ```