ROS(ROS2)- ノード - 実行


 クラウディア


1. 概要
2. 実行
3. 備考

1. 概要

 作成した、ノード型プログラムを実行してみます。

2. 実行

 端末を2つ開きます。  ひとつで、サブスクライバを起動。

ros2 run my_node client
 ひとつで、パブリッシャーを起動。

ros2 run my_node server
 パブリッシャー側に。

[INFO] [2025-05-20 10:30:01.466] [talker]: published: 0
[INFO] [2025-05-20 10:30:01.897] [talker]: published: 1
[INFO] [2025-05-20 10:30:02.392] [talker]: published: 2
[INFO] [2025-05-20 10:30:02.896] [talker]: published: 3
[INFO] [2025-05-20 10:30:03.402] [talker]: published: 4
[INFO] [2025-05-20 10:30:03.898] [talker]: published: 5
[INFO] [2025-05-20 10:30:04.392] [talker]: published: 6
[INFO] [2025-05-20 10:30:04.901] [talker]: published: 7
 と出力されると同時に、サブスクライバ側に。

[INFO] [2025-05-20 10:30:01.459] [listener]: subscribed: 0
[INFO] [2025-05-20 10:30:01.898] [listener]: subscribed: 1
[INFO] [2025-05-20 10:30:02.393] [listener]: subscribed: 2
[INFO] [2025-05-20 10:30:02.899] [listener]: subscribed: 3
[INFO] [2025-05-20 10:30:03.402] [listener]: subscribed: 4
[INFO] [2025-05-20 10:30:03.900] [listener]: subscribed: 5
[INFO] [2025-05-20 10:30:04.393] [listener]: subscribed: 6
[INFO] [2025-05-20 10:30:04.905] [listener]: subscribed: 7
 参考にしたサイトのプログラムでは、停止させるのに、Ctrl+C が必要ですが、それだと、「python」のエラーメッセージが表示されるので。  前ページのプログラムでは、Enter キーを入力すると、プログラムが停止するようにしています。  その点、入力待ちせずに、キー入力を受け付ける仕掛けをスレッドとしていれています。  キー入力については、いずれ、「Python」のどこかに書こうと思っていますが、いつになることやら・・・。追而書

3. 備考

 本ページは、下記のサイトを参考にさせていただきました。
ROS2 でメッセージを自作する #ROS2