【ROS】——常用命令(五)

news2024/10/4 11:17:46

文章目录

  • 前言
  • 1. rosnode
    • 1.1 rosnode list 列出活动节点
    • 1.2 rosnode ping 测试到节点的连接状态
    • 1.3 rosnode info 打印节点信息
    • 1.4 rosnode machine 列出指定设备上节点
    • 1.5 rosnode kill 杀死某个节点
    • 1.6 rosnode cleanup 清除不可连接的节点
  • 2. rostopic
    • 2.1 rostopic list(-v)
    • 2.2 rostopic pub
    • 2.3 rostpic echo
    • 2.4 rostopic info
    • 2.5 rostopic type
    • 2.6 rostopic find 消息类型
    • 2.8 rostopic hz
    • 2.9 rostopic bw
  • 3. rosmsg
    • 3.1 rosmsg list
    • 3.2 rosmsg packages
    • 3.3 rosmsg package
    • 3.4 rosmsg show
    • 3.5 rosmsg info
  • 4. rosservice
    • 4.1 rosservice list
    • 4.2 rosservice args
    • 4.3 rosservice call
    • 4.4 rosservice find
    • 4.5 rosservice info
    • 4.6 rosservice type
    • 4.7 rosservice uri
  • 5. rossrv
    • 5.1 rossrv list
    • 5.2 rossrv packages
    • 5.3 rossrv package
    • 5.4 rossrv show
    • 5.5 rossrv info
    • 5.6 rossrv md5
  • 6. rosparam

前言

📢本系列将依托赵虚左老师的ROS课程,写下自己的一些心得与笔记。
📢课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ
📢讲义链接:http://www.autolabor.com.cn/book/ROSTutorials/index.html
📢 文章可能存在疏漏的地方,恳请大家指出。

在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:

  • rosnode : 操作节点
  • rostopic : 操作话题
  • rosservice : 操作服务
  • rosmsg : 操作msg消息
  • rossrv : 操作srv消息
  • rosparam : 操作参数

作用
和之前介绍的文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。

1. rosnode

rosnode 是用于获取节点信息的命令

rosnode ping    测试到节点的连接状态
rosnode list    列出活动节点
rosnode info    打印节点信息
rosnode machine    列出指定设备上节点
rosnode kill    杀死某个节点
rosnode cleanup    清除不可连接的节点

以之前话题通讯的案例为例子
在这里插入图片描述

1.1 rosnode list 列出活动节点

在这里插入图片描述

1.2 rosnode ping 测试到节点的连接状态

在这里插入图片描述

1.3 rosnode info 打印节点信息

在这里插入图片描述

1.4 rosnode machine 列出指定设备上节点

在这里插入图片描述

1.5 rosnode kill 杀死某个节点

在这里插入图片描述
同时可以看到原先的节点进程也被中止了。

在这里插入图片描述

1.6 rosnode cleanup 清除不可连接的节点

以小海龟为例:
在这里插入图片描述

杀死一个节点之后

在这里插入图片描述

发现/turtlesim这个节点依然存在,即为“僵尸节点”
在这里插入图片描述rosnode cleanup删除干净
在这里插入图片描述

2. rostopic

rostopic包含rostopic命令行工具,用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。它还包含一个实验性Python库,用于动态获取有关主题的信息并与之交互。

rostopic bw     显示主题使用的带宽
rostopic delay  显示带有 header 的主题延迟
rostopic echo   打印消息到屏幕
rostopic find   根据类型查找主题
rostopic hz     显示主题的发布频率
rostopic info   显示主题相关信息
rostopic list   显示所有活动状态下的主题
rostopic pub    将数据发布到主题
rostopic type   打印主题类型

2.1 rostopic list(-v)

直接调用即可,控制台将打印当前运行状态下的主题名称
rostopic list -v : 获取话题详情(比如列出:发布者和订阅者个数…)
在这里插入图片描述

2.2 rostopic pub

可以直接调用命令向订阅者发布消息
为roboware 自动生成的 发布/订阅 模型案例中的 订阅者 发布一条字符串

rostopic pub /主题名称 消息类型 消息内容
rostopic pub /chatter std_msgs gagaxixi

为 小乌龟案例的 订阅者 发布一条运动信息

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist
 "linear:
  x: 5.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0"
//只发布一次运动信息

在这里插入图片描述

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist
 "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.0"
// 以 10HZ 的频率循环发送运动信息

在这里插入图片描述

2.3 rostpic echo

获取指定话题当前发布的消息
在这里插入图片描述

2.4 rostopic info

获取当前话题的相关信息

消息类型

  • 发布者信息
  • 订阅者信息

