HomePose Estimator Arbiter
Auxiliary
Pose Estimator Arbiter
Pose Estimator Arbiter
Pose Estimator Arbiter manages the lifecycle of multiple localization sources, deciding which sources are active based on scenario rules.
Supported Sources
| Source | Enum Value | Stopper Mechanism |
|---|---|---|
NDT Scan Matcher | ndt | Intercept point cloud topic |
YabLoc | yabloc | Intercept image topic + call pause service |
Eagleye | eagleye | Intercept output pose topic |
AR Tag | artag | Intercept image topic |
LiDAR Marker | lidar_marker | Intercept point cloud topic |
Custom Switching Rules
Developers can inherit from BaseSwitchRule to implement custom rules. For example, switching based on vehicle zone (NDT for outdoor yard, AR Tag for loading zone) or localization quality (switch to YabLoc when NDT score drops).
custom_switch_rule.hpp
cpp
class PortSwitchRule : public BaseSwitchRule {
public:
std::unordered_map<PoseEstimatorType, bool> update() override {
// Dynamic switching based on zone and quality
if (is_in_loading_zone()) {
return {{PoseEstimatorType::artag, true},
{PoseEstimatorType::ndt, false}};
}
return {{PoseEstimatorType::ndt, true},
{PoseEstimatorType::artag, false}};
}
};