- [2023guangshe](#2023guangshe)
- [T 核心文件说明](#t-核心文件说明)
- [T.0 raspberry/main\_program](#t0-raspberrymain_program)
- [T.0.0 model](#t00-model)
- [T.0.1 YYJ](#t01-yyj)
- [T.0.2 move.py](#t02-movepy)
- [T.0.3 test\_in\_main.py, test\_print\_elder.py](#t03-test_in_mainpy-test_print_elderpy)
- [T.0.4 util](#t04-util)
- [T.0.4.0 servo.py](#t040-servopy)
- [T.0.4.1 mine\_classify.py](#t041-mine_classifypy)
- [T.0.4.2 LCD\_2inch4.py](#t042-lcd_2inch4py)
- [T.0.4.3 get\_map.py](#t043-get_mappy)
- [T.0.4.4 map\_rec.py, get\_pathx(x是1到4)](#t044-map_recpy-get_pathxx是1到4)
- [T.0.4.5 其他文件](#t045-其他文件)
- [T.0.5 stm32](#t05-stm32)
- [T.0.5.0 main\_new](#t050-main_new)
- [T.0.5.1 main\_RET6](#t051-main_ret6)
- [个人的比赛思路分享](#个人的比赛思路分享)
- [0. 非全向移动车模](#0-非全向移动车模)
- [1. 全向移动车模](#1-全向移动车模)
- [0.区赛总体流程汇总](#0区赛总体流程汇总)
- [0.0 出发前](#00-出发前)
- [0.0.0 选择队伍](#000-选择队伍)
- [0.0.1 地图识别](#001-地图识别)
- [0.0.1.0 成功识别地图](#0010-成功识别地图)
- [0.0.1.1 显示倒计时](#0011-显示倒计时)
- [0.0.1.2 路径规划](#0012-路径规划)
- [0.0.1.3 保存地图坐标点(用于打断后继续寻宝)](#0013-保存地图坐标点用于打断后继续寻宝)
- [0.0.1 出发前校准](#001-出发前校准)
- [0.0.2 按键按下出发](#002-按键按下出发)
- [0.1 出发后](#01-出发后)
- [0.2](#02)
- [X. 测试汇总记录](#x-测试汇总记录)
- [X.1 整体流程](#x1-整体流程)
- [X.2 需要解决的问题](#x2-需要解决的问题)
- [X.3 bug汇总](#x3-bug汇总)
- [X.3.1 csi摄像头bug](#x31-csi摄像头bug)
- [X.3.3 USB摄像头宝藏分类bug](#x33-usb摄像头宝藏分类bug)
- [X.3.3 PID巡线容易在转弯后异常break](#x33-pid巡线容易在转弯后异常break)
- [X.3.4 车子在开始进入宝藏区可能会偏离曲线](#x34-车子在开始进入宝藏区可能会偏离曲线)
# 2023guangshe
# T 核心文件说明
## T.0 raspberry/main_program
树莓派的主要代码,包括了地图识别,路径规划,巡线等<br>
### T.0.0 model
放paddle模型的
### T.0.1 YYJ
比较久之前做的python树莓派整合库,有些简单的视觉部分
### T.0.2 move.py
移动控制的python库、主要是串口发送数据到下位机
### T.0.3 test_in_main.py, test_print_elder.py
使用的主函数,后面的是使用print看路径模拟测试使用的。
### T.0.4 util
#### T.0.4.0 servo.py
使用子线程树莓派控制舵机云台
#### T.0.4.1 mine_classify.py
宝藏分类,具体使用了paddle的分类模型。里面有历程。实测**1m可以做到准确分类**
#### T.0.4.2 LCD_2inch4.py
LCD 屏幕显示图片库(保证可以直接小车看得到摄像头反馈,方便**独立**地图识别)
#### T.0.4.3 get_map.py
宝藏识别,做了归一化处理,实测1比10极限长宽拉伸仍然可以识别。<br>
四角定位裁剪后矫正,得到二值化的一个地图(这个后面**路径规划需要使用**,可做**随机地图路径规划**)<br>
#### T.0.4.4 map_rec.py, get_pathx(x是1到4)
前面提到转换后的二值化图像,使用map_rec转换成21乘以21的矩阵提高路劲规划运行速度<br>
归一化之后可以进行路径规划 返回固定格式的移动代码。<br>
ps: 这里一大堆get_path是临近比赛临时很多需求,具体的底层是一样的<br>
由于进行了归一化,**随机地图也能识别和规划路径**(地图大小和生成规则不变的前提下,10 乘以10个格子)。<br>
大概的思路就是把地图当成一个10乘以10的大方块,里面有n多个小方块。由于四角定位剪切完后归一化除以一个10,逐行逐列取中点进行“扫描”黑线 最后把这些有无黑线的信息拼起来就是一个完整的地图了。<br>
#### T.0.4.5 其他文件
都是一些显示相关的,不是核心部分。
## T.0.5 stm32
### T.0.5.0 main_new
最开始的三轮小车驱动板工程。使用的MCU为**stm32f103C8T6**<br>
包括的功能有。PWM控制电机、串口与上位机通信、mpu6050硬件读取、角度积分旋转、OLED显示
### T.0.5.1 main_RET6
四麦轮控制驱动板工程,使用的MCU为**stm32f103RCT6**<br>
包括的功能有但不限于:<br>
PWM控制电机<br>
串口与上位机通信<br>
mpu6050硬件读取、<br>
角度计算(**位置PID角度环**、仅GZ累加)<br>
20路GPIO输入<br>
四路编码器脉冲计数配置<br>
中断读取脉冲数计算速度(**增量PID速度环**)<br>
编码器解算**移动距离**<br>
互补滤波解算移动距离(MPU6050、可调)<br>
增量式PID距离环(可调)<br>
ps:由于后期开发时间紧急,代码有些混乱,见谅
# 个人的比赛思路分享
## 0. 非全向移动车模
非全项移动车模相对较为简单开发,本人认为几个可以优化的点:<br>
①转弯的速度(使用陀螺仪简单积分一下就行)<br>
③碰撞宝藏后的回头,如果实测车模较重不会因为倒下的宝藏影响太大车身的位置直接撞完使用陀螺仪闭环掉头即可<br>
④识别**不需要走到跟前**。本开源项目实测树莓派paddle分类模型(背景简单,直接分类 爆塞数据),仅仅8w张图片就可以做到1m还能稳定分类(达到了三个格子摆放的距离了)
## 1. 全向移动车模
平移确实相对比较难做,但是理论上线极高,本人认为几个可以优化的点:<br>
①**使用云台**就可以做到看四个方向的宝藏,好好利用不需要旋转的天然优势,全称都不进行旋转<br>
②通过编码器加速度计混合外部输入(例如灰度)达到又快又稳定判断路口。(具体可以看看智能车视觉组)<br>
在这种情况下就不需要逐个路口(平移有很多路口也只看了最后的那一个)判断,只需要给出所需要的距离 到达距离附近阈值使用外部中断查看是否到达预计位置。<br>
# 0.区赛总体流程汇总
## 0.0 出发前
### 0.0.0 选择队伍
根据群里说的和之前提问之类的,应该是在识别地图前知道了<b>队伍</b><br>
此时考虑程序开始前一直<b>“死循环</b> 直到知道了队伍后按键进行选择(依然保持 按一下不动等一段时间是A队伍,按下之后再按一下就是B队伍的逻辑)
### 0.0.1 地图识别
根据细则已经群里的反馈,大概率是这时候开始就不允许再物理按键输入之类的操作了<br>
所以需要选择队伍之后摄像头一直读取,读取到对的要有LCD显示反馈<br>
(这里由于显示文字没弄并且还需要字体库很麻烦,直接平板写字截屏,显示对应的文字图片)
#### 0.0.1.0 成功识别地图
显示识别后的地图并且显示一张文字图片<b>【识别成功】</b>
#### 0.0.1.1 显示倒计时
这个阶段主要用于将小车放到出发点,用于矫正陀螺仪已经整体初始化之类的操作<br>
显示的时间倒是具体定,以time.sleep(1)的频率显示 倒计时图片
#### 0.0.1.2 路径规划
识别完成地图需要完成路径规划,规划前显示一个<b>【路径规划中】</b><br>
规划完成后显示<b>【路径规划完成】</b>
#### 0.0.1.3 保存地图坐标点(用于打断后继续寻宝)
保存到一个同目录(或者某个路径)一个txt,以备需要使用中断后重新开始寻宝<br>(不去已经找过的点了)
### 0.0.1 出发前校准
此时已经完成了地图识别,路径规划,需要进行一些校准操作<br>
比如mpu6050,编码器(需要考虑红色蓝色出发点会不会导致灰度“误识别”)<br>
此时LCD显示校准中,校准完成后显示校准完成
### 0.0.2 按键按下出发
此时显示图片<b>【按下出发】</b>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
光电大赛智能小车路径规划工程源码 (1139个子文件)
Project.uvguix.14692 180KB
Project.uvguix.14692 178KB
Project.uvguix.14692 177KB
project.uvguix.14692 177KB
Project.uvguix.Admin 170KB
Project.uvguix.Admin 170KB
Project.uvguix.Admin 87KB
output.avi 11.98MB
output.avi 6.55MB
5_output.avi 1.67MB
6_output.avi 1.66MB
4_output.avi 1.56MB
7_output.avi 1.45MB
2_output.avi 1.28MB
1_output.avi 1.28MB
3_output.avi 1.12MB
0_output.avi 1.06MB
Project.axf 408KB
Project.axf 396KB
Project.axf 387KB
project.axf 347KB
Project_sct.Bak 478B
Project_sct.Bak 478B
keilkill.bat 372B
keilkill.bat 372B
stm32f10x_tim.c 104KB
stm32f10x_tim.c 104KB
stm32f10x_tim.c 104KB
stm32f10x_tim.c 104KB
stm32f10x_flash.c 59KB
stm32f10x_flash.c 59KB
stm32f10x_flash.c 59KB
stm32f10x_flash.c 59KB
stm32f10x_rcc.c 49KB
stm32f10x_rcc.c 49KB
stm32f10x_rcc.c 49KB
stm32f10x_rcc.c 49KB
stm32f10x_adc.c 45KB
stm32f10x_adc.c 45KB
stm32f10x_adc.c 45KB
stm32f10x_adc.c 45KB
stm32f10x_i2c.c 43KB
stm32f10x_i2c.c 43KB
stm32f10x_i2c.c 43KB
stm32f10x_i2c.c 43KB
stm32f10x_can.c 43KB
stm32f10x_can.c 43KB
stm32f10x_can.c 43KB
stm32f10x_can.c 43KB
stm32f10x_usart.c 36KB
stm32f10x_usart.c 36KB
stm32f10x_usart.c 36KB
stm32f10x_usart.c 36KB
system_stm32f10x.c 35KB
system_stm32f10x.c 35KB
system_stm32f10x.c 35KB
system_stm32f10x.c 35KB
stm32f10x_fsmc.c 34KB
stm32f10x_fsmc.c 34KB
stm32f10x_fsmc.c 34KB
stm32f10x_fsmc.c 34KB
stm32f10x_spi.c 29KB
stm32f10x_spi.c 29KB
stm32f10x_spi.c 29KB
stm32f10x_spi.c 29KB
stm32f10x_dma.c 28KB
stm32f10x_dma.c 28KB
stm32f10x_dma.c 28KB
stm32f10x_dma.c 28KB
stm32f10x_sdio.c 27KB
stm32f10x_sdio.c 27KB
stm32f10x_sdio.c 27KB
stm32f10x_sdio.c 27KB
motor.c 22KB
stm32f10x_gpio.c 22KB
stm32f10x_gpio.c 22KB
stm32f10x_gpio.c 22KB
stm32f10x_gpio.c 22KB
stm32f10x_dac.c 18KB
stm32f10x_dac.c 18KB
stm32f10x_dac.c 18KB
stm32f10x_dac.c 18KB
core_cm3.c 16KB
core_cm3.c 16KB
core_cm3.c 16KB
core_cm3.c 16KB
stm32f10x_cec.c 11KB
stm32f10x_cec.c 11KB
stm32f10x_cec.c 11KB
stm32f10x_cec.c 11KB
6050control.c 10KB
stm32f10x_pwr.c 8KB
stm32f10x_pwr.c 8KB
stm32f10x_pwr.c 8KB
stm32f10x_pwr.c 8KB
GPIO.c 8KB
stm32f10x_rtc.c 8KB
stm32f10x_rtc.c 8KB
stm32f10x_rtc.c 8KB
stm32f10x_rtc.c 8KB
共 1139 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
香菜配汤
- 粉丝: 508
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功