When ImagingNode gets a service call, it blocks all other subscriptions and service calls because each Node runs on one thread.
The band-aid fix would be to create another ROS node, but that's ROS propaganda.
We can, instead, convert ImagingNode to be a normal Python class that owns its own process, which it uses to do inference. That way, its processing will never block anything.
Action Items
Refactor ImagingNode to be a normal class with multiprocessing.
Description
ImagingNode
gets a service call, it blocks all other subscriptions and service calls because each Node runs on one thread.Action Items
ImagingNode
to be a normal class with multiprocessing.