def imu_data_publisher(self): while not rospy.is_shutdown(): imu = Imu() imu.header.stamp = rospy.Time.now() imu.header.frame_id = "sailboat" [ imu_raw_msg.orientation.x, imu_raw_msg.orientation.y, imu_raw_msg.orientation.z, imu_raw_msg.orientation.w ] = tf.transformations.quaternion_from_euler( self.roll, self.pitch, math.radians(self.heading)) imu.angular_velocity = Vector3(self.GyroX, self.GyroY, self.GyroZ) imu.linear_acceleration = Vector3(self.AccX, self.AccY, self.AccZ) imu.orientation_covariance = self.orientation_covar imu.angular_velocity_covariance = self.gyro_covar imu.linear_velocity_covariance = self.acc_covar imu_pub.publish(imu) self.rate.sleep()