13章巡回

「10章 世界を動き回る」では、ROSのナビゲーションスタックを使って、ロボットを世界のある特定の場所に移動させる方法を見てきました。本章では、この基礎的なナビゲーションの能力に加えて、ロボットに世界を巡回させて、道中で興味深い情報を集めさせる方法について見ていきます。また、このアプリケーションを通して、ロボットを個々の単一の動作ではなく、振る舞い全体の連鎖としてタスクレベルで制御する方法についても学びます。

13.1 単純な巡回

ROSの多くのものと同じように、巡回システムを実装する方法はいくつも存在します。実のところ、皆さんが例 10-1で見たコードが巡回システムに必要なものすべてです。コードを例13-1に再掲しました。このコードは、ロボットを世界のある場所から別の場所に移動させてくれます。皆さんがしなければならないことは、巡回させたい場所をウェイポイント(経由地)のリストとして設定するだけです。それだけで準備完了です。

例13-1 patrol.py

#!/usr/bin/env python import rospy import actionlib from move_base_msgs.msg import MoveBaseAction, MoveBaseGoal waypoints = [ # ❶ [(2.1, 2.2, 0.0), (0.0, 0.0, 0.0, 1.0)], [(6.5, 4.43, 0.0), (0.0, 0.0, -0.984047240305, 0.177907360295)] ] def goal_pose(pose): # ❷ goal_pose = MoveBaseGoal() goal_pose.target_pose.header.frame_id ...

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.