Skip to content

ノードの起動

目標: コマンドラインツールを使用して複数のノードを一度に起動する。

チュートリアルレベル: 初心者

所要時間: 5分

背景

これまでの入門チュートリアルのほとんどで、実行する新しいノードごとに新しいターミナルを開いてきました。 より多くのノードが同時に実行されるより複雑なシステムを作成するにつれて、ターミナルを開いて設定の詳細を再入力することが面倒になります。

ローンチファイルを使用すると、ROS 2ノードを含む多数の実行可能ファイルを同時に起動して設定することができます。

ros2 launchコマンドで単一のローンチファイルを実行すると、システム全体(すべてのノードとその設定)が一度に起動します。

前提条件

これらのチュートリアルを開始する前に、ROS 2 インストールページの指示に従ってROS 2をインストールしてください。

このチュートリアルで使用されるコマンドは、お使いのオペレーティングシステム(Linuxではdebパッケージ)のバイナリパッケージインストールガイドに従ったことを前提としています。 ソースからビルドした場合でも従うことができますが、セットアップファイルへのパスは異なる可能性があります。 また、ソースからインストールした場合は、sudo apt install ros-<distro>-<package>コマンド(初心者レベルのチュートリアルで頻繁に使用)を使用することはできません。

Linuxを使用していて、まだシェルに慣れていない場合は、このチュートリアルが役立ちます。

いつものように、新しいターミナルを開くたびにROS 2をソースすることを忘れないでください。

タスク

ローンチファイルの実行

新しいターミナルを開いて実行します:

bash
ros2 launch turtlesim multisim.launch.py

このコマンドは以下のローンチファイルを実行します:

python
from launch import LaunchDescription
import launch_ros.actions

def generate_launch_description():
    return LaunchDescription([
        launch_ros.actions.Node(
            namespace='turtlesim1', package='turtlesim',
            executable='turtlesim_node', output='screen'),
        launch_ros.actions.Node(
            namespace='turtlesim2', package='turtlesim',
            executable='turtlesim_node', output='screen'),
    ])

注記

上記のローンチファイルはPythonで書かれていますが、XMLやYAMLを使用してローンチファイルを作成することもできます。 これらの異なるROS 2ローンチ形式の比較は、ROS 2ローンチファイルでのXML、YAML、Pythonの使用で確認できます。

これにより、2つのturtlesimノードが実行されます:

複数のturtlesimウィンドウ

今のところ、このローンチファイルの内容について心配する必要はありません。 ROS 2ローンチの詳細については、ROS 2ローンチチュートリアルで確認できます。

(オプション)Turtlesimノードの制御

これらのノードが実行されているので、他のROS 2ノードと同様に制御できます。 例えば、2つの追加ターミナルを開いて以下のコマンドを実行することで、タートルを反対方向に動かすことができます:

2番目のターミナルで:

bash
ros2 topic pub  /turtlesim1/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

3番目のターミナルで:

bash
ros2 topic pub  /turtlesim2/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -1.8}}"

これらのコマンドを実行した後、以下のようなものが表示されるはずです:

回転するタートルたち

まとめ

これまでに行ったことの重要性は、1つのコマンドで2つのturtlesimノードを実行したということです。 独自のローンチファイルを書くことを学ぶと、同様の方法で複数のノードを実行し、それらの設定をセットアップできるようになります(ros2 launchコマンドを使用して)。

ROS 2ローンチファイルのより多くのチュートリアルについては、メインローンチファイルチュートリアルページを参照してください。

次のステップ

次のチュートリアル「データの記録と再生」では、もう一つの便利なツールros2 bagについて学習します。

Released under the MIT License.