资讯动态

1.ROS2创建节点

发布时间:2026/9/2 5:44:03 来源:尧图企业网站定制
文章目录Python 创建节点C创建python 功能包Python 创建节点# 1. 导入ros2 python客户端库importrclpy# 导入节点基类所有ROS2节点都要继承/使用它fromrclpy.nodeimportNode# 定义主函数defmain():# 2. 初始化ROS2运行环境相当于启动ros2底层rclpy.init()# 3. 创建一个节点节点名字叫 python_node# 在ROS2中程序最小单元就是「节点」一个程序 一个节点nodeNode(python_node)# 4. 打印一条日志输出到终端info是普通信息日志# 等价于 print()但是是ROS标准日志可以设置日志等级、保存日志文件node.get_logger().info(Python Node)# 5. 保持节点存活进入自旋监听状态等待消息、定时器事件# rclpy.spin 会卡住程序不会直接往下执行rclpy.spin(node)# 6. 关闭ROS2环境释放资源spin被CtrlC中断之后才会走到这一行rclpy.shutdown()# python程序入口运行这个脚本时自动执行 main()if__name____main__:main()C#includeiostream#includerclcpp/rclcpp.hppusing namespace std;intmain(intargc,char**argv){rclcpp::init(argc,argv);autonodemake_sharedrclcpp::Node(cpp_node);RCLCPP_INFO(node-get_logger(),C Node);rclcpp::spin(node);rclcpp::shutdown();return0;}CMakeListcmake_minimum_required(VERSION 3.8) project(ros2_cpp) # 查找ROS依赖 find_package(rclcpp REQUIRED) # 生成可执行程序 add_executable(ros2_cpp_node ros2_cpp_node.cpp) # 打印调试信息STATUS 拼写正确 message(STATUS ${rclcpp_INCLUDE_DIRS}) message(STATUS ${rclcpp_LIBRARIES}) # 指定头文件路径指令带下划线名字不能空格 target_include_directories(ros2_cpp_node PUBLIC ${rclcpp_INCLUDE_DIRS} ) # 链接库文件 target_link_libraries(ros2_cpp_node ${rclcpp_LIBRARIES} )创建python 功能包先进入工作空间 src 目录标准规范cd ~/learnRos2_ws/src创建 Python 类型功能包ros2 pkg create --build-type ament_python my_python_pkgmy_python_pkg你的功能包名字自定义--build-type ament_python指定是 Python 包区别于 C 的ament_cmake执行完自动生成目录结构my_python_pkg/ ├── my_python_pkg/ # Python源码文件夹 │ ├── __init__.py ├── package.xml ├── setup.py # 配置入口节点关键文件 ├── setup.cfg └── resource/编写 python 节点文件写入示例代码hello_node.pyimportrclpyfromrclpy.nodeimportNodeclassHelloNode(Node):def__init__(self):super().__init__(hello_python)self.get_logger().info(ROS2 Python节点启动成功)defmain():rclpy.init()nodeHelloNode()rclpy.spin(node)rclpy.shutdown()if__name____main__:main()修改 setup.py 注册可执行入口必须否则 ros2 run 找不到entry_points{ console_scripts: [ hello my_python_pkg.hello_node:main, ], },格式节点别名 包名.文件名:main函数5.package.xml 添加依赖必须补打开package.xml在buildtool_dependament_python/buildtool_depend下面添加dependrclpy/depend返回工作空间根目录编译cd ~/learnRos2_wscolcon build --packages-select my_python_pkg刷新环境变量source install/setup.bash运行节点ros2 run my_python_pkg hello

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价