2021-08-14

ROS学习-话题topic

写在前面

本文编写于ROS初学阶段,目的在于学习记录同时 与大家简单分享。ROS相关学习资料在国内较为稀少,B站古月居上传一定入门视频,但仍不够详尽,有些细节还需自己再斟酌。相比之下wai网资源较为丰富,维基百科好像也有不错的教程介绍,有兴趣的朋友可以 自己找找。

开始

 首先ROS系统在Ubuntu系统中需要打开ROSmaster(节点管理器)才能进行ros的相关节点操作,这里关于ROS系统的工作结构古月在B站做过一些介绍,简单来说就是节点管理器管理node节点之间的topic话题传输。

1.打开新的终端运行 roscore ,将打开节点管理器。如果你没有退出上一个管理器将会出现提示语 “Please kill other roscore、master processes before relaunching”;
2. 为了打开“海龟”turtlesim,打开一个新终端输入

rosrun turtlesim turtlesim_node

输入的同时可利用“tab”键提高书写效率,同时出现海龟窗口;
3. 为了能够通过按键控制海龟运动,这里需要再打开一个新终端:

rosrun turtlesim turtle_teleop_key

当然海龟的运动也可以通过程序控制,我们后面再说。现在我们就可以利用键盘上下左右键控制海龟运动。

ROS话题

上面上个终端通过命令生成了两个节点 turtlesim_nodeturtle_teleop_key ,节点之间通过话题通讯,节点管理器链接管理,海龟运动的同时,按键“key”节点发布publish消息,海龟turtlesim则订阅这些消息,从个知道该如何运动。
利用动态图显示这些节点:

$ rosrun rqt_graph rqt_graph

如果没有安装,安装命令如下:

$ sudo apt-get install ros-<distro>-rqt
$ sudo apt-get install ros-<distro>-rqt-common-plugins

rostopic

  1. rostopic 命令可以帮助你获取ros话题的相关信息。可以通过rostopic -h或者rostopic双击tab键以获得相关提示或信息。

  2. rostopic echo 命令可以获取在某个话题上发布的数据。格式为

rostopic echo [topic]
  1. 列出当前已订阅和发布的所有话题rostopic list -h
  2. 使用 rostopic type命令来查看消息类型rostopic type [topic]
  3. 使用rostopic pub [topic] [msg_type] [args]来把数据发布到当前正在广播的话题。示例:
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

这一选项(两个破折号)用来告诉选项解析器,表明之后的参数都不是选项。如果参数前有破折号(-)比如负数,那么这是必需的。

如前所述,一个turtlesim/Velocity消息有两个浮点型元素:linear和angular。在本例中,’[2.0, 0.0, 0.0]‘表示linear的值为x=2.0, y=0.0, z=0.0,而’[0.0, 0.0, 1.8]'是说angular的值为x=0.0, y=0.0, z=1.8。这些参数实际上使用的是YAML语法。

  1. 利用rostopic hz [topic]报告数据的发布速率。
  2. 利用$ rosrun rqt_plot rqt_plot绘制话题数据。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值