环境:Ubuntu18.04,ROSmelodic版本
文章目录
前言
这篇文章接着介绍ROS中常用的命令,主要是rosmsg和rossrv命令。上篇介绍了rosnode和rostopic命令,有需要的小伙伴看这里–>介绍一下ROS常用的命令(一)
一、rosmsg命令
下面将使用前面的话题发布与订阅功能包进行命令的测试,还没有发布和订阅过话题的小伙伴欢迎回顾这篇文章–>话题发布与订阅
1.1打开终端,运行roscore
1.2再打开两个新终端,发布和订阅话题
发布话题
cd sor_ws
source ./devel/setup.bash
rosrun learning_topic person_publisher
订阅话题
cd sor_ws
source ./devel/setup.bash
rosrun learning_topic person_subscriber
1.3 rosmsg list:列出ROS中的所有msg消息
打开一个终端,输入rosmsg list,回车,会显示ROS中所有的msg
如果想查看当前运行的话题节点可以打开一个新终端,cd sor_ws,source ./devel/setup.bash, 输入rosmsg list | grep -i 消息类型
,例如发布订阅功能包中的消息类型为person,则输入rosmsg list | grep -i person
1.4 rosmsg show:显示msg的数据格式
如果想查看learning_topic/Person包含哪些类型的数据格式可以输入rosmsg show learning_topic/person
,回车,显示定义了6个变量
1.5 rosmsg info:显示msg的数据格式
和rosmsg show的功能一样
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
如果想查看当前运行的话题节点可以打开一个新终端,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个变量
2.3 rossrv info:显示srv消息的格式
和rossrv show的功能一样
2.4 rossrv package:列出某个功能包的所有srv消息
输入rossrv package 功能包
,可以列出包里的所有srv信息,例如rossrv package turtlesim
,列出小海龟功能包的消息,里面就包含了五种消息
总结
msg和srv这两种消息有何不同呢?区别在于msg只是信息单向的发送和接受,srv则包含请求和响应两部分,在话题数据中使用msg,服务数据中使用srv
希望文章对你有帮助,别忘了点赞收藏~