1、rossrv
该命令针对的是静态的服务文件*.srv
1)语法格式
rossrv show <pkg_name>/srv_name 显示服务类型的所有信息
rossrv list 显示所有服务类型信息
rossrv md5 <pkg_name>/srv_name 显示服务类型的md5sum信息
rossrv package <pkg_name> 列出一个程序包中的所有服务类型
rossrv packages <srv_name> 列出包含服务的所有程序包
2)使用方式举例
sl@sl-desktop:~/m_ros_ws$ rossrv show m_pkg/SetFollowState #m_pkg/srv/SetFollowState.srv文件生成
uint8 STOPPED=0 #request有 两个常值变量
uint8 FOLLOW=1
uint8 state #一个请求参数
---
uint8 OK=0 #response 有两个常值变量
uint8 ERROR=1
uint8 result #一个响应参数
sl@sl-desktop:~/m_ros_ws$ rossrv list #列出当前系统中所有ros服务类型
control_msgs/QueryCalibrationState
control_msgs/QueryTrajectoryState
diagnostic_msgs/SelfTest
dynamic_reconfigure/Reconfigure
gazebo_msgs/ApplyBodyWrench
gazebo_msgs/ApplyJointEffort
gazebo_msgs/BodyRequest
gazebo_msgs/DeleteModel
gazebo_msgs/GetJointProperties
gazebo_msgs/GetLinkProperties
gazebo_msgs/GetLinkState
……
sl@sl-desktop:~/m_ros_ws$ rossrv md5 m_pkg/SetFollowState #显示服务类型的md5sum信息
6095eaec0ed61c547340fdc2200c8372
sl@sl-desktop:~/m_ros_ws$ rossrv package m_pkg #列出m_pkg包中所有的服务类型
m_pkg/AddTwoInts
m_pkg/SetFollowState
control_msgs
diagnostic_msgs
dynamic_reconfigure
gazebo_msgs
laser_assembler
m_pkg
map_msgs
nav_msgs
……
2、rosservice
该命令针对的动态的服务service,在节点中发布的service名字,它的服务类型是*.srv定义的
1)语法格式
rossevice args 打印服务的参数
rosservice call 以命令行的形式调用服务,可以指定具体参数
rosservice find 根据服务类型寻找当前服务
rosservice info 打印服务信息
rosservice list 列出当前服务类型
rosservice type 打印服务类型
rosservice uri 打印服务的ROSRPC uri
2)使用方式举例
rosservice命令主要在节点运行时使用,这里先启动一个节点,该结点提供一个名为change_state服务,该服务的消息类型是m_pkg/SetFollowSate
sl@sl-desktop:~/m_ros_ws$ rosservice args change_state #显示服务的参数信息
state
sl@sl-desktop:~/m_ros_ws$ rosservice call change_state 0 #以命令行调用某个服务,并传入参数
result: 0
sl@sl-desktop:~/m_ros_ws$ rosservice call change_state 1
result: 0
sl@sl-desktop:~/m_ros_ws$ rosservice find m_pkg/SetFollowState #根据服务的类型寻找以类型的当前服务
/change_state
sl@sl-desktop:~/m_ros_ws$ rosservice info change_state #打印服务的具体信息
Node: /sevice_server_track #提供服务的节点名字
URI: rosrpc://sl-desktop:37554 #服务的ROSRPC uri
Type: m_pkg/SetFollowState #服务的类型srv
Args: state #该服务所需要的请求参数
sl@sl-desktop:~/m_ros_ws$ rosservice list #列出当前ros系统中所有的服务名字(使用全局名字)
/change_state #我们关注的这个change_state服务
/rosout/get_loggers
/rosout/set_logger_level
/sevice_server_track/get_loggers
/sevice_server_track/set_logger_level
sl@sl-desktop:~/m_ros_ws$ rosservice type change_state #打印服务的类型
m_pkg/SetFollowState
sl@sl-desktop:~/m_ros_ws$ rosservice uri change_state #打印服务的ROSRPC uri
rosrpc://sl-desktop:37554