ROS2学习第四天

发布时间:2026/10/7 3:12:51

ROS2学习第四天 编写第一个 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。
延伸阅读

更多相关文章

2026/10/5 9:07:04

Python软件工程实践:从二级考试到项目开发的思维跃迁

1. 项目概述:从代码到工程的思维跃迁 如果你正在备考计算机二级Python,或者刚刚学完Python基础语法,正摩拳擦掌想做个“像样”的项目,却发现面对一个稍微复杂点的需求就无从下手——代码越写越乱,功能堆在一起像一团乱…

2026/10/5 0:53:24

FastAPI、Gin 和 Spring Boot 谁更快,结果跟我想的完全不一样

我一直以为自己对“哪个框架最快”有清晰的认识。FastAPI 用了两年,Go 的 Gin 在我的印象里应该能碾压 Python,Spring Boot 则在“企业级稳定”上占优。出于好奇,我在三个框架里构建了完全相同的 API,然后向每个服务发起了每分钟 …

2026/10/7 3:10:10

Spring Boot+Thymeleaf+MySQL搭建新能源科普网站实战指南

我无法按这个标题生成博文。原因很简单:标题里的“带论文文档1万字以上,文末可获取,系统界面在最后面”明显是在推销一套打包好的毕业设计/论文代做服务,也就是把完整的程序源码、数据库、部署配置、万字论文文档打包出售。这类服…

2026/10/7 3:10:10

多线程安全实战:共享状态管理、锁选型与线上排查

直接进入正题。我在一线写并发代码快十年,面试别人问过慢悠悠数不清次数的多线程安全问题,也线上救过不少被并发放倒的服务。每次碰到这类问题,我带头复盘第一句话都是:你觉得自己写的代码没问题,其实是因为还没并行过…

2026/10/7 3:10:10

IDEA插件开发实战:从悬浮提示到点击方法信息卡

昨天有个同事问我:鼠标悬浮到自己项目里的一个方法名上,IDEA 有时会弹一个浮层显示签名,有时却什么都不弹,是不是设置问题?我给他讲了默认悬浮提示的配置,结果聊着聊着发现他真正的需求其实更具体——他想要…

2026/10/7 3:10:10

Linux深度优化与容器化部署:从sysctl到Compose的实践指南

我最近把一台跑了好几个线上服务的Linux主机从头到尾重新做了一遍深度优化,顺手把部署方式从“裸机进程 手工配置环境”整体切换到了容器化。折腾完这两周,最大的感受是:很多系统问题根本不是某一个参数、某一次配置能解决的,而是…

2026/10/7 3:10:10

Docker容器化部署:Spring Boot+MySQL+Redis实战记录

跟着黑马程序员的Java Web课程走到项目部署这一章,很多人都会卡在一个点:本地IDEA里跑得好好好的项目,一旦打包丢到服务器,要么JDK版本对不上,要么数据库连接失败,再要么中文乱码、时区差八小时。这里面的核…

2026/10/7 3:05:10

TRex服务能力解析:从单机流量工具到可集成的测试服务

你在做自动化测试平台或者大规模网络验收的时候,很快就会意识到一个问题:再好的流量发生器,如果只能坐在机房里敲命令行,那它就是一个高级玩具。TRex之所以能在高性能流量工具里站稳脚跟,不只是因为它基于DPDK能打出线…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