和ROS的框架有关的问题

qq_27462707 2023-08-21 19:50:20

ROS框架描述角度的不同:

1. 分为通信和节点来描述:

ROS通信机制分为:(1)订阅者发布者类型 (2)服务(请求/响应)类型 (3)动作类型。

2. 按层次从上到下划分为

(1)应用层,一般需要开发者自己实现

(2)客户端库层(目前的ROS2应该都实现的)

(3)中间件DDS抽象层(目前的ROS2应该都实现的)

(4)DDS实现层(可能是第三方实现)

 

我的问题是:

1. 从ROS自身的描述来看,NODE节点就是以进程为单位,一般是实现一个单一的功能。但是这个功能最终是靠底层硬件的支持来实现的。但是我看到这个NODE却是放在最顶层的应用层层次里面,需要ROS应用开发者自己来抽象的,这需要如何理解?

2. 协调各个节点的消息交互,我的理解应该是放到应用层的,但是我却看到是DDS在实际提供节点间通信的。那么DDS管节点间通信,那么这些节点都是存在于应用层的,DDS该怎么管呢?应用层不该直接协调各个节点的消息交互或者说是通信吗?

刚刚接粗ROS就遇到这些让我稀里糊涂的问题了。敬请各位大师们指点迷津,谢谢先!

 

...全文
290 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
万俟淋曦 2023-09-03
  • 打赏
  • 举报
回复

各层不是分隔开来的,他们之所以有不同的层级,是因为处理的事务抽象度不同,不能将上层与底层分隔来看。Node离业务比较近,抽象Node时开发者不必考虑过多的硬件层的东西,只需更多的关注业务逻辑。而DDS主要负责通信管理,它和Node间的接口已由ROS管理,执行各种通信时,只需调用ROS开放的接口即可,使得开发者可以将更多精力放到业务开发中。更深层的可以看一下ROS2的文档和源码,但初学不建议了解太细节的东西。

qq_27462707 2023-09-04
  • 举报
回复
@万俟淋曦 谢谢万俟大师的指点!是不是定制的硬件需要基于厂家支持(至少是提供相关技术资料)来实现较为底层的DDS具体实现?
万俟淋曦 2023-09-06
  • 举报
回复
@qq_27462707 是的,DDS是一种通用协议,定制硬件的话,要和厂家确认是否支持DDS协议,而且由于DDS协议是作为ros2的一个插件的,不同的DDS插件对硬件性能要求也不一样,同样支持DDS的硬件,也要根据你选择的插件看硬件性能是否合理,这个一般DDS官方文档会有说明。不过ros2默认的DDS插件Fast RTPS对硬件性能要求不高。

33,121

社区成员

发帖
与我相关
我的任务
社区描述
旨在分享机器人领域相关技术,帮助大家提升机器人领域相关能力,为我国机器人研发与制造领域添砖加瓦。 欢迎大家在这里分享技术博客,提问机器人相关问题,一起学习,共同进步。如问题帖长时间无回复,可加群交流。
机器人人工智能科技 个人社区 浙江省·杭州市
社区管理员
  • 万俟淋曦
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

旨在分享机器人领域的相关技术,帮助大家提升机器人领域相关的技术能力,为我国机器人研发与制造领域添砖加瓦。

包括但不限于以下相关技术方向:Linux、ROS1、ROS2、OpenCV、Deep Learning、Machine Learning、Eigen、Qt等等。

大家可以在这里分享技术博客,提问机器人相关问题。

【社区积分规则】

  • 在社区「发布内容」得 15 积分
  • 内容被管理员「加精」得 20 积分
  • 点赞他人内容得 2 积分
  • 评论内容得 5 积分

试试用AI创作助手写篇文章吧