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 CenterFile Exchange에서 ROS Network Access in Simulink에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품


릴리스

R2024a

Community Treasure Hunt

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

Start Hunting!