第 1 周:Linux + C++/Python + ROS 基础(Day 1~7)
Day 1:Linux 终端命令(ROS 90% 操作都靠它)
上午 9:00–11:30 | 必背命令
掌握这些命令,能解决大部分日常运维问题。
查看日志与进程状态
top # 实时查看 CPU 占用
htop # 更直观的进程管理工具
dmesg # 系统启动日志
文件操作基础
ls -la # 显示所有文件及详细信息
cd # 切换目录
pwd # 显示当前路径
mkdir -p # 递归创建文件夹
rm -rf # 删除文件或目录(慎用)
cp -r # 复制文件夹
mv # 移动或重命名
下午 14:00–17:00 | 权限 + 包管理
权限控制是 Linux 安全的核心,包管理则是安装依赖的关键。
sudo chmod 777 file # 修改文件权限
sudo chown -R user:user folder # 递归修改所有者
sudo apt update # 更新软件源列表
sudo apt install xxx # 安装软件包
晚上 19:00–20:30 | 实战练习
建议建立一个 ros_ws/src 目录,通过实际操作来验收成果。不看笔记能敲出 15 条常用命令是基本要求。
实操步骤: 假设你使用的是 Ubuntu + ROS Noetic/Kinetic/Melodic 等环境:
- 创建工作空间结构
mkdir -p ~/ros_ws/src cd ~/ros_ws/src - 创建示例功能包
这里用
rospy和std_msgs作为依赖示例。catkin_create_pkg hello_ros rospy std_msgs - 编译工作空间
回到根目录并执行编译,这会生成
build和devel目录。cd ~/ros_ws catkin_make - 验证与清理
复制一份 src 做备份,确认无误后删除,模拟真实开发中的版本管理流程。
cp -r src src_backup ls -l rm -rf src_backup ls -l
高频 ROS 命令速查表
下面列出 15 条高频 ROS 命令(以 ROS1 为例,ROS2 略有差异),面试中常考:
roscore— 启动 ROS Master、参数服务器、rosout 节点(必须先运行)catkin_create_pkg <pkg_name> [dependencies]— 创建功能包catkin_make— 编译工作空间(在 workspace 根目录执行)source devel/setup.bash— 设置当前终端的环境变量(使能工作空间)rospack find <pkg_name>— 查找功能包路径roscd <pkg_name>— 切换到功能包目录rosls <pkg_name>— 列出功能包里的文件rosrun <pkg_name> <executable>— 运行功能包中的节点roslaunch <pkg_name> <file.launch>— 启动 launch 文件(可一次启动多个节点)rosnode list— 列出当前运行的节点rosnode info <node_name>— 查看节点信息(话题、服务、参数)rostopic list— 列出当前活跃的话题rostopic echo <topic_name>— 打印话题消息内容rostopic pub <topic_name> <msg_type> <args>— 发布话题消息rosparam list— 列出参数服务器上的参数
为什么 Linux 对 ROS 至关重要?
Linux 是 ROS 的主要运行平台,在启动、编译、调试、部署各环节都扮演核心角色:
- 启动:ROS 节点本质是 Linux 下的进程,
roscore、rosrun、roslaunch都是在 Linux Shell 中执行的命令。roslaunch会调用 Python 脚本解析 XML 并启动多个 Linux 进程。 - 编译:ROS 使用 catkin(基于 CMake)构建系统,依赖 Linux 下的 GCC/G++ 编译器、make 工具。
catkin_make或catkin build在终端执行,生成可执行文件放在devel/lib/<pkg>/或install/目录。 - 调试:常用 Linux 命令配合 ROS 工具调试,如
rosnode、rostopic、rqt_graph、gdb(C++ 节点调试)、valgrind(内存检查)。利用 Linux 的进程管理(ps, kill, top)查看和控制 ROS 节点。 - 部署:机器人实际运行时通常在 Linux 系统(如 Ubuntu)上,将编译好的工作空间 deploy 到目标机。通过 shell 脚本或 systemd 服务实现开机自启动 ROS 节点。
一句话总结:Linux 为 ROS 提供了进程管理、编译链、调试工具和运行环境,是 ROS 开发、测试、部署的基石,所有操作都依赖 Linux 的 Shell 环境与系统工具链。
