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

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

採用された回答

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeROS Network Access in Simulink についてさらに検索

タグ

タグが未入力です。

製品


リリース

R2024a

Community Treasure Hunt

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

Start Hunting!