1章イントロダクション

Robot Operating System(ROS)は、ロボットソフトウェア開発向けのフレームワークです。ROSはツールやライブラリ、規約を集めたものであり、これを用いることで多種多様なロボットプラットフォームに対して複雑でロバスト(頑健)なロボットの動作の開発を簡単に行うことができます。

なぜこのようなものが必要なのでしょうか? 真にロバストで汎用的なロボットのソフトウェアを開発することが「難しい」からです。人間からすると簡単そうに見える問題の多くが、ロボットの観点からすると、実際には、さまざまな工程(タスク)と手に負えないほどの周囲の状況に関するバリエーションを含んでいるからです。

例えば、単純な「物を拾う」というタスクを考えてみましょう。このタスクでは、あるオフィスアシスタント用のロボットが、ホッチキスを取ってくるように指示された、と想定してみましょう。まず初めに、ロボットは指示を理解することから始めなくてはなりません。指示は、口頭で伝えられるかもしれませんし、Webやメール、SMSといった他の手段で伝えられるかもしれません。次に、ロボットはホッチキスを探すために何らかの計画を立てる必要があります。これには、建物の中のいろいろな部屋を通り抜ける必要があるでしょう。もしかしたら、エレベーターやドアもあるかもしれません。部屋に到着してからも、雑然とした机の上にある似たような大きさの物の中から(手に持てる物はたいてい同じような大きさなので)、ホッチキスを探し出さなくてはなりません。その後、ロボットは来た道を戻り、指示された場所にホッチキスを届ける必要があります。これらの1つ1つの部分問題は、さらに無数の複雑な要因を内包しています。しかも、このタスクは比較的単純なタスクにすぎないのです! ...

Get プログラミングROS ―Pythonによるロボットアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.