DUDuuu.studio

Back

简介#

在前五篇文章介绍完仿真的基本流程后,我们开始一个新的部分:真机飞行。真机相对于仿真需要更多的配置,对安全性有更高的要求,我们会依次介绍。今天首先介绍机载电脑的刷机流程。

在利用ROS控制无人机时,机载电脑承担着关键的计算任务,可以在不影响底层飞控的同时提供足够的算力,实现实时路径规划、多机协同决策、视觉SLAM等任务。如果还未搭建仿真环境,建议先参考 ROS2+PX4 仿真环境开发教程 完成仿真端的准备工作。本文以Nvidia Jetson Orin NX为例,刷入Ubuntu 22.04系统。

需要准备的硬件:

  • 机载电脑(此处使用Nvidia Jetson Orin NX)
  • 机载电脑电源
  • 鼠标、键盘外设以及显示器
  • 至少一根杜邦线
  • 配备有Ubuntu双系统或者虚拟机的个人电脑
  • USB转type-C线

主机环境依赖#

主机的Ubuntu系统需要安装必要的依赖:

sudo apt install sshpass abootimg nfs-kernel-server libxml2-utils
bash

注意:虚拟机烧录时会下载大量的烧录文件,请使用虚拟机进行烧录的朋友务必留够不少于100G的磁盘空间!

安装SDK Manager#

SDK Manager是常见的Nvidia机载电脑的刷机工具,我们先前往 Nvidia SDK Manager 下载。

如果进入后需要登录注册,大家自行注册一个Nvidia账号即可。进入页面后,直接下载对应Ubuntu系统的deb安装包。

SDK Manager下载页面
图 1:进入页面直接点击下载即可

下载后的文件统一储存在 ~/Download 目录下,进入并安装:

cd ~/Download
sudo dpkg -i sdkmanager_2.3.0-12617_amd64.deb
bash

如果此时出现报错,多为依赖项缺失或者依赖冲突(dependencies problems),需要修复并更新依赖:

sudo apt-get install -f
bash

完成之后重新启动系统并再次安装。安装完成后出现以下界面,此处又需要登录,直接登录即可:

SDK Manager登录成功
图 2:出现这个页面则说明成功

至此,用于刷机的SDK Manager就安装完成了。

启动烧录模式#

对于有Recovery按键的机载电脑,根据具体说明长按或短按按键即可。对于Orin NX这类无Recovery按键的机载电脑,通常采用短接引脚通电的方式,此处笔者给出说明。

根据Nvidia Jetson Orin NX官方文档的说明,我们需要将GND和FC REC两个引脚短接通电10秒。这两个引脚位于机载电脑风扇的正下方:

引脚位置示意图
图 3:引脚位置

GND引脚为第二个引脚,FC REC为第三个:

杜邦线短接两个引脚
图 4:用一根杜邦线短接两个引脚

用一根杜邦线将两个引脚短接,随后将USB口接入本机电脑,type-C口接入机载电脑,为机载电脑接入电源10秒后,SDK Manager上会进入以下页面,此时进入烧录模式成功。

注意:请不要急于点”Continue”,后续还有一些说明。现在可以将短接的杜邦线拔掉,后续不再需要,防止烧坏机载电脑。后续烧录过程中,请保持电源的连接。

SDK Manager显示界面
图 5:SDK Manager的显示界面

进行烧录#

回到刚刚进入的页面,现在需要做以下几个设置:

  1. 取消勾选 Host Machine
  2. Target Hardware 中选择自己的机载电脑型号(在USB和type-C连接成功后,应该会自动显示)
  3. 根据自己的Jetpack版本号选择SDK Version,笔者在之前的ROS2仿真中使用的是Ubuntu 22.04,此处也对应选择 Jetpack 6.2.1,支持Ubuntu 22.04
取消勾选Host Machine
图 6:取消勾选 Host Machine
JetPack版本选择
图 7:下拉选择自己的JetPack版本号,图中显示各版本支持的系统

此时可以选择Continue进行第二步,这里会检查相应组件的安装情况,大家直接默认不动就好。同时勾选底部以下两个选项,表示先下载组件,再进行安装,此时SDK Manager会开始下载刷机所需的包。如果弹出主目录里没有nvidia的目录,直接点”Create”继续即可。

当底部进度条走完并且出现”Download Completed successfully”的时候,说明下载完成,点击”Finish”进入安装。

下载选项
图 8:先同时勾选两个选项

随后SDK Manager会再次进入第一步选择各种型号的页面,像最先开始一样取消勾选”Host Machine”并选择对应Jetpack版本号,进入下一步。此时在第3栏中,SDK Manager会检测下载状态,如图所示均为”Downloaded”,表示均已下载完成。现在需要取消勾选”Download now. Install later”,因为已经下载好了,直接安装刷机即可。

取消勾选下载选项
图 9:取消勾选第二项

随后SDK Manager会进入长时间的刷机过程,需要保持等待。第一个弹窗需要填写用户名和密码,和首次装Ubuntu系统时基本类似。这里推荐使用jetsonnvidia,防止后续使用SSH进行本地电脑与机载电脑连接时出现奇怪的bug。

后续还会弹出几个弹窗,因为我们使用的是USB连接而非以太网连接,只需确保弹窗中的选项是USB,同时用户名和密码为第一次输入的用户名和密码即可(一般而言不需要修改)。

填写用户名和密码
图 10:填写用户名和密码

烧录关键:保持USB连接稳定#

在烧录过程中,需要一直在屏幕前,尤其是虚拟机的用户。系统会显示USB不断地被弹出(Removed)和重新添加(added)。如果使用双系统进行烧录,只需注意USB被弹出后是否及时自动重新添加;而如果使用虚拟机,还要将USB连接到虚拟机而非主机,此过程不断反复,需要不断操作,不可以选择”记住我的选择”

USB切换至虚拟机
图 11:每次都需手动切换到虚拟机

烧录完毕#

将鼠标、键盘、显示器等外设连接到机载电脑上。随着烧录的进行,显示器驱动会成功安装,可以在显示器上看见Ubuntu系统的安装进程。现在要做的就是等待,并随时保证USB的连接稳定。

显示器亮起
图 12:烧录过程中显示器被点亮,烧录即将完成

等到SDK Manager的安装进度条走完,显示”Finished”,则说明烧录完成。此时连接显示器,可以看见Ubuntu的登录界面,用户名为jetson,大功告成!

烧录成功
图 13:烧录成功

现在,大家可以连接鼠标、键盘外设,对机载电脑进行设置操作。同时,按照我们之前给出的ROS2+PX4仿真开发流程,将实机飞行需要用到的Micro-XRCE-DDS-Agent和需要的ROS2工作空间及px4_msgs、px4_ros_com源码克隆到机载电脑上。刷机完成后,下一步就是 使用 MAVROS2 让机载电脑控制 PX4 无人机,实现 Offboard 模式起飞。

总结#

与配置开发仿真环境一样,真机的实验有更高的安全性要求,因此相应的流程也会更加繁琐。希望通过本篇文章,能够让大家更加轻松地上手使用ROS进行真机实验。在类似ROS、无人机这些工程性质较浓的领域,一些经验性的知识显得必不可少,可以帮助我们将更多精力放在核心的工作中,笔者期望与大家一起不断补充、修改、更新这些知识。

最后,诚挚地希望各位读者能够提出意见或者建议,感谢大家的阅读和不断的支持鼓励!

参考资料#

ROS2真机实践:为机载电脑刷机(以Jetson NX为例)
https://duduuu.xyz/zh/posts/px4-ros2-jetson-flash
Author dudu
Published at 2026年7月10日
阅读
总访问