欢迎访问宙启技术站
智能推送

使用std_msgs.msgFloat64()在Python中操作浮点数数据

发布时间:2024-01-20 23:53:00

在Python中使用std_msgs.msgFloat64()操作浮点数数据的例子如下:

首先,在Python的ROS包中导入所需的模块和消息类型:

import rospy
from std_msgs.msg import Float64

然后,创建一个ROS节点并初始化:

rospy.init_node('float_publisher', anonymous=True)

接下来,定义一个发布者,用于发布浮点数数据:

pub = rospy.Publisher('float_topic', Float64, queue_size=10)

其中,'float_topic'是消息的话题名称,Float64是消息类型,queue_size是消息队列的最大长度。

然后,创建一个浮点数变量,并将其赋值给Float64类型的消息:

data = 3.14159
msg = Float64()
msg.data = data

最后,使用发布者将消息发送出去:

pub.publish(msg)

完整的发布者代码如下:

import rospy
from std_msgs.msg import Float64

rospy.init_node('float_publisher', anonymous=True)

pub = rospy.Publisher('float_topic', Float64, queue_size=10)

data = 3.14159
msg = Float64()
msg.data = data

pub.publish(msg)

rospy.spin()

接下来,我们创建一个订阅者来接收发布者发布的浮点数数据:

import rospy
from std_msgs.msg import Float64

def callback(data):
    rospy.loginfo("Received data: %f", data.data)

rospy.init_node('float_subscriber', anonymous=True)

rospy.Subscriber('float_topic', Float64, callback)

rospy.spin()

其中,回调函数callback会在接收到消息时被调用,我们通过rospy.loginfo打印接收到的浮点数数据。

我们可以在另一个终端中运行订阅者的代码,并观察到发布者发布的浮点数数据:

[INFO] [1638290504.598162]: Received data: 3.141590

以上就是使用std_msgs.msgFloat64()在Python中操作浮点数数据的例子。通过发布者发布一个浮点数数据,然后订阅者接收并处理该数据,完成了浮点数信息的传递和处理。你可以根据自己的需求修改浮点数的数值和话题名称来进行实际开发。