Apollo 10.0
自动驾驶开放平台
|
该模块提供定位服务。默认情况下有两种方法。一种是结合GPS和IMU信息的RTK(Real Time Kinematic实时运动)方法,另一种是融合GPS、IMU和激光雷达信息的多传感器融合方法。
在提供的RTK方法中,有两个输入:
在所提供的多传感器融合定位方法中,有三个输入:
LocalizationEstimate
实例,它可以在common_msgs/localization_msgs/localization.proto
中找到。flagfile | 类型 | 描述 |
---|---|---|
modules/localization/common/localization_gflags.cc | cc | 定位 flags 头文件 |
modules/localization/common/localization_gflags.h | h | 定位 flags cc文件 |
目前,RTK方案是在类RTKLocalization
中实现的。如果一个新的定位方法需要用一个名字(例如FooLocalization
)来实现,你可以遵循以下步骤:
localization_config.proto
的LocalizationType enum type
中添加Foo。modules/localization
目录,并创建一个Foo目录。在Foo目录中,根据rtk目录中的RTKLocalization
类增加FooLocalization
类。FooLocalization
必须是LocalizationBase
的子类。根据rtk/BUILD
还需创建文件foo/BUILD
。Localization::RegisterLocalizationMethods()
中注册FooLocalization
,它位于CPP文件localization.cc
中。您可以通过在函数的末尾插入以下代码来注册: FooLocalization
的头文件。bash apollo.sh build
构建你的代码(源码环境下),或buildtool build -p modules/localization
构建你的代码(软件包管理环境下)。如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。