• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

深入了解ROS之理解ROS服务和参数、rqt_console 和 roslaunch

人工智能 不断积淀 2614次浏览 0个评论

ROS服务

服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)  

使用 rosservice

rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。rosservice提供了很多可以在topic上使用的命令  

rosservice list         输出可用服务的信息
rosservice call         调用带参数的服务
rosservice type         输出服务类型
rosservice find         依据类型寻找服务find services by service type
rosservice uri          输出服务的ROSRPC uri

 

使用 rosparam

 

rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件读取参数
rosparam dump           向文件中写入参数
rosparam delete         删除参数
rosparam list           列出参数名

 

使用 rqt_console 和 roslaunch

rqt_console属于ROS日志框架(logging framework)的一部分,用来显示节点的输出信息。rqt_logger_level允许我们修改节点运行时输出信息的日志等级(logger levels)(包括 DEBUG、WARN、INFO和ERROR) 现在让我们来看一下turtlesim在rqt_console中的输出信息,同时在rqt_logger_level中修改日志等级。在启动turtlesim之前先在另外两个新终端中运行rqt_console和rqt_logger_level  

rosrun rqt_console rqt_console
rosrun rqt_logger_level rqt_logger_level

 

使用roslaunch

roslaunch可以用来启动定义在launch文件中的多个节点  

roslaunch [package] [filename.launch]

 

Launch 文件

 

 <launch>
   <group ns="turtlesim1">
      <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   </group>
     <group ns="turtlesim2">
       <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
 </group>
 <node pkg="turtlesim" name="mimic" type="mimic">
      <remap from="input" to="turtlesim1/turtle1"/>
      <remap from="output" to="turtlesim2/turtle1"/>
   </node>
 </launch>

   

  1. 现在让我们通过roslaunch命令来启动launch文件

 

roslaunch beginner_tutorials turtlemimic.launch

 

  1. 然后在一个新终端中使用rostopic命令发射速度设定消息
rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

 

  1. 你会看到两个turtlesims会同时开始移动,虽然发布命令只是给turtlesim1发送了速度设定消息。

 
深入了解ROS之理解ROS服务和参数、rqt_console 和 roslaunch  

  1. 我们也可以通过rqt_graph来更好的理解在launch文件中所做的事情。运行rqt并在主窗口中选择rqt_graph:或者直接运行:rqt_graph

 

创建ROS消息和ROS服务

 

消息(msg)和服务(srv)介绍

 

消息(msg)
  1. 消息(msg): msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码
  2. 服务(srv): 一个srv文件描述一项服务。它包含两个部分:请求和响应
  3. msg文件存放在package的msg目录下,srv文件则存放在srv目录下
  4. msg文件实际上就是每行声明一个数据类型和变量名
  5. srv文件分为请求和响应两部分,由’—’分隔。下面是srv的一个样例

 

int64 A
int64 B
---
int64 Sum

 

  1. 其中 A 和 B 是请求, 而Sum 是响应
  2. 创建一个 msg和使用rosmsg参考
服务(srv)介绍

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明深入了解ROS之理解ROS服务和参数、rqt_console 和 roslaunch
喜欢 (0)

您必须 登录 才能发表评论!

加载中……