ROS学习第十一节——常用命令

这篇具有很好参考价值的文章主要介绍了ROS学习第十一节——常用命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.概述

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

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

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

作用:

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

另请参考:

  • ROS/CommandLineTools - ROS Wikihttp://wiki.ros.org/ROS/CommandLineTools

2.具体讲解

2.1rosnode

2.1.1汇总

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

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

    测试到节点的连接状态

  • rosnode list

    列出活动节点

  • rosnode info

    打印节点信息

  • rosnode machine

    列出指定设备上的节点

  • rosnode kill

    杀死某个节点

  • rosnode cleanup

    清除无用节点,启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点

2.1.2具体操作

在终端直接输入 rosnode 回车,就会出现使用提示

ros查看节点信息,ROS,学习,机器人

 如果想查看帮助,后面加上"-h",输入 rosnode -h

ros查看节点信息,ROS,学习,机器人

 想要查看某个参数的帮助,rosnode 参数 -h

ros查看节点信息,ROS,学习,机器人

 使用rosnode ping  /节点名称

注意操作节点需要加上/

此 命令是查看节点是否可以连接

ros查看节点信息,ROS,学习,机器人

rosnode cleanup可以清除“僵尸节点”,比如运行小海龟,使用ctrl+c关闭节点,ROS Master是不知道这个节点已经关闭的,可以使用该命令清楚

2.2rostopic

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
    

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

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist
 "linear:
  x: 1.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: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0"
// 以 10HZ 的频率循环发送运动信息
  • rostpic echo

    获取指定话题当前发布的消息

  • rostopic info

    获取当前话题的小关信息

    消息类型

    发布者信息

    订阅者信息

  • rostopic type

    列出话题的消息类型

  • rostopic find 消息类型

    根据消息类型查找话题

  • rostopic delay

    列出消息头信息

  • rostopic hz

    列出消息发布频率

  • rostopic bw

    列出消息发布带宽

2.3rossrv

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

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

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

  • rossrv packages

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

  • rossrv package

    列出某个包下的所有msg

    //rossrv package 包名 
    rossrv package turtlesim
    

rossrv show

显示消息描述

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

    作用与 rossrv show 一致

  • rossrv md5

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

2.4rosmsg

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

rosmsg 演示

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

    会列出当前 ROS 中的所有 msg

rosmsg list | grep -i 消息名字

查看具体消息路径

  • rosmsg packages

    列出包含消息的所有包

  • rosmsg package

    列出某个包下的所有msg

    //rosmsg package 包名 
    rosmsg package turtlesim
    

rosmsg show

