https://github.com/adamczykpiotr/semiautonomouslanekeepingsystem
Semi-autonomous system for lane keeping based on C++ & OpenCV 4.x
https://github.com/adamczykpiotr/semiautonomouslanekeepingsystem
cpp17 lane-departure-warning lane-detection lane-detector lane-finding lane-lines-detection linux opencv opencv4 road-lane-detection road-lines road-safety
Last synced: 5 months ago
JSON representation
Semi-autonomous system for lane keeping based on C++ & OpenCV 4.x
- Host: GitHub
- URL: https://github.com/adamczykpiotr/semiautonomouslanekeepingsystem
- Owner: adamczykpiotr
- License: mit
- Created: 2020-03-18T09:05:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-07T10:58:58.000Z (almost 5 years ago)
- Last Synced: 2025-04-01T20:25:08.873Z (6 months ago)
- Topics: cpp17, lane-departure-warning, lane-detection, lane-detector, lane-finding, lane-lines-detection, linux, opencv, opencv4, road-lane-detection, road-lines, road-safety
- Language: C++
- Size: 10.2 MB
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Semi-autonomous lane keeping system
Semi-autonomous lane keeping system based on C++ & OpenCV 4.x.\
Project for my engineering thesis at AGH University of Science and Technology [WIMiIP].\
\
## Building
Linux: `./build.sh`\
Windows: Using Visual Studio 2019## Depencencies
Linux: `./build.sh install`\
Windows: Download OpenCV in version 4.1.1 and extract it to `C:\opencv` then copy all files from `C:\opencv\build\x64\vc15\bin` to `VisualStudio\x64\Debug` and `Release` directories## Progress history
| Task & Commit | Date |
| ---------- | ----------- |
| [Finished readme](https://github.com/adamczykpiotr/SemiAutonomousLaneKeepingSystem/commit/bf5befb4afbd0a68cf6ef7d568b5c7bef2e1be17) | 2020-03-18 |
| [Build tools](https://github.com/adamczykpiotr/SemiAutonomousLaneKeepingSystem/commit/5bde61885038f58fb816b5f0e4133f4470bd098c) | 2020-03-20 |
| [Lane detection](https://github.com/adamczykpiotr/SemiAutonomousLaneKeepingSystem/commit/b1bad0931d3f59c01665718d5ac228b2ae21bc87) | 2020-03-20 |
| [Hysteresis](https://github.com/adamczykpiotr/SemiAutonomousLaneKeepingSystem/commit/75b0f7863e084e0d97062172fc21871f5c212eaa) | 2020-03-21 |## To do
- [ ] Software
- [x] Build tools
- [x] Road lane recognition
- [ ] Turn prediction
- [x] Hysteresis
- [ ] Optimization
- [ ] Multi-threading
- [ ] ARM NEON optimizations
- [ ] PID controller for steering angle calculation
- [ ] Hardware
- [ ] Opel EPS-4400 reverse engineering
- [x] Gather all necessary datasheets
- [ ] Board schematics based on PCB
- [ ] Inject own steering signals
- [ ] Prevent triggering DTCs (Diagnostic Trouble Codes)
- [ ] Raspberry Pi 4 <-> Power steering
- [ ] Communication
- [ ] Safety measures
- [ ] Software
- [ ] Hardware## References
**General concept**\
https://medium.com/@mrhwick/simple-lane-detection-with-opencv-bfeb6ae54ec0 \
https://medium.com/pharos-production/road-lane-recognition-with-opencv-and-ios-a892a3ab635c**Use of Gaussian blur & simple turn prediction**\
https://github.com/MichiMaestre/Lane-Detection-for-Autonomous-Cars**PID Controller**\
https://en.wikipedia.org/wiki/PID_controller \
https://www.youtube.com/watch?v=4Y7zG48uHRo