ROS Toolbox では、トピックやサー​ビスリクエストを受信​した際に実行されるイ​ベント駆動型のコール​バックを実装すること​は可能でしょうか?

4 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 19 Jun 2025
ROS Toolbox ドキュメントに従って、C++ コードを生成しました。生成したコードが、タイマー駆動の step() メソッド内において、isNew フラグが true の場合にのみトピックやサービスリクエストを受信するためのコールバック相当を処理するコードになっていました。
このように、トピックやサービス要求の受信に対するコールバック相当の処理が、タイマー駆動の step() メソッド内に実装されるのは、ROS Toolbox の仕様なのでしょうか?
それとも、同一ノード内で、タイマー駆動の step() メソッドとは別に、イベント駆動型のコールバックとしてトピックやサービス要求の受信処理を分離して実装(コード生成)することは可能でしょうか?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 2 Sep 2025
Edited: MathWorks Support Team on 2 Sep 2025
現時点の ROS Toolbox で提供されているSimulinkブロックの仕様では、タイマー駆動の step() メソッドと、トピックやサービス要求の受信に対するコールバック処理を、同一ノード内で分離して実装することはできません
生成されるコードでは、トピックやサービスの受信処理はすべて step() メソッド内に含まれ、isNew フラグなどの条件に基づいて処理が実行される構成となっています。これは、ROS Toolbox のコード生成機構が、イベント駆動型のコールバック関数を step() メソッドの外部に生成することをサポートしていないためです。
そのため、イベント駆動型のコールバックを step() メソッドとは別に実装することは、現時点ではサポートされていません

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!