学习8:roslaunch

来源:互联网 发布:数据报告模板 编辑:程序博客网 时间:2024/05/22 09:36


1.rqt_console

1.1 查看输出的信息

运行下面的命令

$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level

分别启动rqt_console和rqt_logger_level。 

启动乌龟模拟turtlesim节点,控制乌龟动一动。

会发现rqt_console里给出了一些信息,比如撞到墙了给出warn信息,出生小乌龟给出普通的info信息。


奇怪,wki说的啥,把日志等级修改为WARN是干吗的,为啥我修改为info不行呢?输出的还是WARN信息。


1.2 日志等级

日志等级顺序如下

FatalErrorWarnInfoDebug

不知道这个日志等级顺序是干嘛用的。


2 roslaunch

2.1 介绍

我感觉这个东西和rosrun差不多啊,只不过执行的是包里的launch文件,

用法

$ roslaunch [package] [filename.launch]

PS:突然ubuntu工作区ctrl+alt+left/right失效了!

和VM虚拟机的热键冲突,去掉VM虚拟的热键后。。和windows的热键冲突,尴尬啊! 然后我就改为ctrl+windows+alt+ UP/DOWN/LEFT/RIGHT了

执行

$ roscd beginner_tutorials
进入之前的目录。如果失败了,说明你没source一下(ROS_PACKAGE_PATH环境变量没有这个东西)

官方wiki给的解决方案是下述代码

$ export ROS_PACKAGE_PATH=~/inidigo_workspace/sandbox:$ROS_PACKAGE_PATH
但是不知道和我有啥区别- -#


2.2 创建launch文件

$ mkdir launch$ cd launch
这个代码就很简单易懂了。


然后新建一个turtlemimic.launch,用vim编辑为下面内容

   1 <launch>   2    3   <group ns="turtlesim1">   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>   5   </group>   6    7   <group ns="turtlesim2">   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>   9   </group>  10   11   <node pkg="turtlesim" name="mimic" type="mimic">  12     <remap from="input" to="turtlesim1/turtle1"/>  13     <remap from="output" to="turtlesim2/turtle1"/>  14   </node>  15   16 </launch>

调用下面的代码

roslaunch beginner_tutorials turtlemimic.launch
就打开了刚才我们写的turtlemimic.launch的内容。


官方wiki的解读我有点不懂啊。

大概我看的是,先给一些命名空间,分成2个。貌似这也是创建节点的过程。。 <node >貌似就是会启动节点。

具体关于roslaunch的,都可以看http://blog.csdn.net/xuehuafeiwu123/article/details/53991226这个博客的介绍

其实这地方我疑惑蛮多的,为啥第三个node pkg需要等于turtlesim类型。。而且input output都是啥……先留着,以后来解决这个问题。


上课想了一下,我们实际上运行了3个node,可以用rosnode list看到又3个node,分别是mimic,/turtlesim1/sim,/turtlesim2/sim.

当运行rostopic pub的终端命令后,会产生第四一个node,形如/rostopic_7550_1496904628793

用rostopic info 查看后会输出

Node [/rostopic_7748_1496905382511]Publications:  * /turtlesim1/turtle1/cmd_vel [geometry_msgs/Twist]Subscriptions: NoneServices:  * /rostopic_7748_1496905382511/get_loggers * /rostopic_7748_1496905382511/set_logger_levelcontacting node http://ubuntu:41445/ ...Pid: 7748Connections: * topic: /turtlesim1/turtle1/cmd_vel    * to: /turtlesim1/sim    * direction: outbound    * transport: TCPROS

在这里,可以看出,他没有订阅话题,专门向turtlesim1/turtle1/cmd_vel进行 out输出(direction:outbound)


类似的,可以分别查看每个节点对话题的信息之类的情况。


这里我们发现launch文件有个有意思的地方,对于remap的input output,实际上只是remap了命名空间,具体的话题会在命名空间里。

比如turtlesim1,他只对cmd_vel有兴趣,你给了他命名空间,他就会在命名空间里找到cmd_vel来进行相关的订阅或者发布操作。



阅读全文
0 0
原创粉丝点击