Skip to content
This repository has been archived by the owner on Mar 16, 2024. It is now read-only.

RoboJackets/evgp-rcs

Repository files navigation

EVGP Race Control System (RCS)

Created for the evGrand Prix (EVGP) Autonomous Kart Racing Competition. Karts can connect to the RCS through a simple TCP socket. The GUI allows management of a race by signaling the race start sequence, race ending, and E-Stops. It is up to teams to handle and respect race signals and act safely during manual and autonomous control.

WARNING:

The Race Control System (RCS) software is provided without warranty. The RCS is not and should not be used as an emergency safety system. Administration and Teams are expected to have safety measures in place and maintain safe control of vehicles.

See the EVGP Autonomous Safety and Control System Proposal in specs for more documentation and the RCS User Manual for more information on the RCS GUI usage.

Setup

This project uses Poetry for dependency management. Install Poetry before continuing. PyQt 5 is used for the GUI framework.

A Brief How to Use:

  1. Install poetry, clone repo, navigate to repo in terminal
  2. Connect to a LAN
  3. Set your computer IP to a static IP as the server
  4. Give each team a static IP and have them set their IP
  5. poetry install
  6. Place a racer_list.yaml in repo top level folder
    • List racers as STATIC_IP: TEAM_NAME
    • Example: 123.123.123.123: RoboJackets
  7. poetry run python evgp_rcs/gui.py
  8. In the GUI, select racers and press move to active race
  9. Run race following the guide in the RCS User Manual

A video demonstration of using the tool is provided here.

tcpclient.py provides an example TCP client that can be adapted for a Race vehicle.

Using tcpclient.py

  1. Start RCS GUI
  2. poetry run python tcpclient.py
  3. tcp client provides some examples poetry run python tcpclient.py --help

    # TCP Client Examples --type options:
    # well-behaved: Responds with state server requested
    # interval: Iterates through RaceStates and sends the next one (please prove a --delay)
    # single-message: Sends the message from the --message argument
    # interactive: Use number keys 1-5 to select a RaceState to send

How to Develop

  1. Clone repo, navigate to repo in terminal
  2. poetry install
  3. Write code
  4. poetry run python evgp_rcs/gui.py
  5. To test: While running the GUI, poetry run python evgp_rcs/tcpclient.py
  • tcplient.py has multiple configurations to assist in testing

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Languages