ROS 快速入门教程01
先做一个快速入门ROS的笔记,系统学习的ROS会在快速入门学习完后进行。
1. 什么是ROS
ROS (Robot Operating System),机器人操作系统是一种用于机器人软件开发的框架,它并不是一个传统意义上的操作系统,而是一个中间件,提供了一系列的工具和服务,用于简化机器人应用程序的开发过程。
1.1 初步认识ROS
核心架构与通信机制
- 节点(Node)
 ROS 程序被划分成一个个小的可执行单元,称为“节点”。每个节点负责完成特定功能,例如传感器数据采集、路径规划、运动控制等。
- 主题(Topic)/ 发布–订阅(Publish–Subscribe)
 节点之间可以通过“主题”来进行异步消息传递。某个节点将消息“发布(publish)”到一个主题,其他对该主题“感兴趣”的节点就能“订阅(subscribe)”并接收消息。
- 服务(Service)
 对于需要请求-响应机制的场景(比如“请计算一下两点之间的最短路径”),ROS 提供了服务接口;调用方发起请求,执行方处理后返回结果。
- 动作(Action)
 动作接口适用于长时间运行且可以反馈进度的任务(如“移动到指定位置”),支持预emption(中断)和反馈。
- 参数服务器(Parameter Server)
 用来存储全局配置参数,如机器人的物理参数/配置文件路径等,所有节点都可以读取或修改。
版本演进:ROS1 vs ROS2
- ROS1 - 最早由 Willow Garage 在 2007 年推出,社区活跃,生态成熟;
- 使用 Master 节点进行节点发现和名称解析;
- 在实时性、安全性和跨平台支持(Windows、实时 Linux)上存在一些局限。
 
- ROS2 - 基于 DDS(Data Distribution Service)标准实现,无需集中式 Master,改进了实时性能和安全机制;
- 原生支持多种操作系统(Linux、Windows、macOS)和实时内核;
- 社区正逐步在新项目中推广,已有许多工业应用。
 
2. ROS安装
www.ros.org点击官方网站选择与自己ubuntu系统版本号相符合的ROS版本进行下载。
 本机为ubuntu20.04,对应的是ROS-noetic这个版本。其余版本有以下对应关系。
| ROS 发行版 | ROS 类型 | 对应 Ubuntu LTS 版本 | 
|---|---|---|
| Indigo Igloo | ROS 1 | 14.04 Trusty Tahr | 
| Jade Turtle | ROS 1 | 14.04 Trusty Tahr | 
| Kinetic Kame | ROS 1 | 16.04 Xenial Xerus | 
| Lunar Loggerhead | ROS 1 | 16.04 Xenial Xerus | 
| Melodic Morenia | ROS 1 | 18.04 Bionic Beaver | 
| Noetic Ninjemys | ROS 1 | 20.04 Focal Fossa | 
| Dashing Diademata | ROS 2 | 18.04 Bionic Beaver | 
| Eloquent Elusor | ROS 2 | 18.04 Bionic Beaver | 
| Foxy Fitzroy | ROS 2 | 20.04 Focal Fossa | 
| Galactic Geochelone | ROS 2 | 20.04 Focal Fossa | 
| Humble Hawksbill | ROS 2 | 22.04 Jammy Jellyfish | 
| Iron Irwini | ROS 2 | 22.04 Jammy Jellyfish | 
打开链接进入Noetic页面
 根据页面提示进行更换。
 
- 换源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
- 设置秘钥
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
- 安装
sudo apt update
sudo apt install ros-noetic-desktop-full
- 环境设置
source /opt/ros/noetic/setup.bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 检验是否安装完成
roscore

 有以下弹出信息就证明安装完毕
3.APT源
在 ROS 的安装和使用过程中,APT(Advanced Package Tool)源用于方便地从软件仓库安装和更新 ROS 包。通过添加 ROS 的 APT 软件源,用户可以轻松地获取 ROS 的各种功能包和工具,并确保软件的安装和管理是简便且可靠的。
 index.ros.rog打开网页找到适合自己的ros版本
 
 
 最上方的软件包
 安装软件包的方式一般为ros-ros版本-软件包名方式来下载安装。
 以rqt_robot_steering 为例,
 
sudo apt install ros-noetic-rqt-robot-steering 
3.2 使用软件包
- 新建一个终端窗口输入rosrun启动ros。
- 再新建一个窗口输入
rosrun rqt_robot_steering rqt_robot_steering
注意,第一遍rqt是包名,第二遍rqt是节点名
 
- 再打开一个终端程序
sudo apt install ros-noetic-turtlesim
安装小乌龟,再输入
rosrun turtlesim turtlesim_node
便可以用前面打开的rqt软件包来控制小乌龟的移动
 
4.开源自由市场github
- 创建工作目录
mkdir catkin_ws
cd catkin_ws
mkdir src #创建代码目录
cd src
- 下载git
sudo apt install git
- 在src目录下克隆github开源项目
git clone https://github.com/6-robot/wpr_simulation.git

- scripts目录放置脚本文件和Python程序
 打开scripts目录,并打开终端。依次运行./+脚本名
./install_for_noetic.sh
./install_for_melodic.sh
./install_for_kinetic.sh
- 编译
cd ~/catkin_ws/
catkin_make
- 配置环境
source ~/catkin_ws/devel/setup.bash
- 运行包的功能
 roslaunch wpr_simulation  wpb_simple.launch 

 我们可以用之前下载的软件包来控制仿真环境下的机器人移动
rosrun rqt_robot_steering rqt_robot_steering 
记得删去turtle1
 
 
此时就能控制机器人的移动
- 保存工作空间环境
gedit ~/.bashrc
source ~/catkin_ws/devel/setup.bash
