Wiki
最佳化日誌
約 2 分鐘閱讀
本文由簡體中文內容確定性轉換,並受版本化術語表保護。
在實際應用上,我們很少使用RCLCPP_INFO,原因是列印資料開銷太大,像Nvidia Jetson Xavier等工控機裝置可能吃不消.
像下方這個圖就顯示了在樹莓派4b下列印的開銷:

由於我們想避免那麼大的開銷,又想在必要時檢視列印的資料進行除錯,所以我們常採用RCLCPP_DEBUG來列印資料,在必要時期才打印資料.
RCLCPP_DEBUG 的核心作用
-
除錯專用 :僅在除錯階段輸出資訊,生產環境自動靜默
-
效能最佳化 :通過編譯選項完全移除除錯程式碼,零執行時開銷
-
分級控制 :與其他日誌級別(INFO/WARN/ERROR)解耦

打印出來rclcpp_debug的方式:
方式一:
ros2 run <package_name> <node_name> --ros-args --log-level debug
方式二:
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package='my_package',
executable='my_node',
name='my_node',
output='screen',
parameters=[],
arguments=['--ros-args', '--log-level', 'debug']
)
])
/opt/ros/humble/include/rcutils/rcutils/logging.h定義:
