跳转至

3. Ubuntu、终端与程序

ROS 2 程序运行在主控计算机上。要读懂后面的启动命令和故障信息,需要先认识操作系统、文件、程序、进程和终端之间的关系。

3.1 主控首先是一台计算机

WHEELTEC 机器人的主控可能是树莓派、Jetson、RDK、Atlas 或工控机。它与普通计算机一样,包含处理器、内存、存储设备和网络接口。传感器通常通过通用串行总线接口、串行端口或网络接入主控,ROS 2 程序在主控上读取数据并完成计算。串行端口是计算机与外部设备交换字节流的接口;在 Ubuntu 中,它通常会以 /dev/ttyUSB0 或 /dev/ttyACM0 这样的设备文件出现。

开发与排障时,我们关心三类对象:磁盘中保存的文件、内存中运行的进程,以及连接主控硬件的设备。操作系统负责统一管理这些对象。

3.2 操作系统管理什么

操作系统(Operating System, OS)位于硬件与应用程序之间。它分配处理器时间和内存,组织文件,管理用户权限、网络连接和外接设备,并为上层程序提供稳定的运行环境。

Ubuntu 是一种 Linux 操作系统,也是许多 WHEELTEC 主控采用的系统。系统启动后,Ubuntu 先建立计算与设备环境,ROS 2 节点随后在这个环境中运行。

机器人应用与 ROS 2 节点
           ↓
      Ubuntu 操作系统
           ↓
处理器、内存、磁盘、网络和外接设备

3.3 文件与目录

文件(File)保存程序、配置、地图和日志等内容,目录(Directory)用于组织文件和下级目录。图形文件管理器中的“文件夹”,在命令行语境中通常称为目录。

目录构成树状结构。终端始终位于其中一个目录,这个位置称为当前工作目录。执行查找、编译或修改命令前先确认当前位置,可以减少路径错误。

常见路径示例:

/home/wheeltec/robot_ws/src

从左到右依次表示根目录、用户主目录、工作空间和源码目录。路径中的 / 用于分隔各级目录。

3.4 程序与进程

程序是保存在存储设备中的可执行内容,包含完成某项工作的指令。程序开始运行后,操作系统为它建立进程(Process),并分配内存、设备句柄和运行状态。进程是程序的一次运行实例;关闭终端窗口不一定会结束所有进程,因此排障时要查看实际运行状态。

同一程序可以启动多次,因此可能同时存在多个进程。ROS 2 排障常常需要回答两个问题:磁盘上是否安装了所需程序,运行时是否存在对应进程。前者检查安装和路径,后者检查启动状态与日志。

3.5 终端与命令

终端(Terminal)是输入文字命令并查看输出的窗口。命令由程序名和可选参数组成,按下回车后,终端把请求交给对应程序执行,再显示结果或错误信息。终端本身负责交互,真正执行命令的是命令解释器(Shell)。

例如,pwd 调用一个查看路径的程序,输出当前工作目录;ls 读取目录内容,并列出其中的文件和下级目录。命令行能够完整保留输入与输出,因此适合复现操作和记录故障。

3.6 本地终端与远程终端

主控连接显示器和键盘后,可以直接打开本地终端。主控接入网络后,另一台电脑可以通过安全外壳协议(Secure Shell, SSH)建立加密连接,打开远程终端。

SSH 负责传输键盘输入、文字输出和会话数据。命令仍由机器人主控执行,使用的是主控中的文件、用户权限和设备。配置远程连接前,应先在本地终端确认主控的用户名、网络地址与服务状态。

3.7 安全的观察命令

下面五条命令只读取系统状态,适合用来熟悉终端。

查看当前目录

pwd

代表性输出:

/home/wheeltec

列出当前目录内容

ls

输出通常包含 Desktop、Documents 等文件或目录名称。

查看系统与硬件架构

uname -a

输出包含 Linux 内核版本以及 aarch64、x86_64 等架构信息。

查看当前用户

whoami

输出是一行用户名。这个身份决定当前会话可以访问哪些文件和设备。

查看运行中的进程

ps -e | head

输出前几行会显示进程编号、终端和程序名称。命令列出的是正在运行的进程;磁盘中保存的程序需要通过文件路径或软件包信息另行检查。

3.8 本章小结与练习

Ubuntu 管理主控的计算、文件、网络和设备资源。文件保存内容,目录组织路径;程序运行后形成进程;终端通过命令调用程序并显示结果;SSH 把远程电脑连接到主控终端。

在 Ubuntu 电脑或机器人主控上依次运行第 3.7 节的命令,并记录下列结果:

观察对象 命令 需要记录的内容
当前目录 pwd 完整路径
目录内容 ls 两个文件或目录名
系统信息 uname -a 内核与硬件架构
当前用户 whoami 用户名
运行进程 ps -e \| head 两个进程名

最后解释:通过 SSH 登录主控后,命令使用的是哪台计算机的文件和设备?

章节导航

上一章:一台 ROS 机器人如何工作 · 返回本篇 · 下一章:第一次观察 ROS 2