在这里插入图片描述

2.5 rostopic type

列出话题的消息类型
在这里插入图片描述

2.6 rostopic find 消息类型

根据消息类型查找话题
在这里插入图片描述

2.8 rostopic hz

列出消息发布频率
在这里插入图片描述

2.9 rostopic bw

列出消息发布带宽

在这里插入图片描述

3. rosmsg

rosmsg是用于显示有关 ROS消息类型的 信息的命令行工具。

rosmsg show    显示消息描述
rosmsg info    显示消息信息
rosmsg list    列出所有消息
rosmsg md5    显示 md5 加密后的消息
rosmsg package    显示某个功能包下的所有消息
rosmsg packages    列出包含消息的功能包

3.1 rosmsg list

会列出当前 ROS 中的所有 msg
在这里插入图片描述

3.2 rosmsg packages

列出包含消息的所有包
在这里插入图片描述

3.3 rosmsg package

列出某个包下的所有msg

//rosmsg package 包名 
rosmsg package turtlesim

在这里插入图片描述

3.4 rosmsg show

显示消息描述

//rosmsg show 消息名称
rosmsg show turtlesim/Pose
结果:
float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity

3.5 rosmsg info

作用与 rosmsg show 一样

4. rosservice

rosservice包含用于列出和查询ROSServices的rosservice命令行工具。
调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash

rosservice args 打印服务参数
rosservice call    使用提供的参数调用服务
rosservice find    按照服务类型查找服务
rosservice info    打印有关服务的信息
rosservice list    列出所有活动的服务
rosservice type    打印服务类型
rosservice uri    打印服务的 ROSRPC uri

4.1 rosservice list

列出所有活动的 service

4.2 rosservice args

打印服务参数

4.3 rosservice call

调用服务
为小乌龟的案例生成一只新的乌龟

rosservice call /spawn "x: 10.0
y: 10.0
theta: 0.0
name: 'turtle2'" 
name: "turtle2"

在这里插入图片描述

4.4 rosservice find

根据消息类型获取话题
在这里插入图片描述

4.5 rosservice info

获取服务话题详情
在这里插入图片描述

4.6 rosservice type

获取消息类型
在这里插入图片描述

4.7 rosservice uri

获取服务器 uri
在这里插入图片描述

5. rossrv

rossrv是用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。

rossrv show    显示服务消息详情
rossrv info    显示服务消息相关信息
rossrv list    列出所有服务信息
rossrv md5    显示 md5 加密后的服务消息
rossrv package    显示某个包下所有服务消息
rossrv packages    显示包含服务消息的所有包

5.1 rossrv list

会列出当前 ROS 中的所有 srv 消息

5.2 rossrv packages

列出包含服务消息的所有包

5.3 rossrv package

列出某个包下的所有msg

//rossrv package 包名 
rossrv package turtlesim

5.4 rossrv show

显示消息描述

//rossrv show 消息名称
rossrv show turtlesim/Spawn
结果:
float32 x
float32 y
float32 theta
string name
---
string name

5.5 rossrv info

作用与 rossrv show 一致

5.6 rossrv md5

对 service 数据使用 md5 校验(加密)

6. rosparam

rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数。

rosparam set    设置参数
rosparam get    获取参数
rosparam load    从外部文件加载参数
rosparam dump    将参数写出到外部文件
rosparam delete    删除参数
rosparam list    列出所有参数

这一部分和之前的参数服务器那一讲的内容差不多,可以对照着看看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习】深度强化学习

李宏毅深度学习一、深度强化学习Deep Reinforcement Learning (RL)什么是RL?(三步骤)计算loss计算A版本0版本1版本2版本32、梯度方法收集训练数据:探索3、actor criticMCTD版本3.5一、深度强化学习Deep Reinforcement Learning (RL) 什么是R…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的图像语义分割模型

给我推荐20个比较流行的图像语义分割模型 在这里列出20个比较流行的图像语义分割模型:U-Net Mask R-CNN Fully Convolutional Network (FCN) SegNet DeepLab v3 PSPNet ENet ICNet RefineNet DenseASPP DenseNet LinkNet FPN BiSeNet ENAS Deeplab v3 GCN CRF-RNN …

Linux环境变量

文章目录什么是环境变量?什么是本地变量?如何获取环境变量?在shell中在程序中如何添加/删除环境变量&&本地变量?在shell中在程序中为什么环境变量能够被子进程继承?什么是环境变量? 环境变量是进程…

Vue初识系列【1】

