1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROS 2Advent Calendar 2023

Day 10

【ROS2/Python】ROS2のCLIをPythonから使う

Last updated at Posted at 2023-12-10

はじめに

本記事は、ROS2アドベントカレンダー10日目の記事です。

ROS2では起動しているノードの確認、サービスの実行などなどのためにCLIツールが用意されています。
ros2 node/topic listなどですね。

それらをPythonからも使うことができるので紹介します。

仕組み

仕組みは単純で、そもそもROS2のCLIのソースコードは以下のGitHubで公開されておりPythonで書かれています。ROS2がインストールされた環境であれば、適切にimportして自分のPythonコードからも呼び出すことができます。

それぞれコマンドごとにディレクトリが分かれていて、その中のapi/__init__.pyに関数が定義されているようです。

image.png

ROS2のノード一覧を取得

以下の__init__.pyにあるget_node_names()を使用すればよさそうです。

import rclpy
from ros2node.api import get_node_names
rclpy.init()
node = rclpy.create_node("test_node")
print(get_node_names(node=node))
rclpy.shutdown()

ROS2のトピック一覧を取得

以下のget_topic_names()を使用すればよさそうです。

import rclpy
from ros2topic.api import get_topic_names
rclpy.init()
node = rclpy.create_node("test_node")
print(get_topic_names(node=node))
rclpy.shutdown()

おわりに

ソースコードが公開されているので使えるものは使っていきたいですね。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?