先看懂 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 可以录制、播放话题数据。
这篇不是新的学习经历,而是把此前那次完整指令教学压缩成一份以后能直接查的笔记。