Comment planifier le chemin de la main ?
Une trajectoire est la liste des positions que la main doit prendre, avec l’instant de chacune. Un robot qui déplace un colis ne saute pas d’un point à l’autre : il suit un chemin découpé en petites étapes.
Vous allez découper un chemin droit en points réguliers, puis calculer le temps qu’il faut pour le parcourir.
À la fin de cette leçon
Remarque
Je peux planifier un chemin droit pour la main, avec sa durée.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Trajectoire | les positions successives de la main avec leurs instants | |
| Interpolation | calculer des points entre un départ et une arrivée | |
| Étape | un petit déplacement entre deux points voisins | |
| Vitesse maximale | la vitesse que la main ne doit pas dépasser | 10 cm par seconde |
| Durée minimale | le temps le plus court permis par la vitesse maximale |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
L’interpolation place des points à égale distance
Pour aller d’un départ à une arrivée en n étapes, on avance d’un n-ième du trajet à chaque étape. Le point numéro k vaut départ plus (arrivée moins départ) × k / n.
On l’applique à x, puis à y. Pour k égal à 0, on est au départ. Pour k égal à n, on est à l’arrivée.
Exemple travaillé : un chemin en quatre étapes
| k | x | y |
|---|---|---|
| 0 | 30 | 20 |
| 1 | 25 | 25 |
| 2 | 20 | 30 |
| 3 | 15 | 35 |
| 4 | 10 | 40 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Les cinq valeurs de x et de y
docker exec jupyter python3 -c "import numpy as np; print(np.linspace(30, 10, 5), np.linspace(20, 40, 5))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Le chemin droit en Python
depart = [30, 20]
arrivee = [10, 40]
n = 4
for k in range(n + 1):
x = depart[0] + (arrivee[0] - depart[0]) * k / n
y = depart[1] + (arrivee[1] - depart[1]) * k / n
print(k, round(x, 2), round(y, 2))
# Passez n à 8 : les points se resserrent.
La vitesse maximale fixe la durée minimale
La longueur du chemin se calcule avec Pythagore : ici 20 de large et 20 de haut, soit environ 28,28 cm. La durée minimale est la longueur divisée par la vitesse maximale.
Aller plus vite que cette durée voudrait dire dépasser la vitesse permise. On peut prendre plus de temps, jamais moins.
Exemple travaillé : la durée du même chemin
| Vitesse maximale | Longueur | Durée minimale |
|---|---|---|
| 10 cm par seconde | 28,28 cm | 2,83 secondes |
| 20 cm par seconde | 28,28 cm | 1,41 seconde |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
La durée à 10 cm par seconde
docker exec jupyter python3 -c "import numpy as np; print(round(float(np.hypot(20, 20)) / 10, 2))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup croient que 4 étapes donnent 4 points. Il y en a 5, car on compte aussi le départ. Pour n étapes, la liste a n plus 1 points : de k égal à 0 jusqu’à k égal à n.