ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
_Each_ publisher is publishing at 1000Hz? That's your main problem. You have 8000 messages/second. Python is not truly multithreaded. Instead, there is a _global interpreter lock_ that causes only one thread to run at a time. It's like your 8 subscribers are sharing a single CPU. At a total message rate of 8KHz, you must process each message in only 125 microseconds, including any thread switching and unmarshaling overhead. Python is not designed to handle that kind of load.
You're better off reducing the publishing rate to something more reasonable, say 100Hz. Try that and see if your Python code behaves reasonably again.