konrad98ft / Autonomous-Runner-Assistant

Vision system for autonomous robot supporting runners in traning. Advanced lines tracking connected with PID speed and position controll acquire optimall support to realise traning goals.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Runner-Assistant

Vision system for autonomous robot supporting runners in training. Robot is driving in front of the runner on the track and keep proper pace with helps to acquire training goals. Device is using advanced lines tracking connected with PID speed and position control.

Program is running on Rasbperry Pi 3B+ with is connected by USB with Arduino Mega. Vision system is based on C++ and OpenCv liblary.

Elements and connections plan

Image Processing in few steps

Image is processing in many steps, the most important are mentioned above:

  • Orgnial image
  • ROI - Region of Interests
  • Grayscale
  • Tresholing
  • Bluring
  • Next tresholing
  • Canny operation - to find lines edges
  • Hough Transform - to find straight lines
  • Collection lines into vector
  • Lines filtration
  • Splitting lines into groups based on their slope
  • Finding lines with belongs to 1 real line
  • Finding centre of the track
  • Counting difference between actual position and optimal position

Example steps on the simulated image

itscreen

After that operations information is sended to the Arduino. uC recalculates value in pixels into the turning angle of robot. Moreover, Arduino is responsible for:

  • speed controlling
  • sensors support
  • communication with mobile app
  • carrying out training program

Validation on the real track

Good quality surface

image

Poor quality surface

image

Driving video

Hnet-image (2)

About

Vision system for autonomous robot supporting runners in traning. Advanced lines tracking connected with PID speed and position controll acquire optimall support to realise traning goals.


Languages

Language:C++ 100.0%