How to use 'Timer' function to send ROS messages?

5 ビュー (過去 30 日間)
JAI PRAKASH
JAI PRAKASH 2018 年 9 月 7 日
編集済み: Koundinya 2019 年 2 月 7 日
fps=50;
How can send ROS messages through a publisher continuously.

採用された回答

Koundinya
Koundinya 2018 年 9 月 10 日
編集済み: Koundinya 2019 年 2 月 7 日
You can use MATLAB timers in this way :
% Create a timer object
t=timer;
Set execution mode of the timer object to fixedRate, fixedDelay or fixedSpacing to execute your call back repeatedly
set(t,'executionMode','fixedRate');
Specify the function handle or the command you want to be executed. In your case, for sending messages over a ROS topic , use send :
set(t,'TimerFcn','send(pub,msg)');
Set the frequency or period(in seconds),at which the timer callback function is called
% To publish the message at a rate of 50 times per second
set(t,'Period', 0.02);
% Start the timer
start(t);
ROS message msg is then sent periodically(every 0.02 seconds). To stop the timer:
stop(t);
Delete the timer object after usage
delete(t);
  5 件のコメント
Arun Prasanth Soungyan Gokul
Arun Prasanth Soungyan Gokul 2019 年 2 月 6 日
Hi Koundinya,
I'm trying to use the timer object which you suggested. I already created the publisher and it's respective message(pub,msg). But when I set set(t,'TimerFcn','send(pub,msg)'), and the other attributes
and run start(t); it says undefined function or variable msg,undefined function or variable pub.
Can you please help me out from this?
Koundinya
Koundinya 2019 年 2 月 7 日
編集済み: Koundinya 2019 年 2 月 7 日
Hi Arun,
You need to first create a ROS publisher object(named 'pub' in this case) and then define a message ('msg') that is to be published. Take a look at the documentation of rospublisher and send for examples.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePublishers and Subscribers についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by