ROS Toolbox では、トピックやサービスリクエストを受信した際に実行されるイベント駆動型のコールバックを実装することは可能でしょうか?
4 views (last 30 days)
Show older comments
MathWorks Support Team
on 19 Jun 2025
Edited: MathWorks Support Team
on 2 Sep 2025
ROS Toolbox ドキュメントに従って、C++ コードを生成しました。生成したコードが、タイマー駆動の step() メソッド内において、isNew フラグが true の場合にのみトピックやサービスリクエストを受信するためのコールバック相当を処理するコードになっていました。
このように、トピックやサービス要求の受信に対するコールバック相当の処理が、タイマー駆動の step() メソッド内に実装されるのは、ROS Toolbox の仕様なのでしょうか?
それとも、同一ノード内で、タイマー駆動の step() メソッドとは別に、イベント駆動型のコールバックとしてトピックやサービス要求の受信処理を分離して実装(コード生成)することは可能でしょうか?
Accepted Answer
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() メソッドとは別に実装することは、現時点ではサポートされていません。
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!