【ROS学习笔记7】ROS中的常用命令行

news2025/1/16 2:46:22

【ROS学习笔记7】ROS中的常用命令行

文章目录

  • 【ROS学习笔记7】ROS中的常用命令行
    • 前言
    • 一、rosnode
    • 二、rostopic
    • 三、rosmsg
    • 四、rosservice
    • 五、rossrv
    • 六、rosparam
    • 七、Reference

写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址在 这里


前言

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?

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

命令行功能
rosnode操作节点
rostopic操作话题
rosservice操作服务
rosmsg操作msg消息
rossrv操作srv消息
rosparam操作参数

作用

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

案例

本节将借助于2.1、2.2和2.3的通信实现介绍相关命令的基本使用,并通过练习ROS内置的小海龟例程来强化命令的应用。

更多详细信息请参照 Command-line tools


一、rosnode

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

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

示例:

二、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   # 打印主题类型
  • rostopic list(-v)

    直接调用即可,控制台将打印当前运行状态下的主题名称

    rostopic list -v : 获取话题详情(比如列出:发布者和订阅者个数…)

  • rostopic pub

    可以直接调用命令向订阅者发布消息

    为roboware 自动生成的 发布/订阅 模型案例中的 订阅者 发布一条字符串

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

示例:

三、rosmsg

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

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

四、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

示例:

五、rossrv

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

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

六、rosparam

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

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


七、Reference

1、http://www.autolabor.com.cn/book/ROSTutorials/di-2-zhang-ros-jia-gou-she-ji/23-fu-wu-tong-xin/224-fu-wu-tong-xin-zi-ding-yi-srv-diao-yong-b-python.html
2、Command-line tools

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

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

相关文章

C++ STL 之双向队列 deque 详解

文章目录Part.I AttentionPart.II FuncitonPart.III CodePart.I Attention deque 是 double-ended queue 的缩写&#xff0c;意即双端队列&#xff0c;详细信息参见官网。deque<T>容器适配器是必须要包含头文件#include <deque>deque相较于vector&#xff1a;①它不…

使用eNSP搭建校园网

哈喽&#xff0c;今天写一篇文章记录一下课上进行的实验说实话&#xff0c;上早八这个脑子他是真的不带转的&#xff0c;家人们有没有什么好方法&#xff0c;能在早八的时候把脑子转起来&#x1f622; 好了&#xff0c;讲一下实验背景。 学校有东西两个校区&#xff0c;东校区…

一文吃透 Spring 中的 AOP 编程

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

C++ STL:容器 Container

文章目录1、序列容器1.1、容器共性1.2、vectorvector 结构* vector 扩容原理* vector 迭代器失效1.3、dequedeque 结构deque 迭代器deque 模拟连续空间1.4、listlist 特殊操作list 结构list 迭代器2、关联式容器2.1、容器共性2.2、容器特性3、无序关联式容器3.1、容器共性3.2、…

【剑指offer】JZ5 替换空格、JZ6 从尾到头打印链表

目录 JZ5 替换空格 思路&#xff1a; 解题步骤&#xff1a; JZ6 从尾到头打印链表 思路&#xff1a; 解题步骤 JZ5 替换空格 描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串s中的每个空格替换成“%20”。 例如&#xff0c;当字符串为We Are Happy.则经过替换之…

LibAFL的安装及基本使用

本教程安装LibAFL使用的是Ubuntu 22.04 操作系统 1. 安装 1.1 Rust 安装 Rust的安装&#xff0c;参照Rust官网&#xff1a;https://www.rust-lang.org/tools/install curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh1.2 LLVM安装 直接apt安装&#xff0c;安…

Day903.自增主键不能保证连续递增 -MySQL实战

自增主键不能保证连续递增 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于自增主键不能保证连续递增的内容。 MySql保证了主键是自增&#xff0c;但不相对连续&#xff1b;帮助开发人员快速识别每个行的唯一性&#xff0c;并提高查询效率。 自增主键可以让主键索引…

2023上半年北京/上海/广州/深圳NPDP产品经理认证报名

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年…

