xavier测试py3发布话题pub、接受话题sub

参考ROS学习之话题发布python实现, 改动较大

1.创建工作空间并创建话题通信的功能包

cd ~/auv_ws 
cd src 
catkin_create_pkg test_topic rospy std_msgs #创建包并添加相关依赖项

2.新建发布节点(publisher)

在test_topic目录下的src中实现publisher.py

cd ~/auv_ws/src/test_topic/src
touch publisher.py
gedit publisher.py

在publisher.py输入代码

#!/usr/bin/env python
# BEGIN ALL
# BEGIN SHEBANG
#!/usr/bin/env python
# END SHEBANG
 
# BEGIN IMPORT
import rospy
# END IMPORT
 
# BEGIN STD_MSGS
from std_msgs.msg import Int32
# END STD_MSGS
 
 
rospy.init_node('topic_publisher')
 
# BEGIN PUB
pub = rospy.Publisher('counter', Int32)
# END PUB
 
# BEGIN LOOP
rate = rospy.Rate(2)
 
count = 0
while not rospy.is_shutdown():
    pub.publish(count)
    count += 1
    rate.sleep()
# END LOOP
# END ALL

3.新建接收节点(subscriber)

在test_topic目录下的src中实现subscriber.py

cd ~/topic_ws/src/test_topic/src
touch subscriber.py
gedit subscriber.py

在subscriber.py输入代码

#!/usr/bin/env python
# BEGIN ALL
#!/usr/bin/env python
 
 
import rospy
from std_msgs.msg import Int32
 
 
# BEGIN CALLBACK
def callback(msg):
    print(msg.data)
# END CALLBACK
 
 
rospy.init_node('topic_subscriber')
 
# BEGIN SUBSCRIBER
sub = rospy.Subscriber('counter', Int32, callback)
# END SUBSCRIBER
 
rospy.spin()
# END ALL

4.编译

cd ~/auv_ws
catkin_make
source devel/setup.bash

5.运行节点

可能需要给两个py文件进行

sudo chmod 777  xxx

最后在不同的terminal中运行roscore和两个节点即可完成通讯。

roscore
cd ~/auv_ws
source devel/setup.bash
rosrun test_topic publisher.py
cd ~/auv_ws
source devel/setup.bash
rosrun test_topic subscriber.py

6.有意思的发现

pc主机上可以订阅
xavier从机也可以订阅
但是两者不能被同时订阅,而且像是分配一样、不会丢包,两边的接力进行订阅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值