Introduction
Tout au long des amicales, tu pourras te servir de ce site comme référence. Dans la barre de menu déroulant, tu y trouveras les défis des années précédentes ainsi que ceux de cette année, ainsi que quelques informations sur le langage Python et certaines notions de mathématiques dont nous aurons besoin.
Si tu as besoin de plus d'informations sur les différentes fonctionnalités de RSK, je t'invite à consulter le site officiel (clic ici) ,et notamment la section dédiée à la programming
N’hésite pas à nous appeler si tu as du mal à comprendre une consigne ou si tu es bloqué quelque part, nous nous ferons un plaisir de répondre à toutes tes questions 😄.
Les défis peuvent également être réalisés chez toi. Si c’est le cas, tu peux nous contacter sur Discord ou par email à clement.labbe33@gmail.com
Félicitations tu es prêt ! →
Atelier Techno-Footballer
Bienvenue dans l'atelier Techno-Footballer !
Ici tu vas apprendre à jouer au foot avec des robots !
Installation
Prérequis
Si vous utilisez un ordinateur que nous vous avons fourni, veuillez passer directement à l'introduction.
-
Système d'exploitation : Windows ou Linux
-
Installer Python 3.12.7 : Téléchargez la version appropriée pour votre système depuis le site officiel python.org.
📸 Procédure d'installation : Python 3.12.7
-
Installer Visual Studio Code avec l'extension Python : Téléchargez Visual Studio Code depuis le site officiel. Après l'installation, ouvrez le, accédez à l'onglet des extensions (icône de carré) et recherchez "Python". Installez l'extension officielle de Microsoft.
📸 Procédure d'installation : Visual Studio Code
- utiliser Google Chrome : Téléchargez et installez Google Chrome depuis le site officiel. Définissez-le comme navigateur par défaut.
Installation du paquet Robot Soccer Kit
Dans un terminal, exécutez la commande suivante :
pip install robot-soccer-kit[gc]
Lancement
Pour démarrer le contrôleur de jeu, exécutez la commande suivante dans un terminal :
python -m rsk.game_controller -s
Après avoir exécuté la commande, la page suivante devrait s'afficher :

