当前位置:首页 > 技术 > 正文内容

NextPilot开发环境配置指南

访客 技术 2026年7月16日 1

NextPilot 是基于 RT-Thread 实时操作系统的国产开源自动驾驶系统,为提升开发效率,技术团队在 RT-Thread env-windows 基础上推出了定制化工具链:nextpilot-windows-toolchain(GitHub | Gitee)与 nextpilot-ubuntu-toolchain(GitHub | Gitee),实现开箱即用。

这些工具链已集成以下核心组件:

  • Python 3:预装 scons、kconfiglib、mkdocs、pyulog 等依赖包
  • gcc-arm-none-eabi:用于编译飞控固件
  • qemu-system-arm:支持硬件级仿真,实现虚拟飞行测试
  • Git:版本控制管理
  • ConEmu:增强型 Windows 终端(集成 clink),提供更高效的命令行体验

Windows 系统配置

下载工具链

nextpilot-windows-toolchain 克隆至 C:\nextpilot-windows-toolchain 目录:

git clone --depth=1 https://github.com/nextpilot/nextpilot-windows-toolchain.git

重要提示:当前工具链仅支持安装在 C:\nextpilot-windows-toolchain 路径。若更改安装目录,运行如 scons.exe 时可能报错,提示找不到 Python 解释器路径,错误信息如下:

Fatal error in launcher: Unable to create process using '"C:\nextpilot-windows-toolchain\toolchain\python\python-3.11.9-amd64\python.exe" "D:\nextpilot-windows-toolchain\toolchain\python\python-3.11.9-amd64\Scripts\scons.exe" ': ???????????

原因在于 pip 安装时写入了绝对路径,工具链内预置的执行文件仍指向原始路径。

添加右键快捷菜单

双击运行 start.bat 启动 ConEmu 终端,进入 Settings → Startup → Environment,添加如下菜单项:

  • Menu item: NextPilot Here
  • Command: {cmd} -cur_console:n
  • Icon file: C:\nextpilot-windows-toolchain\toolchain\conemu\ConEmuPack.230724\ConEmu64.exe,0

若使用 Windows Terminal,可直接在设置中新增配置文件:

  • Name: NextPilot Windows Toolchain
  • Command line: cmd.exe /k C:\nextpilot-windows-toolchain\init.bat
  • 其余保持默认

建议将此配置设为默认终端:打开 Windows Terminal → Settings → Startup → Default profile

启动开发终端

在 NextPilot 项目中,例如进入 bsps/sitl/qemu 文件夹,右键选择 NextPilot Here 即可快速打开集成环境。

终端启动后显示如下欢迎信息:

******************************************************************
*      _   __             __   ____   _  __        __
*     / | / /___   _  __ / /_ / __ \ (_)/ /____   / /_
*    /  |/ // _ \ | |/_// __// /_/ // // // __ \ / __/
*   / /|  //  __/_>  < / /_ / ____// // // /_/ // /_
*  /_/ |_/ \___//_/|_| \__//_/    /_//_/ \____/ \__/
*
* Copyright All Reserved (C) 2015-2024 NextPilot Development Team
******************************************************************

Clink v1.6.14 is available.
- To apply the update, run 'clink update'.
- To stop checking for updates, run 'clink set clink.autoupdate off'.
- To view the release notes, visit the Releases page:
  https://github.com/chrisant996/clink/releases

LaterComer@DESKTOP-JTKLBS9 C:\nextpilot-flight-control-public\bsps\sitl\qemu

Ubuntu 系统配置

获取工具链

克隆 nextpilot-ubuntu-toolchain 至任意不含中文字符的路径:

git clone --depth=1 https://github.com/nextpilot/nextpilot-ubuntu-toolchain.git ~/.ndt

激活环境

首次使用前需初始化环境:

source ~/.ndt/init.sh

该脚本会自动创建 Python 虚拟环境并安装所需依赖。

编译与仿真流程

在命令行中切换至目标 BSP 目录,执行以下操作:

cd nextpilot-flight-control/bsps/sitl/qemu

# 配置选项(可选)
scons --menuconfig
scons default --menuconfig

# 生成 Keil 工程
scons --target=mdk5
scons default --target=mdk5

# 编译固件(使用 10 个线程加速)
scons -j10
scons default -j10

# 启动 QEMU 仿真
qemu.bat

说明:位于 bsps/sitl/qemu/config/ 目录下的 *.config 文件(如 default.config)定义了构建参数,scons default 表示采用默认配置文件进行编译。

关于 NextPilot 飞控系统

NextPilot 是一款基于 PX4 与 RT-Thread 的国产开源自动驾驶仪,由 NextPilot 开发团队维护,广泛适用于教育、科研及工业自动化场景,帮助开发者聚焦于嵌入式开发、控制算法与业务逻辑等核心领域。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。