文章目录一 前端体系1.1 前端三要素1.2 JavaScript 框架1.3 JavaScript 构建工具1.4 前端所需后端技术1.5 UI框架二 前后端分离史2.1 后端为主的 MVC 时代(web1.0)2.2 基于 AJAX 带来的 SPA 时代(web2.0)2.3 前端为主的 MV* 时代2.4 NodeJS 带来的全栈时…

OBS 进阶 音频面板优化

因为,面板高度就那么大,如果声音源很多的话,就有点乱。 优化目的:静音的,自动放在底部,这样,音频面板上面的都是没有静音的,也是我们最关注的部分。 目录 一、音频面板优化 1、不想要音频面板的title,将其去掉

【LeetCode每日一题】【2023/1/3】2042. 检查句子中的数字是否递增

文章目录2042. 检查句子中的数字是否递增方法1:直接遍历写法2:按本题特有条件方法2:栈方法3:std::stringstream写法22042. 检查句子中的数字是否递增 LeetCode: 2042. 检查句子中的数字是否递增 简单\color{#00AF9B}{简单}简单 句…

202301-第一周资讯

大家好,欢迎来到本周资讯,在过去的一周内呢,我们在示例DEMO、文档、教学视频上都有了较多的产出并且帮助大家解决了不少问题,赶紧看看上周成果吧! 目录 DEMO 动态TopN报表 导出图文报告的脚本示例 Superpage pc端…

【FPGA】基本实验步骤演示 | Verilog编码 | 运行合成 | 设备/引脚分配 | 综合/实施 | 设备配置

写在前面:本章的目的是让你理解与门、或门和非门的行为,并使用 Verilog 语言实现多输入与门、或门和非门。在生成输入信号之后,你需要通过模拟来验证这些门的操作,并使用 FPGA 来验证 Verilog 实现的电路的行为。 0x00 引入&#…

Vue+Echarts监控大屏实例十六:Echarts对接天地图插件开发

一、实例概述 本实例实现echarts使用天地图组件的开发,通过修改echarts中百度地图及高德地图插件实现echarts中使用天地图的使用。本实例实现对于监控界面的相关开发资料,提供实例源码、开发过程视频及实现过程。   1. Echarts参考文档: echarts   2. 高德地图插件:ech…

P1455 搭配购买

题目描述 明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有 nn 朵云,云朵已经被老板…

非Web服务弱口令检查工具下载与使用

今天继续给大家介绍渗透测试相关知识,本文主要内容是非Web服务弱口令检查工具下载与使用。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调&#xff1…

操作系统的运行机制和体系结构

文章目录🎀前言:本篇博客知识总览🏅运行机制🎇两种指令🎇两种状态🎇两种程序🏅操作系统的内核🎇内核概念:🏅操作系统的体系结构🎯最常考点&#x…

DevOps - Jenkins可视化流水线(后端部分)

目录 🧡创建DevOps工程 🧡拉取代码 🧡项目编译 🧡构建镜像 🧡推送镜像 🧡部署到Dev环境 🧡邮件功能 🧡激活微服务 💟这里是CS大白话专场,让枯燥的学习…

zookeeper下载安装

1、环境准备 ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。 2、上传 将下载的ZooKeeper放到/opt/ZooKeeper目录下 #上传zookeeper altp put f:/setup/apache-zookeeper-3.5.6-bin.tar.gz #打开 opt目录 cd /opt #创建zooKeeper目录…

电子招标采购系统源码之什么是电子招投标系统?

随着互联网时代的到来,各行业都受到不同的影响,其中招投标行业也不例外。为了顺应互联网潮流的发展,电子招投标逐渐取代传统的纸质的招投标方式,给招标方、投标方、招标代理等各方也带来了前所未有的机遇与挑战。那么什么是电子招…

日志采集 - Filebeat

Filebeat 是什么? Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。 是使用 Golang 实现的轻量型日志采集器,也…

Spring Boot配置MinIO(实现文件上传、读取、下载、删除)

一、 MinIO MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&#x…

INSERT ON DUPLICATE KEY UPDATE返回值引起的小乌龙

一、东窗事发 某个版本送测,测试大佬给提了一个缺陷,且听我描述描述: 一个学习任务: 两个一模一样的学习动态: 产品定义:学习任务(生字学习)完成后,会在小程序生成一个动态,再次完成不重复生成obviously,上边出现的两个动态不符合“罗辑” 二、排查看看 既然出现了两个动态…

dubbo源码实践-transport 网络传输层的例子

1 Transporter层概述Transporter层位于第2层,已经实现了完整的TCP通信,定义了一套Dubbo自己的API接口,支持Netty、Mina等框架。官方定义:transport 网络传输层:抽象 mina 和 netty 为统一接口,以 Message 为…

剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["…