環境
ros2 galactic
f9p
TR-IMU1647X
参考(上から順に一通りやると理解が深まる)
https://automaticaddison.com/how-to-create-a-simulated-mobile-robot-in-ros-2-using-urdf/
https://automaticaddison.com/set-up-the-odometry-for-a-simulated-mobile-robot-in-ros-2/
https://automaticaddison.com/sensor-fusion-using-the-robot-localization-package-ros-2/
https://automaticaddison.com/set-up-lidar-for-a-simulated-mobile-robot-in-ros-2/
https://automaticaddison.com/navigation-and-slam-using-the-ros-2-navigation-stack/
https://automaticaddison.com/how-to-use-gps-with-the-robot-localization-package-ros-2/
参考をやってわかったこと(あってるのかは不明)、実施したこと
かなり大まかに
basic_mobile_robotパッケージはスモールタウンワールドのシミュレーション環境を構築し、
robot_localizationパッケージのekf_nodeとnavsat_transform_nodeを使って、
/fix/gps、/imu/data、wheel/odometryのトピックを入れ込み、拡張カルマンフィルター(ekf)で自己位置推定している。
そのため、
/fix/gpsと/imu/dataを実際の機器から出力されるトピック/fix、/imu/data_rawに変えた
比較
上図を要約すると
シミュレーションと比較して実際の機器になると
・gpsデータは、f9p(ubloxノード)から出力される/fixトピックにかわっている
・imuデータは、adiノードから出力される/imu/data_rawトピックにかわっている
(上図でしめしたいことの詳細)
〇GNSSの流れに焦点
・シミュレーション
/basix_mobile_bot_gpsノード → /gps/fixトピック → /navsat_transformノード → /odometry/gpsトピック → /ekf_filter_node_mapノード
・実際の機器
/ublox_gps_nodeノード → /fixトピック→/navsat_transformノード → /odometry/gpsトピック → /ekf_filter_node_mapノード
〇imuの流れに焦点
・シミュレーション
/imu/basic_mobile_bot_imuノード → /imu/dataトピック → /ekf_filter_node_map&/ekf_filter_node_odomノード
・実際の機器
adi_rcv_csv_nodeノード → /imudata_rawトピック → ekf_filter_node_map&/ekf_filter_node_odomノード
なにしたか
①gps、imu、wheel_odomによる自己位置推定のシミュレーション環境の構築
参考リンクの上から順に実施
はしょりたい人はこちら→リンク(記事作成中)
②f9pの値をROS2上に。/fixトピックで出力される
③TR-IMU1647Xの値をROS2上に。/imu/data_rawで出力される
④シミュレーション環境の設定を変更
リンクは随時更新します。