プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ROS運用管理
ROS はマルチプロセス (ノード) 分散フレームワークであり、完全な ROS システム実装です。
複数のホストが含まれる場合があります。
各ホストには複数のワークスペースがあります。
各ワークスペースには複数の関数パッケージが含まれています。
各関数パッケージには複数のノード (Node) が含まれており、異なるノードには独自のノード名があります。
各ノードには 1 つ以上のトピックを設定することもできます。
マルチレベル ROS システムでは、その実装とメンテナンスにおいて、次のようないくつかの問題が発生する可能性があります。
1. 異なる機能パッケージの関連付け方法---(メタ機能パッケージ)
2. 各種ROSノードの起動方法---(起動ファイル)
3. 関数パッケージ、ノード、トピック、パラメータの名前が重複する場合の対処方法----(重複名問題の解決)
4. 異なるホスト上のノードがどのように通信するか----(分散通信)
この章の主な内容では、ROS における上記の問題の解決策を紹介します (この章の目次を参照) 期待される学習目標も上記の問題に対応しています。
シナリオ: ROS で系統的な機能を完成させるには、地図、測位、経路計画などのさまざまなサブレベル機能パッケージを持つロボット ナビゲーション モジュールの実装など、複数の機能パッケージが必要となる場合があります。それでは、呼び出し元がモジュールをインストールするとき、各関数パッケージを 1 つずつインストールする必要があるのでしょうか?
明らかに、関数パッケージを 1 つずつインストールするのは非効率です。ROS では、特定の関数モジュールをインストールするときに、パッケージ化された関数パッケージを直接呼び出すだけで済みます。このパッケージはメタパッケージとも呼ばれます。 。
MetaPackage は、Linux のファイル管理システムの概念です。これは ROS の仮想パッケージであり、実質的な内容はありませんが、他のソフトウェア パッケージに依存しており、このようにして、他のパッケージを結合することができます。 - パッケージはパッケージ コレクションにあり、ダウンロードする場所もあります。
例えば:
ユーザーのインストールを容易にするために、他の関連ソフトウェア パッケージをまとめてインストールするには、この 1 つのパッケージのみが必要です。
step1: まず、新しい機能パッケージを作成します。
ステップ 2: 次に、package.xml を変更します。内容は次のとおりです。
<exec_depend>統合された機能パッケージ</exec_depend>
…
<export>
<metapackage />
</export>
ステップ 3: 最後に、CMakeLists.txt を変更します。内容は次のとおりです。
cmake_minimum_required(バージョン 3.0.2)
プロジェクト(デモ)
find_package(catkin 必須)
catkin_メタパッケージ()
上記の 4 行を保持し、残りを削除してください。
以下も参照してください。
http://wiki.ros.org/catkin/package.xml#メタパッケージ
最初の章では、起動ファイルの使用に慣れていません。
プログラムは、ROS の組み込みの小さなタートルの場合のように、複数のノードを起動する必要がある場合があります。タートルの動きを制御したい場合は、roscore、タートル インターフェイス ノード、およびキーボード コントロール ノードを起動して、複数のウィンドウを起動する必要があります。それぞれ。毎回 rosrun を呼び出して 1 つずつ起動するのは明らかに非効率です。
採用された最適化戦略は、roslaunch コマンドを使用して管理ノードを起動するための起動ファイルを収集することであり、後続のチュートリアルでも起動ファイルが何度も使用されます。
起動ファイルは、複数のローカルおよびリモート ノードを起動し、パラメータ サーバーにパラメータを設定できる XML 形式のファイルです。。
ノードの構成と起動を簡素化し、ROS プログラムの起動効率を向上させます。
Turtlesim を例として説明します。
ステップ1. 新しい起動ファイルを作成します。
関数パッケージの下に起動ディレクトリを追加し、そのディレクトリ内に新しい xxxx.launch ファイルを作成し、起動ファイルを編集します
<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>
ステップ2. 起動ファイルを呼び出す
roslaunch パッケージ名 xxx.launch
注: roslaunch コマンドは、起動ファイルを実行するときに、最初に roscore が開始されているかどうかを判断します。開始されていない場合は、roscore が自動的に呼び出されます。
以下を参照できます:
http://wiki.ros.org/roslaunch/XML
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9