Foire aux questions#

Questions générales#

Qu’est-ce qui est unique dans la CMUcam1 ?#

Traditionnellement, des ordinateurs rapides sont nécessaires pour capturer et traiter les images de caméra. Il est également nécessaire d’écrire le logiciel pour effectuer ce traitement. C’est pourquoi il est difficile d’utiliser la vision comme capteur dans des systèmes simples.

Le système de vision CMUcam1 utilise un microcontrôleur rapide et peu coûteux pour gérer tout le traitement à haute vitesse des données de la caméra et contient un logiciel pour effectuer des tâches de vision simples. Comme l’utilisateur peut choisir de ne produire que des informations de haut niveau à faible bande passante depuis le système de vision, comme « l’objet rouge est à la position X-Y », il est possible pour un processeur simple comme un microcontrôleur PIC de lire ces données et de diriger un petit robot dans des tâches telles que poursuivre une balle colorée. Le système de vision CMUcam1 permet d’ignorer la complexité de l’interfaçage de la caméra et d’utiliser la vision comme n’importe quel autre capteur (par ex. sonar) souvent utilisé dans les systèmes robotiques.

Quelle est la fréquence d’images de la CMUcam1 ?#

La cadence d’images la plus rapide est de 16,7 images par seconde. Cela signifie que la CMUcam1 peut vous indiquer la position d’un objet environ 17 fois par seconde. À l’aide du protocole logiciel série, vous pouvez ralentir cela si vous le souhaitez.

Quels débits en bauds la CMUcam1 prend-elle en charge ?#

Depuis la dernière version du micrologiciel (v1.12), la CMUcam1 peut communiquer à des débits en bauds de 9600, 19200, 38400 ou 115200. Le débit en bauds est sélectionné à l’aide des réglages des cavaliers sur la carte.

Comment mettre à jour le micrologiciel de ma CMUcam1 ?#

Si vous utilisez actuellement le micrologiciel v1.11, il n’y a aucune raison de le mettre à jour, sauf si vous avez besoin de la prise en charge des débits en bauds plus faibles. La version 1.11 prend en charge les débits de 38400 et 115200 bauds. La version 1.12 prend en charge ces débits en bauds et ajoute la prise en charge des débits de 9600 et 19200 bauds. Pour mettre à jour votre micrologiciel, vous devrez reprogrammer la mémoire flash de votre puce processeur. Si vous disposez d’un programmateur, vous pouvez télécharger la version actuelle depuis notre page Téléchargements et reflasher le processeur vous-même.

La CMUcam1 fonctionne-t-elle en extérieur ?#

La CMUcam1 fonctionne en extérieur, mais pas en plein soleil. La caméra CMOS que nous utilisons ne dispose pas d’un filtre IR de haute qualité, et donc la lumière du soleil sature les pixels rouges et l’image devient essentiellement monochrome en plein soleil. Il est possible d’ajouter un filtre externe pour améliorer le fonctionnement en extérieur. Nous avons un court document qui vous montre comment les conditions d’éclairage affectent la CMUcam1, que vous pouvez télécharger ici.

Puis-je écrire mon propre code pour la CMUcam1 ?#

Bien sûr. Pour cela, demandez-nous le code source du micrologiciel, procurez-vous un environnement de programmation C pour la puce Ubicom et lancez-vous. Lorsque nous vous enverrons le code source du micrologiciel, nous vous enverrons également un résumé de la structure du code ainsi que des informations sur l’environnement de programmation que nous utilisons.

Quelle est la consommation d’énergie de la CMUcam1 ?#

Le système complet consomme environ 200 milliampères.

Quel est le champ de vision de la CMUcam1 ?#

Cela dépend de l’objectif que vous montez sur la caméra CMOS. Si vous commandez la caméra CMOS telle qu’elle est vendue en standard, vous obtiendrez un champ de vision d’environ 25 degrés, ce qui est relativement étroit. Vous pouvez toutefois commander sur mesure des objectifs à angle plus large lorsque vous commandez votre caméra CMOS.

Quel processeur la CMUcam1 utilise-t-elle ?#

Notre code de traitement d’image réside sur une puce microcontrôleur d”Ubicom fonctionnant à 75 MHz, le SX28AC. Cette puce lit tous les pixels de la caméra CMOS via une interface parallèle et effectue tout le traitement en temps réel. Elle communique ensuite les résultats à votre microcontrôleur ou ordinateur via une interface de port série.

Quelle caméra CMOS la CMUcam1 utilise-t-elle ?#

Nous utilisons une caméra CMOS qui utilise la caméra CMOS sur puce OmniVision OV6620. Nous utilisons une carte caméra CMOS de modèle C3088 sur laquelle sont montés le capteur, un connecteur et un objectif.

La CMUcam1 fonctionne-t-elle avec d’autres caméras CMOS ?#

Non. Actuellement, le système matériel et logiciel a été conçu pour fonctionner spécifiquement avec la caméra CMOS OV6620 d”OmniVision. Le système devrait être entièrement reconçu pour fonctionner avec une autre caméra.

Y a-t-il un endroit où je peux trouver des réponses à d’autres questions que je me pose ?#

Oui. Nous avons quelques informations sur des questions plus techniques sur cette page.

