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

鱼香ros第二章节点学习

在Setup.Py 增加节点

Python节点

import rclpy from rclpy.node import Node def main(): rclpy.init()#初始化 node = Node("python_node")#创建节点 node.get_logger().info('你好 Python 节点!');#获取日志打印内容 rclpy.spin(node)#执行节点 rclpy.shutdown()#清理节点

C节点

if __name__=="__main__": main() #include "rclcpp/rclcpp.hpp" int main(int argc, char **argv) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>("cpp_node"); RCLCPP_INFO(node->get_logger(), "你好 C++ 节点!"); rclcpp::spin(node); rclcpp::shutdown(); return 0; }

面向对象编程python

import rclpy from rclpy.node import Node class PersonNode(Node):#类 def __init__(self, node_name: str, name: str, age: int) -> None:#节点名称 节点变量 super().__init__(node_name) self.age = age #变量赋值 self.name = name #变量赋值 def eat(self, food_name: str):# 节点名称 节点变量 self.get_logger().info(f'我叫{self.name},今年{self.age}岁,我现在正在吃{food_name}') def main(): rclpy.init() node = PersonNode('person_node', '法外狂徒张三', '18')#类的对象 node.eat('鱼香肉丝') rclpy.spin(node) rclpy.shutdown()

python多线程

import threading#多线程库 import requests#下载库 class Download: def download(self, url, callback):#函数 (函数名 网址 统计的字数) print(f'线程:{threading.get_ident()} 开始下载:{url}')#打印线程编号 response = requests.get(url) response.encoding = 'utf-8' callback(url, response.text)#调用回调函数 def start_download(self, url, callback):#开始下载 (函数名 网址 统计的字数) thread = threading.Thread(target=self.download, args=(url, callback)) #多线程下载 (线程目标 线程参数) thread.start() #启动线程 def download_finish_callback(url, result): #普通函数 用于回调 print(f'{url}下载完成,共:{len(result)}字,内容为:{result[:5]}...') def main(): d = Download() d.start_download('http://localhost:8000/novel1.txt', download_finish_callback) d.start_download('http://localhost:8000/novel2.txt', download_finish_callback) d.start_download('http://localhost:8000/novel3.txt', download_finish_callback)
http://www.jsqmd.com/news/654904/

相关文章:

  • 别再硬编码了!Spring Boot集成AmazonS3(或兼容S3的存储)的最佳配置管理实践
  • 客户案例 | 甄知科技助力5大数科企业研运管理升级
  • 如何高效使用酷安UWP桌面客户端:Windows平台上的完整酷安社区体验指南
  • Topit:如何通过窗口置顶技术提升Mac多任务处理效率
  • 从零到一:深入解析uC/OS-II实时内核的任务调度机制
  • 面向 LLM 的程序设计 11:多语言与多模态下的工具描述
  • 可靠的空调品牌推荐哪家,分析开利空调风速调节、清洗和与大金对比 - 工业品网
  • laravel-translatable核心原理解析:深入了解JSON存储机制
  • 告别状态机混乱:用BehaviorTree.CPP重构你的ROS机器人决策逻辑(保姆级实战)
  • Mem Reduct内存管理工具的高级配置架构与原理解析
  • WebSocket在Vue2中的实战:告别轮询,实现服务器主动推送(含避坑指南)
  • 模拟CMOS集成电路(3):共源放大器的偏置、增益与摆幅实战解析
  • 从机器学习实战看贝叶斯与频率学派的融合与分野
  • 给Android开发者的BootLoader与内核启动速成课:从按下电源到第一个进程
  • 用Python和NumPy的SVD功能,5分钟搞定图片压缩(附完整代码和效果对比图)
  • 技术先进、服务好的超声波雾化设备供应商怎么选,深度剖析与综合推荐 - myqiye
  • 日本进口五轴加工中心-日桥机械 - 品牌推荐大师
  • VS2019 MFC TeeChart V5.1动态曲线绘制实战:从安装到高级功能封装
  • 教你轻松处理闲置瑞祥卡,线上回收省时又安全 - 团团收购物卡回收
  • 从Log4j 1.x到Log4j 2.x的JMX迁移实践
  • 鱼香ros学习第三章话题
  • Latex排版+实验设计:我是如何在家‘纸上谈兵’完成TCSVT顶会论文初稿的
  • RVC WebUI界面详解:每个按钮功能说明,小白秒懂操作
  • 知名企业家诉讼离婚请律师委托费多少,有哪些上海本地的律师推荐 - 工业设备
  • 2026年靠谱的图像质量测试设备型号推荐,摄像头测试设备多少钱揭秘 - mypinpai
  • 引用vs指针
  • 从Prompt注入到训练数据投毒:生成式AI全链路隐私攻击图谱(2024最新ATTCK for AI v2.1)
  • R| 纵向数据可视化:用增强版云雨图(Raincloudplots)揭示时间序列变化
  • 802.11AX资源调度探秘:NDP反馈报告(NFR)机制详解
  • 2026年4月佛山顺德五金模具定制供应商深度对标指南——金属制品与五金配件采购避坑全攻略 - 精选优质企业推荐官