Félicitations tu es prêt ! →
Python
Introduction
Python est un langage de programmation de haut niveau créé par Guido van Rossum en 1991. Son nom s'inspire de la série télévisée "Monty Python's Flying Circus". Il est géré par la Python Software Foundation, une organisation qui soutient son développement et sa communauté.
Installation
Pour installer Python, visitez le site officiel de Python et téléchargez la dernière version, Python 3.12.
Premiers Pas
Hello World
print("Hello, World!")
Caractéristiques Principales
- Langage de haut niveau : Python est conçu pour être facile à lire et à écrire.
- Gratuit : Python est open source et gratuit.
- Orienté objet : Python supporte la programmation orientée objet.
- Polyvalent : Utilisé dans de nombreux domaines comme l'analyse de données, la bioinformatique, et la robotique
Exemples de Code
Variables
Python possède plusieurs types de données courants :
Nombres entiers (int)
a = 5
print(type(a))
# >> int
Nombres décimaux (float)
En informatique, les nombres décimaux sont souvent représentés en nombre à virgule flottante, encore appelés nombres flottants.
b = 3.14
print(type(b))
# >> float
Compte tenu de la manière dont les nombres à virgule flottante sont stockés en mémoire, ils sont souvent approximés, ce qui peut entraîner des erreurs de calcul. Il faut donc éviter de tester l'égalité de deux nombres flottants.
Chaînes de caractères (str)
c = "Salut"
print(type(c))
# >> str
Booléens (bool)
d = True
print(type(d))
# >> bool
En Python, il n'est pas nécessaire de déclarer le type d'une variable, le langage se charge de le déterminer automatiquement.
Conditions et boucles
Les conditions (Structures de décision)
Les structures conditionnelles permettent de prendre des décisions dans un programme. En fonction de certaines conditions, différentes parties du code peuvent être exécutées.
if: vérifie une condition et exécute le bloc de code associé si elle est vraie.elif: vérifie une autre condition lorsque la première est fausse et exécute le bloc de code associé si cette nouvelle condition est vraie.else: exécute un bloc de code si toutes les conditions précédentes sont fausses.
Exemple :
if condition:
# Bloc de code exécuté si la condition est vraie
elif autre_condition:
# Bloc exécuté si la première condition est fausse et l’autre condition est vraie
else:
# Bloc exécuté si toutes les conditions précédentes sont fausses
Les boucles (Structures itératives)
1. La boucle for
La boucle for permet de répéter un bloc de code un nombre déterminé de fois. Elle est souvent utilisée pour parcourir des séquences (listes, chaînes de caractères, etc.).
Exemple :
for variable in séquence:
# Bloc de code exécuté pour chaque élément de la séquence
for i in range(3):
print(i)
>> 0
>> 1
>> 2
2. La boucle while
La boucle while exécute un bloc de code tant qu’une condition est vraie.
Exemple :
while condition:
# Bloc de code exécuté tant que la condition est vraie
compteur = 0
while compteur < 4:
print(compteur)
compteur += 1
>> 0
>> 1
>> 2
>> 3
3. Boucle infinie et sortie de boucle
Une boucle infinie se produit quand la condition de sortie n’est jamais atteinte. Cela peut bloquer l’exécution du programme. On peut interrompre une boucle avec l’instruction break.
Exemple :
compteur = 0
while True:
print(compteur)
compteur += 1
if compteur == 4:
break
>> 0
>> 1
>> 2
>> 3
Fonctions
def saluer(nom):
return f"Bonjour, {nom}!"
print(saluer("Alice"))
Ressources supplémentaires
Maths
Soon..
Défis
🌐 Défi RSK 1 : Mission "Un monde de couleur" 🌐
Votre mission, si vous l'acceptez, est d'illuminer le monde digital avec une cascade de couleurs éblouissantes. Armé de votre expertise et du puissant client RSK, vous allez plonger dans un univers où la couleur est reine.
🎨 Lumière Verte, Action !
Une fois connecté, votre objectif est d’allumer les LEDS en vert éclatant. Utilisez la combinaison de couleurs suivante pour créer un vert pur :
- Rouge (R) : 0
- Vert (G) : 255
- Bleu (B) : 0
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.leds(0, 255, 0)
🌈 Déchaînez votre Créativité :
N’hésitez pas à expérimenter avec différentes couleurs et intensités pour créer des effets visuels étonnants.
Bonne chance dans ce défi coloré, et que les meilleures couleurs gagnent!
🌐 Défi RSK 2 : Mission "Surveillance des Coordonnées" 🌐
Votre mission est de surveiller et d'afficher les coordonnées des agents sur le terrain : nos fidèles robots, codés "Bleu 1", "Bleu 2", "Vert 1" et "Vert 2". Chaque robot a sa propre trajectoire et position dans l'espace, et il est crucial de les suivre avec précision.
🎯 Surveillance de la Cible - La Balle :
En plus de suivre nos agents robots, une cible mobile - une balle - est en jeu. Votre mission inclut également de traquer et d'afficher en continu les coordonnées de cette balle.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessite une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel.
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est la clé pour comprendre le champ de bataille numérique.
🌐 Défi RSK 3 : Mission "Navigation Stratégique" 🌐
Après avoir maîtrisé l'art de l'illumination et de la surveillance, il est temps de passer à la navigation et à la stratégie. Dans ce défi, vous allez diriger un robot dans une danse délicate de positionnement et de mouvement.
🌐 Votre Mission :
Au lieu de tourner autour d'une cible, votre tâche est de guider le robot vers des points cardinaux spécifiques autour de la balle. Pensez à cela comme un jeu de positionnement stratégique : Nord, Sud, Est, Ouest.
🤖 Manœuvres du Robot :
Vous contrôlerez le robot "Bleu 1" pour le déplacer vers des points prédéterminés autour de la balle, en utilisant des coordonnées relatives. Votre agilité en programmation et votre sens de la précision seront essentiels ici.
📍 Instructions de Navigation :
- Déplacez le robot de 0.25 mètres à l'ouest de la balle.
- Ensuite, dirigez-le 0.25 mètres au nord de la balle.
- Poursuivez en le déplaçant de 0.25 mètres à l'est.
- Enfin, amenez-le 0.25 mètres au sud de la position initiale.
🌐 Défi RSK 4 : Mission "Rotation Maîtrisée" 🌐
Votre quatrième mission dans l'arène numérique est une danse de précision et d'agilité. Dans ce nouveau défi, vous allez orchestrer une rotation élégante de votre robot, en mettant à l'épreuve votre maîtrise des commandes de mouvement.
🔄 Votre Mission :
Vous devez faire exécuter à votre robot une rotation complète sur lui-même. Cette manœuvre requiert un contrôle minutieux et une compréhension approfondie des commandes de votre robot.
🚨 Attention - Changement de Commande :
Pour ce défi, oubliez la commande goto habituelle. Vous allez plutôt utiliser la commande control pour diriger le robot. Cette approche vous donne un contrôle plus direct et précis sur les mouvements du robot, essentiel pour réussir une rotation parfaite.
🌐 Défi RSK 5 : Mission "Coup de Maître" 🌐
Votre cinquième mission dans cette aventure technologique consiste à manœuvrer votre robot de manière à frapper une balle placée au centre. Ce défi mettra à l'épreuve votre habileté à évaluer les distances et à contrôler le mouvement de votre robot.
⚽ Votre Mission :
Le but est de positionner et de faire avancer le robot pour qu'il frappe la balle située au centre. Cela nécessitera une compréhension fine de la dynamique et de la force nécessaire pour un impact efficace.
📐 Position de Départ :
Le robot commence sa mission depuis une position sur l'axe des x positifs (à une distance x quelconque du centre). Votre tâche est de le guider depuis cette position initiale jusqu'à la balle.
🌐 Défi RSK 6 : Mission "Passe Parfaite" 🌐
Votre sixième mission consiste à exécuter une passe précise entre deux robots. Ce défi nécessite une compréhension approfondie de la dynamique des mouvements et une synchronisation impeccable entre les deux robots.
⚽ Votre Mission :
Un robot doit envoyer la balle à un autre robot situé à une certaine distance. La clé est d'ajuster la force et l'angle de la passe pour assurer une réception réussie par le robot destinataire.
🌐 Défi RSK 7 : Mission "Orbite Circulaire" 🌐
Votre septième défi est de faire naviguer un robot autour d'une balle, en suivant la trajectoire d'un cercle parfait. Ce défi sollicitera vos compétences en géométrie et en programmation pour réaliser une orbite circulaire précise.
🔵 Votre Mission :
Faire tourner le robot autour de la balle en maintenant une distance constante, comme s'il suivait l'orbite d'un satellite. La trajectoire doit ressembler à un cercle parfait autour de la balle.
🏆 Défi RSK Final : Mission "Match Ultime" 🏆
Votre mission finale est de mettre en œuvre tout ce que vous avez appris pour orchestrer un match de robot. Ce défi combine stratégie, précision, coordination d'équipe, et adaptation en temps réel. Vous devrez faire preuve de créativité, de logique de programmation avancée et de compréhension tactique du jeu.
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, passer à leurs coéquipiers, et tirer au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
Défis
🌐 Défi RSK 1 : Mission "Au centre" ⭐★★★★ 🌐
Lors de votre match face à la redoutable équipe verte, vous avez calculé que la meilleure position pour marquer un but serait au centre du terrain.
Votre mission sera donc d'amener le robot Bleu 1 vers le centre du terrain afin qu'il puisse marquer ⚽⚽ !
🎯 Cours Forest ! Cours !
Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.
Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.
client.<couleur><numeros>.goto((x,y,theta), wait=False)
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.goto((0,0,0), wait=False)
💡 Astuce 💡 :
Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :
myRobot = client.robots['<couleur>'][<numeros>]
🌐 Défi RSK 2 : Mission "À l'œil" ⭐⭐★★★ 🌐
Votre match contre l'équipe verte est difficile, et il est nécessaire de vérifier les positions de vos ennemis pour adapter votre stratégie ! Votre mission : capturer un maximum d'informations afin de vaincre la redoutable équipe verte.
🎯 Surveillance Maximal :
Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.
Si vous êtes bloqué, voici un petit indice : indice
🌐 Défi RSK 3 : Mission "Mimétisme"⭐⭐★★★ 🌐
Lors de votre affrontement avec l'équipe verte, celle-ci utilise une technique mystérieuse qui désoriente vos robots ! Mais vous avez la solution : toujours regarder dans la même direction que votre ennemi !
🌐 Votre Mission :
Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer l'orientation du robot Vert 1 puis donner à votre robot Bleu 1 la même orientation.
🎯 Mime Mime Mime !
1 - Récupérez l'orientation theta du robot Vert 1 à l’aide des informations disponibles sur le terrain.
2 - Donnez l’ordre à votre robot Bleu 1 d’adopter la même orientation.
🌐 Défi RSK 4 : Mission "Adaptation Défensive !" ⭐⭐⭐★★ 🌐
L'attaquant de l'équipe verte ne cesse de marquer des buts. Pour l'arrêter, vous avez imaginé une méthode simple : placer votre deuxième robot en gardien de but.
🔄 Votre Mission :
Vous devrez utiliser la position en y de la balle pour contrer les tirs de l'équipe verte.
Utilisez également les constantes fournies par la bibliothèque RSK afin de positionner votre gardien avec une précision optimale.
Voici un exemple pour récupérer les constantes :
import rsk
from rsk import constants
position_but = constants.defense_area_width # Correspond à la position en x des cages du côté positif du terrain
🧠 Curiosité 500% :
N'hésitez pas à explorer la bibliothèque RSK pour découvrir tout ce qu'elle contient ! Pourquoi ne pas commencer par examiner les différentes constantes disponibles ?
- Astuce 1 : Tapez
constants.et observez les propositions qui vous sont faites. - Astuce 2 : Pour une exploration plus poussée, appuyez sur
CTRL + clicsur le motconstants. Vous accéderez directement aux fichiers de la bibliothèque 🤯.
Attention : Ne modifiez rien dans ces fichiers 🤭.
👀 TOUJOURS PLUS ! (Sous-défi facultatif - ⭐⭐⭐⭐⭐) :
Pour un défi supplémentaire, essayez de programmer votre défenseur pour qu'il se base sur l'orientation du robot Vert 1 plutôt que sur la position de la balle. Ce défi est optionnel, mais il nécessitera des notions avancées en trigonométrie.
🌐 Défi RSK 5 : Mission "Side Swap" ⭐⭐⭐★★ 🌐
La mi-temps du match contre l'équipe verte approche. Comme vous le savez, les côtés du terrain sont échangés entre les mi-temps, mais vous n’avez pas encore pris cela en compte dans votre code.
Vous devez rapidement mettre en place une solution permettant de modifier facilement ce paramètre pour adapter votre stratégie !
⚽ Votre Mission :
Votre mission sera de distinguer le côté positif et négatif du terrain afin de pouvoir vous adapter à toutes les circonstances et éviter d'attaquer dans votre propre camp !
Pour cela, vous pouvez utiliser la fonction input de Python, qui permet de saisir des valeurs à la main pendant l’exécution de votre programme.
Voici comment utiliser input :
réponse = input('Que voulez vous faire ?')
Voici le résultat dans votre terminal
Que voulez vous faire ?
>|
Ici, le programme attend une réponse de l’utilisateur, qui sera ensuite stockée dans la variable réponse.
⚠️ ATTENTION ⚠️ :
La réponse fournie par l’utilisateur est sous forme de chaîne de caractères. Ainsi, si vous entrez un nombre, le programme le considérera comme une chaîne :
réponse = '1'
Pour résoudre ce problème, vous pouvez convertir la chaîne en nombre à l’aide des fonctions int ou float :
réponseEntiere = int('1')
réponseFlottante = float('3.14')
💡 Indice
Si vous ne savez pas par où commencer, essayez de voir comment positionner votre robot défensif du défi précédent dans les buts opposés.
Il se pourrait que vous ayez besoin de multiplier certaines valeurs par -1 😉.
🌐 Défi RSK 6 : Mission " Des placements " ⭐⭐⭐⭐★ 🌐
Maintenant qu'une muraille protège votre camp, il est temps de passer à l’attaque contre l’équipe verte !
Votre robot 1 est prêt à en découdre et à marquer des BUTS ⚽⚽⚽ !
⚽ Votre Mission :
Votre objectif sera de positionner votre robot derrière la balle, à une distance optimale pour tirer sans la pousser immédiatement puis de tirer. Pour cela, vous devrez prendre en compte trois paramètres :
- Le rayon du robot.
- Le rayon de la balle.
- Une marge d’imprécision arbitraire sur la distance entre le robot et la balle. Vous devrez effectuer plusieurs essais jusqu’à ce que le robot reste bien positionné derrière la balle sans bouger inutilement.
⚠️ Points importants :
- Si vous vous placez trop loin, vous risquez de perdre en puissance de frappe.
- Effectuez un maximum de tests pour trouver la distance optimale !
Pour simplifier cet objectif, placez la balle au centre du terrain et positionnez votre robot à mi-distance entre vos cages et la balle. Cela vous permettra de travailler dans des conditions simples et prévisibles.
Maintenant que vous etes bien positionné, 💥💥 TRIEZ 💥💥 !
🌐 Défi RSK 7 : Mission " Panne d'énergie ! " ⭐⭐⭐⭐⭐ 🌐
Suite à votre précédente mission, vous avez sûrement remarqué que la balle ne va pas très loin lorsque vous utilisez la commande kick du robot.
⚽ Votre Mission :
Utilisez un timer pour éviter le déchargement trop régulier du condensateur. En effet, le kickeur met un certain temps à se charger à 100 %, et il est important de s’assurer qu’il soit complètement chargé avant de tirer. Sinon, vous risquez de simplement donner la balle à vos ennemis !
Utilisez donc un timer pour vous assurer que le kickeur soit prêt avant chaque tir, afin d’optimiser la puissance et la précision de vos frappes.
💡 Indice
Allez consulter la documentation de time !
🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆
Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈
C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirer au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐
Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !
C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀
Défis
🌐 Défi RSK 1 : "Mission Prêt ! Partez !" ⭐★★★★ 🌐
Afin d'avoir une vue d'ensemble sur le match et d'être dans une position optimale pour recevoir la balle de n'importe où, vous avez décidé d'accompagner votre robot bleu n°1 jusqu'au centre du terrain.
🎯 Réception à toute épreuve !
Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.
Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.
client.<couleur><numeros>.goto((x,y,theta), wait=False)
Votre code ressemblera à ceci :
import rsk
with rsk.Client() as client:
while True:
client.blue1.goto((0,0,0), wait=False)
💡 Astuce 💡 :
Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :
myRobot = client.robots['<couleur>'][<numeros>]
🌐 Défi RSK 2 : "Dos à dos" ⭐⭐★★★ 🌐
Afin de couvrir une zone encore plus grande, vous avez décidé d'utiliser vos deux robots comme tours de garde.
🎯 I've got you in my sights
Votre mission sera de faire collaborer vos deux robots afin qu'ils couvrent la zone la plus large possible.
Tandis que l'un couvre la première partie du terrain avec x>0, l'autre se charge de la zone avec x<0.
Pour cela, vous pouvez réutiliser le programme précédemment écrit afin de positionner le robot bleu 1 en (1,0) et le robot bleu 2 en (−1,0).
Veillez également à ce que les deux robots regardent dans des directions opposées.
💡 Indice 💡 :
Vous pouvez donner des instructions à deux robots en même temps dans le même programme !
Si vous n’arrivez pas à faire en sorte que les deux robots regardent dans des directions opposées, pensez que l’orientation des robots est exprimée en radians !
🌐 Défi RSK 3 : "Mission Scan" ⭐⭐★★★ 🌐
Maintenant que vos robots sont prêts à s'adapter à toutes les situations, il reste à identifier ces situations ! Pour cela, vous devez connaître votre environnement.
🎯 Surveillance Maximal :
Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.
🧩 Défi Technique :
Votre code devra récupérer et afficher les positions X, Y de chacun des robots et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))
👁🗨 Visualisation des Données :
Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.
Si vous êtes bloqué, voici un petit indice : indice
🌐 Défi RSK 4 : Mission "Défense offensive !"⭐⭐★★★ 🌐
Vous avez repérer que votre ennemi vert s'apprêtait a tirr dans vos cages ! Votre meilleur façon d'empêcher se tir est de foncer le plus vite possible vers la balle !
🔄 Votre Mission :
Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer la position de la balle donner à votre robot Bleu 1 la même position
🎯 Arrete la !
1 - Récupérez la position (x,y) de la balle à l’aide des informations disponibles sur le terrain.
2 - Donnez l’ordre à votre robot Bleu 1 d'aller vers cette position
🌐 Défi RSK 5 : Mission "Retour à la réalité"⭐⭐⭐★★ 🌐
Pour l'instant vous vous etes concentré a réaliser vos tests dans le simulateur, ne serait-il pas tant de tester en réalité !
🔄 Votre Mission :
Votre mission consistera en l'utilisation du game controlleur en l'apprentissage de la connexion avec celui-ci afin de faire bouger les robots en vrai ! Votre seconde mission sera de voir ce qu'il se passe lorsque l'un des robot n'est pas sur le terrain
💥 😱 COMMENT ÇA, VOTRE PROGRAMME CRASH ?!
cela veut dire que vous n'avez pas gérer les erreurs ! le fait que l'un des robot ou meme la balle sorte du terrain vous enleve une donnée a votre programme ! pour le corriger il suffi de faire un test si il manque une valeur votre programme fera quelque chose d'autre en conséquences
try:
#Votre code
except rsk.client.ClientError as e:
print(e)
#autre chose
💡 Astuce 💡 :
Vous pouvez aussi gérer chacune des erreurs afin de pouvoir continuer a bouger malgré la perte d'information par exemple vous pouvez definir d'une autre maniere les données perdu !
🌐 Défi RSK 6 : Mission "Sur mesure" ⭐⭐⭐⭐★ 🌐
Maintenant que vos robots sont prêts à attaquer, il est temps de leur apprendre l'art du positionnement précis pour devenir des attaquants redoutables ! Votre mission : placer votre robot juste derrière la balle sans la toucher, afin de pouvoir effectuer un tir parfait.
🎯 Derrière mais prêt à frapper !
Votre objectif est de positionner votre robot à une distance optimale de la balle, prenant en compte les dimensions suivantes :
Le rayon du robot (robot_radius),
Le rayon de la balle (ball_radius),
Une marge d’imprécision arbitraire que vous devrez mesurer par des tests en situation réelle.
La distance idéale correspondra à la somme des rayons plus cette marge d’imprécision.
🔄 Votre Mission :
Mesurez la marge d’imprécision en effectuant plusieurs essais avec votre robot derrière la balle.
Placez votre robot derrière la balle, en vous basant sur les constantes robot_radius et ball_radius, ainsi que sur la marge calculée.
Vérifiez que votre robot est bien positionné sans toucher la balle, si tel est le cas essayé de le faire un tir et voyez le résultat !
💡 Astuce :
Utilisez les constantes de la bibliothèque RSK pour simplifier votre code. Ces constantes sont disponibles dans le module rsk.constants
Voici un exemple d'utilisation :
import rsk
from rsk import constants
rayon_du_robot = constants.robot_radius
Pour une exploration rapide des constantes, tapez constants. et observez les suggestions. Si vous êtes curieux, appuyez sur CTRL + clic sur le mot constants pour accéder directement au code source. Attention : Ne modifiez rien dans ces fichiers 🤭.
🌐 Défi RSK 7 : Mission "Carton jaune" ⭐⭐⭐⭐⭐ 🌐
Maintenant que votre robot suit la balle vous vous rendez compte durant votre match qu'il ne peux pas rester a coté d'elle durant trop de temps sous peine de se prendre une pénalité ! mais on peux faire de cette penalité aussi un avantage !
🔄 Votre Mission :
Votre mission sera de detecter lorsque un robot est pénaliser, de cette maniere vous pourrez lorsque les deux robot attaquant sont pénaliser faire monter votre defenseur pour qu'il attaque !
Pour cela vous avez acces aux information du referee referee
🎯 A l'attaque !
1 - Récupérez les information de l'arbitre 2 - Vérifiez que les deux robot vert 1 et bleu 1 sont penalisés 3 - Faites monter votre defenseur en attaquant
Voici un exemple d'utilisation du referee :
import rsk
with rsk.Client() as client:
while True:
client.referee["game_is_running"] #Cette ligne renvoie True si la partie est débuté False sinon
🌐 Défi RSK 8 : Mission "visée a toute epreuve !" ⭐⭐⭐⭐⭐ 🌐
Lors de vos péripécie il vous vient a l'idée de cree un outils vous permettant de faire en sorte que l'un de vos robot regarde un point donné
🔄 Votre Mission :
Votre mission sera de réaliser une fonction python prenant 2 points en entrée en renvoyant un angle delta en sortie Voici un exemple de fonction réalisant une addition :
def addition(a,b): # Ici a et b sont les entrés
c = a+b # ici on réalise l'addition de a + b
return c # et ici on renvoie en sortie le résultat c
résultat = addition(2,3) # ainsi cette ligne réalisera l'addition de 2+3
print(résultat) # le print affichera alors 5
Afin de réaliser le calcul permettant à votre robot regarde un point il vous faudra faire de la trigonométrie !
💡 Indice 💡 :
Renseignez-vous sur la fonction arc tangente 2 ou atan2. En python vous pourrez utiliser math.atan2 sous reserve de import math.
🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆
Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈
C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽
⚽ Votre Mission :
Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.
🤖 Stratégie et Exécution :
- Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirr au but.
- Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
- Assurez une bonne communication et coordination entre les robots de la même équipe.
🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐
Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !
C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