实验平台 ubuntu18.04
实验目的 掌握python ros2 读取与发送
本次针对字符串消息进行实验
首先需要安装ubuntu 对应的ros2 版本
ubuntu18.04 对应的ros版本是eloquent
代码步骤,加载需要的ros2 开发包rclpy
import rclpy
from std_msgs.msg import String
ros2 python 流程:
1.初始化ros2
rclpy.init(args=None)
2.发布节点
node = Node(json_data["set_node_name"])
3.消息topic 订阅
#构建消息发布者
pub_parking = node.create_publisher(String,'mystring',10)
4.发送消息与进入ros2循环机制
数据发送端代码如下:
import time
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
# 初始化rclpy
rclpy.init(args=None)
#发布节点
node = Node("test_pub")
def sub_mutil():
num = 0
while True:
my_msg = String()
my_msg.data = f'{num}'
pub_parking.publish(my_msg)
time.sleep(1)
print(f"发送消息:{num}")
num+=1
#构建消息发布者
pub_parking = node.create_publisher(String,'mystring',10)
sub_mutil()
rclpy.spin(node)
实现数每秒发送一组字符串到ros2
数据接收端的代码与发送相仿,不同的是设置毁掉函数
数据接收端的代码如下:
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
# 初始化rclpy
rclpy.init(args=None)
#发布节点
node = Node("test_sub")
def call_back_String(msg):
print(f"接收到消息: {msg.data}")
node.create_subscription(String,'mystring', call_back_String,10)
rclpy.spin(node)
展示GIF:
附带ROS2 相关指令:
查看话题:
ros2 topic list
播放db3 数据包
ros2 abg play *.db3
数据录制
ros2 bag record -a
我们使用ros2 topic list 查看下我们发布的话题
看到我们接收与测试的话题就是我们生命的话题mystring
留言与评论(共有 0 条评论) “” |