使用Python玩转ROS2参数
大家好,我是可爱的小鱼 。鱼香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参数相关推荐
- python玩转android_如何用python玩跳一跳 ?(安卓版)
微信小程序的游戏相信大家都很爱玩,用手机方便而且玩起来简单.其实,我们也可以用python来玩跳一跳,一起试试吧~ 以win10系统+安卓手机为例 第一步.安装python2.7 默认安装到C盘就行 ...
- 用python玩转数据测试与作业_用Python玩转数据分析10
MOOC上的课程<用Python玩转数据分析>的学习笔记. 数据探索与预处理之数据清洗 数据探索包括检查数据错误,了解数据分布特征和内在规律 数据预处理包括数据清洗,数据集成(integr ...
- libmysqld_dev linux,Linux下python玩转MySQLdb
(0)目录 Linux下python玩转MySQLdb 一:起因 (1)Linux下安装python的第三方模块 ---- MySQLdb,自己走了很多弯路,在此做一下总结,希望对于像我一样的初学者有 ...
- python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...
原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...
- python书籍pdf文档密码-Python玩转PDF的各种骚操作
Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adobe发明的,但它现在是由国际标准化组织(ISO ...
- python玩转android_怎样用python玩安卓版跳一跳
怎样用python玩安卓版跳一跳 发布时间:2020-11-09 10:44:44 来源:亿速云 阅读:84 作者:小新 小编给大家分享一下怎样用python玩安卓版跳一跳 ,相信大部分人都还不怎么了 ...
- python玩转我的世界_PYTHON玩转我的世界——批量生成铁傀儡
原标题:PYTHON玩转我的世界--批量生成铁傀儡 坐标系统 我的世界是由一个个方块构成的,每个方块边长都是1米.方块的位置由X,Y,Z三维坐标表示.其中X和Z表示水平面的坐标,Y表示垂直高度坐标. ...
- 使用python玩跳一跳超详细使用教程
在上一篇文章里介绍了使用Python玩微信跳一跳的详细使用教程,不过依旧还是有很多小伙伴有各种各样的问题.为了让各位小伙伴都能使用黑科技,于是再做一个超详细教程.从Python的安装开始,手把手教你一 ...
- python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF
原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...
最新文章
- .net core webapi 部署windows server 2008 r2 笔记
- linux vga 分辨率低,vga输出 1440x900 分辨率问题
- vue-cli的使用
- ------ 比较二位数组大小-----
- 需求用例分析之六:业务用例之科伯恩系
- Swift编程语言学习2.1——基础运营商(在)
- window bat
- CodeForces - 1207F Remainder Problem(分块)
- 今天分享下移动端rem 适配
- [ofbiz]less-than (lt;) and greater-than (gt;) symbols
- 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
- 杭电------2097 Sky数(C语言写)
- 2022-2028年中国海上石油勘探行业市场研究及前瞻分析报告
- 三种css样式应用方式,CSS样式三种形式
- 交换机和路由器技术-11-VLAN Trunk
- 芯准TTE“宏时隙“调度机制 ——基本原理
- 懒汉式单例模式的多线程问题
- BBEdit 12.6.1 FIXED 特别版 Mac 强大的文本和HTML编辑器及汉化工具
- 【历史上的今天】6 月 12 日:美国进入数字化电视时代;Mozilla 的最初开发者出生;3Com 和美国机器人公司合并
- PID的理解与实现(二)