ros基本操作
newsun-boki Lv3

ros基本操作

topic

我们都知道话题机制是ros中必不可少的一个机制,那怎样查看我们所发布的话题呢

  • list命令可以看到我们当前总共有哪些topic
    1
    rostopic list
  • echo命令可以输出指定topic里的消息的内容
    1
    rostopic echo cmd_vel #cmd_vel是一个小海龟的速度topic
  • hz命令可以计算指定topic消息发布的平均速率
    1
    rostopic hz cmd_vel
  • info命令可以输出topic里的message的数据类型以及发布者接受者
    1
    rostopic info cmd_vel
  • rosmag show可以显示某个数据类型里具体的数据类型结构(注意这个和当前运行的程序没有关系)
    1
    rosmsg show geometry/Twist 
    上面这个命令显示了geometry/Twist里包含的具体数据结构,如角速度(angular)xyz线速度(linear)xyz,geometry/Twist是cmd_vel这个topic里的消息的数据类型。

rqt

rqt是ros里可视化最基础的方式。

  • rqt_graph可以显示出整个ros的分布式架构,包括节点,话题,服务等等
    1
    rqt_graph
  • rqt_plot可以实时绘制出具体的话题里的消息里的一个或多个数据的变化曲线
    1
    rqt_plot cmd_vel/linear/x cmd_vel/angular/z

rosbag

rosbag可以记录消息,还可以重放消息。这对我们调试某个模块非常有帮助。

1
2
cd ~/bagfiles
rosbag record -a

-a 选项表示将当前发布的所有 topic 数据都录制保存到一个 rosbag 文件中,录制的数据包名字为日期加时间。
也可以只记录某些感兴趣的 topic

  • 想要录制指定topic上的消息,你可以运行
    1
    rosbag record cmd_vel

如果要指定生成数据包的名字,则用-O /-o 参数,

1
rosbag record -O filename.bag /topic_name1

如果在 launch 文件中使用 rosbag record 命令,如下:

1
<node pkg="rosbag" type="record" name="bag_record" args="/topic1 /topic2"/> 
  • rosbag info指令可以显示数据包中的信息:

    1
    rosbag info filename.bag
  • rosbag play
    接下来回放数据包中的 topic。

    1
    rosbag play <bagfile>

    如果想改变消息的发布速率,可以用下面的命令,-r 后面的数字对应播放速率。

    1
    rosbag play -r 2 <bagfile>

    如果希望 rosbag 循环播放,可以用命令

    1
    rosbag play -l  <bagfile>  # -l== --loop

    如果只播放感兴趣的 topic ,则用命令

    1
    rosbag play <bagfile> --topic /topic1

    在上述播放命令执行期间,空格键可以暂停播放。

roslaunch

这里我就不写了
精品博客:http://ttshun.com/2018/05/24/ROS学习之roslaunch/
来自励志献身slam的阿翔,里面有很多好的博文都可以去看一看,特别是slam相关的

备注

未完待续,这里有一篇 比较详细的代码建议详细看一看:http://ttshun.com/2018/03/22/ROS学习之基本概念和命令/

  • Post title:ros基本操作
  • Post author:newsun-boki
  • Create time:2021-11-03 01:56:47
  • Post link:https://github.com/newsun-boki2021/11/03/ros基本操作/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.