查看原文
其他

技术文档丨循迹搭建--定位模块配置

阿波君 Apollo开发者社区 2022-07-29


该手册旨在帮助用户在自动驾驶开发套件上配置定位模块。在定位模块配置环节,将完成导航设备配置。



  ENJOY THE FOLLOWING  







下面介绍导航配置的方法。当设备正确接入系统后,在/dev/下面有名为ttyACM0的设备,即表示M2已经被正确地加载了。在配置导航设备之前,我们先给导航设备添加一个规则文件。在终端中输入以下命令来查看设备的端口号:


ls -l /sys/class/tty/ttyACM0

<左右滑动以查看完整代码>


记下形如1-10:1.0的一串数字;在系统/etc/udev/rules.d/目录下执行sudo touch 99-kernel-rename-imu.rules命令新建一个文件99-kernel-rename-imu.rules,执行sudo vim 99-kernel-rename-imu.rules命令添加文件内容:ACTION=="add",SUBSYSTEM=="tty",MODE=="0777",KERNELS=="1-10:1.0",SYMLINK+="imu"。


其中的1-10:1.0就是上面记下的一串数字,根据实际情况进行替换即可;然后先按ESC键然后再按:wq保存文件内容退出,并重启系统。重启系统后执行cd /dev命令,用ls -l imu命令查看设备,要确保imu存在。配置设备时,需要将设备的串口线连接上电脑的串口才可以对设备进行配置,也就是说,用来配置设备的电脑主机需要拥有串口。Windows下可以通过串口助手、串口猎人或者COMCenter等工具进行配置,Linux下可以通过Minicom、cutecom等工具进行配置。linux下建议使用cutecom软件,可使用sudo apt install cutecom来安装此软件,在终端中使用sudo cutecom命令打开该软件,在软件中open名为ttyS0的设备。


车尾天线(后天线,通常是主天线,也就是Primary)杆臂配置:


$cmd,set,leverarm,gnss,x_offset,y_offset,z_offset*ff

<左右滑动以查看完整代码>


这里的杆臂值x_offset,y_offset,z_offset就是车辆集成环节中测量所得的杆臂值,杆臂值请以自己使用的实际情况为准。


天线车头车尾前后安装。


$cmd,set,headoffset,0*ff

<左右滑动以查看完整代码>


1$cmd,set,navmode,FineAlign,off*ff
2$cmd,set,navmode,coarsealign,off*ff
3$cmd,set,navmode,dynamicalign,on*ff
4$cmd,set,navmode,gnss,double*ff
5$cmd,set,navmode,carmode,on*ff
6$cmd,set,navmode,zupt,on*ff
7$cmd,set,navmode,firmwareindex,0*ff

<左右滑动以查看完整代码>


1$cmd,output,usb0,rawimub,0.010*ff
2$cmd,output,usb0,inspvab,0.010*ff
3$cmd,through,usb0,bestposb,1.000*ff
4$cmd,through,usb0,rangeb,1.000*ff
5$cmd,through,usb0,gpsephemb,1.000*ff
6$cmd,through,usb0,gloephemerisb,1.000*ff
7$cmd,through,usb0,bdsephemerisb,1.000*ff
8$cmd,through,usb0,headingb,1.000*ff

<左右滑动以查看完整代码>


1$cmd,set,localip,192,168,0,123*ff
2$cmd,set,localmask,255,255,255,0*ff
3$cmd,set,localgate,192,168,0,1*ff
4$cmd,set,netipport,111,112,113,114,8000*ff
5$cmd,set,netuser,username:password*ff
6$cmd,set,mountpoint,XMJL*ff

<左右滑动以查看完整代码>


假如您通过自建RTK基站或者购买RTK基站服务的方式拥有了一个RTK基站账号,账号信息如下:


1ip:203.107.45.154
2port:8002
3mount_point:RTCM32_GGB
4user:qianxun1234
5password:abc123

<左右滑动以查看完整代码>


这里我们假设您所使用的无线路由器的IP地址为192.168.0.1,那么我们将M2主机的IP地址设置为192.168.0.123,子网掩码为255.255.255.0,网关为192.168.0.1。netipport设置的是RTK基站的IP地址和端口号,具体到上面您购买的RTK基站账号中,在此处IP地址为:203.107.45.154,端口号为:8002;netuser设置的是RTK基站的用户名和密码,在此处用户名为:qianxun1234,密码为:abc123;在实际配置中,请以自己实际购买的基站账号的用户名和密码为准。mountpoint是RTK基站的挂载点,在这里我们选用RTCM32_GGB。注意:在M2的网络模块配置完成后,在IPC主机中应该是可以ping通IMU的ip地址的;否则,IMU无法正常联网,在后续的GNSS信号检查中会一直显示SINGLE而不是我们期望的NARROW_INT。


注意:当您升级了IMU的固件版本时,请用以下命令来查看IMU的网络相关的配置:


$cmd,get,netpara*ff

<左右滑动以查看完整代码>


若输出的内容有

$cmd,set,ntrip,disable,disable*ff相关的字样,则将以下命令输入IMU:


1$cmd,set,ntrip,enable,enable*ff
2$cmd,save,config*ff

<左右滑动以查看完整代码>


1ppscontrol enable positive 1.0 10000
2log com3 gprmc ontime 1 0.25

<左右滑动以查看完整代码>


