@@ -47,10 +47,8 @@ def __init__(self, imu_name: str = "base"):
4747 async def _publish_imu (self , data : RawData ):
4848 # TODO: only publish if somebody is listening
4949 # decode data
50- imu_data : Optional [Imu ] = None
51-
5250 try :
53- imu_data = Imu .from_rawdata (data )
51+ imu_data : Imu = Imu .from_rawdata (data )
5452 except DataDecodingError as e :
5553 self .logerr (f"Failed to decode an incoming message: { e .message } " )
5654 return
@@ -62,17 +60,19 @@ async def _publish_imu(self, data: RawData):
6260 stamp = rospy .Time .now (),
6361 frame_id = imu_data .header .frame ,
6462 ),
65- linear_acceleration = Vector3 (
63+ )
64+ if imu_data .linear_acceleration is not None :
65+ imu_msg .linear_acceleration = Vector3 (
6666 x = imu_data .linear_acceleration .x ,
6767 y = imu_data .linear_acceleration .y ,
6868 z = imu_data .linear_acceleration .z ,
69- ),
70- angular_velocity = Vector3 (
69+ )
70+ if imu_data .angular_velocity is not None :
71+ imu_msg .angular_velocity = Vector3 (
7172 x = imu_data .angular_velocity .x ,
7273 y = imu_data .angular_velocity .y ,
7374 z = imu_data .angular_velocity .z ,
74- ),
75- )
75+ )
7676
7777 self .pub_imu_raw .publish (imu_msg )
7878
0 commit comments