定位模块配置
本文档介绍在 林肯MKZ 上适配apollo的定位模块配置。前面已经硬件集成了捷联惯性导航设备PP7,并对PP7设备进行了配置。本文档对apollo定位模块进行相应的配置。
前提条件
- 完成了 循迹搭建--车辆集成。
- 完成了 循迹搭建--捷联惯性导航设备PP7配置。
- 拥有 RTK 基站账号。
apollo定位模块配置之系统文件配置
系统文件配置主要包括两部分,分别为 gnss_conf.pb.txt 文件配置 和localization.conf 文件配置。
| 文件名称 | 文件位置 | 说明 |
|---|---|---|
| gnss_conf.pb.txt | modules/calibration/data/车型目录/gnss_conf/gnss_conf.pb.txt | gnss配置文件 |
| localization.conf | modules/calibration/data/车型目录/localization_conf/localization.conf | 定位模块配置文件 |
gnss_conf.pb.txt 文件配置
以下为gnss_conf.pb.txt文件内容,只需要将自己的基站信息中的IP地址、端口号、挂载点、用户名和用户密码填写到rtk_from的ntrip对应的项中即可,其他内容无需更改。
注意:若您在 循迹搭建--捷联惯性导航设备PP7配置 中改变了PP7设备的IP地址和端口号,
gnss_conf.pb.txt中的data模块和rtk_to模块的tcp项的address和port值也要做相应的更改。
data {
format: NOVATEL_BINARY
tcp {
address: "192.168.10.4"
port: 2000
}
}
rtk_from {
format: RTCM_V3
ntrip {
address: "<IP>"
port: <PORT>
mount_point: "<MOUNTPOINT>"
user: "<USER>"
password: "<PASSWORD>"
timeout_s: 5
}
push_location: true
}
rtk_to {
format: NOVATEL_BINARY
tcp {
address: "192.168.10.4"
port: 3000
}
}
rtk_solution_type: RTK_RECEIVER_SOLUTION
imu_type: G320N
proj4_text: "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
tf {
frame_id: "world"
child_frame_id: "novatel"
enable: false
}
# If given, the driver will send velocity info into novatel one time per second
wheel_parameters: "SETWHEELPARAMETERS 100 1 1\r\n"
gpsbin_folder: "/apollo/data/gpsbin"
#########################################################################
# notice: only for debug, won't configure device through driver online!!!
#########################################################################
login_commands: "UNLOGALL THISPORT\r\n"
login_commands: "LOG COM2 GPRMC ONTIME 1.0 0.25\r\n"
login_commands: "EVENTOUTCONTROL MARK2 ENABLE POSITIVE 999999990 10\r\n"
login_commands: "EVENTOUTCONTROL MARK1 ENABLE POSITIVE 500000000 500000000\r\n"
login_commands: "LOG GPGGA ONTIME 1.0\r\n"
login_commands: "log bestgnssposb ontime 1\r\n"
login_commands: "log bestgnssvelb ontime 1\r\n"
login_commands: "log bestposb ontime 1\r\n"
login_commands: "log INSPVAXB ontime 0.5\r\n"
login_commands: "log INSPVASB ontime 0.01\r\n"
login_commands: "log CORRIMUDATASB ontime 0.01\r\n"
login_commands: "log RAWIMUSXB onnew 0 0\r\n"
login_commands: "log INSCOVSB ontime 1\r\n"
login_commands: "log mark1pvab onnew\r\n"
login_commands: "log rangecmpb ontime 0.2\r\n"
login_commands: "log rangecmpb_1 ontime 0.2\r\n"
login_commands: "log rangeb ontime 0.2\r\n"
login_commands: "log bdsephemerisb\r\n"
login_commands: "log gpsephemb\r\n"
login_commands: "log gloephemerisb\r\n"
login_commands: "log bdsephemerisb ontime 15\r\n"
login_commands: "log gpsephemb ontime 15\r\n"
login_commands: "log gloephemerisb ontime 15\r\n"
login_commands: "log imutoantoffsetsb once\r\n"
login_commands: "log vehiclebodyrotationb onchanged\r\n"
login_commands: "log headingb onchanged\r\n"
logout_commands: "EVENTOUTCONTROL MARK2 DISABLE\r\n"
logout_commands: "EVENTOUTCONTROL MARK1 DISABLE\r\n"Localization.conf 文件配置
对 localization.conf 文件的配置,只需要根据自己PP7安装的具体情况更改localization.conf文件中相应项的值即可。
打开localization.conf 文件,找到对应的项,根据自己的实际情况进行对应的修改,具体修改项请参看下表:
注意:如果该配置文件没有进行正确配置,可能会对之后的传感器标定、虚拟车道线制作等功能产生影响。
| 参数 | 说明 |
|---|---|
| lidar_height_default | 参数值修改为 lidar 中心到地面的距离。单位:m |
| local_utm_zone_id | 需要用户查询所在地区的 utm_zone,并进行修改。例如,北京地区 utm_zone 为 50。utm_zone 的查询可参见 UTM zone。 |
| imu_to_ant_offset_x | x 轴方向杆臂值。单位:m,杆臂值测量方法参见 循迹搭建--车辆集成。 |
| imu_to_ant_offset_y | y 轴方向杆臂值。单位:m,杆臂值测量方法参见 循迹搭建--车辆集成。 |
| imu_to_ant_offset_z | z 轴方向杆臂值。单位:m,杆臂值测量方法参见 循迹搭建--车辆集成。 |
| --enable_lidar_localization=true | 修改为 --enable_lidar_localization=false |
检查定位模块能否正常启动
将车辆移至室外平坦开阔处,按顺序执行如下操作。
1. 编译项目,启动 Dreamview
进入 docker 环境,用 GPU 编译项目,启动 DreamView。
cd /apollo
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh
bash apollo.sh build_opt_gpu
bash scripts/bootstrap.sh2. 启动定位模块
- 在浏览器中打开
(http://localhost:8888)。 - 选择模式为
Mkz Standard Debug,并根据实际情况选择对应的车型。 - 在 Module Controller 标签页启动 GPS、Localization 模块。

3. 检查 GPS 信号
请按照以下步骤检查 GPS 信号:
- 新打开一个命令行终端,输入输入并执行命令
bash docker/scripts/dev_into.sh命令进入apollo docker 环境。 -
在新终端中输入并执行命令
cyber_monitor命令,在列出的channel信息中使用键盘上下方向键,配合翻页键,选中/apollo/sensor/gnss/best_posechannel,按键盘右方向键,进入/apollo/sensor/gnss/best_posechannel,查看该channel的sol_type字段值是否为NARROW_INT。- 若为 NARROW_INT,则表示 GPS 信号良好;
- 若不为 NARROW_INT,则将车辆移动换个无遮挡的位置再看下,直到出现 NARROW_INT 为止。

- 同样方式进入 (按键盘左方向键为退出此channel)
/apollo/sensor/gnss/imuchannel,确认 IMU 有数据刷新,若有刷新即表明 GPS 模块配置成功。
4. 检查定位信号
同样使用 cyber_monotor 工具查看,进入 /apollo/localization/pose channel,查看是否有数据刷新,若没有,请等待几分钟,直到有数据刷新,若有数据刷新即表明定位模块配置成功。

常见问题
GPS打开后,发现 best_pose, imu, localization/pose 信号没有收到
运行 bash gps.sh 后,可以 cyber_monitor 中观察以下几个信号。(关于cyber_monitor 更详细使用,参见 [CyberRT_Developer_Tools](Apollo_Doc_CN_6_0/上机使用教程/实时通信框架CyberRT的使用/CyberRT介绍.md "_self"))。
/apollo/sensor/gnss/best_pose
/apollo/sensor/gnss/imu
/apollo/localization/pose如果 best_pose 和 IMU 没有信号,请检查 GPS 和 IMU 的配置。 如果 best_pose 和 IMU 有信号,但是 localization/pose 没有信号,请等待 2 分钟。如果还是没有信号,请让车开动几分钟。
文档意见反馈
如果您在使用文档的过程中遇到问题,请到我们在【开发者社区】建立的反馈意见收集问答页面 反馈,我们会根据反馈意见对文档进行迭代优化。