ros robot_localization

robot_localization是状态估计节点的集合,每个节点都是针对在3D空间中移动的机器人的非线性状态估计器的实现。 它包含两个状态估计节点ekf_localization_node和ukf_localization_node。 另外,robot_localization提供了navsat_transform_node,它有助于集成GPS数据。

robot_localization中的所有状态估计节点都具有共同的特征,即:

融合任意数量的传感器。 节点不限制输入源的数量。 例如,如果您的机器人具有多个IMU或里程表信息的多个来源,则robot_localization中的状态估计节点可以支持所有它们。

支持多种ROS消息类型。 robot_localization中的所有状态估计节点都可以接收nav_msgs / Odometry,sensor_msgs / Imu,geometry_msgs / PoseWithCovarianceStamped或geometry_msgs / TwistWithCovarianceStamped消息。

每个传感器的输入定制。 如果给定的传感器消息包含您不希望包含在状态估计中的数据,则robot_localization中的状态估计节点允许您逐个传感器排除该数据。

连续估算。 robot_localization中的每个状态估算节点在收到一次测量结果后就开始估算车辆的状态。 如果传感器数据中有节假日(即很长一段时间,没有收到任何数据),则滤波器将继续通过内部运动模型来估算机器人的状态。

所有状态估计节点都跟踪车辆的15维状态:

(X,Y,Z,roll,pitch,yaw,X˙,Y˙,Z˙,roll˙,pitch˙,yaw˙,X¨,Y¨,Z¨)(X,Y,Z,roll,pitch,yaw,X˙,Y˙,Z˙,roll˙,pitch˙,yaw˙,X¨,Y¨,Z¨)

ekf_localization_node是扩展卡尔曼滤波器的实现。 它使用全向运动模型在时间上向前预测状态,并使用感知的传感器数据校正预测的估计值。

ukf_localization_node是无迹卡尔曼过滤器的实现。 它使用一组精心选择的sigma点,以通过EKF中使用的同一运动模型来投影状态,然后使用这些投影的sigma点来恢复状态估计和协方差。 这消除了使用雅可比矩阵,并使滤波器更稳定。 但是,与ekf_localization_node相比,它在计算上也更加繁重。

ekf_localization_node和ukf_localization_node共享它们的绝大多数参数,因为大多数参数控制在与核心过滤器融合之前如何处理数据。

可用于状态估计节点的相对大量参数使启动文件和配置文件成为启动其任何节点的首选方法。 该软件包包含模板启动和配置文件,以帮助用户入门。

Parameters Common to ekf_localization_node and ukf_localization_node

~frequence

滤波器产生状态估计值的实值频率(单位为Hz)

注意:滤波器只有从输入之一接收到至少一条消息后才会开始计算。

~sensor_timeout

实值周期(以秒为单位),之后我们认为任何传感器都已超时。 在这种情况下,我们会对EKF进行预测周期,而无需对其进行校正。 可以将此参数视为滤波器将生成新输出的最小频率的倒数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值