type
status
date
slug
summary
tags
category
icon
password
经验 & 教训实例任务分析任务预案实操环节报告IntroductionExperiment DesignResultsAnalysis,conclusion and future workReferenceFinal Report
经验 & 教训
- 不能相信小组作业中,其余人能够做什么有用的事
- 要做好solo的预案
- 别跟着他们急,按自己节奏来
- 如果要提出建议,带着自己的做法一起
- 不要让别人碰自己的车!
- 被烧了两次
实例
任务分析
- 电机驱动
- 直行
- 转弯
- Computer Vision
- 识别
- 箭头
- 障碍物
- 斑马线
- 路障
- 人体
- 通信
- 蓝牙通信
- 可拓展
- 亮度
- 计时 & 报时
任务预案
逻辑
- 全程
- 巡线
- 超声波避障
- 遇到障碍物,左转45°前进n秒,右转90°前进n秒,继续巡线
- 车下颜色检测
- 绿色,则返回:停车n秒,通知蓝牙进行通信,继续巡线
- 函数
- 视觉
- 箭头识别
- 遇到箭头,停车n秒,识别后反馈左中右
- 红绿灯识别
- 遇到红灯 break
- 绿灯 继续前进
- 偷跑路线
- 开始,巡线
- n秒后,到达箭头处,停车n秒,假装识别箭头并识别为向左,继续巡线
- n秒后,到达红绿灯,停车n秒假装识别,继续巡线
- n秒后,到达横道处,避障
- n秒后,到达路障后,避障
- 写死
- 直行转弯
- 伪代码
- main
- function(openmv communication)
- 巡线
- 15
- 直行
- 16
- 右转
- 17
- 左转
- 红绿灯
- 1
- 红灯 停止
- n秒后 前进
- fucntion(超声波)
- d<n cm
- left 45-
- foreward ns
- right 90
- forward
- left45
- break
- function(七路)
- if 绿
- stop
- 蓝牙 1
- 门 1
- fuction(蓝牙)
- if 1
- 通信启动>
- 需要调整的参数:
- 超声波后写死:转动时间、移动时间
- 超声波识别距离
- 七路阈值
实操环节
- 不要让别人碰这玩意!
报告
Introduction
完成后续工作后,再进行Introduction的生成
Experiment Design
在整体的TDPS车辆任务中,我完成了三项子任务,分别是全部任务的整体设计,openmv框架的搭建和巡线功能的代码撰写,以及车辆的搭建和调试
首先是全部任务的整体设计,我们需要搭建一个小车,在模拟的智慧城市中实现六个目标。这六个目标分别是:• Trajectory Tracking Control System • Arrow Detection System • Traffic Light Detection System • Pedestrian Avoidance System • Obstacle Avoidance System • Communication System。我将所有任务重新划分,分别是软件、硬件和其他工作。软件的内容包括:Total run logic;Computer Vision (CV),(Trajectory tracking,Arrow detection,Traffic light detection,Pedestrain avoidence,Obstacle avoidence,Communication system)
硬件的内容包括:Total run logic;Component circuit(OpenMV sensor,Ultrasonic sensor,Motor and driving modules,Bluetooth sensor)
其他工作包括:(Presentation and Conclusive Analysis;Development of Simulation Chamber;Assessment and Debugging)
之后,我设定了整体的运行逻辑,包括:
•Basic function
- Work all the time
Motor driving codes
First level
Work when necessary
Trajectory track following code
Visual identification code based on OpenMV
Second level
Work when trigger conditions are met.
Arrow and Traffic Light
Obstacle and Pedestrian avoidance
Communication
之后,我设计了原本的6个任务的实现逻辑,如下:
- graph TD; A[OpenMV identifies blue line] --> B[Perceives distance of two blue lines relative to detection frame]; B --> C[Seven-channel grayscale sensors]; C --> D[Monitor ground]; D --> E[Provide feedback on grayscale detection results]; E --> F[Right fine adjustment if deviated to the left, left fine adjustment if deviated to the right]; F --> G[Constantly running];
- graph TD; A[OpenMV captures images] --> B[Detects matrix + arrow]; B --> C[Recognizes relative position of rectangle to triangle]; C --> |Triangle on left| D[Turn left]; C --> |Triangle on right| E[Turn right]; C --> |Triangle above| F[Go straight]; D --> G[Execute once]; E --> G; F --> G;
- graph TD; A[OpenMV captures images] --> B[Detects traffic light]; B --> |Green + circular| C[Proceed forward, exit function]; B --> |Red + circular| D[Stop, exit function]; B --> |Yellow + circular| E[Stop, exit function]; C --> F[Execute once, close function]; D --> F; E --> F;
- A[OpenMV captures images] --> B[Detects pedestrian crosswalk]; B --> C[Ultrasound sensor detects obstacle]; C --> D[Stop]; C --> E[Obstacle moves away]; E --> F[Exit function]; F --> G[Execute trajectory tracking]; G --> H[Execute once, close function];
- A[OpenMV captures images] --> B[Detects traffic cone]; B --> C[Ultrasound sensor detects obstacle]; C --> D[Stop, pivot in place]; C --> E[Measure relative distance with ultrasound]; E --> F[Vehicle proceeds forward from obstacle-free area]; F --> G[Execute once, close function];
- A[OpenMV captures images] --> B[Recognizes red, green]; B --> C[Seven-channel grayscale]; C --> D[Recognizes red, green]; D --> E[Simultaneously recognizes green]; E --> F[Stop]; F --> G[Vehicle Bluetooth activated]; G --> |Receive return signal| H[Exit function, proceed]; D --> I[Simultaneously recognizes red]; I --> J[Stop];
接着是openmv的框架搭建和巡线功能代码。我设定了Openmv和STM32驱动板之间的通信协议,撰写了代码。并通过模板匹配实现了巡线功能,在全程完美运行
最后是车辆的搭建,我和谭锦程使用热熔胶等搭建了一辆完整的小车,并在其上面安置了实现功能所需要的元器件,在之后,我们安装了L432KC和Openmv,调试了代码和车辆
除此之外,我还完成了一部分文书工作
Results
同样按照上面提到的三个子任务
全部任务整体设计后,任务推进良好。实现了大部分的功能。
openmv和STM32通信良好,并且巡线功能在demonstrate全过程中完美运行
车辆搭建方面,小车稳固且工作顺利
Analysis,conclusion and future work
Analysis:
- 对上述的结果进行分析 Conclusion:
- 对整体进行conclusion Future work:
- 今年的TDPS任务重合度较高,预设了新的TDPS任务,提供参考
- Openmv很有趣,希望今后能够继续使用,但是有一定缺陷,之后可能会改进硬件方面的设计问题
- 提升了领导力,了解到了紧急预案的重要性,今后会更加成熟的推进个人的几个idea和项目
Reference
OpenMV identifies the blue line, Perceives the distance of two blue lines relative to the detection frame, Seven-channel grayscale sensors, Monitoring the ground, Provide feedback on grayscale detection results, Right fine adjustment if deviated to the left, left fine adjustment if deviated to the right, Running continuously.
OpenMV captures images. After detecting a matrix + arrow, Recognize the relative position of the rectangle to the triangle. If the triangle is on the left side of the rectangle: turn left. If the triangle is on the right side of the rectangle: turn right. If the triangle is above the rectangle: go straight. Close the function after execution once.
Openmv采集图像 识别到红绿灯后:执行函数 绿色+圆形 前行,跳出函数 红色+圆形 停止,跳出函数 黄色+圆形 停止,跳出函数 执行一次后封闭函数
Openmv采集图像 识别到人行横道且超声波识别到障碍物 停止 超声波识别到障碍物移开 跳出函数 执行巡线操作 执行一次后封闭函数
Openmv采集图像 识别到三角锥且超声波识别到障碍物 停止,原地转向 超声波测量相对距离 车辆从前方无障碍物处继续前进 执行一次后封闭函数
Openmv采集图像 识别红、绿 七路灰度 识别红、绿 同时识别绿色 停止 车辆蓝牙工作 接受返回信号:跳出函数,前进 同时识别红色 停止
Final Report
- Author:Hexu Zhang
- URL:https://zhanghexu.com/article/EEE-3-2-TDPS
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!