def __init__(self, **kwargs): super(ROS_GPS, self).__init__() self.gps = GPS( ) # self.imu = IMU_Magdwick( Ts = 0.01 ) # self.imu = IMU_Mahoney( Ts = 0.01 ) self.publisher = dict( state = rospy.Publisher('/ardrone/gps', Odometry) ) self.subscriber = dict( raw_gps = rospy.Subscriber('/fix', NavSatFix, callback = self.ReceiveGPS ), )
class ROS_GPS(ROS_Object, object): """docstring for ROS_IMU""" def __init__(self, **kwargs): super(ROS_GPS, self).__init__() self.gps = GPS( ) # self.imu = IMU_Magdwick( Ts = 0.01 ) # self.imu = IMU_Mahoney( Ts = 0.01 ) self.publisher = dict( state = rospy.Publisher('/ardrone/gps', Odometry) ) self.subscriber = dict( raw_gps = rospy.Subscriber('/fix', NavSatFix, callback = self.ReceiveGPS ), ) def ReceiveGPS(self, gps_raw): if not self.gps.calibrated: self.gps.set_zero(gps_raw) self.gps.calibrated = True self.gps.measure(gps_raw) self.Talk() def Talk( self ): msg = Odometry() msg.header.stamp = rospy.Time.now() msg.pose.pose.position.x = self.gps.x msg.pose.pose.position.y = self.gps.y self.publisher['state'].publish(msg)