iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0
自我挑戰組

ROS自學筆記系列 第 20

Day 20 - ROS Services 常用指令 & Service Structure

  • 分享至 

  • xImage
  •  

延續上一篇,在寫C++版本的時候我發現service的message格式其實是一個結構體,裏面包含了兩個類別物件,分別是Request和Response。官方文件中關於整個結構體的定義如下:

namespace package_name
{
struct service_name
{
  class Request
  {
    ...
  };

  class Response
  {
    ...
  };

  Request request;
  Response response;
}; 
}

我覺得其實這樣寫起來就蠻直觀的,因為一個service就是包含了一組request和response的訊息,讓人在寫的時候直接呼叫這個物件底下的屬性就可以了。

ROS service常用指令

講完結構體,又來到了我們最輕鬆的單元(?
大概介紹一下rosservice提供了哪些好用指令吧~

rosservice list

$ rosservice list

第一個就是我們最常見的list啦! 不得不說真的是蠻好用的 XD

rosservice info

$rosservice info <service_name>

也是一個很常見的查看某個特定service的相關資訊,由下圖可以看到在呼叫這個指令的時候,可以看到這個service是哪個node提供的,還有使用什麼樣的訊息格式、吃幾個參數等等。
指令大全

rosservice call

$ rosservice call <service_name> [arg1 arg2 ...]

好的這個call就是打API的意思啦! 在測試階段的時候很好用喔! 執行畫面被我一樣包在上面的圖裡面了,大家也可以自己玩看看囉!

參考資料

ROS wiki - roscpp Services
ROS wiki - rosservice


上一篇
Day 19 - 使用C++撰寫Client Node
下一篇
Day 21 - Msg & Srv file
系列文
ROS自學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言