【松灵ROS2专栏·第 1 讲】ROS2 基础入门

目录

一、前言:为什么要学 ROS2?

二、ROS 的历史与 ROS1 / ROS2 的区别

2.1 ROS 的发展历程

2.2 ROS1 的优势

2.3 ROS1 的不足

2.4 ROS2 的设计优势

三、ROS2 开发前需掌握的 Linux 基础

3.1 指令表格

3.2 指令示例

四、ROS2 常用命令

五、ROS2 通讯机制:话题与服务

5.1 话题(Topic)通信:异步、单向、无反馈

5.2 服务(Service)通信:同步、请求-响应

5.3 话题 VS 服务:对比总结

六、ROS2 节点(Node)结构

七、小乌龟实操

1)启动仿真小乌龟

2)键盘控制

3)查看节点图(rqt_graph)

4)查看 话题 &服务 列表

5)调用清除轨迹服务

6)召唤一个小乌龟


一、前言:为什么要学 ROS2?

        ROS 是机器人领域的事实标准框架,而 ROS2 则是在 ROS1 的基础上彻底重构、提升实时性、跨平台性、分布式、可靠性的新一代系统。
        松灵机器人推出的《松灵ROS2开讲啦》聚焦ROS 2技术的学习平台,课程涵盖了ROS 2基础、Gazebo仿真、ROS 2建图算法、视觉模块等知识,帮助大家深入认知ROS 2在机器人开发中的应用和发展。


二、ROS 的历史与 ROS1 / ROS2 的区别

2.1 ROS 的发展历程

  • 2007:第一个版本诞生

  • 2010:ROS1 正式发布

  • 2017:ROS2 Ardent

  • 2022:ROS2 Humble LTS


2.2 ROS1 的优势


2.3 ROS1 的不足

ROS1 所有节点都依赖 ROS Core(Master),这是最大的架构缺陷。


2.4 ROS2 的设计优势

 ROS2 去掉 Master,最底层由 DDS 提供通讯支持:

  •  真·分布式(无中心 Master)

  •  高实时性(DDS QoS)

  •  更安全

  •  跨 Linux、Windows、Mac

  •  多种 QoS(可靠/不可靠、保持历史等)


三、ROS2 开发前需掌握的 Linux 基础

3.1 指令表格

指令作用
ls列出文件
cd切换目录
pwd查看路径
mkdir创建目录
cat查看文件内容
vim编辑文件
sudo提权执行命令

3.2 指令示例


四、ROS2 常用命令

类型命令作用
节点ros2 node list查看节点
节点ros2 node info /name查看节点详情
话题ros2 topic list查看话题
话题ros2 topic echo /topic订阅话题
话题ros2 topic pub /topic ...发布话题
服务ros2 service list查看服务
服务ros2 service call /srv ...调用服务
参数ros2 param list查看参数
参数ros2 param set ...设置参数

详细ROS2常用指令可以参考我之前写过的文章,链接如下:

ROS2 常用命令超详细总结(附 ROS1 & ROS2 对照表)-优快云博客https://blog.youkuaiyun.com/m0_58954356/article/details/155497277?spm=1001.2014.3001.5501


五、ROS2 通讯机制:话题与服务

5.1 话题(Topic)通信:异步、单向、无反馈

话题机制 = 发布者(Publisher)→ 订阅者(Subscriber)

特点:

  •  异步通信

  •  无需建立连接

  •  单向传输(只发送消息)

  •  无反馈机制

  •  可以多对多(一个话题可以 N 个发布者、N 个订阅者)

简而言之:
发布者 / 发布节点 只管发,不管有没有人收;
订阅者 / 订阅节点 一直收,也不管消息是否为空。

使用场景: 定位 / 速度 / 激光雷达等实时流式数据


5.2 服务(Service)通信:同步、请求-响应

服务机制 = 客户端(Client)↔ 服务端(Server)

特点:

  •  有“请求 → 回复”的闭环

  •  必须有人响应

  •  类似于函数调用

  •  一个 Service 服务器可对应多个客户端

  •  同步通信(典型)

简而言之:

服务端只会在客户端调用时才响应。

使用场景:
清除地图、重置位置、控制机械臂抓取、设置参数……


5.3 话题 VS 服务:对比总结

对比项TopicService
通信方式异步同步
方向单向双向
是否有回复❌ 无✔ 有
典型用法传感器数据、速度指令清除、生成、计算、获取值
连接不要求必须建立连接

话题与服务的最大区别:是否有反馈机制。


六、ROS2 节点(Node)结构

  • Node1:服务端 + 发布者

  • Node2:客户端 + 订阅者

  • Node3:订阅者

这是 ROS2 分布式系统的典型结构,每个节点只负责一种功能,模块化极强。


七、小乌龟实操

1)启动仿真小乌龟

ros2 run turtlesim turtlesim_node

2)键盘控制

ros2 run turtlesim turtle_teleop_key

3)查看节点图(rqt_graph)

ros2 run rqt_graph rqt_graph


4)查看 话题 &服务 列表

ros2 topic list
ros2 service list

5)调用清除轨迹服务

ros2 service call /clear std_srvs/srv/Empty

6)召唤一个小乌龟

ros2 service call /spawn turtlesim/srv/Spawn "{x: 3.0, y: 3.0, theta: 0.0, name: ''}"

注意两点:

  • Tab 键补齐
  • ros2 service call /spawn turtlesim/srv/Spawn 填写完后   打 “x, 然后tab补全
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值