Browse Source

解决温度数据格式不正确问题

corvin 5 years ago
parent
commit
98fbe492b2
2 changed files with 9 additions and 1 deletions
  1. 8 1
      rasp_imu_hat_6dof/nodes/imu_data.py
  2. 1 0
      rasp_imu_hat_6dof/nodes/imu_node.py

+ 8 - 1
rasp_imu_hat_6dof/nodes/imu_data.py

@@ -59,6 +59,12 @@ class MyIMU(object):
             self.raw_q2 = float((np.short((q2[1]<<8)|q2[0]))/32768.0)
             self.raw_q3 = float((np.short((q3[1]<<8)|q3[0]))/32768.0)
 
+    def get_two_float(self, data, n):
+        data = str(data)
+        a, b, c = data.partition('.')
+        c = (c+"0"*n)[:n]
+        return ".".join([a,c])
+
     def get_temp(self):
         try:
             temp = self.i2c.read_i2c_block_data(self.addr, 0x40, 2)
@@ -66,4 +72,5 @@ class MyIMU(object):
             rospy.logerr("Read IMU temperature data error !")
         else:
             self.temp = float((temp[1]<<8)|temp[0])/100.0
-            
+            self.temp = float(self.get_two_float(self.temp, 2)) #keep 2 decimal places
+

+ 1 - 0
rasp_imu_hat_6dof/nodes/imu_node.py

@@ -39,6 +39,7 @@ rospy.init_node("imu_node")
 
 # Get DIY config param
 data_topic_name = rospy.get_param('~pub_data_topic', 'imu_data')
+temp_topic_name = rospy.get_param('~pub_temp_topic', 'imu_temp')
 link_name  = rospy.get_param('~link_name', 'base_imu_link')
 data_pub_hz = rospy.get_param('~data_pub_hz', '10')
 temp_pub_hz = rospy.get_param('~temp_pub_hz', '1')