ROS机器人程序设计(原书第2版)3.3.1 检测节点、主题、服务和参数

本文涉及的产品
资源编排,不限时长
简介:

3.3.1 检测节点、主题、服务和参数

坦白地讲,我们应该先回顾一下学习过的基本内容。如何获得正在运行的节点、主题、给定时间可用服务的清单,如下表所示。

获取所有列表    命令

运行的节点  rosnode list

所有节点运行的主题 rostopic list

所有节点运行的服务 rosservice list

服务器中的参数 rosparam list

 

我们建议你回顾第2章,熟悉如何使用这些命令,同时看一下如何使用rosmsg show获取特定主题和字段发出的消息类型。

所有这些命令可以结合bash命令,如grep,寻找所需的节点、主题、服务或参数。例如,启动目标主题可以使用以下命令:

 

bash命令grep在文件列表或标准输出中查找文本或模式,如本例所示。

此外,ROS提供几个GUI检测主题和服务。首先,在一个类似于进程表(ToP)窗口rqt_top中显示运行的节点,可以快速查看正在使用的所有节点和资源。以REEM导航栈运行仿真为例,如下图所示:

 

另一方面,rqt_topic显示主题调试信息,包括发布者、接收者、发布速率和发布的消息。可以查看消息字段的主题并选择你想要订阅的主题,分析带宽和速率(Hz)以及查看最新消息发布。注意锁定的主题通常不会持续发布,所以不会看到任何关于它们的信息。如下图

所示。

 

同样,rqt_publisher允许我们在一个接口管理rostopic pub命令的多个实例。它还支持Python发布消息和固定值的表达式。在下图中,我们看到发布了两个示例主题(我们将在两个不同的终端看到使用rostopic echo <topic>发布消息)。

 

另一种更灵活的GUI是rqt_ez_publisher。对ROS hydro而言,必须使用下面的代码从一个空的工作空间手动安装:

 

对ROS indigo而言,它将会作为一个Debian功能包,所以只需要运行下面命令:

 

然后,运行:

 

在example5节点运行时,你可以发布将被该节点读取的消息。在下图中,我们将选择accel和temp主题(删除accel/y和accel/z字段):

 

注意,当启用重复(repeat)后,消息会不断发布。否则,GUI只在你改变值时发布消息。

rqt_service_caller和rosservice call命令的多个实例一样。在下图中,我们将调用/move_base/NavfnROS/make_plan服务,我们必须为空服务设置请求。这对于来自/amcl节点的

/global_localization服务而言是不需要的。点击Call按钮之后,我们将获得响应消息。对于本例,我们运行导航栈的REEM仿真,如下图所示:

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
1月前
|
Ubuntu 机器人 Linux
|
10天前
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
|
15天前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
1月前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
1月前
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速
|
3月前
|
传感器 自然语言处理 机器人
ROS2教程03 ROS2节点
本文是关于ROS2(机器人操作系统2)节点的教程,涵盖了节点的概念、特性、使用方法,以及如何编写、测试和使用ROS2节点相关的命令行工具。文章介绍了节点的独立性、任务执行、跨硬件分布和多语言编写能力。详细解释了如何启动节点、查看节点信息、编写节点代码(包括面向过程和面向对象的方法),以及如何为功能包添加依赖和入口点。此外,还探讨了重映射节点名称和使用节点命令行工具的方法,如 `ros2 node info` 和 `ros2 node list`。适合已安装ROS2 Humble和Ubuntu 22.04操作系统,并具有Shell基础知识的读者学习。
98 1
|
3月前
|
机器人 Python
ROS2教程 03 节点Node
本文是关于ROS2(机器人操作系统2)的教程,介绍了ROS2的节点概念、与ROS1的区别、节点的编写和基本流程、ros2的node相关命令,以及如何对节点名进行重映射,旨在帮助读者理解ROS2中节点的创建和操作。
108 0
ROS2教程 03 节点Node
|
4月前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
5月前
|
机器学习/深度学习 传感器 算法
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
235 2
|
5月前
|
机器人 定位技术 C++
技术笔记:ROS中测试机器人里程计信息
技术笔记:ROS中测试机器人里程计信息

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面