[PYTHON] Découvrons ROS (Robot Operating System)

De nombreuses personnes intéressées par la reconnaissance d'image ou l'apprentissage automatique sont également intéressées par la mesure 3D. De plus, contrôler quelque chose peut être utile en tant que connaissance connexe. Par conséquent, j'étudie ROS dans le but d'apprendre la technologie des champs périphériques. ROS (Robot Operating System), comme son nom l'indique, est un environnement utile pour réaliser Robot. Cependant, comme mentionné dans cet article, les bibliothèques utilisées dans ROS sont utiles dans des domaines tels que la reconnaissance d'image et la mesure 3D, sans avoir à construire un robot. Ce que j'ai ressenti lors de mes recherches sur ROS, c'est que la standardisation par l'open source progresse également dans les domaines des robots et du contrôle. Il semble qu'il y ait un changement entre le moment où les relations d'image couvraient toutes les bibliothèques en interne (ou dans l'organisation à laquelle elles appartiennent) à l'ère des structures de données et des bibliothèques OpenCV. Lorsque je créais ma propre bibliothèque pour lire et écrire des fichiers BMP, je ne pouvais pas aller au-delà d'un certain niveau. Le code source non partagé et les structures de données sont morts et sont devenus les mêmes qu'ils ne l'étaient pas. Je pense que le programme à contrôler finira par devenir la même bibliothèque qu'il ne l'a pas fait, s'il est dans le style de l'organisation à laquelle il appartient. Surtout, le format des données est un atout important. À l'époque où je faisais des bibliothèques de calculs numériques en langage C (y compris moi-même) en référence à des livres, le style de manipulation des matrices dans ces bibliothèques n'était pas constant. J'ai vu beaucoup de code pré-déclaré la taille du tableau avec des constantes de macro. En langage C, la standardisation des nombres complexes a été retardée, et il y avait une faiblesse que l'algèbre linéaire n'était pas standardisée. De nos jours, un tel code est devenu un code dont la qualité n'est pas garantie, et qui ne bénéficie pas du multi-core ou du GPU.   Le format des données est un atout important. La bibliothèque s'accumule selon le format de données utile. Lorsque les bibliothèques sont complètes, les bibliothèques avec des interfaces compatibles et les fonctions de niveau supérieur qui utilisent ces bibliothèques seront disponibles. En Python, numpy est un tel format de données. De nombreuses bibliothèques telles que scipy, cv2 et scikit-learn se sont développées sur ce format de données. Je vais. Un langage comme Cython est également créé car il s'agit d'un format de données standard, fournissant un cadre pour utiliser efficacement numpy à partir de C / C ++, ou l'implémenter efficacement à l'aide de C / C ++. Il est devenu. Tout cela est dû à la standardisation des formats de données utiles. Il semble que ces changements soient causés par ROS. Avec la standardisation des mécanismes de contrôle par ROS et le fait que le cadre de l'apprentissage automatique est au même niveau, une personne peut écrire du code à la fois pour le contrôle et l'apprentissage automatique. Ce faisant, vous pourrez réaliser des idées qui étaient auparavant difficiles à mettre en œuvre.

L'introduction de ROS semble nous faire clairement prendre conscience de l'histoire unique de chaque appareil et du problème de contrôle considéré dans le cadre commun du fonctionnement du robot. Consultez l'exemple ROS pour voir si votre développement peut être réalisé naturellement dans le cadre de ROS. Avec ROS, vous pouvez utiliser à la fois C ++ et Python.   Il a également été présenté lors de la session de tutorat du Symposium 2016 sur la détection d'image. Tutoriel SSII2016: Développement de logiciels de robot avec ROS SlideShare Développement d'un logiciel de robot par ROS

tf: conversion de coordonnées, création de cadres pcl: bibliothèque de nuages de points OpenCV: bibliothèque de reconnaissance d'images usb_cam: connexion avec une caméra USB Il existe de nombreuses bibliothèques telles que.

Plusieurs raisons d'utiliser ROS pour le développement de robots autonomes http://myenigma.hatenablog.com/entry/20130208/1360324464


Le moyen le plus simple d'utiliser tf au monde Etude du package de conversion de coordonnées "tf" Compréhension complète de Tf, tf2


Utilisation d'une caméra USB avec Raspberry Pi + ROS


