Why the time has not been synchronized between ros2 and simulink
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am subscribing to ros2 topic which has a message type ''ackermann_msgs/AckermannDriveStamped". I checked the topic in ros2 environment and it has 30Hz frequency. Now when I subscribe in simulink and extract the 'sec' I don't get the time duration same as in ros2.
For example: The sample of header.stamp.sec in ros2 looks like this
[t(1)....t(30),t(31)....t(60)]= [1715612265....1715612265, 1715612266....1715612266]
And the sample of the same topic when been subscribed in simulink and been saved in worksapce looks like this:
[t(1)....t(215), t(216)....t(875)]= [1715612265....1715612265, 1715612266....1715612266]
I have tried the 'Simulation pacing', changed the sample time of the subscriber block, changed the fixed step size; still getting the same random time interval.
I am attaching the sample example with all the setting that I am using in Simulink. Please let me know if some setting in simulink is the fault or something else.
0 Kommentare
Akzeptierte Antwort
Josh Chen
am 14 Mai 2024
Hi Nupur,
In the model 'Sample.slx' you shared, the 'To Workspace' blocks have been placed at the top level of the model. Hence, they will log values in each time step.
Instead, to log those data only when new message comes (which I assume is what you actually want?), you can place them inside the 'Enable Subsystem'.
Hope that helps,
Thanks,
Josh
3 Kommentare
Josh Chen
am 16 Mai 2024
Hi Nupur,
Simulink executes block step function in each time step, and as a result, the Subscribe block returns new output in each timestep. I am suspecting this is because the model is not running fast enough. You probably want to try giving a custom step here and see if it helps:
-Josh
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Specialized Messages finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!