commit eed0079fc8844ed02fc16d5b03a24650e888a48a Author: bmy <2583236812@qq.com> Date: Fri Aug 23 15:10:33 2024 +0800 initial commit diff --git a/东北大学秦皇岛分校_白塔岭143队_百度智慧交通.md b/东北大学秦皇岛分校_白塔岭143队_百度智慧交通.md new file mode 100644 index 0000000..b33a696 --- /dev/null +++ b/东北大学秦皇岛分校_白塔岭143队_百度智慧交通.md @@ -0,0 +1,30 @@ +# 百度智慧交通组技术报告 + +## 概述 + +在本次比赛中,主要任务仍可归纳为“循线 + 定点任务”相结合的方式,大体上和往年相似。主要难度在于循线过程中存在直角弯、三岔路口、十字路口等特殊元素,并且任务点附近没有地标作为任务定位标识,同时任务动作对定位准确性要求较高。 + +出于节省学校经费的考虑,我们没有选择直接购买官方车模,而是仅购买了指定的电机,单独购置了符合要求的上位机板卡,自制了车模结构和控制电路部分。 + +## 下位机设计 + +### 自定义通信协议 +由于购买的 Nvidia 官方以及仿制官方的 Jetson Orin Nano 载板(以下简称 “nano”)并没有直接引出 CAN 接口,并且对于 Linux 下 CAN 设备的调试开发也缺乏经验,所以选择了使用 nano 的 40pin 拓展接口中的串口设备与下位机主控板进行通信,对于其他模块的指令在下位机主控接收后转换成对应的 can 数据帧下发给其他模块,通信结构如下图所示。 + +![控制器架构](控制器架构.drawio.png) + +在 nano 下发的指令中,需要控制车辆运动和执行机构动作,由于存在一些对参数“增量”修改的命令(如前进指定距离),为了避免因为通信出错导致类似指令漏发、多发,所以在通信机制中实现了校验和应答的机制。实现的自定义指令为定长帧,帧格式如下所示。 + +``` +| 帧头 (1 byte) | 指令码 (1 byte) | 数据段 (8 byte) | CRC 校验值 (2 byte) | +| ------------ | -------------- | -------------- | ------------------ | +| 0xEB | 0x30 - 0x6F | 0x00 - 0xFF | 0x00 - 0xFF | +``` + +### 下位机主控设计 + +下位机主控采用了 AT32F403A 芯片作为主控,使用 配套的 AT32-WorkBench 工具能够非常快速的生成工程,加快开发速度。在功能上,下位机主控主要作为 nano 板卡和其他控制器模块的通信中继(将串口指令转发到 can 总线),并且还具备数字量输出(灯条和蜂鸣器控制)和电源分配功能。 + +## 结构设计 + +## 上位机程序设计 \ No newline at end of file diff --git a/控制器架构.drawio.png b/控制器架构.drawio.png new file mode 100644 index 0000000..e2a7ed5 Binary files /dev/null and b/控制器架构.drawio.png differ