Giter Site home page Giter Site logo

geekboy2 / tennis-ball-gathering-robot Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 842 KB

A robot is tasked with picking up K waste items distributed arbitrarily. The positions of the robot and the waste are integer coordinates. The objective of this project is to design and program pickup algorithms. The robot must return to its starting point.

License: Apache License 2.0

Makefile 2.72% Python 51.83% TeX 45.45%
gatherer gathering robot tennis

tennis-ball-gathering-robot's Introduction

Table of contents / Table de matières :

  1. Description (English).
    • Robot Behavior
    • Makefile
  2. Description (Français).
    • Comportement du Robot
    • Makefile

Description [English]

This project aims to design and program algorithms that allow a robot to pick up K tennis balls scattered arbitrarily. The positions of the robot and the balls are represented by integer coordinates. The main objective is to enable the robot to return to its starting point after collecting all the balls.

Robot Behavior

The characteristics of the robot's behavior are as follows:

  • The robot has a constant movement speed, equivalent to one unit per step.
  • The process of picking up a tennis ball is considered instantaneous and does not take any additional time.
  • To pick up a ball, the robot must be positioned directly on top of it.
  • When it wants to change its direction of movement, the robot must stop, turn around, and then proceed in the new direction. The time required to make this change in direction is determined by a real parameter C, multiplied by the angle in radians α between the new displacement vector and the old displacement vector.
  • The robot has the ability to turn in both directions. At the start of the project, the robot is initially oriented upwards. Unless otherwise specified, it is positioned at coordinates (N/2, N/2), where N represents a parameter defining the width of the grid.

To successfully complete this project, it will be necessary to develop efficient algorithmic strategies for collecting the tennis balls while optimizing movement times and direction changes.

Makefile

python3 project.py "csv file name" "world size" "movement speed" "rotation speed"

Description [Français]

Ce projet vise à concevoir et programmer des algorithmes permettant à un robot de ramasser K balles de tennis réparties de manière arbitraire. Les positions du robot et des balles sont représentées par des coordonnées entières. L'objectif principal est de permettre au robot de retourner à son point de départ après avoir collecté toutes les balles.

Comportement du Robot

Les caractéristiques du comportement du robot sont les suivantes :

  • Le robot possède une vitesse de déplacement constante, équivalente à une unité par pas.
  • Le processus de ramassage d'une balle de tennis est considéré comme instantané et ne prend aucun temps supplémentaire.
  • Pour ramasser une balle, le robot doit être positionné directement dessus.
  • Lorsqu'il souhaite changer de direction de déplacement, le robot doit s'arrêter, tourner sur lui-même, puis repartir dans la nouvelle direction. Le temps nécessaire pour effectuer ce changement de direction est déterminé par un paramètre réel C, multiplié par l'angle en radian α entre le nouveau vecteur de déplacement et l'ancien vecteur de déplacement.
  • Le robot a la capacité de tourner dans les deux sens.

Au démarrage du projet, le robot est initialement orienté vers le haut. À moins d'indications particulières, il est positionné aux coordonnées (N/2, N/2), où N représente un paramètre définissant la largeur de la grille.

Pour mener à bien ce projet, il sera nécessaire de développer des stratégies d'algorithme efficaces pour la collecte des balles de tennis, tout en optimisant les temps de déplacement et les changements de direction.

Makefile

python3 project.py "nom fichier cvs" "taille du monde" "vitesse de deplacement" "vitesse de rotation"

La commande make fig permet d'exécuter les deux algorithmes dans des situations différentes et d'afficher les chemins trouvés.

La commande make time permet de calculer le temps d'exécution des algorithmes dans des mondes avec un nombre de balles variables (peut prendre un certain temps)

Le rapport report.pdf est disponible dans le dossier report. Il peut être recompilé en se plaçant dans le dossier report et en effectuant la commande make.

tennis-ball-gathering-robot's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.