前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS2零基础快速入门

ROS2零基础快速入门

作者头像
zhangrelay
发布2019-12-20 14:29:54
1.2K0
发布2019-12-20 14:29:54
举报

ROS2入门最快需要多少时间?3天;

ROS2开发一款基础机器人需要多久?3个星期;

ROS2怎么才能算“精通”?不可能,3年也不行……

如何判断一款通用性软件成熟并可以投入精力去学习呢?

  • 一个最简洁的标准就是全平台(Windows、MacOS、Linux……)
  • +全语言支持(C++、Python、Java……)

有句毒鸡汤不知道该不该讲…… 叫做合格的程序员都该会点Linux,我不赞同。 不论是理论还是应用,都不依托系统平台实现,或者说好的软件是跨平台的。

那么,ROS2符合这样标准吗?2019年5月之后的ROS1和2都符合。

为什么要学习ROS2?

  • 如果喜欢钻研机器人,推荐
  • 如果对机器人无感,不推荐
  • 不要试图通过学习ROS入门或者研究机器人(学)
  • 先有机器人(学)……然后才有ROS……

如何避免入门后无方向感?

  • ROS本来就没有方向,“通讯架构平台”何来方向一说?
  • 学ROS之前,如果没有明确目标,学完后依然不会有
  • 这个问题和ROS无关,不要通过学习一门工具,去探索人生的方向性……

目前github上:

  1. ROS1(1.2k star):https://github.com/ros/ros
  2. ROS2(1.4k star):https://github.com/ros2/ros2

ROS1和2官网入门教程已经趋于一致,不要通过学习ROS1掌握ROS2,如果之前没有接触过ROS,可以直接了解一下ROS2,有需要再学习,“ROS不是万能的”。

这里给出课程中提供的两个ROS2资料:

  1. ROS2 190912:链接:https://share.weiyun.com/5P5Z4HP 密码:hxdnvx
  2. 机器人操作系统ROS2浅析:链接:https://share.weiyun.com/5ma4aPa 密码:xaacrd

零基础快速入门ROS2的基础知识点:

  • 节点:ROS中的每个节点用于实现单个模块功能(例如,一个节点用于控制电机,一个节点用于控制激光测距仪等)。每个节点都可以通过主题topic,服务service,行动action或参数param向其他节点发送和接收数据。一个完整的机器人系统由许多协同工作的节点组成。在ROS 2中,单个可执行文件(C ++程序或Python程序等)可以包含一个或多个节点。(https://cloud.tencent.com/developer/article/1557305
  • 主题:ROS 2将复杂的系统分解为许多模块化的节点。主题是ROS图(ROS graph)的重要元素,功能为节点交换消息的总线。节点可以将数据发布到任意数量的主题,与此同时,可以实现对任意数量主题的订阅。主题是节点间数据交互的重要方式,同样也适用于系统各种不同模块之间的交互。(https://cloud.tencent.com/developer/article/1557306
  • 服务:服务是ROS图中节点通信的另一种方法。 服务基于调用-响应模型,不同于主题的发布-订阅模型。 主题实现节点订阅数据流并获得连续更新,但是服务仅在客户端专门调用它们时才提供数据。(https://cloud.tencent.com/developer/article/1556886
  • 参数:参数是节点的配置值。 可以将参数视为节点设置。 节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。 在ROS 2中,每个节点都维护自己的参数。 所有参数都是可以动态重新配置的,并且是基于ROS 2服务构建的。(https://cloud.tencent.com/developer/article/1556885
  • 行动:行动action是ROS 2中用于长时间运行任务的通信类型之一。 它由三部分组成:目标,结果和反馈。行动基于主题和服务。 它们的功能与服务相似,但行动是可抢占的模式(即,可以在执行时将其取消)。 与返回单个响应的服务不同,它们还提供稳定的反馈(过程状态反馈)。行动使用客户端-服务器端模型,类似于发布者-订阅者模型(已经在主题教程中进行了介绍)。 “行动客户端”节点将目标发送到“行动服务器”节点,该节点确认目标并返回反馈流和一个结果。(https://cloud.tencent.com/developer/article/1557308
  • 启动:启动文件launch可以同时启动和配置许多包含ROS 2节点的可执行文件。(https://cloud.tencent.com/developer/article/1556923
  • 工具:rqt、logger、bag和doctor等。(https://cloud.tencent.com/developer/article/1557310

很多朋友留言建议使我受益匪浅,后续内容将以源码分析为主,戏说那些有趣又实用的ROS案例源代码,描绘一个由数学公式到代码复现再到具体应用的奇妙机器人世界。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档