谈谈对ROS的简单理解

ROS作为一款中间件,可以在多台机器上运行

  • 提供publish/subscribe,client/server两种通信方式
  • 提供Topic回放、录制功能
  • 支持强大的调试命令行
  • 支持C++、Python两种语言

1.ROS结构

  • Package

    • Node:节点,代码运行的最小单元,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。

    • 节点通信的三种方式:

    • Topic:话题,Node通过Topic进行通信,Node可以发布消息到Topic,也可以订阅Topic以接收消息

    • Service:Node间通过Service互相调用服务,Node可以提供或使用某种服务
      rospy = python 客户端库
      roscpp = c++ 客户端库

    • parameter

      • 运行时的参数
      • 相当于环境变量
  • Rosbag
    提供Topic录制和回放功能

  • Command

2.ROS命令

roscore :运行所有ROS程序前首先要运行的命令
rosnode ping node_name:测试能否ping通某个节点

  • Node:
    • rosnode list : 查看正在运行的Node
    • rostopic [package_name] [node_name] : 运行某节点
    • rosnode kill nodename:删除节点
  • Topic:
    • rostopic list:查看所有的Topic
    • rostopic echo[topic]:跟踪某个Topic的信息
    • rostopic type[topic]:查看Topic类型
    • rosrun rqt_graph rqt_graph:查看节点关系图
    • rostopic pub [topic] [msg_type] [args]:从命令行发布消息
    • rostopic hz [topic]:查看某个topic的频率
  • Service:
    • rosservice list:查看Service列表
    • rosservice call [service] [args] :调用Service
  • rosbag:
    • rosbag record -a :记录所有Topic
    • rosbag info < bagfile_name>:查看bag信息
    • rosbag record -O subset < topic1> < topic2>:记录某些Topic
    • rosbag play < bagfile_name>:回放bag
    • rosbag play < bagfile_name> /topic1:=/topic2 :在运行rosbag节点时,修改要发布的topic

3. 对Topic通信的简单理解

两个node之间通过topic进行通信,message是数据的载体,包含一个节点发送给其他节点的信息数据,其中一个node向topic发布message,另外一个node通过订阅topic来接收message,注意:message的类型由topic决定,且两个message类型必须相同。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值