Linux 与 ROS 常用指令:我复制粘贴的到底是什么

这篇来自我之前问过的一句话:“给我来一些 Linux 系统、ROS 系统常见指令,我一直都是复制粘贴指令,都不知道写的啥。”下面保留那次回答的核心结构,把 Ubuntu 20.04 与 ROS Noetic 中最常见的命令重新整理出来。

先看懂 Linux 终端命令

Linux 命令通常是“命令 + 选项 + 参数”。先弄清当前目录和文件,再处理 ROS,排错会清楚很多。

  • pwd:显示当前所在目录。
  • ls / ls -la:列出目录内容;-a 会显示隐藏文件。
  • cd 路径:切换目录;cd .. 返回上一级;cd ~ 回到主目录。
  • mkdir 文件夹:新建目录;touch 文件:新建空文件。
  • cp 源 目标:复制;mv 源 目标:移动或重命名。
  • cat 文件:直接查看文本;less 文件:分页查看;nano 文件:终端内编辑。
  • find 路径 -name '名称':找文件;grep -R '关键词' 路径:在文件内容中搜索。
  • history:查看执行过的命令;clear:清理终端显示。

source 为什么经常出现

source 会让当前终端读取一个脚本中的环境设置。ROS 教程经常要求执行 source,是因为新开的终端并不知道你的工作空间在哪里。

source /opt/ros/noetic/setup.bash 加载 ROS Noetic;source ~/catkin_ws/devel/setup.bash 加载自己编译后的工作空间。写进 ~/.bashrc 后,新终端可以自动加载,但修改前应先确认路径正确。

ROS 中最常用的一组命令

ROS 命令围绕节点、话题、服务、参数和功能包展开。每一组命令都在回答不同的问题。

  • roscore:启动 ROS Master;ROS1 通信的基础。
  • rosrun 包名 节点名:运行某个功能包中的一个节点。
  • roslaunch 包名 launch文件:按 launch 配置同时启动多个节点和参数。
  • rosnode list / rosnode info:查看节点列表和节点信息。
  • rostopic list / rostopic echo / rostopic info:查看话题、数据和连接关系。
  • rosmsg show 消息类型:查看消息结构。
  • rosservice list / rosservice type / rosservice call:查看并调用服务。
  • rosparam list / get / set:查看和修改参数。
  • rospack find 包名、roscd 包名、rosls 包名:查找和进入功能包。

catkin 工作空间的标准流程

之前的 ROS 练习都在 catkin_ws 中进行。常见流程是进入工作空间、编译、加载环境,再运行节点。

  • cd ~/catkin_ws:进入工作空间。
  • catkin_make:编译 src 中的功能包。
  • source devel/setup.bash:让当前终端识别刚编译的包。
  • rospack find 包名:确认 ROS 已经能找到它。
  • rosrun 或 roslaunch:启动程序。

当时还涉及的工具

Gazebo 用来运行机器人仿真环境,RViz 用来显示地图、激光、坐标系和路径。建图与导航练习还会用到 gmapping、map_server、move_base 和 amcl;rosbag 可以录制、播放话题数据。

这篇不是新的学习经历,而是把此前那次完整指令教学压缩成一份以后能直接查的笔记。