Où puis-je en savoir plus sur la vision par ordinateur en général ?#

La CMUcam1 effectue la simple tâche de vision par ordinateur pour laquelle elle a été conçue, dans un boîtier petit et peu coûteux. Cependant, le problème général de la vision par ordinateur consistant à tenter de reconnaître des objets arbitraires dans des conditions arbitraires reste un sujet de recherche très actif et est très loin d’être un problème résolu.

Si vous souhaitez en savoir plus sur la vision par ordinateur, vous pourriez essayer ces liens :

Questions techniques#

Quelle est la séquence exacte des étapes effectuées à la mise sous tension par le mode démo ?#

Voici la séquence exacte que le mode démo exécute à la mise sous tension :

  1. Réinitialisez la caméra.

  2. Attendez 5 secondes que l’ajustement automatique des paramètres de la caméra se stabilise.

  3. Envoyez la chaîne de registre de la caméra : CR 18 32 19 32 qui sélectionne le mode YCrCb et désactive le gain automatique.

  4. Exécutez la commande TW.

Après quoi, la caméra commencera à piloter un servo vers le centre de masse de la couleur détectée par la commande TW.

Quelle est la séquence exacte des étapes effectuées par la commande « TW » ?#

Voici la séquence exacte que la commande TW exécute :

  1. Réduit la fenêtre au quart de la taille (dans chaque dimension) de la fenêtre actuelle, vers une nouvelle fenêtre centrée sur le centre de la fenêtre actuelle.

  2. Appelez get mean.

  3. Rétablissez la fenêtre à la taille complète de l’image.

  4. Réglez la valeur max et min de chaque canal de couleur pour qu’elle soit la moyenne de ce canal +/- 30.

Après quoi, la caméra commencera à diffuser des paquets de type C, M ou N.

Dans quelles conditions la LED de suivi s’allume-t-elle lorsque le mode automatique est activé ?#

La LED s’allumera lorsque le pixel_count renvoyé vérifie pixel_count >= 2. Le pixel_count renvoyé est pixel_count = (actual_pixel_count + 4) / 8.

Si la caméra CMOS a une résolution de 352 x 288 pixels, pourquoi la résolution de la CMUcam1 n’est-elle que de 80 x 143 ?#

Le problème ici est le fonctionnement des appareils photo numériques couleur. Dans tous les appareils photo numériques couleur (même les très chers - sauf certains basés sur une technologie très avancée), vous n’obtenez qu’une seule mesure de canal de couleur par emplacement de pixel ; c’est ce qu’on appelle le filtrage en mosaïque. Voici un joli schéma qui aide à expliquer cela :

Mosaic

(Schéma fourni par Foveon, Inc.)

Ce que vous pouvez donc constater, c’est que les pixels peuvent être considérés comme disposés par groupes de quatre, où il y a deux mesures G et une mesure R et une mesure B par groupe. Si vous écartez l’une des mesures G (ce que nous faisons), vous constatez que la résolution réelle d’une caméra 352x288 est plus proche de 176x144. Nous faisons fonctionner la caméra en mode demi-résolution, qui saute un bloc 2x2 sur deux horizontalement, ce qui donne 88x144. En raison des limitations de mémoire du processeur, nous écartons 8 colonnes horizontalement et une rangée verticalement, qui contient une mire de test, ce qui donne 80x143 comme résolution finale.

Pour information, les appareils photo numériques standard utilisent des techniques d’interpolation complexes pour tenter de combler les valeurs de couleur manquantes à chaque pixel et vous donner quelque chose d’un peu plus proche de la pleine résolution du capteur.

Comment puis-je faire la mise au point précise de la CMUcam1 ?#

Bien sûr, la meilleure façon de procéder à la mise au point est de réaliser des vidages d’image à l’aide de l’interface graphique. Vous n’avez peut-être pas d’ordinateur à portée de main, ou vous utilisez peut-être une CMUcam1 BotBall, qui n’a pas une résolution suffisante à son débit câblé de 9600 bauds pour que cela fonctionne bien.

Dans ce cas, il y a deux solutions. Premièrement, vous pouvez essayer de compter les filets. À la mise au point optimale, l’objectif n’est pas complètement vissé. Il reste plutôt un espace d’environ 1 millimètre de filet visible. En nombre de filets, cela correspond à environ 2 filets visibles dans l’espace entre l’objectif et la monture de l’objectif.

La deuxième solution repose sur l’idée que lorsqu’une image est nette, les zones sombres sont les plus sombres et les zones claires les plus claires. Autrement dit, lorsque le contraste est maximal. Lorsque l’image devient floue, les extrêmes s’estompent vers une distribution plus uniforme des intensités. Ainsi, si vous lancez le mode streaming, puis appelez GM (Get Mean), vous pouvez faire la mise au point en temps réel. Observez l’écart du rouge. À mesure que vous faites une mise au point nette sur un objet à fort contraste (comme une feuille de papier couverte d’écriture) à la distance souhaitée, il y aura un pic notable de l’écart du rouge lorsque la mise au point est la plus nette. Notez que cette approche de la mise au point nécessite que la caméra et la cible soient bien fixes pendant que vous tournez l’objectif.