[Série «Let's Touch PCL!» Partie 1] Présentation de la bibliothèque de traitement de groupes de points 3D «Bibliothèque de nuages de points»

[Introduction to PCL] About Point Cloud Library


Installation ROS

Installation de ROS Indigo sur Ubuntu 1. Installez ROS

Installation de ROS Indigo Installation de ROS (Robot Operating System) Dernière version d'installation de ROS indigo sur Jessie de Raspberry Pi 2

Instructions pour installer ROS sur Jetson

http://wiki.ros.org/NvidiaJetsonTK1

Essayez d'installer ROS (Robot Operating System) sur Raspberry Pi 2

http://karaage.hatenadiary.jp/entry/2015/09/25/073000

Installez ROS sur Raspberry Pi 3

http://ishi.main.jp/ros/ros_rpi3.html

Installer ROS sur une carte à l'aide de Zynq

Xillybus et ROS sur Ubuntu14.04 sur Zybo Partie 4: Paramètres sur Zybo ~ Installation de ROS

Je pense que ROS deviendra populaire en tant que cadre standard dans le domaine du contrôle de robot. À ce moment-là, le point est de savoir à quel point ROS fonctionne avec le processeur intégré. Diverses entrées / sorties sont importantes dans le domaine du contrôle. FPGA offre un degré élevé de liberté de conception pour diverses E / S. Le GPU peut accélérer les calculs parallèles, mais il ne vous donne pas plus de liberté pour diverses E / S. Il est possible qu'un processeur multicœur et un FPGA puissent être combinés pour créer un système avec un degré de liberté élevé et une faible consommation d'énergie.

Lançons ROS avec FPGA

BeagleBone Black BeagleBone Black (BBB)

Installer ubuntu sur BeagleBone Black

Étudiez l'installation de ROS sur la carte Armadillo (Atmark Techno).

Le tatou va cartographier (c'est un robot nommé Armadillo) http://www.showusyoursensors.com/2010/11/armadillo-goes-mapping.html


Robots Using ROS http://www.ros.org/news/robots/mobile-robots/

L'article suivant de Willow Garage, qui est lié au développement de ROS, est intéressant. Graines semées par le robot "PARC" "Willow Garage" (1/4)

["Programmation ROS"](https://www.amazon.co.jp/ROS%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F % E3% 83% B3% E3% 82% B0-% E9% 8A% AD-% E9% A3% 9B / dp / 4627853416 / ref = sr_1_1? Ie = UTF8 & qid = 1471110172 & sr = 8-1 & keywords = ROS)

["La programmation des robots a commencé avec ROS-" Framework "for free robots (IO BOOKS)"](https://www.amazon.co.jp/ROS%E3%81%A7%E3%81%AF% E3% 81% 98% E3% 82% 81% E3% 82% 8B% E3% 83% AD% E3% 83% 9C% E3% 83% 83% E3% 83% 88% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E2% 80% 95% E3% 83% 95% E3% 83% AA% E3% 83% BC% E3% 81% AE% E3% 83% AD% E3% 83% 9C% E3% 83% 83% E3% 83% 88% E7% 94% A8% E3% 80% 8C% E3% 83% 95% E3% 83% AC% E3% 83% BC% E3% 83% A0% E3% 83% AF% E3% 83% BC% E3% 82% AF% E3% 80% 8D-I% E3% 83% BBO-BOOKS-% E5% B0% 8F% E5% 80% 89-% E5% B4% 87 / dp / 4777519015 / ref = sr_1_2?

Faisons le développement de base de ROS

Remarque:

Ensuite, lorsque la bibliothèque sera normalisée, on vous demandera: "Avez-vous du travail à faire?" Certaines bibliothèques ne sont pas faciles à utiliser correctement. Une expérience de développement et une expérience d'utilisation dans ce domaine seront utiles même si la bibliothèque est standardisée. Si la bibliothèque est une bibliothèque de formats propre à l'entreprise, l'expérience de l'individu s'épuise facilement lors du changement de département. Lorsque la bibliothèque sera standardisée, elle sera bientôt disponible dans des départements aux expériences personnelles différentes.

Il n'est pas toujours facile pour tout le monde d'utiliser correctement la bibliothèque, que ce soit en effectuant soi-même la mesure 3D ou en laissant quelqu'un d'autre le faire. En fonction de l'état réel de l'objet, de l'éclairage et des conditions de la caméra, le résultat de la mesure 3D peut facilement être trop grand. Les systèmes qui utilisent ROS sont susceptibles d'être influencés par divers facteurs dans l'espace réel. Par conséquent, leur utilisation appropriée continuera d'exiger une certaine perspicacité (connaissances).

Lorsque la bibliothèque a été normalisée, je pense que c'était "oui" à la question "Avez-vous un travail à faire?" Si la standardisation des bibliothèques fait disparaître des emplois, les entreprises qui publient diverses bibliothèques (y compris le code source) perdront leurs emplois. Veux dire Cependant, en réalité, nous tirons profit de la publication du code et du développement d'exemples sur la façon de l'utiliser efficacement.

Après essais et erreurs de la part des premiers développeurs, ceux qui utilisent l'open source avec des algorithmes et des bibliothèques avancés devraient être en mesure de faire plus que ce que les premiers développeurs ont réalisé, en fonction de leur compréhension. .. Par conséquent, lors du développement d'un robot équivalent à Asimo, il devrait être possible de le développer dans un temps beaucoup plus court que l'effort requis pour développer Asimo. Je pense que le point principal dans ce cas est de savoir dans quelle mesure les développeurs comprennent les algorithmes et les bibliothèques. Nous sommes à une époque où nous pouvons faire de bonnes choses qu'un ingénieur peut comprendre en recevant les résultats organisés de cette manière et en comprenant son savoir-faire.

Rechercher le système d'exploitation du robot sur Youtube


L'article Comment coder un drone à l'aide de la reconnaissance d'image utilisait ROS.

L'article suivant de Willow Garage, qui est lié au développement de ROS, est intéressant. Graines semées par le robot "PARC" "Willow Garage" (1/4)

Robots Using ROS http://www.ros.org/news/robots/mobile-robots/

Note d'étude ROS # 9 Caméra stéréo et étalonnage (https://www.e-consystems.com/jp/3D-USB-stereo-camera-jp.asp)

[Caméra stéréo pour les applications de vision 3D et de vision robotique!]

(https://jp.ids-imaging.com/ensenso-stereo-3d-camera.html)

Créer TurtleReal2

From Azumino no Mori> Use ROS (Robot Operating System)

Il y a des sessions d'étude comme suit.

Session d'étude ROS

http://wiki.ros.org/ja/Support

Projet OpenReroc pour réaliser des robots utilisant FPGA comme plate-forme avec FPGA x ROS

Recommended Posts

Découvrons ROS (Robot Operating System)
Découvrez comment lancer Anaconda Prompt
Découvrez l'environnement Python de Cinema4D