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

[ros2学习]-CLI Tools – 了解ROS 2服务(service)

文章索引目录
[隐藏]

1.文章目录

 

    • ① 背景
    • ② 前提
    • ③ 任务
      • Ⅰ准备
      • Ⅱ ros2 service 命令
        • ros2 service list
        • ros2 srv show (eloquent版本是 ros2 service type)
          • eloquent 版本
        • ros2 service find (dashing 不支持 )
        • ros2 interface show (dashing 不支持)
        • ros2 service call
    • ④ 总结

 

1.1.① 背景

  service 也是通讯的一种方式,req/respone 的方式,是触发式的,topic 是订阅式的  

1.1.② 前提

 

  • 装ros2
  • 配置环境
  • 装小乌龟

 

1.1.③ 任务

 

2.1.Ⅰ准备

  启动小乌龟 命令:  

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

 

3.1.Ⅱ ros2 service 命令

 

3.1.1.ros2 service list

  列出服务 命令提示  

usage: ros2 service list [-h] [--spin-time SPIN_TIME] [-t] [-c]

Output a list of available services

optional arguments:
  -h, --help            show this help message and exit
  --spin-time SPIN_TIME
                        Spin time in seconds to wait for discovery (only
                        applies when not using an already running daemon)
  -t, --show-types      Additionally show the service type
  -c, --count-services  Only display the number of services discovered

  可以通过命令和rqt去看  
在这里插入图片描述  

3.1.2.ros2 srv show (eloquent版本是 ros2 service type)

  就是看看srv的消息的几种方法,  

  • 执行命令行 ros2 srv show turtlesim/srv/SetPen
  • rqt 查看
  • 文件查看

 
在这里插入图片描述  

3.1.2.1.eloquent 版本

 
[ros2学习]-CLI Tools - 了解ROS 2服务(service)  

3.1.3.ros2 service find (dashing 不支持 )

  根据类型找服务,使用eloquent版本  

ros2 service find <type_name>

  例如  

ros2 service find std_srvs/srv/Empty

 
[ros2学习]-CLI Tools - 了解ROS 2服务(service)  

3.1.4.ros2 interface show (dashing 不支持)

  查看service的消息信息,用的eloquent版本 命令:ros2 interface show <type_name>.srv 例子:ros2 interface show turtlesim/srv/Spawn.srv  
[ros2学习]-CLI Tools - 了解ROS 2服务(service)  

3.1.5.ros2 service call

调用服务,命令行模式  

<code class="prism language-bash has-numbering">ros2 <span class="token function">service</span> call <span class="token operator"><</span>service_name<span class="token operator">></span> <span class="token operator"><</span>service_type<span class="token operator">></span> <span class="token operator"><</span>arguments<span class="token operator">>
</span>
</code>

  我们调用/clear 和 /spawn  

<code class="prism language-bash has-numbering">ros2 <span class="token function">service</span> call /clear std_srvs/srv/Empty
ros2 <span class="token function">service</span> call /spawn turtlesim/srv/Spawn <span class="token string">"{x: 2, y: 2, theta: 0.2, name: 'bigggg'}"
</span>
</code>

 
在这里插入图片描述  

3.1.④ 总结

  如果是不是连续的通讯,可以使用service 和action更好一点


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明[ros2学习]-CLI Tools – 了解ROS 2服务(service)
喜欢 (0)
[开心洋葱]
分享 (0)

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

……
加载中……