我的目标是获取 /mavros/imu/data → AI 模型 → UDP → 新的 uORB 主题 → EKF2 → AI 校正的状态估计。
目前,我可以将数据发送到新的 uORB 主题。但 EKF2 默认依赖于 vehicle_imu,当我尝试从 vehicle_imu 切换到新的 uORB 主题时,mavros/imu/data 停止发布,导致我对 AI 模型的输入被中断。
我所说的 mavros/imu/data 停止发布是指——它的频率下降到心跳或“没有新消息”。在 PX4 终端上,我一直收到“轮询超时 0, 22”错误。
有趣的是,当我切换回 vehice_imu 时,一切都恢复正常并开始正常工作。我根据自己定义的一个简单自定义参数(0 表示正常,1 表示 AI 模式)进行了此切换。
我现在唯一的问题是:如何在不关闭 /mavros/imu/data 的情况下继续接收 SITL imu 数据并将其传递给我的 AI 模型。除了 mavros 之外,我也可以接受其他方式接收 imu 数据(只要能接收就行)。
我使用的是 ROS1 Noetic 和 PX4 v1.13.0