提交 3577ad4b 编写于 作者: L lishuanghua 提交者: Xiangquan Xiao

Add md files to dev_kit

上级 80a370a8
......@@ -250,7 +250,7 @@ cd can-utils/
![图片](https://agroup-bos.cdn.bcebos.com/0d1f81329fa9f84ad143af20166b8adf38c95d91)
则表示Can驱动安装成功。
d.注意事项:
在后续启动apollo的canbus模块时,需要先在doc外运行start.sh脚本。
在后续启动apollo的canbus模块时,需要先在docker外运行start.sh脚本。
### 安装Docker
......
定位模块配置
===================
## 目录
- [概览](#概览)
- [导航设备配置](#导航设备配置)
- [系统文件配置](#系统文件配置)
## 概览
该手册旨在帮助用户在自动驾驶开发套件上配置定位模块。在定位模块配置环节,将完成导航设备配置。
## 导航设备配置
下面介绍了导航配置的方法。当设备正确接入系统后,在/dev/下面有名为ttyACM0的设备,即表示M2已经被正确的加载了。配置设备时,需要将设备的串口线连接上电脑的串口才可以对设备进行配置,也就是说,用来配置设备的电脑主机需要拥有串口。Windows下可以通过串口助手、串口猎人或者COMCenter等工具进行配置,Linux下可以通过Minicom、cutecom等工具进行配置。linux下建议使用cutecom软件,可使用`sudo apt-get install cutecom`来安装此软件,在终端中使用`sudo cutecom`命令打开该软件,在软件中`open`名为`ttyS0`的设备。
### 杆臂配置
车尾天线(后天线,通常是主天线,也就是Primary)杆臂配置:
`$cmd,set,leverarm,gnss,x_offset,y_offset,z_offset*ff`
这里的杆臂值就是车辆集成环节中测量所得的杆臂值,杆臂值请以自己使用的实际情况为准。
### GNSS航向配置
天线车头车尾前后安装
`$cmd,set,headoffset,0*ff`
### 导航模式配置
```
$cmd,set,navmode,FineAlign,off*ff
$cmd,set,navmode,coarsealign,off*ff
$cmd,set,navmode,dynamicalign,on*ff
$cmd,set,navmode,gnss,double*ff
$cmd,set,navmode,carmode,on*ff
$cmd,set,navmode,zupt,on*ff
$cmd,set,navmode,firmwareindex,0*ff
```
### USB接口输出设置
```
$cmd,output,usb0,rawimub,0.010*ff
$cmd,output,usb0,inspvab,0.010*ff
$cmd,through,usb0,bestposb,1.000*ff
$cmd,through,usb0,rangeb,1.000*ff
$cmd,through,usb0,gpsephemb,1.000*ff
$cmd,through,usb0,gloephemerisb,1.000*ff
$cmd,through,usb0,bdsephemerisb,1.000*ff
$cmd,through,usb0,headingb,1.000*ff
```
### 网口配置
```
$cmd,set,localip,192,168,0,123*ff
$cmd,set,localmask,255,255,255,0*ff
$cmd,set,localgate,192,168,0,1*ff
$cmd,set,netipport,111,112,113,114,8000*ff
$cmd,set,netuser,username:password*ff
$cmd,set,mountpoint,XMJL*ff
```
这里我们假设您所使用的无线路由器的IP地址为192.168.0.1,那么我们将M2主机的IP地址设置为192.168.0.123,子网掩码为255.255.255.0,网关为192.168.0.1,netipport设置的是RTK基站的IP地址和端口,netuser设置的是RTK基站的用户名和密码,mountpoint是RTK基站的挂载点。网络配置请依据自己所使用的路由器的实际情况自行更改为相应的配置,RTK基站信息请以自己的实际情况为准。注意:在M2的网络模块配置完成后,在IPC主机中应该是可以ping通IMU的ip地址的;否则,IMU无法正常联网,在后续的GNSS信号检查中会一直显示SINGLE而不是我们期望的NARROW_INT。
### PPS授时接口输出
```
ppscontrol enable positive 1.0 10000
log com3 gprmc ontime 1 0.25
```
将所有配置逐条发送给设备,得到设备返回`$cmd,config,ok*ff`字段,说明配置成功,配置成功后要进行配置保存,发送`$cmd,save,config*ff`指令,然后将该设备断电后重新上电加载后即可使用。注意:PPS授时接口输出的两条配置命令是没有返回`$cmd,config,ok*ff`字段的,这是正常情况,不用担心。
## 系统文件配置
系统文件配置主要包括三个部分,GNSS配置、关闭点云定位和定位模式配置。
### GNSS配置
修改`/apollo/modules/calibration/data/dev_kit/gnss_conf`文件夹下面的配置文件`gnss_conf.pb.txt`,修改如下内容配置基站信息:
```
rtk_from {
format: RTCM_V3
ntrip {
address: "<IP>"
port: <PORT>
mount_point: "<MOUNTPOINT>"
user: "<USER>"
password: "<PASSWORD>"
timeout_s: 5
}
push_location: true
}
```
这是RTK基站信息相关的配置,请依据自己的实际情况进行配置。注意:RTK基站信息需要同时配置在M2的IMU主机中和apollo的开发套件的`gnss_conf.pb.txt`配置文件中。
### 检查GPS信号
将车辆移至室外平坦开阔处,进入Apollo系统,在终端中执行gps.sh脚本打开gps模块。输入命令`cyber_monitor`,进入 `/apollo/sensor/gnss/best_pose`条目下,查看sol_type字段是否为NARROW_INT。若为NARROW_INT,则表示GPS信号良好;若不为NARROW_INT,则将车辆移动一下,直到出现NARROW_INT为止。进入`/apollo/sensor/gnss/imu`条目下,确认IMU有数据刷新即表明GPS模块配置成功。
### 关闭点云定位
`apollo/modules/localization/conf/localization.conf`文件中将:`--enable_lidar_localization=true`修改为:`--enable_lidar_localization=false`
### 定位模式配置
`apollo/modules/localization/conf/localization_config.pb.txt`文件中这个配置应为`localization_type:MSF`,M2不支持`RTK`模式。
`apollo/modules/localization/launch/localization.launch`文件中的`dag_streaming_rtk_localization.dag`修改为`dag_streaming_msf_localization.dag`
### 常见问题
系统无法生成驱动设备`ttyACM0`,在`/apollo/data/log/gnss.INFO`里面会有类似报错提示:
```
open device /dev/ttyACM0 failed, error: no such file or directory
gnss driver connect failed, stream init failed
```
docker内和docker外的/dev/下都没有`ttyACM0`设备,先退出docker,然后关闭docker,再执行如下命令:
```
cd /apollo/docker/setup_host
bash setup_host.sh
```
重启工控机,然后在/docker/外,/dev/下,就有`ttyACM0`,再进docker,再试gps,可以了。
### 检查定位信号
将车辆移至室外平坦开阔处,进入Apollo系统,在终端中执行gps.sh和localization.sh脚本打开gps模块和localization模块。确认GPS模块已成功启动并且GPS信号良好。输入命令`cyber_monotor`,进入`/apollo/localization/pose`条目下,等待两分钟,直到有数据刷新即表明定位模块配置成功。
车辆动力学标定
===================
## 目录
- [概览](#概览)
- [油门刹车标定](#油门刹车标定)
- [标定原理介绍](#标定原理介绍)
- [标定流程说明](#标定流程说明)
## 概览
该用户手册旨在帮助用户在开发套件上进行动力学标定。
## 油门刹车标定
油门刹车标定是车辆纵向精准控制的前提。用户可以使用系统预先标定好的参数,也可以按照手册说明重新进行标定。
注意:完成本标定后,才可以启动循迹!
### 标定原理介绍
在Apollo系统中,控制模块会请求加速度量值。通过车辆标定表,控制模块便能找到准确产生所需加速度量值对应的油门、刹车踏板开合度控制命令,之后下发给车辆底盘。车辆标定表提供一个描述车辆速度、油门/刹车踏板开合度、加速度量之间关系的映射表。油门刹车标定过程便是生成车辆标定表的过程。
Apollo系统为开发套件提供了一份默认的标定表。如用户期望自己重新标定车辆,可以参考以下车辆标定流程说明。
### 标定流程说明
按如下顺序完成准备工作:
- 改变驾驶模式
- 选择测试地点
#### 改变驾驶模式
`modules/canbus/conf/canbus_conf.pb.txt`中,设置驾驶模式为 `AUTO_SPEED_ONLY`
#### 选择测试地点
理想的测试地点是平坦的长直路,且两边没有高大的建筑物遮挡。
以上准备工作完成后, 在`modules/tools/calibration`中按顺序完成如下工作:
- 采集数据
- 处理数据
- 绘制结果
- 转换结果为`Protobuf`格式
![标定流程](../images/calibration_process_map.png)
#### 采集数据
1. 在采集数据之前,请先进入docker在终端中打开canbus模块,gps模块和localization模块,命令如下:
```
bash /scripts/canbus.sh
bash /scripts/gps.sh
bash /scripts/localization.sh
```
在依次输入完以上三个命令后,可用遥控器开着车走一小段距离,过两分钟之后,在diagnostic中可以看到以上三者都有信号时,便可以进行下面的操作了。
2. 运行 modules/tools/calibration/ 下的 `python data_collector.py`, 之后输入参数x y z, x 代表加速踏板开合度(百分比正值), y 代表了速度限值(米/秒), z 代表刹车踏板开合度(百分比负值)。输入参数后,车辆即开始以x加速踏板值加速至y速度限值,之后再以z刹车踏板值减速直至车辆停止。
3. 产生对应x y z 参数的csv文件。 比如输出指令 `15 5.2 -10`,将会生成名为`t15b-10r0_recorded.csv`的文件。
4. 根据车辆反应情况选取合适的x y z 参数,如加速踏板过小不能启动或者刹车踏板过小不能停车,需要相应调整命令参数。
![CSV文件样例图](../images/calibration_excel.png)
x y z取值建议:
x: 过低可能无法启动,通常20以上。通过实验,获取能启动车辆的最小值供后续设置使用。最大取值取决于应用场景要求。在小加速踏板区间建议取值间隔粒度小,以获取更丰富数据。
y: 单位米/秒,根据车型和实际应用场景确定​。
z: 刹车踏板,-35已经是急刹车。通过实验,获取能制动车辆的最小值供后续设置使用。取值范围取决于应用场景要求,同时,建议采集急刹车数据。在小减速踏板区间建议取值间隔粒度小,以获取更丰富数据。
x y z参数组合取值建议:
一般先固定加速踏板命令 x ,之后再选择该加速踏板命令所能达到的最大速度或车型限速,最后尝试采集能让车辆停下来的最小减速命令z:
(21 5 -8)
之后再逐一更改加速踏板命令 x ,直到期望采集的 x 取值都已经覆盖​
(22 5.3 -8) (23 5.4 -9) (24 5.6 -9)(25 5.6 -9)​
(26 5.6 -9) (27 5.7 -10) (28 5.7 -10)(29 5.8 -10)
(30 5.8 -10)(33 5.9 -10)(38 6.1 -12)(43 6.1 -12)
之后再看期望采集的减速指令 z 取值是否都已经覆盖,如未覆盖再增加测试组合丰富 z 取值,对应 y 取值要尝试能让车辆停下来的最大速度(38 6 -11)。
#### 处理数据
运行`process_data.sh {dir}`,其中dir为类似`t15b-10r0_recorded.csv`文件所在的目录。每个数据日志被处理成类似`t15b-10r0_recorded.csv.result`的文件。同时,会生成一个名为result.csv的文件。
#### 绘制结果
运行`python plot_results.py {dir}/result.csv`, 其中dir为result.csv所在目录,得到可视化最终结果,检查是否有异常,示例如下:
![标定可视化示例](../images/calibration_plot.png)
#### 转换结果为`Protobuf`格式
如果一切正常,运行`result2pb.sh {dir}/result.csv`, 其中dir为result.csv所在目录,把校准结果result.csv转换成控制模块定义的`Protobuf`格式。运行命令后生成control_conf_pb.txt文件。该文件里面的lon_controller_conf字段下面的calibration_table段落是我们需要的,我们将该calibration_table段替换放到文件/modules/calibration/data/dev_kit/control_conf.pb.txt下对应的lon_controller_conf字段下面的calibration_table段。
最后,把前面实验获取的启动车辆的最小 x 值和能制动车辆的最小 z 值替换 /modules/calibration/data/dev_kit/vehicle_param.pb.txt 文件里的throttle_deadzone、brake_deadzone 字段。
注:Calibration_table 片段示例
calibration_table {
calibration {
speed: 0.0
acceleration: -1.43
command: -35.0
}
calibration {
speed: 0.0
acceleration: -1.28
command: -27.0
}
calibration {
speed: 0.0
acceleration: -1.17
command: -25.0
}
calibration {
speed: 0.0
acceleration: -1.02
command: -30.0
}
}
车辆集成
===================
## 目录
- [概览](#概览)
- [工控机安装](#工控机安装)
- [导航设备安装](#导航设备安装)
## 概览
该手册旨在帮助用户在自动驾驶开发套件上安装和配置IPC和GPS导航等相关设备。
## 工控机安装
工控机的安装包括工控机主机的安装、显示器的安装、CAN线的安装、路由器的安装和无线键盘的安装,分别介绍如下:
- 将工控机主机安装在小车的底板的中心位置,使其与小车的底板固连,将工控机的主板接口朝向小车的尾部以便于我们连接显示器等其它设备。工控机的电源接口接小车上的24V的直流电源。
- 将显示器安装在小车的车架预留的安装位置并用卡扣将显示器固定好。用HDMI数据线将显示器和工控机的显卡连接起来。显示器的电源线接小车上的12V的直流电源。
- 将CAN线的一端接在工控机的CAN卡的上面一个接口上,为防脱落,请拧紧螺丝固定好CAN线,将CAN线的另一端和小车的车身CAN线连接在一起。
- 将路由器安装固定在小车的底板上,可用强力双面胶粘住以防脱落。路由器的电源接口接小车上的12V的直流电源。路由器的sim卡插口插入我们平时使用的手机sim卡即可。注意sim卡插入时可能需要卡托,请选用尺寸大小合适的卡托将sim卡插入插口并注意正反面不要插反。用网线将路由器的LAN口和工控机的网口连接起来,以使路由器可以给工控机提供网路服务。
- 将无线键盘的信号接收器插入工控机的USB接口上,装入电池并打开无线键盘的开关。
## 导航设备安装
星网宇达Newton-M2是一款支持静态双天线初始化的GPS导航设备,其在Apollo系统中的安装配置主要包括硬件设置和软件配置两个部分,下面介绍硬件设置部分:
### 安装主机和天线
本安装指南描述了挂载、连接和为主机与天线量取和设置杆臂值尺寸的步骤:
#### 安装需要的组件
- Newton-M2主机(1个)
![M2_host](../images/gps_host.png)
- 卫星天线(2个):测量型卫星天线,信号接口为TNC母口
![M2_antenna](../images/gps_antenna.png)
- 射频连接线(2根):射频线两端分别为TNC公头和SMA母头
![M2_cable](../images/gps_cable.png)
- 数据/电源线缆(1根):一端是和主机相连的接口,另一端含有一个串口母头,一根RJ-45网线母头,一根电源接口和一个USB接口
#### 挂载
使用者可以将主机安装在载体上的任何位置,但我们强烈建议使用者采用下述的建议方案:
- 将M2主机安装在小车的后轴的中心位置上,使主机铭牌上标示的坐标系XOY面尽量与载体坐标系平行并保持各轴向一致,将Y轴的正向保持与载体的前进方向一致,M2主机单元必须与被测载体固连,可用强力双面胶进行粘贴。
- GNSS双天线应尽量与载体坐标系Y轴平行并且前天线(Secondary)应在Y轴正方向上,GNSS天线要尽可能的将其安置于测试载体的最高处以保证能够接收到良好的GNSS信号。将天线分别安装在小车的车架头尾预留的小圆片上。
#### 配线
执行如下步骤将主机和天线连接到Apollo系统:
- 将两根射频线的TNC公头连接上卫星天线的TNC母口。
![IMU_ANTE](../images/imu_ante.png)
- 将射频线的SMA母口连接上IMU主机的SMA公口,车尾天线为主天线,将其连接在IMU的Primary接口上。
![IMU_TNC](../images/imu_tnc.png)
- 将数据/电源线缆的公口和IMU主机的母口连接。
![IMU_POWER_DATA](../images/imu_power_data.png)
- 将数据/电源线缆的串口母头连接上工控机的串口公口COM1,此线若过短,请使用串口延长线。注意:此线在完全配置完IMU之后就不需要再连接在IPC上了。
![IMU_COM](../images/imu_com.png)
- 将数据/电源线缆的网线母头和路由器LAN口接出来的有线网的水晶头相连接。
![IMU_ETHERNET](../images/imu_ethernet.png)
- 将数据/电源线缆的USB接口连接上IPC的USB接口。
![IMU_USB](../images/imu_usb.png)
- 将数据/电源线缆的电源线接口和小车的12V电源接口连接起来。
#### 量取杆臂值
在后面配置IMU的参数时,我们会用到主天线的杆臂值,这里我们先量取并记录下它留作后用。杆臂值的量取参考下述步骤:
- 当主机和天线处在正确位置时量取天线到主机的距离。主机的中点和天线的中点标记在设备的外部。
- 距离被测量并记录为X轴偏移、Y轴偏移和Z轴偏移。坐标轴由主机的位置确定。偏移量的误差应该被控制在一厘米以内以获取高精度的定位信息。杆臂是指后天线(Primary)的几何中心位置相对于主机几何中心在直角坐标系内x,y,z三方向的位置差。通过如下指令进行补偿设置:`$cmd,set,leverarm,gnss,x_offset,y_offset,z_offset*ff`。x_offset:X方向的杆臂误差,单位为米,以此类推。注:上述坐标XYZ为设备坐标轴配置后的实际坐标,一般应与载体坐标系一致,注意补偿的是后天线(Primary)杆臂值。当进行导航模式配置后必须对设备进行重新上电启动。举例如下:
![图片](../images/gps_vehicle_map.jpeg)
如上图所示:后天线在M2主机X轴的正向0.2m处,则X轴偏移x_offset的值为0.2;后天线在M2主机Y轴的负向0.1m处,则Y轴偏移y_offset的值为-0.1;后天线在M2主机Z轴的正向0.8m处,则Z轴偏移z_offset的值为0.8,则杆臂值为(0.2,-0.1,0.8)。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册