显示消息描述

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

    作用与 rosmsg show 一样

  • rosmsg md5 (资料:http://wiki.ros.org/ROS/Technical%20Overview#Message_serialization_and_msg_MD5_sums)

    一种校验算法,保证数据传输的一致性

2.5rosservice

rosservice包含用于列出和查询ROSServices的rosservice命令行工具。

调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash

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

    列出所有活动的 service

    ~ rosservice list
    /clear
    /kill
    /listener/get_loggers
    /listener/set_logger_level
    /reset
    /rosout/get_loggers
    /rosout/set_logger_level
    /rostopic_4985_1578723066421/get_loggers
    /rostopic_4985_1578723066421/set_logger_level
    /rostopic_5582_1578724343069/get_loggers
    /rostopic_5582_1578724343069/set_logger_level
    /spawn
    /turtle1/set_pen
    /turtle1/teleport_absolute
    /turtle1/teleport_relative
    /turtlesim/get_loggers
    /turtlesim/set_logger_level
    

rosservice args

打印服务参数

rosservice args /spawn
x y theta name

rosservice call

调用服务

为小乌龟的案例生成一只新的乌龟

rosservice call /spawn "x: 1.0
y: 2.0
theta: 0.0
name: 'xxx'"
name: "xxx"

//生成一只叫 xxx 的乌龟
  • rosservice find

    根据消息类型获取话题

  • rosservice info

    获取服务话题详情

  • rosservice type

    获取消息类型

  • rosservice uri

    获取服务器 uri

2.6rosparam

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

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

    列出所有参数

    rosparam list
    
    //默认结果
    /rosdistro
    /roslaunch/uris/host_helloros_virtual_machine__42911
    /rosversion
    /run_id
    

rosparam set

设置参数

rosparam set name huluwa

//再次调用 rosparam list 结果
/name
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id

rosparam get

获取参数

rosparam get name

//结果
huluwa

rosparam delete

删除参数

rosparam delete name

//结果
//去除了name

rosparam load(先准备 yaml 文件)

从外部文件加载参数

rosparam load xxx.yaml

rosparam dump

将参数写出到外部文件文章来源地址https://www.toymoban.com/news/detail-736460.html

rosparam dump yyy.yaml

到了这里,关于ROS学习第十一节——常用命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS学习笔记17】ROS常用仿真组件URDF集成Gazebo

    写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址在 这里 1.1 URDF与Gazebo基本集成流程 URDF 与 Gazebo 集成流程与 Rviz 实现类似,主要步骤如下: 创建功能包,导入依赖项 编写 URDF 或 Xacro 文件 启动 Gazebo 并显示机器人模型 1.创建功能包 创建新功能包,导入依赖包: 2.编

    2024年02月06日
    浏览(45)
  • 25+ Python 数据操作教程(第十一节PYTHON 中的字符串函数及示例)

    常用字符串函数列表 下表显示了许多常见的字符串函数及其说明及其在 MS Excel 中的等效函数。我们在工作场所都使用MS Excel,并且熟悉MS Excel中使用的功能。MS EXCEL和Python中字符串函数的比较可以帮助你快速学习函数并在面试前做好准备。 功能 描述 MS Excel 函数 字符串[:N] 从

    2024年02月13日
    浏览(41)
  • ros2学习笔记-CLI工具,记录命令对应操作。

    启动前要检查环境变量: ROS_DOMAIN_ID 和 ROS_LOCALHOST_ONLY 。如果通信时PIN不同,应该首先考虑是不是环境变量设置错误。 Configuring environment 记得source一下ros2。 Turtlesim 是一款用于学习 ROS2 的轻量级模拟器。 它说明了 ROS 2 在最基本的层面上做了什么,让您了解以后将如何处理真

    2024年01月21日
    浏览(41)
  • Ubuntu查看ros版本-linux查看ros版本

    使用ros带的rosversion命令即可查看自己的ros版本:

    2024年03月16日
    浏览(63)
  • ROS(十一):ubuntu调用摄像头

      在Windows环境下,安装在VMware中及Ubuntu的具体步骤可以看此篇博客:ROS(一):在Windows环境下,安装在VMware中及Ubuntu 在虚拟机中安装VMware Tools的具体步骤可以看此篇博客:ROS(二):在虚拟机中安装VMware Tools Ubuntu与Windows之间的复制粘贴、文件拖拽的具体步骤可以看此篇博客:ROS

    2024年02月07日
    浏览(38)
  • ROS笔记(2)——ROS的基本命令

    目录 一、运行小海龟 二、常用的ROS命令 三、rosbag数据记录工具 在ROS中运行小海龟需要执行以下步骤: 打开终端并启动ROS核心:在终端中输入 \\\" roscore \\\" 并按回车键。 打开另一个终端并启动小海龟节点:在终端中输入 \\\" rosrun turtlesim turtlesim_node \\\" 并按回车键。 打开第三个终端

    2024年02月05日
    浏览(34)
  • 第十七届恩智浦杯室外ROS无人车竞速赛仿真

     学长说让以考促学,用做过的比赛来检验ROS的学习效果,看我们能不能灵活运用。(′д`)ゞ 目录 1.vscode准备工作 2.首先需要搭建gazebo仿真环境 3.launch文件打开gazebo仿真环境代码集成主要包括两大部分         才做了一个开头车还不会动,恩智浦杯的实物车出了点问题,

    2024年02月09日
    浏览(38)
  • 【ROS】如何让ROS中节点获取数据 III --参数服务器通信及ros常用工具指令介绍

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。 相较于之前的通信模型,参数服务器是最为简单的。在之前的模型中,ROSMASTER都是扮演一个帮二者连接在一起的桥梁。 而在参数服务器中: ROSMASTER变为了一个存储消息的容器 ,

    2024年02月04日
    浏览(49)
  • 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

    目录 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 一、上讲回顾 二、ROS2核心命令讲解 1、daemon-各种守护进程相关的子命令 2、node-各种节点进程相关的子命令  3、pkg-各种包进程相关的子命令  4、run运行特定软件包的可行性文件 5、topic各种话题进程相关的子命令 6、

    2024年02月14日
    浏览(42)
  • ROS学习-ROS简介

    ROS(Robot Operating System,机器人操作系统) ROS 是一个适用于机器人的开源的元操作系统,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。相比于普通的OS,有着可用于异构硬件

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包