从创建工作空间开始
因为与c++有点不同,所以这边要单独区分
使用python编写的ros节点可以直接运行,这边的编译是为了让这个新建软件包进入ros软件列表中,以便后面运行节点时ros能在软件包中找到这个软件包,这个编译只运行一次就行
发布方python实现
ros大管家
大管家负责处理发布订阅信息
新建通讯的python文件
功能包下新建目录scripts存放python文件
发布方具体代码
为文件添加可执行权限
订阅方实现
1. 主要这里回调函数可以自己定义,并且回调函数可以接受信息,
2.rospy.spin()函数允许节点在没有显式循环的情况下保持活动状态,并在等待消息到达时响应它们。它会阻塞当前线程,直到节点被关闭。
3.这里的发布订阅方其实就是一个一个节点,是一个节点像另外一个节点通信
订阅方代码
相互关系及结果
集成为launch文件
总结
1.总之发布方与订阅方是随时可以向rospy大管家申请的对象,其就像是消息与节点的一个连线,发布与订阅的区别就是连线箭头方向不同,发布方从信息指向节点,而订阅方从节点指向信息
2.其中发布方通过发表对象的publish方法发送具体信息,而发表的信息类型则由发布对象定义时决定,订阅方则通过回调函数对接受的信息处理,并结合发布方发布出去,这个体现了节点与节点之间通讯的机制,即一个节点订阅上一个节点信息,然后再发布到下一个节点。