ROS学习笔记(六):多节点通信
来源:互联网 发布:nat 穿透 java 编辑:程序博客网 时间:2024/06/06 12:21
这篇博客主要介绍如何利用rqt_console和rqt_logger_level来同时启动和调试多个节点。
1.rqt_console 和rqt_logger_level
rqt_console利用ROS的日志框架来显示节点输出,rqt_logger_level允许我们查看节点的详细运行信息,包括调试信息,警告信息,错误信息等。我们先确认已安装相关包并更新。
之后在新命令窗口下运行:(需要先运行roscore)$sudo apt-get install ros-<distro>-rqt ros-<distro>-rqt-common-plugins ros-<distro>-turtlesim
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
接下来运行turtlesim,这时候便可以在该窗口中看见该节点的信息了
通过设置logging evel我们可以筛选所需要的信息,level优先级由高到低分别为Fatal,Error,Warn,Info,Debug。例如当我们将优先级设为Warn时,只会显示Warn及比它更高优先级的提示信息。
2.roslaunch
roslaunch将节点定义为一个launch文件。用法为:
$ roslaunch [package] [filename.launch]我们先进入之前创建好的beginner_tutorials包$ roscd beginner_tutorials这个地方可能会出现如下错误:
No such package/stack 'beginner_tutorials'
这时候可以:$ cd ~/catkin_ws$ source devel/setup.bash$ roscd beginner_tutorials接下来就可以建一个launch了$ mkdir launch$ cd launch
3.创建turtlemimic.launch
Toggle line numbers1 <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>这里创建了两个包含turtlesim的节点,还创建了一个模仿节点(mimic)。4.运行。$ 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]'
通过rqt_graph更直观
可以看见拓扑结构,消息传给turtlesim1之后会复制一份传递给turtlesim2,因此两个小乌龟的运动完全一样。
阅读全文
0 0
- ROS学习笔记(六):多节点通信
- ROS学习笔记(六)
- ROS学习--(六)理解ROS节点和话题
- ROS学习笔记四:理解ROS节点
- ROS的学习(六)理解ROS的节点(NODE)
- ROS学习笔记(三):新建包及节点初探
- ROS 节点通信
- TK1学习笔记六:安装ROS
- ROS with V-rep (3) 之仿真velodyne16线激光 (ROS学习笔记六)
- ROS学习笔记六:理解ROS服务和参数
- ROS学习笔记(四):ROS主题
- redis学习笔记六(多机多节点集群)
- 【ROS学习】(六)ROS多线程订阅消息
- ROS学习(2):多机通信的网络配置
- ROS学习(六):CMakeLists.txt 文件
- ros:(2)ros节点
- ROS学习笔记(三)- 分布式节点与laser数据可视化
- ROS学习笔记4-使用节点,消息,主题和服务
- 判断元素出栈入栈顺序的合法性
- 坑爹的IE6兼容性问题
- 北京大学可视化暑期学校Day1总结
- 安卓之单点和多点触摸(画圆)
- 成长双系统
- ROS学习笔记(六):多节点通信
- JAVA 创建TXT文件,写入文件内容,读取文件内容
- 编写干净的代码
- android网络请求HttpURLConnection详解
- 代码整洁之道
- Spring @Component, @Repository, @Service and @Controller Annotations
- Yii2 中关于 ActiveForm 中checkboxList默认选中的问题
- 北大党委插手方正,驱赶王选
- 预编译处理#error的作用