8.1使用rqt_console和rqt_logger_level
rqt_console是ros日志框架(logging framework)一部分,用来显示节点的输出信息。
rqt_logger_level允许我们修改节点输出信息的日记等级(包括DEBUG,WARN,INFO和ERROR)
现在看一下turtlesim在rqt_console中输出的信息,同事在rqt_logger_level修改日记等级。
首先,确保已经ros初始化
roscore
其次,启动console
rosrun rqt_console rqt_console
会弹出
顺便把logger_level启动
rosrun rqt_logger_level rqt_logger_level
弹出(说明下,下图我已经改成了warm)
现在启动turtlesim_node
rosrun turtlesim turtlesim_node
此时能在console中多了一行
从第三格可知道,默认日记等级是info。
那我们尝试在logger_level中修改一下等级,将nodes是/rosout/,loggers是ros,levels从info改成warm
通过命令行话题方式让turtle动起来并观察console输出。
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0,0.0,0.0]' '[0.0,0.0,0.0]'
会看到
8.2日志说明
日记等级
Fatal>Error>Warn>Info>Debug
就是Fatal优先级最高,然后依次降低。如果将等级设置为warn,你只会收到warn以上优先等级的信息,也就是warn,error和fatal。
8.3使用roslaunch
roslaunch用法: roslaunch [package] [filename.launch]
先打开turtlesim的终端,按下ctrl+c退出。
然后切换到beginner_tutorials程序包下:
roscd beginner_tutorials
如果roscd失败,也许是环境变量原因(如果跟着我步骤,基本没这个问题),没问题请忽略紧跟的下一条指令
export ROS_PACKAGE_PATH=~/indigo_workspace/sandbox:$ROS_PACKAGE_PATH
然后创建一个launch文件夹并进入该文件夹:
mkdir launch
cd launch
然后创建一个turtlemimic.launch文件
gedit 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>
8.4launch文件解析
第一行<launch>表示是一个launch文件
接着就是创建两个group(也就是节点分组啦),并以ns(命名空间namespace)区分,一个是turtlesim1,另一个是turtlesim2。两个组都使用相同的节点sim,这样可以同时启动两个turtlesim模拟器而不会产生命名冲突。
第三部分也就是<node pkg...>开头处到</node>,这里启动模仿节点,话题输入和输出分别重命名为turtlesim1,和turtlesim2,并让turtlesim2模仿turtlesim1.
最后一行</launch>是launch文件的结束标签。
8.5roslaunching
通过roslaunch命令来启动launch
roslaunch beginner_tutorials turtlemimic.launch
会弹出两个turtlesim窗口,然后我们在新终端使用rostoick命令发送速度设置消息
rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '2.0,0.0,0.0' '[0.0,0.0,-1.8]'
然后两个窗口的乌龟都做同样的运动。
可以通过rqt_graph更好理解launch,在新终端下
rqt_graph
会弹出