当前位置: 首页 > 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}) # 库文件链接

在这里插入图片描述

在这里插入图片描述

http://www.xdnf.cn/news/432505.html

相关文章:

  • SpringBoot--springboot简述及快速入门
  • 2025年全国青少年信息素养大赛初赛模拟测试网站崩了的原因及应对比赛流程
  • SparkSQL操作Mysql
  • 1995-2022年各省能源消费总量数据(万吨标煤)
  • UDS诊断----------$11诊断服务
  • 【YOLO模型】参数全面解读
  • JavaWeb 前端开发
  • 优化的代价(AI编码带来的反思)-来自Grok
  • 基于TouchSocket实现WebSocket自定义OpCode扩展协议
  • day19-线性表(顺序表)(链表I)
  • 操作系统:内存管理
  • JavaScript编译原理
  • 数据结构(七)——图
  • ThingsBoard3.9.1 MQTT Topic(4)
  • UDP协议详细讲解及C++代码实例
  • 数据压缩的概念和优缺点
  • 【电子科技大学主办 | 往届快至会后2个月EI检索】第六届电子通讯与人工智能国际学术会议(ICECAI 2025)
  • Gatsby知识框架
  • angular的rxjs中的操作符
  • Vitrualbox完美显示系统界面(只需三步)
  • vue2将文字转为拼音
  • Python 基础语法
  • Redis——数据结构
  • 精准预测蛋白质稳定性的强大工具
  • 深入理解Python逻辑判断、循环与推导式(附实战案例)
  • 通讯录程序
  • 企业ERP系统软件有哪些品牌?
  • 工业4.0之实时革新RTOS助力德国“灯塔工厂”实现跨域协同
  • 蓝桥杯 10. 全球变暖
  • redis数据结构-09 (ZADD、ZRANGE、ZRANK)