ROS2学习--OOP方法编写python节点

news/2024/5/19 17:20:02

1.创建工作空间

mkdir -p town_ws/src
cd town_ws/src

2.创建功能包

ros2 pkg create village_li --build-type ament_python --dependencies rclpy
  • pkg create 是创建包的意思
  • --build-type 用来指定该包的编译类型,一共有三个可选项ament_pythonament_cmakecmake
  • --dependencies 指的是这个功能包的依赖,这里小鱼给了一个ros2的python客户端接口rclpy

目录结构如下:

3.创建节点文件

__init__.py同级别目录下创建.py文件

touch zhang3.py

4.编写程序

打开zhang3.py文件

import rclpy
from rclpy.node import Nodedef main(args=None):"""ros2运行该节点的入口函数编写ROS2节点的一般步骤1. 导入库文件2. 初始化客户端库3. 新建节点对象4. spin循环节点5. 关闭客户端库"""rclpy.init(args=args) # 初始化rclpynode = Node("li4")  # 新建一个节点node.get_logger().info("大家好,我是作家li4.")rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C)rclpy.shutdown() # 关闭rclpy

接着修改setup.py增加一句话,告诉ros2村庄来了一位新村民张三,要找这位村民去village_zhang.zhang3:main路径下寻找。

entry_points={'console_scripts': ["zhang3_node = village_zhang.zhang3:main"],},
)

5.编译运行

编译节点

colcon build

source环境

source install/setup.bash

运行节点

ros2 run village_zhang zhang3_node

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/25142.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

[python省时间]处理文档,包括批量查找,替换,

1、批量查找替换 # -*- coding: utf-8 -*- import os import re # path=os.getcwd()str_old = insert str_new = frs.event.queue file_formate = init.sql file_sql=open(rF:\bak\init_all.sql, r+, encoding=utf-8) def replace_txt(path):if path.find(file_formate) == len…

【python省时间】时间转换、日期格式化、时间戳转字符、

1、日期格式化 def paserTime(timestamp): t = time.time() f=time.localtime(timestamp/1000) print (t) #原始时间数据 # print (int(t)) #秒级时间戳 print (int(round(t * 1000))) #毫秒级时间戳 #nowTime = lambda: int(round(…

马斯克的 xAI 融资 60 亿美元;英伟达收购两家 AI 创企丨 RTE 开发者日报 Vol.193

红杉资本、昆仑万维、字节跳动 开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有…

uni-app的POST请求和GET请求

uni-app就像一个盗版的Vue, 和Vue很想,又不完全像 //微信小程序post请求 uni.request({ url: http://127.0.0.1:8000/api/test_post/, // Django后端API地址 method: POST, //指定请求类型(POST还是GET)data: { //数据都要放在这里,以键值对的方式key1: value1, key2: valu…

ROS2学习记录

一、编写C++节点并测试 1.创建功能包 C++功能包使用ament-camke作为编译基础,依赖为rclcpp。打开终端,进入town_ws/src运行下面的指令,目录结构如下 ros2 pkg create village_wang --build-type ament_cmake --dependencies rclcpp2.创建节点 village_wang/src下创建一个wa…

社区发现之标签传播算法(LPA)python实现

社区发现在图领域中备受关注,其根源可以追溯到子图分割问题。在真实的社交网络中,用户之间的联系紧密度不尽相同,导致形成了不同的社区结构。社区发现问题主要分为两类:非重叠和重叠社区。非重叠社区发现指的是每个节点仅属于一个社区,社区之间没有交集。在非重叠社区发现…

多进程编程:原理、技术与应用

title: 多进程编程:原理、技术与应用 date: 2024/4/26 12:14:47 updated: 2024/4/26 12:14:47 categories:后端开发tags:多进程 并发编程 网络服务 分布式系统 任务处理 进程池 线程对比第一章:进程与线程 进程与线程的概念及区别:进程:进程是操作系统中的一个程序执行实例…

条款48:认识 template 元编程

**常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。 昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。