从零开始玩转ROS:第一课 ROS简介与环境搭建

65 阅读2分钟

一、ROS是什么?

1.1 ROS的核心价值

ROS(Robot Operating System)并不是传统意义上的操作系统,而是一个中间件+工具库+生态的组合。它的核心思想是通过节点(Node)  之间的通信(如话题Topic、服务Service)来实现机器人功能的模块化开发。

  • 开源社区支持:NASA、MIT、丰田等大厂都在使用ROS开发机器人应用。
  • 硬件抽象:同一套代码可以控制不同的机器人硬件。
  • 工具丰富:Gazebo仿真、RViz可视化、rosbag调试工具一应俱全。

一句话总结:ROS作为机器人开发领域的“Android系统”,为开发者提供了强大的工具库和生态支持。

1.2 ROS的典型工作流程

以经典的turtlesim小乌龟仿真器为例:

  1. 键盘控制节点发布运动指令(Topic)。
  2. 乌龟仿真节点订阅指令并移动。
  3. 整个过程通过ROS核心(roscore)协调。

这种分布式架构让ROS非常适合开发复杂的机器人系统。

二、环境搭建

docs.ros.org_.png

ROS版本的选择,我们公司的ROS版本是Noetic, 我电脑的操作系统是ubuntu20.04, 所以本系列入门教程是以ROS Noetic版本介绍。

2.1 安装Ubuntu系统

ROS Noetic版本对应Ubuntu 20.04,推荐以下三种安装方式:

  1. 虚拟机安装(适合初学者):使用VMware或VirtualBox。
  2. 双系统安装(推荐8GB以上内存):性能更好。
  3. 云服务器(临时体验):适合没有本地资源的用户。

安装完成后,记得换国内源(如清华/中科大源)以加速软件下载。

2.2 安装ROS Noetic

参考官方文档:在Ubuntu上安装ROS Noetic

1. 安装步骤

# 1. 设置软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# 2. 添加密钥
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

# 3. 安装完整版ROS(包含GUI工具)
sudo apt update
sudo apt install ros-noetic-desktop-full

# 4. 初始化rosdep(注意可能出现的网络错误)
sudo rosdep init
rosdep update

# 5. 设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

2. 验证

(1) 启动ROS核心:

roscore

7da69061-2863-401e-9e08-bd94c65b93fe.png

(2) 启动小乌龟仿真器:

rosrun turtlesim turtlesim_node

306b3847-8e1a-4486-9933-f93357f46393.png

(3) 启动键盘控制: 按键盘↑↓←→键,看看小乌龟是否动起来了?

rosrun turtlesim turtle_teleop_key 480e8b93-4a11-4f79-972c-46adc2ffc6e3.png

这样我们的ROS环境就搭建好了。

三、开发环境配置

3.1 安装VSCode

VSCode是ROS开发的利器,安装命令如下:

sudo snap install --classic code

3.2 ROS插件和常用的设置

  1. 安装ROS插件(Microsoft官方):支持语法高亮和Launch文件解析。

17e24a3d-9b43-4215-a1d8-e444010b0b6d.png

  1. 安装CMake插件

7c109baf-0ec7-401d-a5f2-421272caf780.png

  1. 安装括号颜色插件

0f897cae-98f6-4dce-9dc9-b23bfd36b637.png

3.3 配置技巧

  1. 设置编译快捷键

快捷键 Ctrl + Shift + B 调用编译,选择:catkin_make:build

  1. 设置拼写错误检查

参考资料

ROS: www.ros.org
ROS Wiki: wiki.ros.org
ROSCon 2012~2019:roscon.ros.org
ROS Robots: robots.ros.org