Ros Topic和Msg

                                                        

1 .Node & Master

最小的进程单元节点Node。从程序角度来说,node就是一个可执行文件;从功能角度来说,通常一个node负责者机器人的某一个单独的功能。ROS系统中不同功能模块之间的通信,也就是节点间的通信。

节点管理器Node master。node首先在master处进行注册,之后master会将该node纳入整个ROS程序中。node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信。当ROS程序启动时,第一步首先启动master,由节点管理器处理依次启动node。

                                             

                

topic 异步通信方式:publish只管发,不管消息返回的状态,对于接受者node2来说,有消息到了就处理,没消息可以做别的事情

                               

                          

             

~$ ros launch robot_sim_demo                  # 启动 robot_sim_demo 模拟器     
~$ rostopic list                              #  查看模拟器里的top

~$ rostopic info /camera/rgb/image_raw       # 查看topic /camera/rgb/image_raw 的相关属性

~$ rosrun image_view image_view image:=/camera/rgb/image_raw/ 
# 用image_view这个node接收信息 , 并且要指定他的topic(image_view 到底显示那个画面)

ps:深度图和rgb图融合可以成为 Point cloud 数据,用在定位建图识别非常有用 

通过键盘移动小车,查看一下现在在发什么topic,查看刚才启动的node的信息

~$ rosnode list 

~$ rosnode info /teleop twist keyboard     # 查看node属性

~$ rostopic info /cmd vel

~$ rostopic echo /cmd_vel                      # 查看 速度控制 里面是什么内容

移动模拟器的小车:

~$ rostopic info /cmd vel

~$ rosmsg show geometry_msgs/Twist           # 查看它的具体定义,输出的是msg的内容

~$ rosmsg list         # 查看系统里所有的msgs
~$ rostopic pub /cmd_vel            # 用 rostopic pub 向cmd_vel这个topic发送自己定义的速度信息               

猜你喜欢

转载自blog.csdn.net/qq_25678319/article/details/87894826