Skip to content
Snippets Groups Projects
Select Git revision
0 results

lokalisierung-vrob

  • Clone with SSH
  • Clone with HTTPS
  • Name Last commit Last update
    LICENSE
    README.md

    localization VROB

    This project deals with the localization of a vehicle on a race track. This is a student project from Bochum University of Applied Sciences.

    Name

    localization of a vehicle on a race track

    Robot

    The used Robot is the LEGO EV3 Brick.

    Important notes regarding the robot:

    • The robot has differential drive.
    • The motors / sensors are connected to the following ports of the robot:
      • Motor: OUTPUT A & OUTPUT B
      • ColorSensor: INPUT 4
      • GyroSensor: INPUT 1

    Getting started

    How to run MicroPython programs on LEGO EV3:

    1. Download and flash the EV3 MicroPython image onto a micro SD card
    2. Insert the micro SD card into the SD card slot on the EV3 Brick
    3. Download, install, and launch Visual Studio Code on your computer
    4. Install and activate the LEGO Education EV3 extension
    5. Connect the EV3 Brick
      • After installing the extension, a device can be connected in Visual Studio Code (at the bottom, left).
      • The LEGO EV3 Brick should be listed and can be selected in the list.

    The following Python-packages must be installed on the computer to run the algorithm:

    • numpy
    • pandas
    • matplotlib
    • tkinter
    • socket
    • datetime

    Description

    The main branch contains the following files:

    • localization.py: localization algorithm
    • driving.py: detection of section type, calculation of odometry, calculation driven distance in section
    • grafic.py: graphical output
    • race_management.py: main program
    • Lokalisierung_LEGO (folder), main.py: programming of the robot LEGO EV3

    The following adjustments might be necessary, before the algorithm is executable:

    • change ip-address in main.py

    • entering the route in localization.py (get_set_of_section_*())

    • The following measured values are stored and must be adjusted if necessary (in main.py):

      • wheel circumference (radumfang)
      • wheel spacing (d)

    Notes on constant values (in race_management.py):

    • CHAR_RECIVING: number of chars in one UDP-message This value should only be changed if the sent string changes.
    • THRESHOLD_LEFT, THRESHOLD_RIGHT: value to detect a left or right turn These values can be changed to possibly improve the algorithm.
    • BLOCK_SIZE_DA: number of iterations to analyse the section type This value can be changed to possibly improve the algorithm.
    • S = 0, R = 1, L = 2: value for a straight part, a right turn, a left turn of the track These values should not be changed in order to maintain the functionality of the algorithm.

    Authors and acknowledgment

    Jessica Dreyer, Sebastian Böttger

    License

    Project is licensed with MIT. See at LICENSE

    Project status

    Work in progress.