首页 > 编程语言 >ROS2学习--OOP方法编写python节点

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

时间:2024-04-26 13:24:07浏览次数:24  
标签:node rclpy -- python zhang3 OOP 节点

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 Node

def main(args=None):
    """
    ros2运行该节点的入口函数
    编写ROS2节点的一般步骤
    1. 导入库文件
    2. 初始化客户端库
    3. 新建节点对象
    4. spin循环节点
    5. 关闭客户端库
    """
    rclpy.init(args=args) # 初始化rclpy
    node = 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

 

标签:node,rclpy,--,python,zhang3,OOP,节点
From: https://www.cnblogs.com/lei-bao/p/18159830

相关文章

  • [python省时间]处理文档,包括批量查找,替换,
    1、批量查找替换#-*-coding:utf-8-*-importosimportre#path=os.getcwd()str_old='insert'str_new='frs.event.queue'file_formate='init.sql'file_sql=open(r'F:\bak\init_all.sql','r+',encoding=......
  • 【商业智能图表superset】数据源行变为列
    目录1、数据源为posgresql2、数据源为clickhouse场景是数据源按月计算的,但是想按1号,2号,3号,的列来查看,这里要先汇总,按姓名groupby,将行转换为列,数据源不同时,对时间的函数不一样。1、数据源为posgresqlpostgres的抽取时间中月的第几天:extract(dayfromupdate_time)SELECTper......
  • 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
    通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: 参数设置说明 fi......
  • data参数
    大部分时间都是'Content-Type':'application/json',flask_appbuilder的服务中很多接口是 multipart/form-data;,用python调用时,通常情况下data=json.dumps({"catalogCode":"region","pageNo":1,"pageSize":1000})headers={......
  • Linux目录及文件管理
    Linux目录结构/(根目录):根目录是整个文件系统的起点,包含了所有其他目录和文件。/bin(二进制文件):存放系统的基本命令,如ls、cp、mv等。/boot(引导文件):存放启动Linux所需的引导文件,如内核文件、引导加载程序配置文件等。/dev(设备文件):包含系统中所有的设备文件,每个硬件......
  • 招投标04-2-招投标法-《中华人民共和国政府采购法》、《中华人民共和国政府采购法实施
    ##################################################在政府采购法中,大量的提到集中采购的内容。##################################################二、《中华人民共和国政府采购法》、《中华人民共和国政府采购法实施条例》重点摘要(一)政府采购法基础内容1.政府采购法......
  • Godot中设置Sprite2D节点透明度
    Godot中设置Sprite2D节点透明度该方法可以用于所有CanvasItem​类及其子类···#假设在`CancasItem`节点自身脚本中执行#设置范围0~1##设置自己及子节点modulate.a=0.5##仅设置自己节点的透明度self_modulate.a=0.5#设置范围(0~255)8bit##设置自己及子节点mod......
  • python装饰器 - 理解与应用
    装饰器定义Python装饰器是一种高级功能,可以用来修改或扩展函数或类的行为。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。通过在函数定义前使用@符号和装饰器函数的名称,可以在不修改原函数代码的情况下对函数进行功能增强或修改。装饰器可以用来实现日志记......
  • 使用 .NET 的 Dev Proxy 构建和测试弹性应用
    使用.NET的DevProxy构建和测试弹性应用https://devblogs.microsoft.com/dotnet/build-test-resilient-apps-dotnet-dev-proxy/在构建连接到API的应用时,我们通常专注于让应用正常工作。但是,当API速度慢、返回错误或不可用时会发生什么?你最不想看到的就是当你的应用程序......
  • Linux启动过程以及7种运行级别
    Linux启动过程Linux启动需要经历一些步骤,这些步骤确保系统能够在各种不同的硬件和配置条件下可靠地启动和运行,并且具有足够的灵活性以适应不同的使用场景和需求,具体步骤如下:BIOS/UEFI初始化(硬件初始化):执行基本输入输出系统(BIOS)或统一可扩展接口(UEFI)中的初始化程序。这些程......