将所有配置逐条发送给设备,得到设备返回$cmd,config,ok*ff字段,说明配置成功,配置成功后要进行配置保存,发送$cmd,save,config*ff指令;也可以将以上的相关配置命令保存在/apollo/docs/D-kit/sample/imu.conf文件中,然后在cutecom中点击右边的Send file...按钮,在弹出的对话框中选择imu.conf文件后点击Open按钮后即可将文件中保存的配置命令全部发送给设备,一切正常的情况下,设备会返回25个$cmd,config,ok*ff字段,说明配置成功;切记在发送文件之前将自己的实际信息保存在文件中,比如杆臂值和GNSS的账号信息等。配置成功后将该设备断电后重新上电加载后即可使用。注意:PPS授时接口输出的两条配置命令是没有返回$cmd,config,ok*ff字段的,这是正常情况,不用担心。




系统文件配置主要包括两部分,GNSS配置、localization.conf文件配置。


将文档

modules/calibration/data/dev_kit/gnss_conf/gnss_conf.pb.txt中的proj4_text: "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"这一行中的zone=50中的50换成自己的城市所在的utmzone数值;比如这里的数值50代表的是北京,若您在纽约,则用纽约的utmzone数值10替换掉这里的数值50,以此类推。


对modules/calibration/data/dev_kit/localization_conf/localization.conf文件进行配置。如果该配置文件没有进行正确配置,可能会对之后的传感器标定、虚拟车道线制作等功能产生影响。


参数说明
lidar_height_default参数值修改为lidar中心到地面的距离单位m
local_utm_zone_id需要用户查询所在地区的utm_zone,并进行修改。例如,北京地区utm_zone为50。utm_zone的查询可参考该网页
imu_to_ant_offset_xx轴方向杆臂值,单位m,杆臂值测量方法参看循迹搭建--车辆集成文档
imu_to_ant_offset_yy轴方向杆臂值,单位m,杆臂值测量方法参看循迹搭建--车辆集成文档
imu_to_ant_offset_zz轴方向杆臂值,单位m,杆臂值测量方法参看循迹搭建--车辆集成文档
--enable_lidar_localization=true修改为--enable_lidar_localization=false




将车辆移至室外平坦开阔处,按顺序执行如下操作:


1. 编译项目,启动Dreamview


进入docker环境,用gpu编译项目,启动DreamView。


1cd /apollo
2bash docker/scripts/dev_start.sh
3bash docker/scripts/dev_into.sh
4bash apollo.sh build_opt   
5bash scripts/bootstrap.sh

<左右滑动以查看完整代码>


2. 启动定位模块


  • 在浏览器中打开(http://localhost:8888),选择模式为Dev Kit Debug, 选择车型为Dev Kit,在Module Controller标签页启动GPS、Localization模块。



3. 检查GPS信号


打开新的终端,并使用bash docker/scripts/dev_into.sh命令进入docker环境,在新终端中输入cyber_monitor命令,进入 /apollo/sensor/gnss/best_pose条目下,查看sol_type字段是否为NARROW_INT。若为NARROW_INT,则表示GPS信号良好;若不为NARROW_INT,则将车辆移动一下,直到出现NARROW_INT为止。进入/apollo/sensor/gnss/imu条目下,确认IMU有数据刷新即表明GPS模块配置成功。



4. 检查定位信号


使用cyber_monotor查看,进入/apollo/localization/pose条目下,等待两分钟,直到有数据刷新即表明定位模块配置成功。





现在,您已经完成定位模块配置,接下来可以开始《循迹搭建--车辆动力学云标定》




a.系统无法生成驱动设备ttyACM0,在/apollo/data/log/gnss.INFO里面会有类似报错提示:


1open device /dev/ttyACM0 failed, error: no such file or directory
2gnss driver connect failed, stream init failed

<左右滑动以查看完整代码>


docker内和docker外的/dev/下都没有ttyACM0设备,先退出docker,然后关闭docker,再执行如下命令:


1cd /apollo/docker/setup_host
2bash setup_host.sh

<左右滑动以查看完整代码>


重启工控机,然后在/docker/外,/dev/下,就有ttyACM0,再进docker,再试gps,可以了。


b.GPS打开后,发现best_pose, imu, localization/pose 信号没有收到。


运行bash gps.sh后,可以cyber_monitor中观察以下几个信号。(关于cyber_monitor更详细使用,请参考《CyberRT_Developer_Tools》(链接见文末)


1/apollo/sensor/gnss/best_pose
2/apollo/sensor/gnss/imu
3/apollo/localization/pose

<左右滑动以查看完整代码>


如果best_pose和imu没有,请检查gps和imu的配置。如果best_pose和imu有了,但是localization/pose没有信号,请等待2分钟,如果还是没有,请让车开动几分钟。


c.GPS打开后,发现best_pose的sol_type为single,不是我们需要的NARROW_INT。


首先,确认IMU设备中已经配置好了基站信息。


其次,检查IMU的网络接口是否插好了网线连接上了路由器,并且可以在工控机的终端里ping通IMU,同时保证路由器里面插上了手机的sim卡并且工控机能通过路由器正常地访问互联网。


再次,联系商务的同事请他们提供刷新IMU的固件版本的教程和工具,刷新完IMU后请按照文档重新配置一遍IMU。


最后,联系商务的同事商讨将IMU返厂维修的事宜。




*《CyberRT_Developer_Tools》

https://gitee.com/ApolloAuto/apollo/blob/master/docs/cyber/CyberRT_Developer_Tools.md


以上是“循迹搭建--定位模块配置”的全部内容,更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。







更多关于开发套件的参数信息

请点击下方文章链接查看


《更低成本,更多功能!Apollo D-KIT 4.0来啦!》



长按识别下方二维码

登记购买套件





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存