介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)

环境:Ubuntu18.04,ROSmelodic版本

文章目录

  • 前言
    • 一、rosmsg命令
      • 1.1打开终端,运行roscore
      • 1.2再打开两个新终端,发布和订阅话题
      • 1.3 rosmsg list:列出ROS中的所有msg消息
      • 1.4 rosmsg show:显示msg的数据格式
      • 1.5 rosmsg info:显示msg的数据格式
      • 1.6 rosmsg package:列出某个功能包的所有msg消息
    • 二、rossrv命令
      • 2.1 rossrv list:列出ROS中的所有srv消息
      • 2.2 rossrv show:显示srv消息的格式
      • 2.3 rossrv info:显示srv消息的格式
      • 2.4 rossrv package:列出某个功能包的所有srv消息
    • 总结


前言

这篇文章接着介绍ROS中常用的命令,主要是rosmsg和rossrv命令。上篇介绍了rosnode和rostopic命令,有需要的小伙伴看这里–>介绍一下ROS常用的命令(一)


一、rosmsg命令

下面将使用前面的话题发布与订阅功能包进行命令的测试,还没有发布和订阅过话题的小伙伴欢迎回顾这篇文章–>话题发布与订阅

1.1打开终端,运行roscore

介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第1张图片

1.2再打开两个新终端,发布和订阅话题

发布话题

cd sor_ws
source ./devel/setup.bash
rosrun learning_topic person_publisher

介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第2张图片
订阅话题

cd sor_ws
source ./devel/setup.bash
rosrun learning_topic person_subscriber

介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第3张图片

1.3 rosmsg list:列出ROS中的所有msg消息

打开一个终端,输入rosmsg list,回车,会显示ROS中所有的msg
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第4张图片
如果想查看当前运行的话题节点可以打开一个新终端,cd sor_ws,source ./devel/setup.bash, 输入rosmsg list | grep -i 消息类型,例如发布订阅功能包中的消息类型为person,则输入rosmsg list | grep -i person
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第5张图片

1.4 rosmsg show:显示msg的数据格式

如果想查看learning_topic/Person包含哪些类型的数据格式可以输入rosmsg show learning_topic/person,回车,显示定义了6个变量
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第6张图片

1.5 rosmsg info:显示msg的数据格式

和rosmsg show的功能一样
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第7张图片

1.6 rosmsg package:列出某个功能包的所有msg消息

输入 rosmsg package 功能包,可以列出包里的所有msg,例如rosmsg package learning_topic,显示learning_topic功能包下只存在一种消息,看起来和rosmsg list | grep -i person显示的内容一样,其实不是的,比如rosmsg package turtlesim,列出小海龟功能包的消息,里面包含了两种msg消息
在这里插入图片描述

二、rossrv命令

运行服务端功能包,使用这篇文章中创建的功能包–>服务数据的定义与使用
1.打开终端,运行roscore
2.再打开一个终端,输入命令启动客户端

source ~/sor_ws/devel/setup.bash
rosrun learning_service person_client

在这里插入图片描述

2.1 rossrv list:列出ROS中的所有srv消息

打开一个终端,输入rossrv list,回车,会显示ROS中所有的srv
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第8张图片
如果想查看当前运行的话题节点可以打开一个新终端,cd sor_ws,source ./devel/setup.bash, 输入rossrv list | grep -i 消息类型,例如发布订阅功能包中的消息类型为person,则输入rossrv list | grep -i person
在这里插入图片描述

2.2 rossrv show:显示srv消息的格式

如果想查看learning_topic/Person包含哪些类型的数据格式可以输入rossrv show learning_service/Person,回车,显示定义了6个变量
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第9张图片

2.3 rossrv info:显示srv消息的格式

和rossrv show的功能一样
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第10张图片

2.4 rossrv package:列出某个功能包的所有srv消息

输入rossrv package 功能包,可以列出包里的所有srv信息,例如rossrv package turtlesim,列出小海龟功能包的消息,里面就包含了五种消息
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第11张图片

总结

msg和srv这两种消息有何不同呢?区别在于msg只是信息单向的发送和接受,srv则包含请求和响应两部分,在话题数据中使用msg,服务数据中使用srv
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第12张图片


希望文章对你有帮助,别忘了点赞收藏~
介绍一下ROS常用的命令<rosmsg和rossrv实操>(二)_第13张图片

你可能感兴趣的:(ROS入门学习,ubuntu,c++)