
编写第一个 Python 节点在 ROS2 中可以使用 Python 编写简单的节点。以下是一个基础示例#!/usr/bin/env python3 import rclpy from rclpy.node import Node class MyNode(Node): def init(self): super().init(my_python_node) self.get_logger().info(Hello ROS2 from Python!) def main(argsNone): rclpy.init(argsargs) node MyNode() rclpy.spin(node) rclpy.shutdown() if name main: main()使用 C 编写节点使用 C 编写 ROS2 节点通常涉及以下步骤1. 配置 C 环境确保已安装 ROS2 和必要的 C 开发工具如 g、CMake。建议参考其他文章进行环境配置。2. 使用 g 直接编译对于简单的单文件程序可以使用 g 直接编译g -stdc11 ros_cpp_node.cpp -o ros_cpp_node -I/opt/ros/humble/include -L/opt/ros/humble/lib -lrclcpp3. 使用 CMake 编译配置 C 节点对于项目推荐使用 CMake 进行构建。参考ROS2学习笔记第二天C与CMake学习笔记从基础编译到项目构建-CSDN博客注意 CMakeLists.txt 文件的书写cmake_minimum_required(VERSION 3.8) project(ros2_cpp) 查找 rclcpp 包 find_package(rclcpp REQUIRED) 添加可执行文件 add_executable(ros2_cpp_node ros_cpp_node.cpp) 添加头文件路径 target_include_directories(ros2_cpp_node PUBLIC ${rclcpp_INCLUDE_DIRS}) 链接库 target_link_libraries(ros2_cpp_node ${rclcpp_LIBRARIES})C 源文件示例#include iostream #include rclcpp/rclcpp.hpp using namespace std; int main(int argc, char **argv) { rclcpp::init(argc, argv); // 初始化 ROS2 节点 auto node std::make_sharedrclcpp::Node(my_node); // 创建节点对象 RCLCPP_INFO(node-get_logger(), Hello ROS2!); // 输出日志 rclcpp::spin(node); // 进入循环等待回调 rclcpp::shutdown(); // 关闭节点释放资源 // 打印参数信息示例 cout lt;lt; 参数数量: lt;lt; argc lt;lt; endl; cout lt;lt; 参数名字: lt;lt; argv[0] lt;lt; endl; return 0; }注意事项初学注意格式确保代码缩进正确。CMakeLists.txt 和 C 源文件中的括号、分号等符号要匹配。编译前检查依赖包是否已正确 find_package。