msg
1 .定义
假设我在无人车,无人机,地面基站之间要传送一系列目标的信息,现在要自定义传输的目标的ros格式,就需要msg文件。
GroundObject.msg文件内容为:
float64 UTC_time # in ms
int32 VehicleNumber
VEHICLE_OBJ_COOP[] VehicleObjectCOOP
VEHICLE_OBJ_COOP.msg文件内容是:
int32 class # 0:unknow 1:car 2:ped
int32 ismove
int32 vehicleclass # 0:HM 1:LM 3:objects
float64 lon
float64 lat
VEHICLE_OBJ_COOP[] 表示一个包含车辆信息的数组,其中每个元素使用的是另一个自定义消息类型VehicleObjectCOOP,在VEHICLE_OBJ_COOP.msg文件中定义。
2.订阅自定义信息的代码
#!/usr/bin/env python
import rospy
from your_package.msg import GroundObject, VEHICLE_OBJ_COOP # Import the custom messages
def publisher():
# 初始化发布节点
rospy.init_node('ground_station_publisher', anonymous=True)
# 创建发布者,发布到 'ground_object_topic' 话题,消息类型为 GroundObject
pub = rospy.Publisher('ground_object_topic', GroundObject, queue_size=10)
rate = rospy.Rate(1) # 设置发布频率为 1Hz
while not rospy.is_shutdown():
# 创建 GroundObject 消息
ground_msg = GroundObject()
ground_msg.UTC_time = rospy.get_time() # 使用 ROS 时间作为 UTC 时间
ground_msg.VehicleNumber = 2 # 假设有两辆车
# 创建第一个 VEHICLE_OBJ_COOP 对象
vehicle1 = VEHICLE_OBJ_COOP()
vehicle1.class = 1 # 车辆
vehicle1.ismove = 1 # 正在移动
ROS自定义消息传输的创建与运行

最低0.47元/天 解锁文章
1138

被折叠的 条评论
为什么被折叠?



