ROS通讯框架
来源:互联网 发布:秦淮数据有限公司招聘 编辑:程序博客网 时间:2024/06/05 19:02
ROS安装:
直接参照wiki:http://wiki.ros.org/kinetic/Installation/Ubuntu
为了便于理解ROS框架,ROS自带的turtlesim仿真器来进行演示
打开一个终端,运行rescore;
再打开一个终端,运行turtlesim_node节点:
rosrun turtlesim turtlesim_node
再打开一个终端,运行:
rosrun turtlesim turtle_teleop_key,在该终端下,按键盘上下左右键可以看到效果。
通过节点关系图来理解ros的通讯框架
安装rqt
sudo apt-get install ros-kinetic-rqt
sudo apt-get install ros-hydro-rqt-common-plugins
图形化显示节点关系图: rosrun rqt_graph rqt_graph
可以看出节点teleop_turtle和节点turtlesim是通过话题/turtle1/command_velocity进行通讯的,话题的发布者为teleop_turtle,话题的接收者为turtleslm。
节点
节点是一个可执行程序,它连接到了ROS网络系统中。
列出当前运行的节点:Rosnode list
话题(主题)
节点之间是通过话题的发布和订阅来进行通讯的。
rostopic bw display bandwidth used by topic
rostopic echo print messages to screen
rostopic hz display publishing rate of topic
rostopic list print information about active topics
rostopic pub publish data to topic
rostopic type print topic type
查看话题发布的数据:
rostopic echo /turtle1/cmd_vel
linear:x:0.0 y:0.0 z:0.0
angular: x:0.0 y:0.0 z:-2.0
列出当前系统话题:
rostopic list
查看每一个话题的发布者和订阅者的个数:
rostopic list -v
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 4 publishers
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
Subscribed topics:
* /turtle1/cmd_vel [geometry_msgs/Twist] 2 subscribers
* /rosout [rosgraph_msgs/Log] 1 subscriber
* /statistics [rosgraph_msgs/TopicStatistics] 1 subscriber
查看话题的消息类型:
rostopic type /turtle1/cmd_vel
geometry_msgs/Twist
消息
话题的发布和订阅是通过消息的传递来实现的。消息的类型可以理解为消息的数据结构。
查看消息的格式:
rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
发布消息:rostopic pub [-arg] [topic] [msg_type] [args]
例如:rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
- ROS通讯框架
- ROS PC间通讯
- ROS 通讯层模型
- ROS下多台PC联网通讯
- ros串口通讯接口编程
- ROS(indigo)ROSPlan框架
- ROS新手教程【二】ROS总体框架
- ROS 总结(一):ROS系统框架
- Java通讯框架介绍
- Java通讯框架介绍
- xSocket 通讯框架 demo
- io通讯框架
- AFNetworking通讯框架
- 统一通讯框架wcf
- ROS SLAM代码框架概述
- ROS Navigation global_planner框架解析
- ROS探索总结(二)——ROS总体框架
- ROS探索总结(二)——ROS总体框架
- thinkphp+redis实现秒杀功能
- Python ,list数据集合
- 报错No resource found that matches the given name (at 'title' with value '@string/action_settings'
- 单链表的应用:用C语言实现简单的员工管理系统(新建、增、删、改、查、排序)
- 第九章 dd命令
- ROS通讯框架
- 收藏
- JS Grid插件使用
- swagger-UI在springMVC结构中的使用
- 静态/动态注册广播的区别
- Kotlin——数据的基本表现形式及基本运算符小结
- 开机自动启动app
- cpu显示信息
- $.ajax()方法详解