ROS学习笔记(十)- 使用rqt_console 和 rosl
1 准备rqt和turtlesim package
下载rqt和turtlesim包,有了就不用下载了。
$ sudo apt-get install ros-<distro>-rqt ros-<distro>-rqt-common-plugins ros-<distro>-turtlesim
如果不确定有没有安装,重新装一下也没什么影响。<distro>替换成版本号,比如kinetic。
2 使用rqt_console 和 rqt_logger_level
rqt_console 连接ROS的日志框架,能够显示来自node的输出。rqt_logger_level 允许我们改变正在运行的node的冗长(DEBUG, WARN, INFO, and ERROR)等级。
启动小海龟之前,在两个窗口里分别启动 rqt_console 和 rqt_logger_level:
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
现在打开小海龟:
$ rosrun turtlesim turtlesim_node
可以看到console窗口出现了一些启动信息等。
把logger level窗口levels选择warn,然后让乌龟撞墙:
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}}'
可以看到console弹出了很多错误。
2.1 logger 等级
从高到低依次是:
Fatal
Error
Warn
Info
Debug
现在Ctrl+C关掉当前的小海龟,然后使用roslaunch 把之前的多个小海龟节点打开,还有一个模拟node,让一个小海龟模仿另一个。
2.2 使用 roslaunch
用法:
$ roslaunch [package] [filename.launch]
首先进入之前的beginner_tutorials :
$ roscd beginner_tutorials
如果打不开,就执行下面这个:
$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd beginner_tutorials
创建一个启动指导:
$ mkdir launch
$ cd launch
没必要非要把名字写成这个,甚至没必要建这个指导,他会自动检测。
2.3 启动文件(launch file)
现在新建一个启动文件turtlemimic:
vim 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>
2.4 解析launch文件
从launch标签开始一个launch文件:
<launch>
下一部分写了两个group标签,他们有不同的命名空间:
<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,并把输入输出重命名到turtlesim1 和turtlesim2 。这个重命名就会使2模仿1.
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
最后结束launch文件:
</launch>
2.5 roslaunching
执行:
$ roslaunch beginner_tutorials turtlemimic.launch
这个时候就会启动两个小海龟窗口,新建一个命令窗口输入命令:
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
两个小海龟会一起运动,而命令其实只发送给了turtlesim1。
运行:
rqt_graph
这样就能很清楚的看到launch文件做了什么。
这样就使用了rqt_console 和roslaunch,我们可以开始后面的学习了。我们可以关掉所有小乌龟,后面不需要了。