【GUI】Robo 3T(Studio 3T Free) for Mongodb安装与使用教程

下载 robo 3T现已更名为studio 3T free&#xff0c;官网即可下载 studio 3T free下载地址 安装 mac电脑下载的是dmg安装包&#xff0c;直接正常安装即可&#xff0c;windows电脑也是一样的&#xff0c;不需要配置环境&#xff0c;安装即可使用。&#xff08;前提是你已经安装…

【C++】二叉搜索树的模拟实现

一、概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值它的左右子树也分别…

Python---time模块

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;Python在学&#xff0c;希望能够得到各位的支持&#xff01;&#xff01;&#xff01; time模块前言时间戳time.time()将时间戳转换成字符串time.ctime()将时间戳转换为元组time.localtime(时间戳)将元…

大四、非计算机专业,Python该怎么学?

我是非计算机专业&#xff0c;大四时开始学Python&#xff0c;用了大概一个半月时间&#xff0c;现在从事数据挖掘工作&#xff0c;算是有点发言权。虽然之前学了点C&#xff0c;但仅仅是皮毛&#xff0c;为了应付考试&#xff0c;所以我基本是零基础开始学Python的。 总结学习…

Stress压力工具的部署及使用

Stress压力工具的部署及使用 下载地址&#xff1a;wget https://fossies.org/linux/privat/old/stress-1.0.5.tar.gz 1.部署 进入目录执行./autogen.sh [rootiZ2ze1pj93eyq389c2ppi5Z stress-1.0.5]# ./autogen.sh ps&#xff1a;如果执行过程中缺包&#xff0c;安装对应的…

运维自动化——Ansible

一&#xff1a;ansible命令执行过程 1. 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2. 加载自己对应的模块文件&#xff0c;如command 3. 通过ansible将模块或命令生成对应的临时py文件&#xff0c; 并将该文件传输至远程服务器的对应执行用户 $HOME…

leetcode 51~60 学习经历

leetcode 51~60 学习经历51. N 皇后52. N 皇后 II53. 最大子数组和54. 螺旋矩阵55. 跳跃游戏56. 合并区间57. 插入区间58. 最后一个单词的长度59. 螺旋矩阵 II60. 排列序列小结51. N 皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子…

【MobileNet】MobileNet V1

MobileNet V11、简介2、Depthwise Separable Convolution1&#xff09;Depthwise Separable Convolution 的优点2&#xff09;Depthwise Separable Convolution 网络结构3&#xff09;pytorch 函数 实现 depth-wise convolution2、Mobile 网络结构pytorch实现 Mobile 网络结构&…

hiveSQL开窗函数详解

hive开窗函数 文章目录hive开窗函数1. 开窗函数概述1.1 窗口函数分类1.2 窗口函数和普通聚合函数的区别2. 窗口函数的基本用法2.1 基本用法2.2 设置窗口的方法2.2.1 window_name2.2.2 partition by2.2.3 order by 子句2.2.4 rows指定窗口大小窗口框架2.3 开窗函数中加 order by…

Linux下使用Makefile实现条件编译

在Linux系统下Makefile和C/C语言都有提供条件选择编译的语法&#xff0c;就是在编译源码的时候&#xff0c;可以选择性地编译指定的代码。这种条件选择编译的使用场合有好多&#xff0c;例如我们开发一个兼容标准版本与定制版本兼容的项目&#xff0c;那么&#xff0c;一些与需…

[数据结构]:07-二叉树(无头结点)(C语言实现)

目录 前言 已完成内容 二叉树实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-QueueFunction.cpp 04-TreeFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码。使用C引用主要是为了…

金三银四,助力你的大厂梦,2023年软件测试经典面试真题(3)(共3篇)

前言 金三银四即将到来&#xff0c;相信很多小伙伴要面临面试&#xff0c;一直想着说分享一些软件测试的面试题&#xff0c;这段时间做了一些收集和整理&#xff0c;下面共有三篇经典面试题&#xff0c;大家可以试着做一下&#xff0c;答案附在后面&#xff0c;希望能帮助到大…