Question:
Serais-je capable de programmer une application pour smartphone pour contrôler un drone contrôlé par smartphone?
Jeff 2.0
2020-05-08 04:54:53 UTC
view on stackexchange narkive permalink

Je souhaite acheter mon premier drone, je n'ai aucune expérience préalable. Je suis intéressé à obtenir un drone bon marché avec une caméra qui peut être contrôlée à partir d'une application pour smartphone. Quelque chose comme le Tello Ryze serait à l'extrémité supérieure de ma gamme de prix. J'ai de l'expérience en programmation (y compris les applications pour smartphone). J'ai remarqué que le Tello Ryze a spécifiquement un SDK. Serait-il possible d'utiliser ce SDK à partir d'une application Android que j'ai écrite? Et est-il généralement possible de programmer vous-même des drones contrôlables depuis un smartphone (j'ai du mal à obtenir de bonnes informations sur Google à ce sujet)?

Pour clarifier, à quoi je voudrais accéder dans mon programme:

  • Flux vidéo du drone vers mon application pour smartphone
  • Envoyer des commandes depuis mon application pour smartphone vers le drone pour le contrôler
Deux réponses:
Paul Kendall
2020-05-08 05:59:52 UTC
view on stackexchange narkive permalink

Cela semble certainement faisable. La documentation du SDK n'est pas très claire mais il s'agit essentiellement d'une simple commande de chaîne sur UDP. Il semble donc que le drone crée un point d'accès WiFi auquel vous vous connectez avec votre téléphone et que vous avez une adresse IP / un numéro de port dédié pour envoyer des commandes au drone.

Il existe une simple application python liée dans leur document SDK qui montre les bases. Et il existe un référentiel github qui a également un programme python qui montre comment obtenir le flux vidéo du drone via l'API de commande décrite dans le SDK.

Étant donné le SDK et les exemples de projets dans le référentiel github Je pense que ce serait un projet réalisable par quelqu'un avec des compétences en développement Android.

Après avoir examiné un peu plus la documentation du SDK, je pense que c'est probablement une bonne première étape pour moi dans le monde des drones (et les contrôler via mes propres programmes).
Bastian Springer
2020-05-08 13:49:39 UTC
view on stackexchange narkive permalink

La programmation d'une application pour DJI Tello semble possible avec l'API donnée. En fait, le Tello est destiné à ce genre de projets.

Je ne veux pas répéter la réponse de Paul ici cependant - je comprends votre question afin que votre objectif final soit de programmer complètement un système entier, depuis le début pour finir, pour contrôler votre drone, obtenir un flux vidéo et une télémétrie et ainsi de suite. Et sans dépendre de DJI.

Et bien que ce soit certainement possible, l'effort que vous devrez fournir est assez important. La création d'un système de transmission vidéo en particulier peut être un problème. Gardez à l'esprit qu'il doit être fiable, rapide et - surtout - robuste: il doit se remettre d'erreurs, il doit faire face à des connexions mauvaises et lentes; tu obtiens le point. Avoir un côté déjà réglé (comme dans le cas du DJI Tello) est un énorme avantage pour programmer votre propre application car vous avez quelque chose sur quoi bâtir.

Mais ne me laissez pas vous effrayer. Si vous avez confiance en vos compétences en programmation multiplateforme, vous pouvez certainement le faire. Des normes telles que WebRTC peuvent vous aider.

J'ai une certaine expérience avec des trucs comme WebRTC. Pour le Tello Ryze, est-il possible de charger / exécuter mon propre programme directement sur le drone? Je suppose que c'est ce que vous entendez par la programmation de l'ensemble du système, y compris des parties comme le streaming vidéo.
Oh, peut-être ai-je mal compris votre question (c'est pourquoi j'ai mentionné WebRTC car je pensais que vous voudriez également construire votre propre drone). Le DJI tello n'utilise cependant pas WebRTC, mais pour autant que je sache le SDK, votre programme ne fonctionne que sur le téléphone et vous le contrôlez via des messages UDP à 192.168.10.1:8889 et le tello renverra les messages UDP avec les données que vous demandé au port 8890 de votre téléphone. Le flux vidéo est envoyé à votre téléphone sur le port 11111. Ces deux fils peuvent peut-être vous aider à décoder le flux vidéo: [1] (https://bit.ly/2YLGzB5) [2] (https: //bit.ly/2WhkoRA).


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...