机器人操作系统入门(三)ROS通信架构

参考资料:

https://www.icourse163.org/course/ISCAS-1002580008?tid=1003713012  //中国大学MOOC

https://www.bilibili.com/video/av23401751  //B站

《ROS操作系统入门讲义》PDF下载

链接:https://pan.baidu.com/s/1OCja2WLDRnjYXMrpnZ3-sQ 
提取码:mziy

第三章 ROS通信架构(一)

1. 节点node:ROS世界中最小的进程单元

  • 程序角度:可执行文件被执行,加载至内存,生成node
  • 功能角度:一个node复制机器人的一个单独功能

注:可执行文件是静态的,节点node是动态

2. 节点管理器master

  • node首先在master处进行注册,之后master会将该node纳入整个ROS程序中
  • node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信

3. 启动master和node

  • roscore  //启动master、rosout和parameter server
  • rosrun pkg_name node_name  //rosrun寻找包pkg_name下名为node_name的可执行程序

注:rosrun命令的详细用法  rosrun [--prefix cmd] [--debug] pkg_name node_name [ARGS]

示例:rosrun --prefix 'gdb -ex run --args' pkg_name node_name  //在GDB下运行ros程序

注:通过 rosnode help 查看命令帮助

4. launch文件:一次性把多个节点按照预先的配置启动起来

(1)用法:roslaunch pkg_name file_name.launch  //若master没有启动,那么roslaunch就会首先自动启动master

(2)写法与格式:xml格式规范

(3)示例

  • 启动rospy_tutorials软件包中单个节点talker

  • Ros-Academy-for-Beginners 中的 robot_sim_demo:启动gazebo模拟器,导入参数内容,加入机器人模型

5. 话题topic  //适用于实时性、周期性的消息,如传感器数据

(1)ROS的四大通信方式

  • Topic 话题  //节点对节点的单向通信异步通信
  • Service 服务  //请求-查询式的双向通信模型;同步通信
  • Parameter Server 参数服务器  //使用数据字典维护全局共享参数
  • Actionlib 动作库  //请求-响应-反馈式双向通信

(2)话题的建立过程(单向

  1. publisher节点和subscriber节点都要到节点管理器进行注册
  2. publisher会发布topic
  3. subscriber在master的指挥下会订阅该topic,从而建立起sub-pub之间的直接通信

注:

  • 异步指的是发布者和订阅者不关心对方的状态,各司其职,不存在协同工作
  • topic发送时调用publish()方法,发送完成立即返回,不用等待反馈
  • subscriber通过回调函数的方式来处理消息
  • topic可以同时有多个subscribers,也可以同时有多个publishers;ROS中这样的例子有:/rosout、/tf等等

(3)topic常用命令

注:使用 rostopic help rostopic command -h 查看具体用法

6. Message(.msg)  //topic的数据格式标准,利用 rostopic type topic_name 进行查看

(1)msg的基本数据类型:bool、int8、int16、int32、int64(以及uint)、float、float64、string、time、duration、header、可变长数组array[ ]、固定长度数组array[C]

示例:sensor_msgs/msg/image.msg

注:可以将msg类比为“类”,而每次发布的具体内容为“对象”

(2)rosmsg的常用命令

 

转载于:https://www.cnblogs.com/hg-love-dfc/p/10396539.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载ROS机器人操作系统入门,首先需要访问ROS官方网站,并确保你的计算机满足系统要求。ROS当前支持Ubuntu操作系统,所以你需要确保你的计算机上安装了Ubuntu。 在官方网站上,你可以找到ROS的最新版本。在发布页面上,你可以找到ROS的各个版本和对应的教程。选择适合你的版本,并按照页面上的说明进行下载。 ROS有两个主要分发版本:ROS 1及ROS 2。如果你是新手,建议下载ROS 1,因为它有更广泛的社区支持和更多的教程资源。 下载完ROS的安装包后,你可以按照网站上的指导来安装ROS。通常,安装过程涉及一些命令行操作,需要在终端中输入一些指令。 安装完成后,你可以使用命令行工具验证ROS是否正确安装。输入`roscore`命令并按Enter键,如果ROS成功启动,你将看到一些输出信息。 一旦你成功安装并验证了ROS,你可以开始学习ROS的基础知识。ROS提供了很多教程和示例代码,可以帮助你入门。你可以在ROS的官方教程页面上找到详细的学习内容。 此外,你还可以参加一些ROS相关的在线课程或培训班,通过与其他人的交流和实践,更深入地了解ROS的应用和开发。 总之,下载ROS入门版很简单,只需访问ROS官方网站、选择合适的版本、按照指示进行下载和安装即可。正式入门ROS后,你将有机会学习和掌握构建复杂机器人系统所需的基本概念和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值