项目场景:
ubuntu22.04+ros2 humble,开发节点,使用键盘ctrl+c强制结束节点运行,使用try catch捕获异常,使得终端不打印报错
问题描述
failed to shutdown: rcl_shutdown already called on the given context
shudowm调用的时候报错
try:
rclpy.spin(wirelessNode)
except KeyboardInterrupt:
print("intteruprt------------")
finally:
rclpy.shutdown()
原因分析:
forxy版本和humble版本的差异,humble在强制结束后会自动调用shutdowm接口结束节点的运行,算是一个升级
解决方案:
把shutdown提到前面,取消finally
try:
rclpy.spin(wirelessNode)
rclpy.shutdown()
except KeyboardInterrupt:
print("intteruprt------------")