ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
when applying the dual ekf, from what I understand, you get two odometries, the local and the global, I would like to ask you what are the differences between the two.
I don't know specifically what is being done on a Jackal, but I can give a general answer:
"global localization" refers to an algorithm that directly calculates an absolute pose on the map. A GPS sensor can be an input to this calculation. The downside is that typically it takes a long time (i.e. seconds) to get an update; for us, GPS has the additional problem that it provides no angle rotation (yaw) information.
"local localization" is different: it relies on measuring relative position changes over time, then integrating them to estimate the current position relative to a starting point. IMU and wheel-encoders are typically the input for this. Pose updates can happen very quick (milliseconds), but the downside is that (a) it has to be told the robot's starting pose on a map, and (b) measurement errors accumulate over time, so the output "drifts" (becomes inaccurate.)
What people do is combine both methods: use local localization to continuously track a decent estimate of the robot pose, and "occasionally" correct the drift using global localization.
The "local ekf" is almost certainly fusing IMU and wheel-encoder sensor data.
The "global ekf" is probably applying a velocity-based prediction model to the GPS sensor data, and is also picking up the yaw from the "local ekf" (since it has nowhere else to get this data.)
what role that the navsat transform have in practice in the robot localization
You have to convert from the spherical longitude/latitude coordinate system to your robot's flat 2d map coordinate system.
2 | No.2 Revision |
I don't know specifically what is being done on a Jackal, but I can give a general answer:
"global localization" refers to an algorithm that directly calculates an absolute pose on the map. A GPS sensor can be an input to this calculation. The downside is that typically it takes a long time (i.e. seconds) to get an update; for us, GPS has the additional problem that it provides no angle rotation (yaw) information.
"local localization" is different: it relies on measuring relative position changes over time, then integrating them to estimate the current position relative to a starting point. IMU and wheel-encoders are typically the input for this. Pose updates can happen very quick (milliseconds), but the downside is that (a) it has to be told the robot's starting pose on a map, and (b) measurement errors accumulate over time, so the output "drifts" (becomes inaccurate.)
What people do is combine both methods: use local localization to continuously track a decent estimate of the robot pose, and "occasionally" correct the drift using global localization.
The "local ekf" is almost certainly fusing IMU odometry and wheel-encoder sensor data.odometry.
The "global ekf" is probably applying a velocity-based prediction model to the GPS sensor data, and is also picking up the yaw from the "local ekf" (since it has nowhere else to get this data.)data.
what role that the navsat transform have in practice in the robot localization
You have to convert from the spherical longitude/latitude coordinate system to your robot's flat 2d map coordinate system.