Smart Camera Choosing the line


#1

Hi,

I don’t find in the documentation how to look all the vector when the camera find an intersection.

We would like to choose the direction according the position of green square.

Regards


#2

@FredRouv do any of these links help?
https://education.makeblock.com/help/mblock-python-editor-apis-for-mbuild-modules/
https://education.makeblock.com/help/mbuild-smart-camera/


#3

I read the documentation but I don’t see where, in case of an intersection, i can choose the vestor for the way I want. Maybe I’m not explain well…


#4

I’m afraid I don’t quite understand. If you’d like, you can speak another language (if you do). :blush:
@FredRouv


#5

Lorsque la caméra rencontre un croisement, je voulais savoir comment avoir les coordonnées des différents vecteurs des différents chemins.

smart_camera.get_vector_start_x donne une des coordonnées mais par rapport à quelle direction?

Par exemple dans l’image ci-dessous, si j’arrive du chemin violet comment avoir les coordonnées du chemin jaune?
image


#6

Does this help??

Obtention des coordonnées des vecteurs des chemins à un croisement

Fonctionnement de la fonction smart_camera.get_vector_start_x

La fonction smart_camera.get_vector_start_x renvoie la coordonnée x du point de départ de la caméra. La coordonnée x du point de départ de la caméra est relative à la direction dans laquelle la caméra pointe. Par exemple, si la caméra pointe vers la droite, la coordonnée x du point de départ de la caméra sera la distance entre la caméra et l’objet le plus proche sur la droite.

Obtention des coordonnées du chemin jaune

Pour obtenir les coordonnées du chemin jaune, vous devez effectuer les étapes suivantes :

  1. Déterminez la direction du chemin jaune. La direction du chemin jaune est la direction opposée à la direction du chemin violet. Dans l’image fournie, la direction du chemin violet est vers le bas. Par conséquent, la direction du chemin jaune est vers le haut.
  2. Utilisez la fonction smart_camera.get_vector_start_x pour obtenir la coordonnée x du point de départ du chemin jaune. La coordonnée x du point de départ du chemin jaune sera la distance entre la caméra et l’objet le plus proche dans la direction du chemin jaune.
  3. Utilisez la géométrie pour obtenir la coordonnée y du point de départ du chemin jaune. La coordonnée y du point de départ du chemin jaune sera égale à la coordonnée y de la caméra.

Exemple

Supposons que la caméra pointe vers la droite et que la distance entre la caméra et l’objet le plus proche sur la droite soit de 10 mètres. Supposons également que la coordonnée y de la caméra soit de 5 mètres.

Pour obtenir les coordonnées du chemin jaune, nous devons d’abord déterminer la direction du chemin jaune. La direction du chemin jaune est opposée à la direction du chemin violet, qui est vers le bas. Par conséquent, la direction du chemin jaune est vers le haut.

Ensuite, nous pouvons utiliser la fonction smart_camera.get_vector_start_x pour obtenir la coordonnée x du point de départ du chemin jaune. La coordonnée x du point de départ du chemin jaune sera la distance entre la caméra et l’objet le plus proche dans la direction du chemin jaune, qui est de 10 mètres.

Enfin, nous pouvons utiliser la géométrie pour obtenir la coordonnée y du point de départ du chemin jaune. La coordonnée y du point de départ du chemin jaune sera égale à la coordonnée y de la caméra, qui est de 5 mètres.

Par conséquent, les coordonnées du point de départ du chemin jaune sont (10, 5).

Remarques

  • La fonction smart_camera.get_vector_start_x suppose que la caméra pointe dans une direction horizontale ou verticale. Si la caméra pointe dans une autre direction, vous devrez ajuster les calculs en conséquence.
  • La fonction smart_camera.get_vector_start_x suppose que l’objet le plus proche sur la ligne de visée de la caméra est un objet solide. Si l’objet le plus proche est un objet transparent, la fonction peut renvoyer une valeur incorrecte.

Alternative

Une autre façon d’obtenir les coordonnées des vecteurs des chemins à un croisement est d’utiliser une caméra stéréoscopique. Une caméra stéréoscopique est un système de vision par ordinateur composé de deux caméras montées l’une à côté de l’autre. En mesurant la disparité entre les images des deux caméras, une caméra stéréoscopique peut créer une carte de profondeur de la scène. La carte de profondeur peut ensuite être utilisée pour calculer les coordonnées des vecteurs des chemins.

L’utilisation d’une caméra stéréoscopique est plus précise que l’utilisation de la fonction smart_camera.get_vector_start_x. Cependant, les caméras stéréoscopiques sont plus chères et plus complexes que les caméras mono.

Conclusion

Il existe plusieurs façons d’obtenir les coordonnées des vecteurs des chemins à un croisement. La meilleure méthode dépend de vos besoins spécifiques. Si vous avez besoin d’une solution simple et économique, vous pouvez utiliser la fonction smart_camera.get_vector_start_x. Si vous avez besoin d’une solution plus précise, vous pouvez utiliser une caméra stéréoscopique.

@FredRouv


#7

Merci pour ta réponse mais pas totalement, je vais voir sur le forum de la camera pour avoir plus d’information


#8

:+1:
Wish I could help more, but I don’t know much about this…