大家好,我是可爱的小鱼 。鱼香ROS网站快要做完了,很快就可以和大家见面了~

本节小鱼带你一起学习使用Python将李四节点中小写说timer周期变成一个可以动态修改的参数。

1.代码编写

打开vscode,打开li4.py,把目光放到下面这行代码上

class Li4Node(Node)

这行程序告诉我们,Li4Node是继承于rclpy.node.Node的。所以李四获取到了参数相关的能力:

函数名称 描述
declare_parameter 声明和初始化一个参数
declare_parameters 声明和初始化一堆参数
get_parameter 通过参数名字获取一个参数
get_parameters 通过多个参数名字获取多个参数
set_parameters 设置一组参数的值
更多函数 Node — rclpy 0.6.1 documentation (ros2.org)

完成修改李四编写速度的参数,我们需要做两步即可,声明参数和获取参数

1.1 声明参数

修改__init__函数,最后面加入下面这行代码

# 声明参数,参数名字,默认值
self.declare_parameter("write_timer_period",5

1.2 获取并设置参数

这里我们在timer的回调函数里做这件事,每次写完小说就更新一下

修改timer_callback函数,在最下面加入两行代码

# 回调之后更新回调周期
timer_period = self.get_parameter('write_timer_period').get_parameter_value().integer_value
# 更新回调周期
self.timer.timer_period_ns = timer_period * (1000*1000*1000)

完整的代码如下:

    def timer_callback(self):msg = String()msg.data = '第%d回:潋滟湖 %d 次偶遇胡艳娘' % (self.i,self.i)self.write.publish(msg)  #将小说内容发布出去self.get_logger().info('李四:我发布了艳娘传奇:"%s"' % msg.data)    #打印一下发布的数据,供我们看self.i += 1 #章节编号+1# 回调之后更新回调周期timer_period = self.get_parameter('write_timer_period').get_parameter_value().integer_value# 更新回调周期self.timer.timer_period_ns = timer_period * (1000*1000*1000)

稍微解释一下,新增的两行代码一个用于获取目前的参数值通过参数名称,并将其转换成整形数据

另外一行用于更新回调的周期(修改timer的成员变量timer_period_ns即可实现)

2.测试

2.1编译程序

colcon build --packages-select village_li

2.2 运行李四节点

ros2 run village_li  li4_node

2.3 使用ros2 param命令行测试

2.3.1 查看参数列表

ros2 param list

2.3.2 查看描述

ros2 param describe /wang2 novel_price

2.3.3 获取参数值

ros2 param get /wang2 novel_price

2.3.4 设置参数值提高价钱

这里设置成1,让李四一秒钟写完一章.

ros2 param set li4 write_timer_period 1

有的小伙伴说,我怎么知道李四有没有变得更快了,这里小鱼再讲一个非常牛

使用Python玩转ROS2参数相关推荐

  1. python玩转android_如何用python玩跳一跳 ?(安卓版)

    微信小程序的游戏相信大家都很爱玩,用手机方便而且玩起来简单.其实,我们也可以用python来玩跳一跳,一起试试吧~ 以win10系统+安卓手机为例 第一步.安装python2.7 默认安装到C盘就行 ...

  2. 用python玩转数据测试与作业_用Python玩转数据分析10

    MOOC上的课程<用Python玩转数据分析>的学习笔记. 数据探索与预处理之数据清洗 数据探索包括检查数据错误,了解数据分布特征和内在规律 数据预处理包括数据清洗,数据集成(integr ...

  3. libmysqld_dev linux,Linux下python玩转MySQLdb

    (0)目录 Linux下python玩转MySQLdb 一:起因 (1)Linux下安装python的第三方模块 ---- MySQLdb,自己走了很多弯路,在此做一下总结,希望对于像我一样的初学者有 ...

  4. python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...

    原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...

  5. python书籍pdf文档密码-Python玩转PDF的各种骚操作

    Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...

  6. python玩转android_怎样用python玩安卓版跳一跳

    怎样用python玩安卓版跳一跳 发布时间:2020-11-09 10:44:44 来源:亿速云 阅读:84 作者:小新 小编给大家分享一下怎样用python玩安卓版跳一跳 ,相信大部分人都还不怎么了 ...

  7. python玩转我的世界_PYTHON玩转我的世界——批量生成铁傀儡

    原标题:PYTHON玩转我的世界--批量生成铁傀儡 坐标系统 我的世界是由一个个方块构成的,每个方块边长都是1米.方块的位置由X,Y,Z三维坐标表示.其中X和Z表示水平面的坐标,Y表示垂直高度坐标. ...

  8. 使用python玩跳一跳超详细使用教程

    在上一篇文章里介绍了使用Python玩微信跳一跳的详细使用教程,不过依旧还是有很多小伙伴有各种各样的问题.为了让各位小伙伴都能使用黑科技,于是再做一个超详细教程.从Python的安装开始,手把手教你一 ...

  9. python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF

    原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...

最新文章

  1. .net core webapi 部署windows server 2008 r2 笔记
  2. linux vga 分辨率低,vga输出 1440x900 分辨率问题
  3. vue-cli的使用
  4. ------ 比较二位数组大小-----
  5. 需求用例分析之六:业务用例之科伯恩系
  6. Swift编程语言学习2.1——基础运营商(在)
  7. window bat
  8. CodeForces - 1207F Remainder Problem(分块)
  9. 今天分享下移动端rem 适配
  10. [ofbiz]less-than (lt;) and greater-than (gt;) symbols
  11. 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
  12. 杭电------2097 Sky数(C语言写)
  13. 2022-2028年中国海上石油勘探行业市场研究及前瞻分析报告
  14. 三种css样式应用方式,CSS样式三种形式
  15. 交换机和路由器技术-11-VLAN Trunk
  16. 芯准TTE“宏时隙“调度机制 ——基本原理
  17. 懒汉式单例模式的多线程问题
  18. BBEdit 12.6.1 FIXED 特别版 Mac 强大的文本和HTML编辑器及汉化工具
  19. 【历史上的今天】6 月 12 日:美国进入数字化电视时代;Mozilla 的最初开发者出生;3Com 和美国机器人公司合并
  20. PID的理解与实现(二)

热门文章

  1. ORA-00257 错误处理
  2. 登陆模块之JWT单点登录
  3. 手机网站支付转Native支付--Android
  4. 品商业模式[摘自xiewen网络业游戏规则]
  5. 张果老能是鸿蒙时期一蝙蝠,历史书中张果老的故事,一只蝙蝠的传奇
  6. 字节跳动核心竞争力到底是什么?
  7. echo 多行_【庭审现场】利用注销公司诈骗 多行不义必自毙_政务_澎湃新闻
  8. 高数_向量代数_单位向量_向量与坐标轴的夹角
  9. vue项目在vscode中编译eslint报错没显示红色波浪线提示
  10. AI视频换脸方向论文阅读