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]'  





原创粉丝点击