Python 订阅 GNSS消息的代码: sensor_msgs/NavSatFix
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
from sensor_msgs.msg import NavSatFix
class publishGPS(object):
def __init__(self):
rospy.loginfo("Initialising GPS publishing")
self.gps_sub=rospy.Subscriber('/ublox_driver/receiver_lla', NavSatFix, self.callback, queue_size=1)
self.lastMsg=None
#self.gps_pub=rospy.Publisher('/gps_new', NavSatFix, queue_size=1)
#rospy.sleep(8)
rospy.loginfo("initialised")
def callback(self, data):
self.lastMsg=data
print(data.header.stamp, data.latitude, data.longitude, data.altitude)
def do_work(self):
self.splitStrings= str(self.lastMsg).split(",")
#gpsmsg=NavSatFix()
#print(gpsmsg.header.stamp)
#gpsmsg.header.stamp = rospy.Time.now()
#gpsmsg.header.frame_id = "gps"
#rospy.loginfo(self.splitStrings[1])
#gpsmsg.latitude=float(self.splitStrings[1][4:])
#gpsmsg.longitude=float(self.splitStrings[2][5:-5])
#self.gps_pub.publish(gpsmsg)
def run(self):
r=rospy.Rate(1)
while not rospy.is_shutdown():
self.do_work()
r.sleep()
if __name__=='__main__':
rospy.init_node('pubgps')
obj=publishGPS()
obj.run()
import rospy
from std_msgs.msg import String
from sensor_msgs.msg import NavSatFix
class publishGPS(object):
def __init__(self):
rospy.loginfo("Initialising GPS publishing")
self.gps_sub=rospy.Subscriber('/ublox_driver/receiver_lla', NavSatFix, self.callback, queue_size=1)
self.lastMsg=None
#self.gps_pub=rospy.Publisher('/gps_new', NavSatFix, queue_size=1)
#rospy.sleep(8)
rospy.loginfo("initialised")
def callback(self, data):
self.lastMsg=data
print(data.header.stamp, data.latitude, data.longitude, data.altitude)
def do_work(self):
self.splitStrings= str(self.lastMsg).split(",")
#gpsmsg=NavSatFix()
#print(gpsmsg.header.stamp)
#gpsmsg.header.stamp = rospy.Time.now()
#gpsmsg.header.frame_id = "gps"
#rospy.loginfo(self.splitStrings[1])
#gpsmsg.latitude=float(self.splitStrings[1][4:])
#gpsmsg.longitude=float(self.splitStrings[2][5:-5])
#self.gps_pub.publish(gpsmsg)
def run(self):
r=rospy.Rate(1)
while not rospy.is_shutdown():
self.do_work()
r.sleep()
if __name__=='__main__':
rospy.init_node('pubgps')
obj=publishGPS()
obj.run()
评论已关闭