rt-net / rt_usb_9axisimu_driver

RT-USB-9axisIMU ROS Package.
https://wiki.ros.org/rt_usb_9axisimu_driver
BSD 3-Clause "New" or "Revised" License
38 stars 23 forks source link

本センサを用いた姿勢推定手法の有効な手法、環境について #34

Closed Yuma-Eimymk2 closed 3 years ago

Yuma-Eimymk2 commented 3 years ago

内容

私は本USB出力9軸IMUセンサモジュールを用いて、姿勢推定を行っています。 実行環境は以下のとおりであり、姿勢推定にはMadgwickフィルターを用いています。 以下の手順で実行したところ、Rvizに出力される姿勢推定結果で追従遅れが出てしまいます。私はこの原因がmadgwickfilterの拡張カルマンフィルタなどに比べて収束が遅いという問題に起因すると考えましたが、現状これ以上に精度の良い姿勢推定手法は見つけられておりません。

そこで、 https://rt-net.jp/mobility/archives/15065 https://www.youtube.com/watch?v=4V1BAAKFIs4&feature=emb_logo 私の実行結果以上の追従性が目視で確認できる、上記ブログ、動画での姿勢推定の実行環境を教えていただきたいです。

宜しくお願いいたします。

実行環境

OS:Ubuntu18.04 ROS:Melodic 使用ソフト:Rviz,      :rt_usb_9axisimu_driver,
     :imu_tools/imu_filter_madgwick/src/imu_filter_node.cpp

再現手順

センサをPCに接続した状態でコマンドラインより、 $roslaunch rt_usb_9axisimu_driver rt_usb_9axisimudriver.launch $rosrun imu_filter_madgwick imu_filter_node $rviz $rosrun tf static_transform_publisher 0 0 0 0 0 0 map frame 100

ShotaAk commented 3 years ago

動画撮影時のソースコードが残っていないため、正確な実行環境をお伝えできません。

ただ、独自のフィルタリングを実装した記憶もないので、 imu_complementary_filterか、 imu_filter_madgwickのどちらかを使用したと思われます。

それぞれのフィルタにはいくつかパラメータを設定できるので、調節してみてください。

また、IMUモジュール本体のキャリブレーションも実施してみてください。

ShotaAk commented 3 years ago

@Yuma-Eimymk2 動画の状況を再現できたので、情報共有します。 OSやROSのバージョンには依存しないと思います。

launchファイルに下記の行を追記

  <node pkg="imu_complementary_filter" type="complementary_filter_node" name="filter" >
    <param name="fixed_frame" value="odom" />
    <param name="publish_tf" value="true" />
  </node>

  <node pkg="rviz" type="rviz" name="rviz" required="true" output="screen" args="-d $(find rt_usb_9axisimu_driver)/launch/config.rviz" />
  <node pkg="tf" type="static_transform_publisher" name="broadcaster" args="0 0 0 0 3.14 0 base_link odom 100" />
Yuma-Eimymk2 commented 3 years ago

検証していただきありがとうございます!早速センサに導入してみます