[LINUX] Contrôlez plusieurs robots avec jupyter-lab

Crabs

Crabs

introduction

Python est souvent utilisé comme environnement de développement IA. Surtout dans l'environnement de développement, il y a beaucoup de gens qui développent avec VS-code, jupyter-lab. La robotique est un autre exemple d'application d'IA. Laissez-moi vous dire d'abord, *** `` Robo est la romance de Han [homme] '' ***.

SBC Junky

SBC est une abréviation pour Single Board Computer. Je pense que ce serait bien si vous pouviez imaginer une tarte à la râpe ou quelque chose comme ça. C'est le cas pour moi, mais pourquoi ne pas en acheter un nouveau? Achetez-le immédiatement avec une raison appropriée telle que "étudier" ou "toujours toucher le nouveau SoC d'Arm!". Lorsque le budget est légèrement excédentaire à la fin du trimestre, je me dis "Eh bien, dois-je l'acheter!?" Je vais le faire jusqu'à ce que je graverai l'image sur SD, mais après cela, je n'ai pas besoin de l'utiliser. Ce n'est pas trop mature pour acheter sans slapstick, alors je vais me fixer une règle plausible. "SoC et OS de 64 bits ou plus", "la taille est la même que celle de Raspeye". Cependant, pour une raison quelconque, je ne mets pas trop de restrictions sur mon budget et j'achète un SBC relativement élevé. Récemment, Jetson-Nano ...

Application et fonctionnement

Dans un premier temps, j'étudierai la domotique et l'IoT tels quels, mais la prolifération de SBC est extrêmement rapide que l'introduction, et l'opération ne peut pas suivre. Finalement, "Pourquoi avez-vous acheté une telle planche?" Je l'ai acheté moi-même ...

Qu'est-ce qu'une échelle significative?

Si le PoC d'un système tel que l'IoT réussit, le deuxième mot sera "Peut-il être mis à l'échelle?" Le contexte change en fonction des ventes, du nombre d'unités introduites, de la position des ventes et de la consultation à ce moment-là, mais c'est votre sentiment cutané que ce mot vient après PoC. Pour une raison quelconque, rendons votre SBC significatif lorsque l'échelle vient en premier et que "l'exécution spéculative" est effectuée. Cela dit, cela n'a pas de sens de fixer un seul capteur à chaque SBC et de l'installer tous les 50 cm dans le couloir, non?

Alors, Robo Army

Plus il est amusant et heureux de former une armée. Dans l'ancien temps, c'était la période des États belligérants du printemps et de l'automne, et dans les temps modernes, c'est une faction interne. L'âme est ébranlée lorsqu'elle est composée d'individus pleins d'individualité. L'Armée Robo, qui se compose de plusieurs SBC, peut retracer ce contexte tel qu'il est. Fixons également un capteur. Infrarouge, ultraviolet, température. Une attaque de missile lancée depuis un robot de classe lourde en recherchant un robot capable de détecter des sources de chaleur (infrarouge). C'est un anneau où les illusions se propagent.

BlockDiagram_wifi.png

Alors, jupyter-lab

Je suis finalement arrivé à Jupyter-Lab. Je pense que vous connaissez plus jupyter-lab que vous, donc je ne vais pas l'expliquer. Seul l'exemple d'application sera décrit brièvement. En un mot *** Laissez chaque robot exécuter le service jupyter-lab et le contrôler avec le contrôleur de jeu connecté au PC à portée de main. *** Pour ce faire, lisez la valeur d'entrée du contrôleur de jeu avec le navigateur FrontEnd (PC), transmettez la valeur d'entrée au script python exécuté sur jupter-lab et faites fonctionner Robo.

Contrôle en temps réel

Lorsqu'il s'agit de contrôler des systèmes embarqués tels que Robo, ce mot est inséparable. N'ayez pas peur de vous méprendre, chaque système a un «composant de contrôle en temps réel» «». Contrôle en temps réel '' signifie si la propriété en temps réel '' 'est établie. Qu'est-ce qu'une propriété en temps réel ''? *** Est-il acceptable sur le plan opérationnel d'exécuter l'opération dans ce délai? Il devient ***. Ce système est un triple combo qui est loin d'être temps réel avec Linux, client serveur, interprète '' '.

Trade-off Si l'échelle '' mentionnée plus haut est l'histoire après PoC, compromis '' est un mot utilisé au moment de la conception, du développement et de la mise en œuvre. Bien sûr, ce système l'a également. Un exemple typique est la troncature d'un stick analogique. La vitesse de lecture (taux d'échantillonnage) et le nombre d'événements (fréquence) du stick analogique étaient trop lents. Je ne peux pas suivre la vitesse de déplacement de Robo et je ne peux pas la contrôler. En guise de compromis ici, le seul moyen d'assurer le `` temps réel '' est d'augmenter le taux d'échantillonnage et la fréquence, ou de réduire la vitesse de déplacement de Robo. Le premier est impossible en raison de la configuration du système, et le second n'est pas intéressant à utiliser.

finalement

Merci beaucoup d'avoir lu les détails du projet dans lequel ces deux maladies se sont cristallisées. En créant le système, mon illusion s'est propagée. Au fait, je l'ai écrit pour vous faire connaître le début du système Real Tam.

Ressources de développement

[Build guide:] (https://gitlab.com/teamknox/groovy-quatro/-/wikis/Build-Guide:-Project-Crab-(Mecanum-Wheels-Rover)-in-Japanese) [Firmware:] (https://gitlab.com/teamknox/groovy-quatro) [Control software:] (https://gitlab.com/teamknox/q_rover/-/blob/master/teleoperationQ.ipynb) [Groovy-Quatro:] (http://www.omiya-giken.com/?page_id=3150)

Recommended Posts

Contrôlez plusieurs robots avec jupyter-lab
Sélection multiple avec Jupyter
Contrôler les scripts avec des exceptions
Web scraping avec python + JupyterLab
Analyse de régression multiple avec Keras
Contrôler le libellé des erreurs avec nginx
J'ai créé COVID19_simulator avec JupyterLab
Animer plusieurs graphiques avec matplotlib
[ev3dev × Python] Contrôle de plusieurs moteurs
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Lancer plusieurs instances dans Postgresql 11.x
Racler plusieurs pages avec Beautiful Soup
Charger plusieurs fichiers JavaScript avec PyWebView
Définir plusieurs WSGIPythonPath avec Apache + mod_wsgi
Publiez plusieurs images Twitter avec python
Animez plusieurs images fixes avec Python
Extraire plusieurs colonnes spécifiques avec des pandas
Basculer entre plusieurs modèles avec M5 Stick V
Essayez la simulation de contrôle de fréquence avec Python
Extraire plusieurs éléments avec le tableau Numpy
Intégration multiple avec Python et Sympy
Observez le contrôle de congestion TCP avec ns-3
[Tkinter] Contrôler les threads avec l'objet Event
[Python] Création de plusieurs fenêtres avec Tkinter
Pendule inversé avec contrôle prédictif du modèle