Hi Yoan,
It's important to realize that Python does not have "real"
multithreading, in the sense that multiple threads can run
simultaneously. At any time, there is only one Python thread
active, even if you have multiple processors. If you want to know
more about that, search for e.g. "Python threading GIL" (GIL =
Global Interpreter Lock, which is the reason that only one thread
can run and probably the cause of the blocking you've observed in
your program). I think the following article gives a good
background:
http://www.jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/
That being said, I suspect that the Python wrappers for MoveIt!
call the C++ library while having the Global Interpreter Lock.
That could be intentional (if the library shares data with the
Python code), but could also indicate a coding problem. In order
to allow other Python threads to be executed during moves, the GIL
must be released before entering the MoveIt! library.
Unfortunately I am not familiar with the MoveIt! internals. Maybe
someone else can confirm if this is the case, and if this can be
improved.
Regards,
Wouter