调试APOLLO GNSS遇到的问题及解决办法

1. https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_add_a_gps_receiver.md里面,step 1在哪添加?

答:how_to_add_a_gps_receiver是添加一个新的GPS,如果是采用百度的novatel方案,可以忽略这步。注意,step 1添加在parser.h的parser类下面,编译可以通过。

2. novatel怎样与IPC链接,需要做那些设置?

答:首先,要确定是否使用多线激光,如果使用了多线激光,那么在novatel上的DB26的接口一定要插上,并且将COM2接到工控机的COM2,数据传输给lidar。由于我的项目没有用到lidar,所以没有用到DB26的线。连接好电源,我这里用的是12V,+VIN_A与+VIN_B接+12V,两根-VIN接地。Novatel pp7的ANT1与ANT2连接到天线,Novatel上的Micro B接口连接到USB。需要安装一个Novatel的驱动,个人认为是U转串的驱动。

连接完成后上电。在Ubuntu14.04中需要安装一个Novatel的驱动(https://www.novatel.com/support/info/documents/809),个人认为是U转串的驱动。将Novatel连接到电脑后。/dev下会多出:Serial, ttyUSB0, ttyUSB1与ttyUSB2。分别对应USB1,USB2,USB3。为了配置Novatel PP7,需要安装minicom

$ sudo apt-get install minicom

安装完毕后,设置minicom

$ sudo minicom -s

选择Serial port setup,然后将修改Serial Device修改为:/dev/ttyUSB2,按回车确认。Hardware Flow Control选项改为No。回车退出,选择Exit from Minicom退出。

注意:这里选择ttyUSB2是因为对应USB3。USB1对应novatel0,所有数据从novatel给IPC;USB2送基站信息,通过USB2送给novatel;USB3空着的;COM1空着的;COM2将GPRMC的信息(最基本的位置与时间信息)送给工控机,提供给多线lidar。

运行:

$ sudo minicom

这是会提示USB3。将https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_5_hardware_system_installation_guide_v1.md最下面的for pp6的内容逐行copy到minicom修改PP7固件,但是PP7集成了IMU,所以第三行不用copy。应为PP6与PP7的固件有些不同,所以有些命令有些不同,需要烧进固件的内容整理如下:

WIFICONFIG STATE OFF  #没有wifi会报错,不过没关系。
UNLOGALL THISPORT
INSCOMMAND ENABLE
SETIMUORIENTATION 5
ALIGNMENTMODE AUTOMATIC  
VEHICLEBODYROTATION 0 0 0
SERIALCONFIG COM1 9600 N 8 1 N OFF  #与PP6不同
SERIALCONFIG COM2 9600 N 8 1 N OFF  #与PP6不同
INTERFACEMODE COM1 NOVATEL NOVATEL ON
PPSCONTROL ENABLE POSITIVE 1.0 10000
MARKCONTROL MARK1 ENABLE POSITIVE
EVENTINCONTROL MARK1 ENABLE POSITIVE 0 2
interfacemode usb2 rtcmv3 none off
rtksource auto any
psrdiffsource auto any
# SETIMUTOANTOFFSET 0.00 1.10866 1.14165 0.05 0.05 0.08   #前三个是xyz值,后三个是对应的不确定度,需要对应自己的车子实际测量。下面设置没有确认过。(这条可能不要copy)
# SETINSTRANSLATION ANT1 0.00 1.10866 1.14165 0.05 0.05 0.08 # 设置IMU到ANT1的xyz以及不确定度。(两个天线都设置计算更快。) #与pp6不同
# SETINSTRANSLATION ANT2 0.00 1.10866 1.14165 0.05 0.05 0.08 # 设置IMU到ANT2的xyz以及不确定度。(装车时测试时,需要测试这两条语句) #与pp6不同
SETINSOFFSET 0 0 0
EVENTOUTCONTROL MARK2 ENABLE POSITIVE 999999990 10
EVENTOUTCONTROL MARK1 ENABLE POSITIVE 500000000 500000000
LOG COM2 GPRMC ONTIME 1.0 0.25
LOG USB1 GPGGA ONTIME 1.0
log USB1 bestgnssposb ontime 1
log USB1 bestgnssvelb ontime 1
log USB1 bestposb ontime 1
log USB1 INSPVAXB ontime 1
log USB1 INSPVASB ontime 0.01
log USB1 CORRIMUDATASB ontime 0.01
log USB1 RAWIMUSXB onnew 0 0
log USB1 mark1pvab onnew
log USB1 rangeb ontime 1
log USB1 bdsephemerisb
log USB1 gpsephemb
log USB1 gloephemerisb
log USB1 bdsephemerisb ontime 15
log USB1 gpsephemb ontime 15
log USB1 gloephemerisb ontime 15
log USB1 imutoantoffsetsb once
log USB1 vehiclebodyrotationb onchanged
SAVECONFIG

最后设置完毕。

3. 在/dev 下增加了serial、ttyUSB0~2,在你们drivers下conf文件里面提到/dev/novatel0,是因为驱动装的不对么?

答:novatel0是需要99-usbtty.rules,位置在https://github.com/ApolloAuto/apollo/tree/master/docker/setup_host/etc/udev/rules.d,可自行去下载(默认下载到Download,我的百度网盘中也有)。在docker外,执行:

$ sudo cp ~/Downloads/99-usbtty.rules /etc/udev/rules.d/

$ sudo chmod 755 /etc/udev/rules.d/99-usbtty.rules

$ sudo service udev restart

4. linux里面有没有novatel的调试工具?windows有

答:linux下用minicom,具体安装调试按照第二个问题。

5. APollo怎样连接自己准备的基站?

答:首先,你要确认你的novatel PP7是否设置完成;然后。你要确认你的基站是否支持STCM 3/32与NTRIP协议(如果不支持Apollo是无法访问的);接下来,确认你的基站是否可以连接到某个服务器,并且可以通过IP,PORT,mountpoint(基站名称),username,password(我的基站可以连接,所以不可以我也不知道该怎样做,但可以确定,你需要配置一个4G的网关,将你的基站内容发到你的服务器上,具体设置不详,可以与Apollo沟通)。如果可以,那么你需要在apollo/modules/calibration/data/设置你的车型,如果你只是要测试,可以用Apollo自带的车型mkz,在apollo/modules/calibration/data/mkz_example/gnss_conf_mkz.txt中(如果没有这个文件你可能在Apollo2.5 master分支下,在我这个时间点,建议用r2.5.0分支),修改:

rtk_from {

format: RTCM_V3

ntrip {

address: "x.x.x.x"

port: x

mount_point: "x"

user: "x"

password: "x"

timeout_s: x

}

}

将IP,PORT,mountpoint(基站名称),username,password填入你对应的服务器信息。timeout_s,Apollo建议填5。然后在docker中运行:

$ cd /apollo

$ bash apollo.sh build

$ ./scripts/bootstrap.sh

在dreamviewer中右上角选车型,然后gnss_conf_mkz.txt文件就会自动copy到docker内的/home/tmp/ros/share/gnss_driver/conf/gnss_conf_mkz.txt,选定车型后可以用cat检查一下上述车型是否被修改。最后在docker内检查一下log:

$ tail -f data/log/gnss_driver.out

如果base station id有东西,而且solution是NARROW_INT说明基站已经连接。

6. Novatel固件怎样恢复出场设置?或者取消设置?

答:在minicom内输入FRESET,目前取消设置也只能先这样做。

7. COM1,COM2的作用是?USB1的作用是?USB2的作用是?USB3的作用是?

答:USB1对应novatel0,所有数据从novatel给IPC;USB2送基站信息,通过USB2送给novatel;USB3空着的;COM1空着的;COM2将GPRMC的信息(最基本的位置与时间信息)送给工控机,提供给多线lidar。测试USB1时会输出乱码。

8. 在写novatel固件的过程中出现:log USB1 INSPVAXB ontime 1 <ERROR:Maximum number of logs exceeded. No new log added. [USB1],log写满了,怎样处理?

答:进入minicom,先用log loglist查看所有的log,然后用unlog usb_30 xxx逐个删除不用的log,最后SAVECONFIG。

9. 调试基站用哪个软件可以Apollo兼容?

答:用STRSVR软件,亲测可用。下载链接:https://pan.baidu.com/s/1DoEpRBPNxjyfILrf5ekxrA 密码:s99l

设置这个软件时需要注意,如果你的工控机连接的是基站,那么(0) Input选Serial,(1) Output选NTRIP Server。如果你的工控机连接的是车辆测试,那么(0) Input选NTRIP Client,(1) Output选Serial。单独在车上测试基站时,在(0) Input选NTRIP Client,其他不选,否则校验不能通过,会收不到数据。

原文地址:https://www.cnblogs.com/hgl0417/p/9246227.html

时间: 2024-08-29 12:59:36

调试APOLLO GNSS遇到的问题及解决办法的相关文章

JS 调试中常见的报错的解决办法

报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at Function.m.parseJSON (jquery.js:8515) at Object.success (crud.html:45) at j (jquery.js:3143) at Object.fireWith [as resolveWith] (jquery.js:3255) at x (

VS2010 调试C++项目 fatal error LNK1123 错误解决办法

最近用VS2010写C++项目,奇怪的是每次生成解决方案都有一个fatal error LNK1123错误,提示生成失败.查阅资料总结解决方案如下: (1)项目-->属性-->连接器-->清单文件   中生成清单 "是" 修改为 "否"      该方法一般都可以解决问题,但是每次创建项目都要设置一遍. (2)查找是否有两个cvtres.exe  删除较旧版本. 第一个是在你 VS2010安装目录下 如(D:\Program Files\Micro

在WIn32程序中使用MFC的CInternetSession运行异常,主要是因为获取目前应用程序名出错的解决办法

转载:http://group.gimoo.net/review/22564 头文件#include <afxinet.h"> 在非MFC工程中使用CInternetSession抛异常的原因,调试跟踪到说AfxGetAppName为空 解决办法:创建CInternetSession 有参对象 CInternetSession InternetSession(_T("myagent"));

Error 2103 “Unhandled Error in Silverlight Application“ 解决办法

当调试SilverLight项目时,如果出现如下错误: 当调试页面时出现如下错误: 解决办法为:打开工程属性,在Startup object:处选择相应的启动应用程序.

vs调试断点进不去的解决办法

原创文章,禁止转载. 断点进不去的解决办法:  确认是debug版本  确认生成了调试信息  确认在编译和连接的工程配置中指定了相同的匹配的pdb文件名,而不是默认的vc100.pdb等名字(无关)  确认pdb和dll/exe放在了一起(貌似有时候在生成路径中不动也行)  确认dll和pdb是匹配的,同时生成的  清理整个解决方案,重新编译  确认默认工程是exe而不是dll  确认工程目录中不带中文  还是不行?让你的老板找比尔盖茨挖人吧! 原创文章,禁止转载.

vs调试时底部输出调试信息“无法查找或打开 PDB 文件”解决办法

用VS调试程序时,有时会在VS底部的“输出”框中提示“无法查找或打开 PDB 文件”.这该怎么解决呢? 下面,我们以VS2013为例,来教大家解决办法. 工具/原料 VS 方法/步骤 打开VS2013,点击菜单“工具”-“选项”.   在选项窗口中,展开“调试”-“常规”,然后在右边的窗格中勾选“启用源服务器支持”.   然后展开“调试”-“符号”,勾选“Windows符号服务器”.   这时,会弹出一个警告对话框,无视点击“确定”即可.   最后,点击“确定”关闭选项窗口.   下面,我们再来

VS2003"无法启动调试 没有正确安装调试器"的解决办法

VS2003"无法启动调试 没有正确安装调试器"的解决方法 在用VS2003做项目的时候,经常调试程序,但是有时候回出现如下问题"无法启动调试,没有正确安装调试器,请运行安装程序或修复调试器".第一次碰到还以为是运气不好,就重新用vs2003安装程序重新修复了这个工具,可以使用了.但是运行了一段时间又出现了如上这种问题,郁闷了我很久.因为修复一下这个工具要花费很多时间的,于是从网上找了资料,把问题给解决了. 主要原因:大部分问题都是因为,mdm被损坏了导致的. 解决

eclipse调试找不到源解决办法

eclipse调试时有时显示找不到源码,首先得确定代码没问题 这是eclipse没有发现工程源码,解决办法是 右键工程>>Debug As >> Debug configurations 选择添加使用的工程,顺便可以将Default 删除掉 到此就大功告成,重新将项目启动即可

Flash Player调试器版本的解决办法Flash Builder 找不到所需的Adobe

Flash Player调试器版本的解决办法Flash Builder 找不到所需的Adobe Flash Builder在Debug时出现的问题:Flash Builder 找不到所需的Adobe Flash Player调试器版本 解决方法: 1. 进入Flash Builder的安装目录 C:\Program Files\Adobe\Adobe Flash Builder 4.6\player\win\11.1 2. 安装flashplayer_11_plugin_debug.exe,下载