美文网首页
ROS新手指导3 - Topics

ROS新手指导3 - Topics

作者: irene0_0 | 来源:发表于2020-07-03 17:56 被阅读0次

    7 理解ROS Topic

    前置条件

    1. roscore
      首先确认已经启动了roscore
    2. turtlesim
      在新终端运行小乌龟
    $ rosrun turtlesim turtlesim_node
    
    1. turtle keyborad teleoperation
      在新窗口执行
    $ rosrun turtlesim turtle_teleop_key
    

    现在我们可以使用键盘的上下左右键驱动小乌龟了
    接下来我们看下,在这个场景下边是什么在运行

    ROS Topics

    turtlesim_node和turtle_teleop_key节点是通过彼此的一个ROS topic通信的。turtle_teleop_key在topic上发布了消息,然后turtlesim订阅一样的topic去接受消息。rqt_graph可以展示当前正在运行的节点和topic。

    1. 使用rqt_graph
      如果没有,就安装它
    $sudo apt-get install ros-<distro>-rqt
    $sudo apt-get install ros-<distro>-rqt-common-plugins
    

    打开一个新终端,运行它

    $ rosrun rqt_graph rqt_graph
    

    我们可以看到一个图展示
    椭圆形的是节点,箭头上的是topic

    1. rostopic 说明
      我们可以使用rostopic查看发布的topic信息
    $ rostopic -h
    
    1. 使用rostopic echo
      这个命令展示了发布在topic上的数据
      打开一个新终端
    $ rostopic echo /turtle1/cmd_vel
    

    执行完之后,你可能什么数据都没有看到,让我们来让turtle_teleop_key通过键盘发布一些数据
    打开运行turtle_teleop_key的终端,使用键盘上下移动,此时查看echo的终端,就会看见数据了。
    现在我们再来看rqt_graph,展示的带有一串数字的就是rostopic echo,它也订阅了上边发布的topic

    1. 使用rostopic list
      这个展示了当前所有的已经订阅的发布的topic
      打开一个新的终端
    $ rostopic list -h
    

    展示简要信息

    $ rostopic list -v
    

    展示详细的topic信息

    ROS Messages

    节点之间通信通过topic发送消息信息。对于发布者和订阅者来说,他们必须发送和接收相同类型的消息。在topic上发送的消息类型可以通过rostopic type来决定。

    1. 使用rostopic type
    $ rostopic type /turtle1/cmd_vel
    

    我们可以使用rosmsg show geometry_msgs/Twist,查看类型的具体信息

    rostopic 扩展

    1. 使用rostopic pub
      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]'
    

    执行完,就可以看见小乌龟动了。

    4 rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
    
    1. 使用rostopic hz
      它展示了数据发布的速度
    $rostopic hz /turtle1/pose
    

    可以看到基本在60hz

    $rostopic type /turtle1/cmd_vel | rosmsg show
    

    使用rqt_plot

    打开新终端

    rosrun rqt_plot rqt_plot
    

    左上角输入 /turtle1/pose/x,点击右侧加号,再输入 /turtle1/pose/y,再点击+号,可以看到两条线
    那个界面,最小化或者拖着放大的时候,会core...

    相关文章

      网友评论

          本文标题:ROS新手指导3 - Topics

          本文链接:https://www.haomeiwen.com/subject/eiwsqktx.html