robot_pose_ekf包保姆級使用教程


1.下載地址

https://github.com/udacity/robot_pose_ekf

本文對odom數據以及imu數據進行融合。

2.如何方便完成訂閱話題?

為了方便對訂閱話題的管理,對源文件進行修改:

robot_pose_ekf/robot_pose_ekf.launch:

<launch>

<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
  <param name="output_frame" value="odom"/>
  <param name="base_footprint_frame" value="base_footprint"/>
  <param name="freq" value="50.0"/>
  <param name="sensor_timeout" value="1.0"/>

  <param name="odom_used" value="true"/>
  <param name="odom_data" value="odom"/>
  
  <param name="imu_used" value="true"/>
  <param name="imu_data" value="imu"/>

  <param name="vo_used" value="false"/>
</node>

</launch>

robot_pose_ekf/odom_estimation_node.cpp:

找到相應的代碼行,添加:

...
nh_private.param("odom_used", odom_used_, true);
nh_private.param("odom_data", odom_data_, std::string("/odom_data"));

nh_private.param("imu_used",  imu_used_, true);
nh_private.param("imu_data", imu_data_, std::string("/imu_data"));
...
odom_sub_ = nh.subscribe(odom_data_, 10, &OdomEstimationNode::odomCallback, this);
...
imu_sub_ = nh.subscribe(imu_data_, 10,  &OdomEstimationNode::imuCallback, this);

同樣,對頭文件進行修改:

robot_pose_ekf/include/robot_pose_ekf/odom_estimation_node.h:

...
std::string output_frame_, base_footprint_frame_, tf_prefix_, odom_data_, imu_data_;
...

至此,可以通過上述修改的launch文件完成對話題的修改,當話題修改時,只需要修改launch文件中的參數即可,而不需要重新編譯。

3.編譯

在工作空間目錄下,執行:

catkin_make

4.如何使用?

如果你使用的是實際的機器人,則需要將發布odom坐標轉換的相關代碼注釋掉,一般位於底盤的啟動文件中,注意是坐標轉換,也就是tf brodcaster,而不是里程計數據,里程計數據需要保留。

如果使用的是gazebo仿真環境下的機器人,則需要對控制器進行修改,以差速機器人為例:

<gazebo>
	<plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
...
	<publishOdomTF>true</publishOdomTF>
...
</gazebo> 

沒有找到相關參數的話,添加即可。

運行:

roslaunch robot_pose_ekf robot_pose_ekf.launch

此時,打開tf樹,會發現odom到base_link(base_footprint)的轉換為robot_pose_ekf發布,這說明EKF配置成功。

如果給您帶來幫助,希望能給點個關注,以后還會陸續更新有關機器人的內容,點個關注不迷路~歡迎大家一起交流學習,有問題評論區留言。
都看到這了,點個推薦再走吧~
未經允許,禁止轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM