FF SDKDeveloper Docs v0.1.0a0
One SDK · Every Robot

One API
to drive your entire robot lineup

一套 API
驱动整个机器人产品线

FF SDK is a unified robot-control development kit for developers. Humanoids and quadrupeds, real robots and simulation — all driven through the same async Python API. Motion, state telemetry, audio, vision, expressions — learn once, run everywhere.

FF SDK 是面向开发者的统一机器人控制开发包。人形与四足、真机与仿真, 全部通过同一套 async Python API 控制 —— 运动、状态遥测、语音、视觉、表情,一次学习,处处运行。

Choose your platform
选择你的平台
Humanoid · 人形

Futurist

target: A2-<sn>

Full-size humanoid robot. The most fully featured platform: motion + state + audio + vision + expressions all available, with manipulator arms / navigation / face check-in maturing.

全尺寸人形机器人。能力覆盖最全的平台:运动 + 状态 + 语音 + 视觉 + 表情全部可用,机械臂 / 导航 / 人脸考勤持续完善中。

motionstateaudiovisiondisplayarm
View docs →
查看文档 →
Humanoid · 人形

Master

target: X2-<sn>

Compact humanoid robot. Preset actions / uploaded motion-package playback plus state telemetry available; pairs with the motion-studio ecosystem to play custom dance packages.

紧凑人形机器人。预置动作 / 上传动作作品播放与状态遥测可用,配合动作工作室生态可播放自制舞蹈动作包。

motionstatepresetsuploads
View docs →
查看文档 →
Quadruped · 四足

Aegis

target: D1-<sn>

Quadruped robot-dog lineup (point-foot / wheeled-foot / EDU / Ultra). Motion control and full state telemetry verified on real hardware, including stunt actions and joint-level telemetry; self-contained wheel with zero extra dependencies.

四足机器狗产品线(点足 / 轮足 / EDU / Ultra)。运动控制与全套状态遥测真机验证,含特技动作与关节级遥测,自包含 wheel 零额外依赖。

motionstatepresetsjointsC++
View docs →
查看文档 →
Quadruped · 四足

Navi

target: NV-<sn>

Compact quadruped robot. Motion + state + over a hundred extended actions (bow / wave / dance / expressions), deeply tunable gait and motion parameters, and a dedicated session.navi.* namespace.

紧凑型四足机器人。运动 + 状态 + 上百个扩展动作(鞠躬 / 招手 / 舞蹈 / 表情),步态与运动参数深度可调,专属 session.navi.* 命名空间。

motionstate134 actionssetters
View docs →
查看文档 →
Thirty-second tour
三十秒看懂
quickstart.py — any platform, the same code
import asyncio, ff_sdk

async def main():
    # Swap the target prefix to switch robots — the API stays the same
    robot = await ff_sdk.connect("D1-DEMO")        # Aegis quadruped
    # robot = await ff_sdk.connect("A2-DEMO")      # Futurist humanoid
    # robot = await ff_sdk.connect("X2-DEMO")      # Master humanoid
    # robot = await ff_sdk.connect("NV-DEMO")      # Navi quadruped
    # robot = await ff_sdk.connect("mujoco://d1")  # physics sim, no hardware

    await robot.motion.stand()                     # stand up
    await robot.motion.cmd_vel(linear=0.3)         # move forward 0.3 m/s
    await asyncio.sleep(2)
    await robot.motion.stop()

    battery = await robot.state.battery()          # read battery
    print(f"battery {battery.percent:.0%}")

    await robot.close()

asyncio.run(main())
quickstart.py — 任何平台,同一套写法
import asyncio, ff_sdk

async def main():
    # 换一个 target 前缀,就是换一台机器人 —— API 不变
    robot = await ff_sdk.connect("D1-DEMO")        # Aegis 四足
    # robot = await ff_sdk.connect("A2-DEMO")      # Futurist 人形
    # robot = await ff_sdk.connect("X2-DEMO")      # Master 人形
    # robot = await ff_sdk.connect("NV-DEMO")      # Navi 四足
    # robot = await ff_sdk.connect("mujoco://d1")  # 物理仿真,免真机

    await robot.motion.stand()                     # 站立
    await robot.motion.cmd_vel(linear=0.3)         # 前进 0.3 m/s
    await asyncio.sleep(2)
    await robot.motion.stop()

    battery = await robot.state.battery()          # 读电量
    print(f"电量 {battery.percent:.0%}")

    await robot.close()

asyncio.run(main())
Design principles
设计原则
[ 01 ]

Capabilities as interfaces

能力即接口

Every feature is organized by capability domain: robot.motion / robot.state / robot.audio… A capability the platform doesn't support raises CapabilityNotSupported explicitly — it never fakes success.

所有功能按能力域组织:robot.motion / robot.state / robot.audio…… 平台不支持的能力会明确抛出 CapabilityNotSupported,绝不假装成功。

[ 02 ]

Safety first

安全优先

Built-in e_stop() emergency stop, diagnose() health check, and state-machine guards. Dry-run mode lets you exercise your full business logic with no hardware attached.

内建 e_stop() 紧急停止、diagnose() 健康体检、状态机保护。dry-run 模式让你在没有真机时也能完整跑通业务逻辑。

[ 03 ]

Simulation as a first-class citizen

仿真一等公民

mujoco:// physics simulation and real hardware share one API. Get your logic right in sim first, then connect to hardware — the examples library ships sim-to-real migration recipes.

mujoco:// 物理仿真与真机共享同一套 API。先在仿真里把逻辑调对,再连真机 —— 示例库提供 sim-to-real 迁移菜谱。

[ 04 ]

Self-contained distribution

自包含分发

Each platform's devkit fits in a single zip: wheels (robot aarch64 + dev-machine x86_64), docs, and runnable examples. No third-party vendor SDK to install.

每个平台的 devkit 一个 zip 全装下:wheel(机器人 aarch64 + 开发机 x86_64)、文档、可运行示例。不需要安装任何第三方厂商 SDK。

FF SDK v0.1.0a0 · Python ≥ 3.10 · Proprietary License · report security issues per the SECURITY.md inside each devkit
FF SDK v0.1.0a0 · Python ≥ 3.10 · Proprietary License · 安全问题请按各 devkit 内 SECURITY.md 上报