ROS入门总结(一):重要概念与常用命令

3 篇文章 0 订阅

ROS中,节点之间通过发布话题和订阅话题来通信,在程序中是通过消息发布器和订阅器来实现,数据流通过话题的发布和订阅在节点之间传播,而数据流的数据类型则称为消息msg。

 

重要概念:

  • Nodes节点:

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。节点之间使用不用的编程语言一样也可以通信。

  • Topics话题:

A节点和B节点之间是通过一个ROS话题来互相通信的。A在一个话题上发布按键输入消息,而B节点则订阅该话题以接收该消息。

  • Messages消息:

话题之间的通信是通过在节点之间发送ROS消息实现的。对于发布器和订阅器之间的通信,发布器和订阅器之间必须发送和接收相同类型的消息。这意味着话题的类型是由发布在它上面的消息类型决定的。rostopic type 话题名  #查看发布在某个话题上的消息类型。

  • Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。

 

相关文件:

  • package.xml文件

创建一个软件包后该包目录下会自动生成一个package.xml文件,该文件中有许多的标签,其中依赖项标签记录了编译依赖和运行依赖的软件包。

  • .launch文件用于定义即将即将启动的多个节点
  • .bag文件用于保存录制的话题消息
  • .msg文件用于定义新的消息类型

 

常用命令:

  • roscore  用于在master主机上打开ros服务,之后就提供节点之间的发布订阅服务。

所有参与ros的主机的.bashrc文件中配置master主机的ip需要统一,

 

  • catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

使用catkin_create_pkg命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy

  • catkin_make

完成当前工作空间中所有软件包的编译

 

  • rospack find 软件包名 #查找软件包目录
  • rospack depend1 软件包名 #查看软件包的一级依赖
  • rospack denpend 软件包名 #递归查看软件包的所有依赖

 

  • roscd 软件包名  #能够直接打开软件所在目录,前提是该软件包名已经加入系统环境路径
  • roscd log  #查看ros的运行日志
  • rosls 软件包名   #直接显示软件包中所有文件

 

  • rosnode list  #列出活跃的节点
  • rosnode info /节点名 #获取对应节点信息
  • rosrun 软件包名 节点名  #让一个节点开始运行

 

  • rostopic list #查看当前所有的话题
  • rostopic echo 话题名 #查看当前话题内容

 

  • roslaunch 软件包名 filename.launch  #启动.launch文件中定义的所有节点

 

  • rosed 软件包名 文件名

通过vim编辑包中的文件

 

  • rosbag record -a #将当前发布的所有话题数据录制保存到当前文件夹中
  • rosbag info .bag文件 #查看bag文件相关信息
  • rosbag record -O 文件名 话题名话题名2 话题名3......#录制制定的话题数据
  • rosbag play .bag文件名 #回放.bag文件中话题信息

-l 循环回放

-r 2  以两倍速发布回放

-s 跳过初始部分后才真正开始回放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值