当前位置: 首页 > news >正文

ros2-node

python

import rclpy
from rclpy.node import Nodedef main():rclpy.init() # 初始化node = Node("python_node")node.get_logger().info('你好 python 节点')rclpy.spin(node=node)rclpy.shutdown()if __name__=="__main__":main()

报错:

(base) yfzx@yfzx:~/project/learn/ros2fish$ python node.py 
Traceback (most recent call last):File "/home/yfzx/project/learn/ros2fish/node.py", line 2, in <module>from rclpy.node import NodeFile "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/node.py", line 42, in <module>from rclpy.client import ClientFile "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/client.py", line 22, in <module>from rclpy.impl.implementation_singleton import rclpy_implementation as _rclpyFile "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/impl/implementation_singleton.py", line 31, in <module>rclpy_implementation = _import('._rclpy')File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/impl/__init__.py", line 28, in _importreturn importlib.import_module(name, package='rclpy')File "/home/yfzx/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'rclpy._rclpy'
The C extension '/opt/ros/foxy/lib/python3.8/site-packages/rclpy/_rclpy.cpython-310-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://index.ros.org/doc/ros2/Troubleshooting/Installation-Troubleshooting/#import-failing-without-library-present-on-the-system' for possible solutions

解决:foxy版本ros2支持python3.8,此处使用3.10,因此报错,新建conda环境 python=3.8,运行成功

在这里插入图片描述
通过ros2 node list 查看节点,运行成功
在这里插入图片描述

c++

#include "iostream"
#include "rclcpp/rclcpp.hpp"int main(int argc, char** argv){std::cout<<"参数数量:\t"<<argc<<"\n";std::cout<<"程序名字:\t"<<argv[0]<<"\n";rclcpp::init(argc, argv);auto node = std::make_shared<rclcpp::Node>("cpp_node"); // 使用make_shared创建智能指针RCLCPP_INFO(node->get_logger(), "你好 cpp节点");rclcpp::spin(node);rclcpp::shutdown();return 0;
}

cmakelists.txt

cmake_minimum_required(VERSION 3.17)
project(ros2fosh)set(CMAKE_CXX_STANDARD 20)find_package(rclcpp REQUIRED) # 直接查找到对应的头文件和库文件, REQUIRED 表示这个库为必须
message(STATUS ${rclcpp_INCLUDE_DIRS}) # 头文件 及 rclcpp依赖的头文件
message(STATUS ${rclcpp_LIBRARIES}) # 库文件 及rclcpp依赖的库文件add_executable(node_cpp node_cpp.cpp)
target_include_directories(node_cpp PUBLIC ${rclcpp_INCLUDE_DIRS}) # 头文件包含
target_link_libraries(node_cpp ${rclcpp_LIBRARIES}) # 库文件链接

在这里插入图片描述

在这里插入图片描述

相关文章:

  • Win11 + Visual Studio 2022 + FLTK 1.4.3 + Gmsh 4.13.1 源码编译指南
  • Ubuntu 18.04.6下OpenSSL与OpenSSH版本升级
  • 2025-05-13 Unity 网络基础12——大小端模式
  • 项目中遇到的问题
  • WSL 安装 Debian 12 后,Linux 如何安装 vim ?
  • AI时代,如何实现人机共舞?
  • 计算机网络防火墙技术介绍:包过滤、应用代理网关、状态监测
  • c# 数据结构 树篇 入门树与二叉树的一切
  • 最大子段和(递推)
  • 物理:人的记忆是由基本粒子构成的吗?
  • 【AI News | 20250513】每日AI进展
  • Ubuntu 22.04搭建OpenStreeMap地址解析服务(保姆级教程)
  • 跨境电商定价革命:亚马逊“逆向提价“策略背后的价值重构逻辑
  • Readiris PDF:高效文档管理与OCR识别工具
  • CMake基础
  • Linux上的rm和srm 命令
  • Springboot实现重试机制
  • ebook2audiobook开源程序使用动态 AI 模型和语音克隆将电子书转换为带有章节和元数据的有声读物。支持 1,107+ 种语言
  • 从新手到高手:全面解析 AI 时代的「魔法咒语」——Prompt
  • 鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能
  • 国台办:实现祖国完全统一是大势所趋、大义所在、民心所向
  • 北京航空航天大学首个海外创新研究院落户巴西
  • 联合国秘书长欢迎中美经贸高层会谈成果
  • 演员黄晓明、金世佳进入上海戏剧学院2025年博士研究生复试名单
  • 尊严的代价:新加坡福利体系下的价值困境
  • 吉林:消纳绿电,“氢”装上阵