====================================================================================================================================================================================================================
|| AGV_Localization_Guide ||
====================================================================================================================================================================================================================
Odometry, IMU and Robot Localization Packages
<0>.About <robot_localisation> package
0.1.The package is basically made for <PR2> bot as it uses namely 3 sensors value
0.1.0.Odometry_data<odomX>
0.1.1.Imu_data<odomX>
0.1.2.Visual_Odometry<voX>
<1>.How Robot Pose EKF works (http://wiki.ros.org/robot_pose_ekf)
1.1.Pose interpretation--< Calculation of pose w.r.t. to relative usage not absolute>
All the sensor sources that send information to the filter node can have their own world reference frame, and each of these world reference frames can drift arbitrary over time. Therefore, the absolute poses sent by the different sensors cannot be compared to each other. The node uses the relative pose differences of each sensor to update the extended Kalman filter.
1.2.Covariance interpretation--< Use of covariance for both pose and it derivative (i.e. velocity) >
As a robot moves around, the uncertainty on its pose in a world reference continues to grow larger and larger. Over time, the covariance would grow without bounds. Therefore it is not useful to publish the covariance on the pose itself, instead the sensor sources publish how the covariance changes over time, i.e. the covariance on the velocity.
1.3.Timing--< Use of Interpolation>
Imagine the robot pose filter was last updated at time t_0. The node will not update the robot pose filter until at least one measurement of each sensor arrived with a timestamp later than t_0. When e.g. a message was received on the odom topic with timestamp t_1 > t_0, and on the imu_data topic with timestamp t_2 > t_1 > t_0, the filter will now update to the latest time at which information about all sensors is available, in this case to time t_1. The odom pose at t_1 is directly given, and the imu pose at t_1 is obtained by linear interpolation of the imu pose between t_0 and t_2. The robot pose filter is updated with the relative poses of the odom and imu, between t_0 and t_1.
<2>Nodes
2.1.robot_pose_ekf
robot_pose_ekf implements an extended Kalman filter for determining the robot pose.
2.2.Subscribed Topics
2.2.1.odom (nav_msgs/Odometry)
2D pose (used by wheel odometry): The 2D pose contains the position and orientation of the robot in the ground plane and the covariance on this pose. The message to send this 2D pose actually represents a 3D pose, but the z, roll and pitch are simply ignored.
2.2.2.imu_data (sensor_msgs/Imu)<Use of Yaw as relative angle>
3D orientation (used by the IMU): The 3D orientation provides information about the Roll, Pitch and Yaw angles of the robot base frame relative to a world reference frame. The Roll and Pitch angles are interpreted as absolute angles (because an IMU sensor has a gravity reference), and the Yaw angle is interpreted as a relative angle. A covariance matrix specifies the uncertainty on the orientation measurement. The robot pose ekf will not start when it only receives messages on this topic; it also expects messages on either the 'vo' or the 'odom' topic.
2.3.Flexiblity of Number of sensors and their flexiblity of data sending
The robot_pose_ekf node does not require all three sensor sources to be available all the time. Each source gives a pose estimate and a covariance. The sources operate at different rates and with different latencies. A source can appear and disappear over time, and the node will automatically detect and use the available sensors.
<3>.Migration from robot_pose_ekf (http://wiki.ros.org/robot_localization/Tutorials/Migration%20from%20robot_pose_ekf)
3.1.Covariances in source messages<Setting high covarience to ignore the sensor>
For robot_pose_ekf, a common means of getting the filter to ignore measurements is to give it a massively inflated covariance, often on the order of 10^3. However, robot_localization allows users to specify which variables from the measurement should be fused with the current state.
3.2The differential parameter<Differential Integration>
By default, robot_pose_ekf will take a measurement at time t, determine the difference between it and the measurement at time t-1, transform that difference into the current frame, and then integrate that measurement. This cleverly aids in cases where two sensors are measuring the same pose variable: as time progresses, the values reported by each sensor will start to diverge, eventually causing the filter to jump back and forth between the measured values. By carrying out differential integration, this situation is avoided and measurements are always consistent with the current state.
3.3For robot_localization, the preferred method is to feed it velocity information and let the filter integrate the values using its kinematic model. If this is impractical (e.g., for measurements from other packages over which you have no control), then users can use the xxx_differential setting. By setting this to true for a given variable (the default value is false), robot_localization integrates the pose data for that sensor in the same manner as robot_pose_ekf.Users wishing to integrate GPS data should take care, though: setting the differential parameter to true for data coming from, for example, navsat_transform_node will result in the loss of the "global" nature of the measurement. In other words, each measurement will not be fused absolutely and therefore will still drift from the true GPS track.Users wishing to fuse GPS data should make sure that its differential parameter is set to false.
=========================================================================================================
=========================================================================================================
REP 105
Link:: <http://www.ros.org/reps/rep-0105.html>
=========================================================================================================
1.Coordinate Frames
1.1.<map> => GPS
World Frame is fixed and assumption is that mobile platform, relative to the map frame does not significantly drift over time.Map is non-continuous which means there will be discrete jumps in the readings of GPS but its not good for converting to local frame i.e <map> frame to <odom> as discrete jumps make it a poor reference for local sensing and acting. But map frame is useful for long-term global reference.
1.2.<odom> => IMU, Odometry, Visual Odometry
Odometry frame is continuous but the small error which comes during integrations gets accumulated over the whole time and over a long-term it becomes very erreneous.The odom frame can drift over time. And function guiding this frame is continuous and smooth and useful for local frame reference as its reading are aproximately accurate but drift make it a poor reference for long-term reference.
1.3.<base_link> => Robot's own platform like sensor mounting
<base_link> is rigidly attached to the mobile robot base.The base_link can be attached to the base in any arbitrary position or orientation like for every hardware plateform there will be a different place on the base that provides adn point of refernce.
2.Relationship between the frames
2.1. map-->odom-->base_link
For <odom> frame, <map> frame is parent and similarily for <base_link> frame <odom> frame is the parent.
=========================================================================================================
=========================================================================================================
USING NAVSAT_TRANSFORM_NODE-> GPS INTEGRATION
日月龙腾
- 粉丝: 37
- 资源: 4575
最新资源
- 基于Simulink的风储联合调频与光伏变压减载仿真模型研究(附文献),风储联合调频+光伏变压减载simulink仿真模型 ①风机惯量调频 ②储能下垂控制联合调频:搭建了考虑储能充放电效率的含电池储能
- 三菱PLC与触摸屏组合的三层电梯控制设计程序详解:梯形图、接线图与组态画面全解析,基于三菱PLC和三菱触摸屏的三层电梯控制组态设计程序 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,核心
- 双Buck电路并联下VDCM与下垂控制结合策略:增强直流微电网稳定性与电压控制性能,双buck电路并联(VDCM控制+下垂控制) 变器并联控制方案中,下垂控制是一种经典的控制策略,但下垂控制因缺少传统
- 非线性磁链观测器与PLL源码解析:VESC无感观测器代码调试及仿真研究,非线性磁链观测器+PLL(源码+参考文献+仿真模型) ①源码:VESC的无感非线性观测器代码,并做了简单的调试,可以做到0速启
- Hyperworks MotionView软件下的发动机激励噪声仿真:识别车内噪声的技术路线揭秘,发动机激励噪声仿真 使用软件为hyperworks motionview 技术路线:提取载荷等效轴心载
- 微环谐振腔光学频率梳MATLAB仿真研究:考虑色散、克尔非线性与外部泵浦因素的LLE方程实现分析,微环谐振腔的光学频率梳matlab仿真 微腔光频梳仿真 包括求解LLE方程(Lugiato-Lefev
- 基于Simulink的四旋翼无人机运动学和动力学建模与PD控制仿真研究,四旋翼无人机,进行simulink建模与仿真,对它的运动学模型和动力学模型进行了必要且详细的研究和分析,运用牛顿-欧拉方程建立了
- BLDC无刷直流电机Matlab仿真:转速电流双闭环控制及无感反电动势过零换相方式研究,BLDC无刷直流电机matlab仿真,转速电流双闭环控制,有感或无感相方式,电机模型自带反电动势输出,默认用无感
- 基于MATLAB的改进量子遗传算法多变量函数寻优代码详解:动态调整量子旋转门提高计算精度,基于matlab的改进的量子遗传算法对多变量函数寻优完整代码,内容详细,包含运行说明,该代码在量子旋转门调整中
- 三菱LEHY-Pro电梯地址码详解:专业电梯技术解析与操作指南,三菱电梯LEHY-Pro电梯地址码 ,关键词:三菱电梯;LEHY-Pro;电梯地址码;通讯协议;故障诊断;维护保养,三菱电梯LEHY-P
- 有百词斩,翻页时钟,日历
- 飞度电感均衡控制逻辑:以三节电池为例详析sfunction逻辑运算的巧妙应用,飞度电感均衡 三节电池为例 内附控制逻辑 sfunction 逻辑运算 ,核心关键词:飞度电感均衡; 三节电池; 内附控
- stylus-chrome-mv3-2.3.7-c337ba1-id.zip
- 非线性磁链观测器源码详解:VESC无感观测器与PLL结合,附详细注释、文献出处及仿真模型,非线性磁链观测器+PLL(源码+参考文献+仿真模型) ①源码:VESC的无感非线性观测器代码,并做了简单的调试
- "基于SVM代理模型的电机多目标优化研究:平均转矩、转矩脉动与径向推力的高精度优化",基于支持向量机(SVM)代理模型的,电机多目标优化 平均转剧,转剧脉动,迳向推力三个优化目标的R2都在0.99往
- 基于深度神经网络DNN的多输出回归预测模型:程序调试完成,轻松替换数据,实现高质评估与图例展示,DNN多输出回归 基于深度神经网络(DNN)的多输出回归预测(多输入多输出) 程序已经调试好,数据格式为
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0