點01)
一、Python 節(jié)點運行命令python3 ros2_python_node.py 運行 Python 節(jié)點腳本ros2 node list 查看節(jié)點列表代碼骨架import rclpy 導入 ROS2 Python 客戶端庫from rclpy.node import Node 導入 Node 類rclpy.init() 初始化 ROS2node Node(python_node) 創(chuàng)建節(jié)點node.get_logger().info(你好python節(jié)點) 輸出日志信息rclpy.spin(node) 持續(xù)運行節(jié)點rclpy.shutdown() 關閉 ROS2日志格式環(huán)境變量export RCUTILS_CONSOLE_OUTPUT_FORMAT[{function_name}:{line_number}]:{message} 設置日志輸出格式RCUTILS_CONSOLE_OUTPUT_FORMAT rcutils 提供的日志輸出模板變量{function_name} 函數(shù)名占位符{line_number} 行號占位符{message} 消息內(nèi)容占位符二、C 節(jié)點代碼骨架#include rclcpp/rclcpp.hpp 導入 ROS2 C 客戶端庫rclcpp::init(argc, argv) 初始化 ROS2std::make_sharedrclcpp::Node(cpp_node) 創(chuàng)建節(jié)點RCLCPP_INFO(node-get_logger(), Hello c!) 輸出日志信息rclcpp::spin(node) 持續(xù)運行節(jié)點rclcpp::shutdown() 關閉 ROS2CMakeLists.txt修正版cmake_minimum_required(VERSION 3.8) 指定 CMake 最低版本project(ros2_cpp_node) 定義項目名稱find_package(rclcpp REQUIRED) 查找 rclcpp 依賴包add_executable(ros2_cpp_node ros2_cpp_node.cpp) 生成可執(zhí)行文件target_include_directories(ros2_cpp_node PUBLIC ${rclcpp_INCLUDE_DIRS}) 配置頭文件路徑target_link_libraries(ros2_cpp_node ${rclcpp_LIBRARIES}) 鏈接庫編譯與運行cmake . 生成 Makefilemake 編譯cmake . | grep rclcpp 過濾 rclcpp 相關輸出ros2 node info /cpp_node 查看節(jié)點詳細信息三、關鍵要點節(jié)點三件套 init → 創(chuàng)建 Node → spin → shutdownC 與 Python 差異 C 需 CMake 配置頭文件路徑和鏈接庫易錯點 CMake 中鏈接庫用 target_link_libraries不是 target_link_directories調(diào)試工具 ros2 node list / ros2 node info