droneforge/nimbus_sdk

GitHub: droneforge/nimbus_sdk

Nimbus SDK 是一个面向自主无人机的可视化 Agent 开发与实时部署平台,通过节点式编排和表达式编程让用户快速构建具备 AI 视觉感知能力的自主飞行行为。

Stars: 223 | Forks: 20

# Droneforge SDK -- App 体验 ## 登录界面 首先是登录界面。您可以在一分钟内创建一个账户。我们要求您创建账户,以便您的 agent、运行记录和设置可以在不同设备和升级时同步。这也使得与社区共享 agent 并在稍后取回它们成为可能。 如果您已有账户,登录后即可进入主工作区。 login ## Build 选项卡 这是您创建 agent 的地方。左侧边栏是您的 agent 列表。“+”按钮用于添加新 agent。点击侧边栏中的任意 agent 可将其加载到编辑器中。如果您稍后想要飞行特定的 agent,请在部署前确保在此处选中了它。 agent ## Build 按钮 您将在构建视图中看到一组简短的操作按钮。以下是它们的功能: - Add node(添加节点):向您的 agent 添加一个新的构建块。 - Vision modes(视觉模式):您可以在此处专门选择要与您的 agent 实时运行的 AI 模型。它可以开启或关闭特定模型的推理。 - Download(下载):获取您的 agent 文件,以便您共享或备份。 - Save(保存):写入您的最新更改。请养成在切换选项卡之前进行保存的习惯。 2026-01-04-164821_hyprshot ## 表达式 表达式是您告诉 agent 该做什么的方式。将它们想象成简短、清晰的指令,将输入(如传感器)连接到输出(如控制)。如果您使用过电子表格或基本脚本编写,这会感觉很熟悉。 连接是节点之间的链接。当您将一个模块连接到另一个模块时,您是在说“将此输出用作该输入”。您将看到模块之间有一条线,因此您始终知道什么在向什么提供数据。 随着 SDK 的发展,语法和可用函数将不断扩展,但工作流程保持不变:创建一个模块,连接它,并在表达式中描述其行为。如果您不确定,可以从一个简单的表达式开始,然后逐步构建。 这是用简明语言编写的表达式指南,包含您可以引用的内容及其求值方式。 ### 快速规则 - 表达式可以是单个公式,例如 `input * 0.5`,它将 `input` 值减半。 - 您也可以直接分配输出:`roll = 992; throttle = 200`。使用分号可以在一个模块中执行多个分配。 - 使用括号控制操作顺序,例如 `(a + b) * 2`。 ### 输出命名(值的落脚点) 您可以通过两种方式写入输出: - 使用您的端口名称:`ax = ...`、`out_roll = ...`,或任何模块输出被命名的名称。 - 使用标准控制名称:`roll`、`pitch`、`yaw`、`throttle`、`aux1`、`aux2`。 ### 控制输出基础 (roll, pitch, yaw, throttle) 这四个是核心控制输出。它们都使用相同的 CRSF 范围: - 范围是 172 到 1811。 - 低油门 (Throttle low) 为 172。 - Roll、pitch 和 yaw 以 992 为中心。 - 高于 992 的值向右/向前/顺时针推;低于 992 的值向左/向后/逆时针推。 ### 输入和参数(您可以读取的内容) 输入按名称到达,因此您可以直接引用它们,例如 `speed` 或 `error`。您还可以获取: - 您在 UI 中定义的任何模块参数(按键名)。 ### 内置常量 - `pi` 或 `PI` - 飞行模式值:`angle`、`horizon`、`acro` 必须在控制节点中设置为 aux2 声明。 ### 时间和电池 - `time`(此节点开始运行以来的秒数) - `battery` 或 `battery_level`(百分比) - `battery_voltage`(伏特) ### 姿态和 IMU - `attitude_roll`、`attitude_pitch`、`attitude_yaw`(度) - `sensor_roll`、`sensor_pitch`、`sensor_yaw`(姿态的别名) ### 视觉目标(当前帧) - `target_x`、`target_y`(目标中心) - `target_width`、`target_height`、`target_diag` - `target_confidence` - `target_visible`(1 或 0) ### 视觉目标(历史记录) - `target_x_last_n`、`target_y_last_n` - `target_width_last_n`、`target_height_last_n`、`target_diag_last_n` - `target_confidence_last_n` - `target_visible_last_n`(1 或 0) - `frames_since_detection` ### 高度估算 (VIHO) - `floor_distance`、`ceiling_distance` - `height_data_valid`(1 或 0) - `viho_height`(天花板减去地板) ### 深度导航 - `nav_target_x`、`nav_target_y`、`nav_max_depth` - `nav_grid_row`、`nav_grid_col` - `nav_data_valid`(1 或 0) - `nav_left_depth`、`nav_right_depth`、`nav_center_depth` ### 光流 - `flow_x`、`flow_y`、`flow_magnitude`、`flow_angle` - `flow_valid`(1 或 0) ### 测距仪 - `rangefinder_distance`、`rangefinder_strength` - `rangefinder_valid`(1 或 0) ### 速度、加速度、高度 - `vel_x`、`vel_y`、`vel_z`、`vel_valid`(1 或 0) - `accel_x`、`accel_y`、`accel_z`、`accel_valid`(1 或 0) - `altitude`、`altitude_valid`(1 或 0) ### 光学范围 (optrange) - `optrange_distance` - `optrange_velX`、`optrange_velY`、`optrange_vz_measured` - `optrange_valid`(1 或 0) ### 可用运算符 - 数学:`+ - * /` - 比较:`== != < <= > >=` - 逻辑:`&&`(与),`||`(或) ### 函数(附简要说明) - `if(condition, true_value, false_value)` - `lin(start, end, duration)` 随时间从起始值斜坡变化到结束值 - `pid(setpoint, process_variable, kp, ki, kd [, max_output])` - `mem(value [, condition [, reset [, edge_once]]])` 存储并保持一个值 - `once(expr)` 仅求值一次,然后将其缓存 - `acceleration(desired_accel [, motor_efficiency])` 返回达到该垂直加速度所需的油门值 - `rand()` 随机生成 0..1 之间的值 - `randn()` 随机生成正态分布值(均值为 0,标准差为 1) - `randint(max)` 整数 0..max-1 - `randrange(max)` 浮点数 0..max - `sin`、`cos`、`tan`、`sqrt`、`abs`、`floor`、`ceil`、`sign`、`min(a,b)`、`max(a,b)` ### 小型实用示例 将简单数学运算输出到输出 0(这会将输入减半): ``` input * 0.5 ``` 带有赋值的控制输出: ``` roll = 992; pitch = 992; yaw = 992; throttle = 200 ``` 在目标可见时将其居中: ``` yaw = pid(320, target_x, 0.8, 0.0, 0.1, 300) ``` 2 秒内的平滑斜坡: ``` throttle = lin(172, 600, 2.0) ``` 在目标第一次出现时锁存标志: ``` aux1 = mem(1800, target_visible, 0, 1) ``` 随机悬停微调(仅求值一次): ``` roll = once(randrange(50)) - 25 ``` ## 部署您的 Agent 当您准备好飞行时,打开 Deploy 选项卡。您加载的 agent 显示在左上角。如果它不是正确的那个,请返回 Build 并选择它。 如果您通过表达式解锁无人机,请在按下播放键之前确保这些条件正确无误。 点击 Play 以部署加载的 agent。点击 Pause 以停止它。如果您有安全开关或紧急停止按钮,请始终将手放在其上。 ## Deploy 选项卡 这是您的实时控制和监控视图。 - 视频画面:如果画面是黑色的,请跳至下面的 VRX Controls。 - Nimbus 连接指示灯:右上角。如果它不是绿色的,说明您未连接。 - 四通道状态:右侧。这确认您的控制通道已激活。 - 无人机配置文件:设置无人机的质量和 KV,以确保物理特性正确。 - Play 和 Pause:启动和停止活动的 agent。 ## VRX 控制 使用这些控件将 Nimbus 连接到您的无人机。 - Bind(绑定):通过拔下并重新插入三次,使您的无人机进入绑定模式。您应该会看到快速闪烁三次。当您看到闪烁变为单次闪烁时,表示 Nimbus 已连接,点击 Bind。 - Scan(扫描):这将在 5.8 GHz 频段中循环,直到找到您无人机的传输信号。 2026-01-04-164949_hyprshot ## Flight 选项卡 使用此选项卡查看遥测数据和过去的飞行记录。您可以下载日志并使用它们来训练新模型或调试行为。 image ## 社区选项卡 这是您共享 agent 和浏览其他人构建的内容的地方。如果您发现有用的东西,可以下载它并将其变成您自己的。 2026-01-04-165122_hyprshot
标签:Agent开发, AI智能体, AI模型, Droneforge, Nimbus, 云同步, 传感器融合, 可视化编程, 实时推理, 工作空间, 开源, 无人机, 无人机控制, 机器人学, 登录界面, 社区分享, 自主系统, 节点编辑器, 表达式, 视觉模式, 计算机视觉, 飞控