ROS Toolboxを使って、ROSから送られてくるセンサのIMU情報から、特定の角度情報を素早く取得したい。
3 ビュー (過去 30 日間)
古いコメントを表示
ROSから送られてくるIMU情報を、MATLABで角度情報のみを抜き出したいと思い、下記のようなコードで取得しています。
for(1:10)
topicinfo=rostopic(“echo”,topicname)
Z=topicinfo.AngularVelocity.Z
end
このZの値を、ループを使って更新し続けているのですが、現在のコードでは1ループに200msほどかかってしまっています。出来れば1ループあたりの時間を10ms程度に抑えたいと考えております。処理に時間がかかっている理由として考えられるものは、欲しいデータ以外の情報も同時に取得しているからだと思うのですが、
rostopic list
から表示されるトピックは、全てのIMU情報をまとめた状態のトピックしか表示されないので、全て取りだしてから中身を見る方法しか思いつきません。何かいい方法はございますでしょうか?
0 件のコメント
回答 (1 件)
Toshinobu Shintai
2023 年 1 月 24 日
試しにSimulinkで同じ機能を実装してみてはいかがでしょうか(もしかしたらSimulinkの方が早いかもしれません)。MATLABスクリプトでないとできないことをされているのであれば、解決策にならないかもしれませんが。
3 件のコメント
Toshinobu Shintai
2023 年 1 月 25 日
回し続けた状態で、目測ではなく何回繰り返し実行されたかをカウントした方がよいです。Displayの数値の切り替わり速度は、もっと早いサイクルであっても大体1秒間に5回程度しか変化しませんので。
以下のAnswersでカウントを作成する方法が紹介されています。
ただ、それでもやっぱり200msである可能性もありますので...
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!