《wiki官网教程》 4 可视化与调试工具
一、保存和回放数据
1、录制数据(通过创建一个bag文件)
记录ROS系统运行时的话题数据,记录的话题数据将会累积保存到bag文件中。
1、Terminal 1:
$ roscore
Terminal 2:
$ rosrun turtlesim turtlesim_node
Terminal 3:
$ rosrun turtlesim turtle_teleop_key
2、Terminal 4:检查看当前系统中发布的所有话题。
$ rostopic list -v
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [roslib/Log] 2 publishers
* /rosout_agg [roslib/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
Subscribed topics:
* /turtle1/cmd_vel [turtlesim/Velocity] 1 subscriber
* /rosout [roslib/Log] 1 subscriber
3、开始录制
Terminal 4:
$ cd ~/bagfiles
$ rosbag record -a
然后回到turtle_teleop节点所在的终端窗口并控制turtle随处移动10秒钟左右。
4、结束录制
在运行rosbag record命令的窗口中按Ctrl-C退出该命令。
2、回放
现在我们已经使用rosbag record命令录制了一个bag文件,
接下来我们可以使用rosbag info检查看它的内容,使用rosbag play命令回放出来。
$ rosbag info <your bagfile>
查看bag文件中的内容而无需回放出来。 $ rosbag play <your bagfile>
回放bag文件以再现系统运行过程。
3、录制数据子集
rosbag record -O subset /turtle1/command_velocity /turtle1/pose
命令中的-O参数告诉rosbag record将数据记录保存到名为subset.bag的文件中,同时后面的话题参数告诉rosbag record只能录制这两个指定的话题。 --------------------- 本文来自 NodYoung 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/nnnnnnnnnnnny/article/details/75142585?utm_source=copy
二、rqt_console 和 roslaunch
rqt_console属于ROS日志框架(logging framework)的一部分,用来显示节点的输出信息。
rqt_logger_level允许我们修改节点运行时输出信息的日志等级(logger levels)(包括 DEBUG、WARN、INFO和ERROR)。通过设置日志等级你可以获取该等级及其以上优先等级的所有日志消息。
例子:turtlesim在rqt_console中的输出信息,同时在rqt_logger_level中修改日志等级。
Terminal 1 2:
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
Terminal 3:
$ rosrun turtlesim turtlesim_node
默认日志等级是INFO,所以你会看到turtlesim启动后输出的所有信息
刷新一下rqt_logger_level窗口并选择Warn将日志等级修改为WARN
Terminal 4:小乌龟动起来
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'
roslaunch可以用来启动定义在launch文件中的多个节点。
创建turtlemimic.launch文件
<launch>
<group ns="turtlesim1">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<group ns="turtlesim2">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
</launch>
-
<launch>
:以launch标签开头以表明这是一个launch文件。 -
<group ns="turtlesim1">
:创建了不同分组并以’命名空间(namespace)’标签来区分。这样可以让我们同时启动两个turtlesim模拟器而不会产生命名冲突。 -
<node pkg="turtlesim" name="mimic" type="mimic">
:启动节点。
Terminal 1:
roslaunch beginner_tutorials turtlemimic.launch
Terminal 2:
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'