zhanghaijason
thanks for detailed information.
The failsafe message will show up when MindRacer did not receive mavros heartbeat or other messages for a period of time, e.g., 500ms.
The difference between 1.10.x and 1.11.x maybe just random, and can not be used as proof to judge anything.
To reliably find out the cause, I think you need to debug on both sides of the wire - PI side and PX4 side.
1) Pi side probably be reasonable and easier to start with. though you set the ros rate to 100Hz, you need to confirm it really did what you instructed it to do. So try to print some timestamp when actually send a ros message, so that you can see exactly when and how many messages are sent.
2) add some debug print in px4 side with timestamp when a message is received, thus you know exactly how many message are lost or received.
By doing so, you can reliably tell when and where the messages are lost, so it leads to what the real cause of the problem.