ROS中robot_pose_ekf包的使用

1. 如何使用包

1.1 配置

默认的ekf节点的launch文件可以在包目录下找到。launch文件包含几个配置参数:

  • freq:滤波器更新和发布频率。高的频率可以在一定时间内给出更多的机器人位姿数据,但是不会对位姿的估计精度产生影响。
  • senor_timeout:当传感器停止发送数据到滤波器,在继续之前,滤波器需要无传感器多长时间。
  • odom_used,imu_used,vo_used:使能和失能。

以下是配置文件内容,可以根据自己需要更改:

 <launch>
  <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
    <param name="output_frame" value="odom"/>
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="true"/>
    <param name="debug" value="false"/>
    <param name="self_diagnose" value="false"/>
  </node>
 </launch>

1.2 运行

  • 编译包
 $ rosdep install robot_pose_ekf
 $ roscd robot_pose_ekf
 $ rosmake
  • 运行 robot pose ekf
 $ roslaunch robot_pose_ekf.launch

2. 节点

2.1 robot_pose_ekf

执行一个扩展卡尔曼滤波为了估计机器人位姿。

2.2.1 订阅的话题

odom (nav_msgs/Odometry)
2D pose (轮式里成绩):2D位姿包括平面机器人的位置和航向,和相应位姿的协方差。发送这个2D位姿的消息实际表示3D位姿,但是z,roll,pitch被忽略。

imu_data(senser_msgs/Imu)
3D orientation (imu使用):3D方向提供相对与世界坐标系下的机器人坐标系下的roll,pitch,yaw角。roll和pitch角被描述成绝对角度,并且yaw角被描述成一个相对角。一个协方差矩阵指出方向测量的不确定性。当仅仅接收在这个主题上的消息是,robot pose ekf不会启动;它也期望/odom主题或者/vo主题上的消息。

vo(nav_msgs/Odometry)
3D pose (视觉里程计):3D位姿表示机器人的全位置和方向,和位姿的协方差。当传感器仅仅检测3D位姿的部分时,简单的指定一个大的协方差在未检测部分。

robot_pose_ekf节点不需要所有的三个传感器源都同时可用。每个源给定一个位姿估计和一个方差。源以不同的频率和不同的延时运行。源可以随着时间消失或者出现,并且节点可以自动检测和使用可用的源。为了添加自己的传感器输入,请看 the Adding a GPS sensor tutorial

2.1.2 节点所发布的主题

robot_pose_ekf/odom_combined(geometry_msgs/PoseWithCovarianceStamped)
滤波器的输出(估算好的3D机器人位姿)

2.1.3 提供的tf转换

odom_combined → base_footprint

3. Robot Pose EKF 如何工作

3.1 位姿说明

所有发送信息到滤波器节点的传感器源都有它自己的world参考坐标系,并且这些坐标系可以随着时间任意的漂移。因此,由不同传感器发送的绝对坐标系不能彼此比较。节点使用每个传感器的相对位姿差异更新扩展卡尔曼滤波器。

3.2 协方差说明

因为机器人绕圈移动,其在世界坐标系下的位姿的不确定性不断的变得越来越大。随着时间推移,协方差会无界增长。因此在自身位姿发布协方差没有用,代替方法是传感器源发布协方差随着时间的变化情况,也就是,速度上的协方差。注意使用世界的观测将会减少机器人位姿的不确定性;然而这是定位而不是里程计。

3.3 时间的选择

假设机器人位姿滤波器在时刻t_0被最近更新。直到每个传感器的至少一个测量在t_0之后的时间点到达,节点才会更新机器人位姿滤波器。

4. 包状态

4.1 稳定性

代码测试良好,长时间稳定。ROS API 随着消息类型的改变一直在进化。

4.2 路线图

  • 这个滤波器当前被设置三个传感器信号。
  • 将会增加速度到ekf的状态中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值