У меня есть узел в ROS2, который должен публиковать sh изображений, но также должен ждать сигнала (topi c) от другого узла. В целях отладки я хочу, например, регистрировать сигнал при поступлении. Моя идея заключалась в следующем:
class CameraNode(Node):
def __init__(self, node_name="camera_node"):
# Initialize rclpy
super().__init__(node_name)
self._log = self.get_logger()
self.my_thread = Thread(self.myfunction)
self.my_thread.start()
def myFunction(self):
self._log.error("never going to log this")
while True:
# get image from source and send images.
pass
def main(args=None):
# init the ros node
rclpy.init(args=args)
try:
node = CameraNode()
try:
rclpy.spin(node)
except KeyboardInterrupt:
node.destroy_node()
finally:
rclpy.shutdown()
if __name__ == "__main__":
main()
Из-за простоты я пропустил некоторые части кода. По какой-то причине сообщение журнала никогда не появляется. Я что-то пропустил или ROS2-логер не построен для многопоточности?