ROS学习记录(四)服务与参数

ROS 专栏收录该内容
11 篇文章 0 订阅

ROS学习笔记系列是对 ROS中文教程的记录总结。
笔记四包括:

  • 4.1 ROS服务
  • 4.2 ROS参数

4.1 ROS 服务和参数

4.1.1 ROS服务概念

思考话题 是怎样的一种模式呢?大家“各抒己见”、“各取所需”,但是发的消息有没有人听,能不能读到消息,那是另外一回事。

服务(service) 模式是怎样的呢?简单说,一个请求(request) ,一个响应(response)。值得注意的是,这里的请求是指重置 (reset), 清除 (clear), 再生 (spawn), 终止 (kill) 等,响应即完成对应的操作。

4.1.2 ROS服务指令: rosservice

指令功能
rosservice list输出当前各节点可用的服务
rosservice call [服务] [服务所需参数]调用服务
rosservice type [服务]输出服务类型
rosservice find [服务类型]根据服务类型寻找服务
rosservice uri [服务]输出服务

如果您刚刚打开终端,需要先运行ROS并创建一个小海龟节点,在不同终端运行以下指令:

$ roscore 
$ rosrun turtlesim turtlesim_node

在新的终端输入以下指令

rosservice list                   #查看可用服务
rosservice type spawn             #查看 再生 指令的用法
rosservice call spawn 2 2 0.2 ""  #再生一只小乌龟,位置为 (2, 2) ,头转动 0.2rad,名称默认(为turtle2)

ROS服务指令可见,当前有 clear 等一系列服务可以用;spwan 是turtlesim 库的一个Spawn 类;执行再生指令后生成了一只新的小乌龟。


4.2 ROS参数指令: rosparam

如果说ROS服务用来让节点完成指定的操作,那么ROS参数用来设计一些细节。

ROS方法如下:

指令功能
rosparam list列出可用的参数
rosparam set [参数] [值]设置参数
rosparam get [参数]获取参数
rosparam load [文件名]从文件读取参数
rosparam dump [文件名] [命名空间]向文件写入参数
rosparam delete [参数]删除参数

执行以下指令

$ rosparam list                  #查看当前可用参数方法
$ rosparam set background_r 150  #设置背景红色分量为150
$ rosservice call clear          #清空刷新服务器,设置才有效
$ rosparam get background_r      #查看红色分量值

rosparam测试rosparam list 返回可见,前三个都是设置背景颜色的;我们把红色分量修改为 150,清空服务,然后就可以看到背景颜色变了;我们也可以使用 rosparam get查看当前的值。

我们也可以把当前数据写入文件,指令如下:

$ rosparam dump params.yaml       #将所有参数写入params.yaml 文件
$ gedit params.yaml               #查看params.yaml 文件
$ rosparam load params.yaml copy  #将params.yaml 文件加入 copy 命名空间
$ rosparam get copy/background_b  #放在命名空间之后,可以更加方便获取数据

小结
ROS话题(上一节)、ROS服务和ROS参数 分别用于实现哪些功能?

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p>     随着ICT技术不断深化和传统场景的结合,自动化、智能化相融合已经成为ICT技术的下一代浪潮,以工业机器人、服务机器人、自动驾驶等的新一代技术浪潮目前已经方兴未艾,成为又一波热点。而作为次级操作系统的ROS则提供了一系列的调试、仿真工具,能支持激光导航、视觉导航等算法,是切入机器人和自动驾驶技术的重要基石。 </p> <p>     机器人是一个复合型的领域,涉及软件、算法、硬件、结构等诸多方向,是一个理论性和实践性并重的行业,考虑到其复杂性和讲解的循序渐进,整个系列课程将分为三个系列即入门系列、中级系列、高级系列。 </p> <p>    在入门系列中,我们将介绍ROS的基础知识(机器人基础知识、ROS开发环境等)、ROS配置管理(系统架构、参数管理、Launch启动、编译配置以及如何基于源代码开发等)、ROS系统调试代码调试、可视化调试、消息回放、单元测试等。 </p> <p>    在中级系列中,我们将围绕机器人仿真涉及的URDF机器人模型、Gazebo仿真环境、坐标变换、运动控制等展开介绍,并随着课程的深入,将会深度使用RVIZ、Gazebo等仿真和调试工具。 </p> <p>    在高级系列中,我们将着眼于人工智能框架及算法,分享机器人开发涉及的运动控制、SLAM、语音交互、计算机视觉等。逐层递进,为大家一层层剥开机器人的神秘面纱。 </p> <p>     本系列课程的特色在于: </p> <p>     1、从基础知识、编译管理、通信机制、系统调试等4个方面循序渐进、逐步深化,知识覆盖全面,便于深度认知; </p> <p>     2、从基本理论、源码解读、工程示例等领域开展ROS系统入门知识的深度介绍和分析,源于工程实践,利于快速上手; </p> <p>    3、基于全新的环境Ubuntu 20.04、ROS Noetic、Gazebo 11、GMapping、Cartographer、tensorFlow 2.*、OpenCV 4.*等讲解,紧跟时代前沿。 </p> <p>    整个系列的课程将会逐步开发并上线,三个系列是一个逐步深入、环环相扣的课程内容,感兴趣的同学可以开始学习啦。 </p> <p>   </p> <p>   </p>
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值