前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器人】满级码农入门ROS1机器人编程QA

【机器人】满级码农入门ROS1机器人编程QA

作者头像
杨丝儿
发布2022-03-01 11:12:56
4260
发布2022-03-01 11:12:56
举报
文章被收录于专栏:杨丝儿的小站杨丝儿的小站

编程思想:消息是ROS程序的一等公民。

碎碎念:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客技术点集中在机器人、人工智能可解释性、数学、物理等等,感兴趣地点个关注吧,持续高质量输出中。

⭐️知识点整理

❓问:ROS框架的设计理念是怎么样的?

  • ROS2采用分布式架构,采用自发现的方式进行节点间的通信建立。
  • ROS1相对就显得不伦不类,因为rosmaster,也就是主节点的存在,ROS1的架构介于分布式系统和客户端/服务端系统之间。
  • 主节点负责命名,起到和地址字典类似的作用。

⭕️答:ROS1关键词域

代码语言:javascript
复制
graph TB
    subgraph 程序相关
        C[多线程]-->
        F[面向过程普通节点]
        C-->G[面向对象服务节点]
    end
代码语言:javascript
复制
graph TB
    subgraph 节点相关
        A[主节点]---
        B[分布式]---
        H[命名空间概念]---A
    end

    subgraph 消息相关
        D[通信策略]---
        E[消息对象]---D
    end

⭕️答:ROS1到2的进步

ROS 2.0 主要是为了让 ROS 符合工业级的运行标准,采用了 DDS 这个工业级别的中间件股则可靠的额通信。

  • 通信节点可以动态地发现新的节点,而且用共享内存的方式使得通信效率更高。
  • 依赖于动态的 P2P 的自发现模式,也就去掉了 ROS Master 这个中心节点。
  • DDS 上层通过 DDS API 封装,实现了 DDS 的实现对于 ROS Client 透明。
  • 注:ROS 2.0 还是一个开发中的框架,还需要时间。

参见:自动驾驶技术笔记:ROS系统

❓问:ROS开发环境配置策略该是怎样的呢?

ROS是一个软件框架,备选的语言有python和C++。但是需要注意的是,不管是哪种语言的环境,都需要按照官方文档中的安装方法进行安装和配置。

如果不这样做,那么,举例来讲,ROS1同时使用Python3和Python2的问题就很难解决了。

推荐使用Linux系统环境,因为频繁的终端操作。同时不建议使用命令行插件进行辅助开发,ROS自带的catkin工具已经足以满足开发需要。

可以阅读一下:【机器人】开发系统镜像制作指南

❓问:命名也有OS两个字母,为什么说ROS是中间件?

首先OS,也就是操作系统的定义是要与系统硬件交互,并提供一套用户使用的方法。ROS不具备这样的性质,但是因为在机器人硬件设备上,对外暴露出来的不是底层运行的正常OS而是在OS之上的ROS,所以感觉ROS也是一个OS,负责控制系统硬件。

就是因为这样的性质,我们使用ROS间接得控制系统底层硬件,所以叫做中间件。

⭕️答:软硬件桥接方式

这个并不是ROS需要考虑的问题,根据平台的不同,我们使用的桥接方法也不尽相同。但是为了保证程序的泛用性,我们在命令行中通过重命名消息实现软硬件节点的通信。

⭕️答:编程语言的接口

ROS中,python相关的依赖是rospy,而C++就是roscpp。

❓问:ROS程序设计中的常用调试工具有哪些?

可以从下面几个指令开始了解:rqt_graphrostopicrosmsgrosservicerossrv

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ⭐️知识点整理
  • ❓问:ROS框架的设计理念是怎么样的?
    • ⭕️答:ROS1关键词域
      • ⭕️答:ROS1到2的进步
      • ❓问:ROS开发环境配置策略该是怎样的呢?
      • ❓问:命名也有OS两个字母,为什么说ROS是中间件?
        • ⭕️答:软硬件桥接方式
          • ⭕️答:编程语言的接口
          • ❓问:ROS程序设计中的常用调试工具有哪些?
          相关产品与服务
          消息队列 TDMQ
          消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档