Skip to Content
プログラミングROS ―Pythonによるロボットアプリケーション開発
book

プログラミングROS ―Pythonによるロボットアプリケーション開発

by Morgan Quigley, Brian Gerkey, William D. Smart, 河田 卓志, 松田 晃一, 福地 正樹, 由谷 哲夫
December 2017
Intermediate to advanced
480 pages
7h 13m
Japanese
O'Reilly Japan, Inc.
Content preview from プログラミングROS ―Pythonによるロボットアプリケーション開発

4章サービス

サービスはROSのノード間でデータを渡すもう1つの方法です。サービスは単なる同期型リモートプロシージャーコールであり、あるノードから別のノードで実行される関数を呼び出すことを実現するものです。この関数の入力と出力の定義は、新しいメッセージ型を定義するのと似たような方法で行います。サーバー(サービスを提供する)側ではサービスリクエストを扱うコールバックを定義し、そのサービスを公開します。クライアント(そのサービスを呼び出す)側ではローカルプロキシーを介してこのサービスにアクセスします。

サービスコールは、たまにしか行う必要がないもので、比較的短い一定の時間内で処理が終わるものに適しています。他のコンピューターに分散させたいような共通の計算はその良い例です。センサーをオンにしたり、カメラで高解像度の写真を撮ったりするといったようなロボットが行う個別の動作もサービスコールで実装したほうがよいものの候補です。

すでにいくつかのサービスがROSのパッケージで定義されていますが、ここでは、自分でサービスを定義し、実装する方法を見ていきましょう。こうすることで、サービスコールの下位メカニズムがある程度わかるようになります。この章では具体的な例として、文字列中の単語数を数えるサービスの作り方を示します。

4.1 サービスを定義する

新しいサービスを作成するための最初のステップは、サービスコールの入力と出力を定義することです。これは、サービス定義ファイルで行います。このファイルは以前に見たメッセージ定義ファイルと似たような構造を持っています。しかしながら、サービスコールには入力と出力の両方があるので、メッセージ定義より少し複雑です。

ここでのサービスの例は、文字列中の単語数を数えるものです。これは、そのサービスへの入力が ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし
行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

Publisher Resources

ISBN: 9784873118093Other