5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python のlaunchファイルをスクリプトとして直接実行する [ROS 2]

Last updated at Posted at 2023-10-19

概要 

launchファイルだけ作成したいときに、わざわざROS 2パッケージを作るのが面倒くさいので、直接Pythonスクリプトとして実行したかった

作成したlaunchファイル

ROS 2のtalkerとlistenerデモノードを同時に起動する例

sample.launch.py
#!/usr/bin/env python3
import launch
from launch_ros.actions import Node
from launch import LaunchService

def generate_launch_description():
    return launch.LaunchDescription([
        Node(
            package='demo_nodes_cpp', 
            executable='talker',
            name='talker',
            output='screen'
        ),
        Node(
            package='demo_nodes_cpp',
            executable='listener',
            name='listener',
            output='screen'
        )
    ])

if __name__ == '__main__':
    ls = LaunchService()
    ls.include_launch_description(generate_launch_description())
    ls.run()

適当な場所にsample.launch.pyという名前でlaunchファイルを作って保存する。

pythonで実行する

python3 sample.launch.py

または実行権限を付与して直接実行

sudo chmod +x sample.launch.py 
./sample.launch.py 

通常のlaunchファイルの下に以下を追加するだけ
ros2 launchでは 'if name == 'main':'
以下は実行されないので,そのままros2 pkgのlaunchに置いて使用できる。

if __name__ == '__main__':
    ls = LaunchService()
    ls.include_launch_description(generate_launch_description())
    ls.run()

追記 

記事を書いたあとにros2 launchコマンドでパッケージを作らなくても実行できることを知った。
パッケージを作らずにlaunchだけ実行したい場合は以下のコマンドでよさそう。

ros2 launch sample.launch.py 

参考

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?