ROS组合导航笔记3:GPS导航

ROS组合导航笔记3:GPS导航

现在你有了一个基于 GPS 的新的里程计信息源,是时候将这些数据与来自 IMU 和传统里程计的额外数据合并,以生成 TF map -> odom。

让我们更新我们的 start_navigation_with_gps_ekf.launch 启动文件版本。

start_navigation_with_gps_ekf.launch

现在让我们集中在 ekf_localization节点的启动上:

如你所见,我们正在加载一个新的参数文件,名为 robot_localization_with_gps.yaml

Exercise 3.1

实现所有启动文件和配置文件,以便能够启动整个系统,并使 Summit XL 完全定位并能够自主导航。它应该能够使用 RVIZ 中的 2D Pose 信号移动,就像在上一章中一样。

遵循的步骤:

创建 start_map_server.launch 并检查您创建的空地图是否正常。创建 start_navsat.launch 并检查它是否正常工作并进行转换。移动 Summit XL 机器人以查看值是否相应变化。创建 start_navigation_with_gps_ekf.launch 启动文件的更新版本。创建包含所有必需参数的 robot_localization_with_gps.yaml 文件。启动它并检查 Summit XL 是否可以导航。

尝试到达外面的建筑桶。离开建筑物时要小心。

END Exercise 3.1

你应该在 RVIZ 中获得与此类似的结果:

你成功了吗?好吧,如果你没有,让我们看看配置文件现在应该是什么样子:

robot_localization_with_gps.yaml

#Configuation for robot odometry EKF

#

frequency: 50

two_d_mode: true

publish_tf: true

odom_frame: summit_xl_a_odom

base_link_frame: summit_xl_a_base_footprint

world_frame: map

map_frame: map

odom0: /robotnik_base_control/odom

odom0_config: [false, false, false,

false, false, false,

true, true, false,

false, false, true,

false, false, false]

odom0_differential: true

imu0: /imu/data

imu0_config: [false, false, false,

false, false, true,

false, false, false,

false, false, true,

true, false, false]

imu0_differential: false

odom1: /odometry/gps

odom1_config: [true, true, false,

false, false, false,

false, false, false,

false, false, false,

false, false, false]

odom1_differential: false

process_noise_covariance": [0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0.025, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0.025, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0.04, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.02, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.015]

initial_estimate_covariance: [1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9]

如您所见,此配置文件的主要区别在于现在我们有了 GPS 传感器:

odom1: /odometry/gps

odom1_config: [true, true, false,

false, false, false,

false, false, false,

false, false, false,

false, false, false]

odom1_differential: false

此 /odometry/gps 主题包含 navsat_transform_node 进行的 GPS 到 Odometry 转换的数据。

还请注意,我们将 publish_tf 变量设置为 true。这非常重要,因为现在我们需要发布从 odom 到地图的转换。

您可以检查您拥有的 TF 树。您应该看到您的 ekf_localization_with_gps 节点发布了从 odom 到地图的地图。

🎯 相关推荐

墙内网线更换教程是怎样的
365bet皇冠体

墙内网线更换教程是怎样的

📅 06-30 👀 1443
方块符号怎么打 方块符号输入方法
bet5365入口

方块符号怎么打 方块符号输入方法

📅 06-28 👀 775
芒果超媒发展历程、股权结构、业绩及商业模式分析